igniteui-angular 16.1.19 → 16.1.21

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.
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const IGX_GRID_BASE = new InjectionToken('IgxGridBaseToken');
3
3
  export const IGX_GRID_SERVICE_BASE = new InjectionToken('IgxGridServiceBaseToken');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5QaW5uaW5nUG9zaXRpb24sIEZpbHRlck1vZGUsIEdyaWRQYWdpbmdNb2RlLCBHcmlkU2VsZWN0aW9uTW9kZSwgR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGUsIEdyaWRTdW1tYXJ5UG9zaXRpb24sIEdyaWRWYWxpZGF0aW9uVHJpZ2dlciwgUm93UGlubmluZ1Bvc2l0aW9uIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge1xuICAgIElTZWFyY2hJbmZvLCBJR3JpZENlbGxFdmVudEFyZ3MsIElSb3dTZWxlY3Rpb25FdmVudEFyZ3MsIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElHcmlkRWRpdERvbmVFdmVudEFyZ3MsIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSwgSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGF0YVR5cGUsIEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nT3BlcmFuZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElDb2x1bW5QaXBlQXJncywgSUZpZWxkUGlwZUFyZ3MsIElTb3J0aW5nT3B0aW9ucywgTVJMUmVzaXplQ29sdW1uSW5mbyB9IGZyb20gJy4uL2NvbHVtbnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5UmVzdWx0IH0gZnJvbSAnLi4vc3VtbWFyaWVzL2dyaWQtc3VtbWFyeSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24sIElTb3J0aW5nU3RyYXRlZ3ksIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3ksIElHcmlkU29ydGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSwgSWd4R3JpZEZvck9mRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3Itb2YvZm9yX29mLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG4vKiogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIHNlZ21lbnQgb2YgYSBwYXRoIGluIGEgaGllcmFyY2hpY2FsIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgLyoqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcm93IHdpdGhpbiB0aGUgc2VnbWVudC4gKi9cbiAgICByb3dJRDogYW55O1xuICAgIC8qKiBUaGUga2V5IHJlcHJlc2VudGluZyB0aGUgcm93J3MgJ2hpZXJhcmNoaWNhbCBsZXZlbC4gKi9cbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGF0YTogYW55W10gfCBudWxsO1xuICAgIGdldCBmaWx0ZXJlZERhdGEoKTogYW55W107XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGNlbGwgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjZWxsIG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgY2VsbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGxUeXBlIHtcbiAgICAvKiogVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGNlbGwuICovXG4gICAgdmFsdWU6IGFueTtcbiAgICAvKiogVGhlIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgY2VsbCBpcyBpbiBlZGl0IG1vZGUuICovXG4gICAgZWRpdFZhbHVlOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gSXQgaXMgZmFsc2UsIGlmIHRoZSBzZWxsIGlzIG5vdCBzZWxlY3RlZCwgYW5kIHRydWUsIGlmIGl0IGlzLiAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgYWN0aXZlIChmb2N1c2VkKS4gKi9cbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGNhbiBiZSBlZGl0ZWQuICovXG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBpbiBlZGl0IG1vZGUuICovXG4gICAgZWRpdE1vZGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIGNlbGwgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiAqL1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgcm93IHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0byAqL1xuICAgIHJvdzogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBpbnN0YW5jZSBjb250YWluaW5nIHRoZSBjZWxsICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIE9wdGlvbmFsOyBBbiBvYmplY3QgaWRlbnRpZnlpbmcgdGhlIGNlbGwuIEl0IGNvbnRhaW5zIHJvd0lELCBjb2x1bW5JRCwgYW5kIHJvd0luZGV4IG9mIHRoZSBjZWxsLiAqL1xuICAgIGlkPzogeyByb3dJRDogYW55OyBjb2x1bW5JRDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyIH07XG4gICAgLyoqIE9wdGlvbmFsOyBUaGUgYGNlbGxJRGAgaXMgdGhlIHVuaXF1ZSBrZXksIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNlbGwgKi9cbiAgICBjZWxsSUQ/OiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWw7IEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgdGhlIGNlbGwuXG4gICAgICogV2hldGhlciBpdCdzIHZhbGlkIG9yIGludmFsaWQsIGFuZCBpZiBpdCBoYXMgZXJyb3JzXG4gICAgICovXG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICAvKiogQW4gb3B0aW9uYWwgdGl0bGUgdG8gZGlzcGxheSBmb3IgdGhlIGNlbGwgKi9cbiAgICB0aXRsZT86IGFueTtcbiAgICAvKiogVGhlIENTUyB3aWR0aCBvZiB0aGUgY2VsbCBhcyBhIHN0cmluZy4gKi9cbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8uIEl0IGNvdW50cyBvbmx5IHRoZSB2aXNpYmxlIChub3QgaGlkZGVuKSBjb2x1bW5zICovXG4gICAgdmlzaWJsZUNvbHVtbkluZGV4PzogbnVtYmVyO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIGNlbGwuICovXG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byBzdGFydCBvciBlbmQgdGhlIGVkaXQgbW9kZSBvZiB0aGUgY2VsbC4gSXQgdGFrZXMgYSBib29sZWFuIHZhbHVlIGFzIGFuIGFyZ3VtZW50Ki9cbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsO1xuICAgICAqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBjZWxsIHRvIGZpdCB0aGUgY29udGVudFxuICAgICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBjZWxsIHdpdGggdGhlIGxvbmdlc3QgY29udGVudCBhbmQgcmVzaXplIGFsbCBjZWxscyB0byB0aGF0IHNpemVcbiAgICAgKi9cbiAgICBjYWxjdWxhdGVTaXplVG9GaXQ/KHJhbmdlOiBhbnkpOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBhY3RpdmF0ZSB0aGUgY2VsbC5cbiAgICAgKiBJdCB0YWtlcyBhIGZvY3VzIG9yIGtleWJvYXJkIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgYWN0aXZhdGU/KGV2ZW50OiBGb2N1c0V2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgZG91YmxlLWNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgY2xpY2sgZXZlbnRzIG9uIHRoZSBjZWxsXG4gICAgICogSXQgdGFrZXMgYSBtb3VzZSBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgaGVhZGVyIGNlbGwgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBoZWFkZXIgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzLCByZWxldmFudCB0byB0aGUgaGVhZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyVHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIGNlbGwgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBjb2x1bW4gdGhhdCB0aGUgaGVhZGVyIGNlbGwgcmVwcmVzZW50cy4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgZGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHNvcnRlZC4gKi9cbiAgICBzb3J0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGhlYWRlciBpcyBhIHRpdGxlIGNlbGwuICovXG4gICAgdGl0bGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHNvcnRpbmcgZGlyZWN0aW9uIG9mIHRoZSBjb2x1bW4gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSByb3cgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSByb3cgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSByb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmF0aXZlIEhUTUwgZWxlbWVudCBvZiB0aGUgcm93IGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSByb3cgd2l0aGluIHRoZSBncmlkICovXG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICB2aWV3SW5kZXg6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBncm91cGVkLiAqL1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWFwIG9mIGNvbHVtbiBmaWVsZCBuYW1lcyB0byB0aGUgc3VtbWFyeSByZXN1bHRzIGZvciB0aGUgcm93LlxuICAgICAqL1xuICAgIHN1bW1hcmllcz86IE1hcDxzdHJpbmcsIElneFN1bW1hcnlSZXN1bHRbXT47XG4gICAgZ3JvdXBSb3c/OiBJR3JvdXBCeVJlY29yZDtcbiAgICBrZXk/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIGxpc3Qgb3IgYW4gYXJyYXkgb2YgY2VsbHMsIHRoYXQgYmVsb25nIHRvIHRoZSByb3dcbiAgICAgKi9cbiAgICBjZWxscz86IFF1ZXJ5TGlzdDxDZWxsVHlwZT4gfCBDZWxsVHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgcm93IGlzIGRpc2FibGVkXG4gICAgICovXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVmlydHVhbGl6YXRpb24gc3RhdGUgb2YgZGF0YSByZWNvcmQgYWRkZWQgZnJvbSBjYWNoZVxuICAgICAqL1xuICAgIHZpcnREaXJSb3c/OiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8Q29sdW1uVHlwZSwgQ29sdW1uVHlwZVtdPjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBwaW5uZWQuXG4gICAgICovXG4gICAgcGlubmVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBzZWxlY3RlZFxuICAgICAqL1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBleHBhbmRlZC5cbiAgICAgKiBUaGUgdmFsdWUgaXMgdHJ1ZSwgaWYgdGhlIHJvdyBpcyBleHBhbmRlZCBhbmQgZmFsc2UsIGlmIGl0IGlzIGNvbGxhcHNlZFxuICAgICAqL1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSByb3cgaXMgbWFya2VkIGZvciBkZWxldGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgcm93IGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWQuXG4gICAgICovXG4gICAgaW5FZGl0TW9kZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBDb250YWlucyB0aGUgY2hpbGQgcm93cyBvZiB0aGUgY3VycmVudCByb3csIGlmIHRoZXJlIGFyZSBhbnkuXG4gICAgICovXG4gICAgY2hpbGRyZW4/OiBSb3dUeXBlW107XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBDb250YWlucyB0aGUgcGFyZW50IHJvdyBvZiB0aGUgY3VycmVudCByb3csIGlmIGl0IGhhcyBvbmUuXG4gICAgICogSWYgdGhlIHBhcmVudCByb3cgZXhpc3QsIGl0IG1lYW5zIHRoYXQgdGhlIGN1cnJlbnQgcm93IGlzIGEgY2hpbGQgcm93XG4gICAgICovXG4gICAgcGFyZW50PzogUm93VHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBoYXMgYW55IGNoaWxkIHJvd3NcbiAgICAgKi9cbiAgICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoaWVyYXJjaGljYWwgcmVjb3JkIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm93IChmb3IgdHJlZSBncmlkcykuXG4gICAgICogSXQgaXMgb2YgdHlwZSBJVHJlZUdyaWRSZWNvcmQsIHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRhLCBjaGlsZHJlbiwgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCwgZXRjLlxuICAgICAqL1xuICAgIHRyZWVSb3c/OiBJVHJlZUdyaWRSZWNvcmQ7XG4gICAgYWRkUm93VUk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhZGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBmb2N1c2VkPzogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50IHRoZSBncmlkIGluc3RhbmNlLCB0aGUgcm93IGJlbG9uZ3MgdG8gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBvblJvd1NlbGVjdG9yQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgY2xpY2sgZXZlbnQgb24gdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIGEgYE1vdXNlRXZlbnRgIGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBhZGRpbmcgYSBuZXcgcm93XG4gICAgICovXG4gICAgYmVnaW5BZGRSb3c/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBlbGVtZW50cyBvZiB0aGUgcm93XG4gICAgICogSXQgdGFrZXMgdGhlIG5ldyB2YWx1ZSBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRlbGV0aW5nIHJvd3NcbiAgICAgKi9cbiAgICBkZWxldGU/OiAoKSA9PiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgcGlubmluZyBhIHJvd1xuICAgICAqL1xuICAgIHBpbj86ICgpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgdW5waW5uaW5nIGEgcm93LCB0aGF0IGhhcyBiZWVuIHBpbm5lZFxuICAgICAqL1xuICAgIHVucGluPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGUge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgICBmaWx0ZXJzOiBJZ3hGaWx0ZXJpbmdPcGVyYW5kO1xuICAgIHBpcGVBcmdzOiBJRmllbGRQaXBlQXJncztcbiAgICBkZWZhdWx0VGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgZm9ybWF0dGVyKHZhbHVlOiBhbnksIHJvd0RhdGE/OiBhbnkpOiBhbnk7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbHVtbiBpbiB0aGUgYEdyaWRUeXBlYC4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGNvbHVtbiBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNvbHVtblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblR5cGUgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmN0YW5jZSBvZiB0aGUgcGFyZW50IGBHcmlkVHlwZWAgdGhhdCBjb250YWlucyB0aGlzIGNvbHVtbi4gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICAvKiogQSBsaXN0LCBjb250YWluaW5nIGFsbCB0aGUgY2hpbGQgY29sdW1ucyB1bmRlciB0aGlzIGNvbHVtbiAoaWYgYW55KS4gKi9cbiAgICBjaGlsZHJlbjogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIC8qKiBBbiBhcnJheSwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMsIGluY2x1ZGluZyBuZXN0ZWQgY2hpbGRyZW4uICovXG4gICAgYWxsQ2hpbGRyZW46IENvbHVtblR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGdyb3VwIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1bW4uXG4gICAgICogQ291bGQgYmUgb2YgYW55IHR5cGVcbiAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJHcm91cDogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBoZWFkZXIgY2VsbCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgICovXG4gICAgLy8gVFlQRVxuICAgIGhlYWRlckNlbGw6IGFueTtcbiAgICB2YWxpZGF0b3JzOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjdXN0b20gaGVhZGVyIG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIGNvbGxhcHNpYmxlIGluZGljYXRvciBvZiB0aGUgY29sdW1uLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckNsYXNzZXM6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZWxlbWVudC4gV2hlbiBhZGRlZCwgdGhleSB0YWtlIGRpZmZlcmVudCBzdHlsaW5nICovXG4gICAgaGVhZGVyU3R5bGVzOiBhbnk7XG4gICAgIC8qKiBSZXByZXNlbnRzIGN1c3RvbSBDU1MgY2xhc3NlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZ3JvdXAuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckdyb3VwQ2xhc3NlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZ3JvdXAuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckdyb3VwU3R5bGVzOiBhbnk7XG5cbiAgICAvKiogXG4gICAgICogQ3VzdG9tIENTUyBzdHlsaW5nLCBhcHBwbGllZCB0byBldmVyeSBjb2x1bW4gXG4gICAgICogY2FsY1dpZHRoLCBtaW5XaWR0aFB4LCBtYXhXaWR0aFB4LCBtaW5XaWR0aCwgbWF4V2lkdGgsIG1pbldpZHRoUGVyY2VudCwgbWF4V2lkdGhQZXJjZW50LCByZXNvbHZlZFdpZHRoXG4gICAgICovXG4gICAgY2FsY1dpZHRoOiBhbnk7XG4gICAgbWluV2lkdGhQeDogbnVtYmVyO1xuICAgIG1heFdpZHRoUHg6IG51bWJlcjtcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xuICAgIG1heFdpZHRoOiBzdHJpbmc7XG4gICAgbWluV2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgcmVzb2x2ZWRXaWR0aDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoZWFkZXIgdGV4dCBvZiB0aGUgY29sdW1uXG4gICAgICovXG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICAgKiBJbmNsdWRlcyB0aGUgaGlkZGVuIGNvbHVtbnMgd2hlbiBjb3VudGluZ1xuICAgICAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgdHlwZSBvZiBkYXRhIGZvciB0aGUgY29sdW1uOlxuICAgICAqIHN0cmluZywgbnVtYmVyLCBidXVsZWFuLCBjdXJyZW5jeSwgZGF0ZSwgdGltZSwgZXRjLlxuICAgICAqL1xuICAgIGRhdGFUeXBlOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIGN1c3RvbSBpbmxpbmUgZWRpdG9yIG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaW5saW5lRWRpdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gd2l0aGluIHRoZSBncmlkLlxuICAgICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGhpZGRlbiBjb2x1bW5zIHdoZW4gY291bnRpbmdcbiAgICAgKi9cbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcbiAgICAvKiogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZWQgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBjb2xsYXBzZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBjb2xsYXBzZWRcbiAgICAgKiBJdCBpcyB1c2VkIGluIHRyZWUgZ3JpZCBhbmQgZm9yIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlZCB3aGV0aGVyIHRoZSBjb2x1bW4gY2FuIGJlIGVkaXRlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIGVkaXRlZCAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSByZXNpemVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZCAqL1xuICAgIHJlc2l6YWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRhdGEgb2YgdGhlIGNvbHVtbiBjYW4gYmUgc2VhcmNoZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGRhdGEgY2FuIGJlIHNlYXJjaGVkICovXG4gICAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbHVtbiBiZWxvbmdzIHRvIGEgZ3JvdXAgb2YgY29sdW1ucy4gKi9cbiAgICBjb2x1bW5Hcm91cDogYm9vbGVhbjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxMy4xLjAuIFVzZSBgSWd4R3JpZENvbXBvbmVudC5tb3ZpbmdgIGluc3RlYWQuKi9cbiAgICBtb3ZhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcHV0IGluIGEgZ3JvdXAuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBwdXQgaW4gYSBncm91cCAqL1xuICAgIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gKi9cbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIGZpbHRlcmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBmaWx0ZXJhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBpcyBjdXJyZW50bHkgaGlkZGVuIChub3QgdmlzaWJsZSkuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIG5vdCB2aXNpYmxlICovXG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW5ub3QgYmUgcGlubmVkICovXG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBoaWRkZW4uIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbm5vdCBiZSBoaWRkZW4gKi9cbiAgICBkaXNhYmxlSGlkaW5nOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3J0aW5nIHN0cmF0ZWd5IHVzZWQgZm9yIHNvcnRpbmcgdGhpcyBjb2x1bW4uXG4gICAgICogVGhlIGludGVyZmFjZSBjb250YWlucyBhIG1ldGhvZCBzb3J0IHRoYXQgc29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnNcbiAgICAgKi9cbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWFyY2ggc2hvdWxkIG1hdGNoIHJlc3VsdHMsIG5vIG1hdHRlciB0aGUgY2FzZSBvZiB0aGUgbGV0dGVycyAodXBwZXIgYW5kIGxvd2VyKVxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlIHJlc3VsdCB3aWxsIGRlcGVuZCBvbiB0aGUgY2FzZSAoZXhhbXBsZTogYEVgIHdpbGwgbm90IG1hdGNoIGBlYClcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIG5vdCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG1hdGNoIGBlYClcbiAgICAgKi9cbiAgICBzb3J0aW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJDZWxsOiBhbnk7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsdGVyaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgY29sdW1uLlxuICAgICAqIFRoZSB0eXBlIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGZpbHRlcmluZzogZmlsdGVyaW5nT3BlcmFuZHMsIG9wZXJhdG9yIChsb2dpYyksIGZpZWxkTmFtZSwgZXRjLlxuICAgICAqL1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgc3VtbWFyaWVzOiBhbnk7XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgYSBzdW1tYXJ5IG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc3VtbWFyeVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBwaW5uZWQgKi9cbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBleHBhbmRlZCBvciBjb2xsYXBzZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIGV4cGFuZGVkICovXG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gY2FuIGJlIHNlbGVjdGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGNvbHVtbkxheW91dDogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIGxldmVsIG9mIHRoZSBjb2x1bW4gaW4gdGhlIGNvbHVtbiBsYXlvdXQgKi9cbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHJvd1N0YXJ0OiBudW1iZXI7XG4gICAgcm93RW5kOiBudW1iZXI7XG4gICAgY29sU3RhcnQ6IG51bWJlcjtcbiAgICBjb2xFbmQ6IG51bWJlcjtcbiAgICBncmlkUm93U3BhbjogbnVtYmVyO1xuICAgIGdyaWRDb2x1bW5TcGFuOiBudW1iZXI7XG4gICAgY29sdW1uTGF5b3V0Q2hpbGQ6IGJvb2xlYW47XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSByb290IHBhcmVudCBvZiB0aGlzIGNvbHVtbiAoaWYgYW55KS5cbiAgICAgKiBJZiB0aGVyZSBpcyBubyByb290IHBhcmVudCwgdGhhdCBtZWFucyB0aGUgY3VycmVudCBzb2x1bm0gaXMgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIGltbWVkaWF0ZSBwYXJlbnQgKHJpZ2h0IGFib3ZlKSBjb2x1bW4gb2YgdGhpcyBjb2x1bW4gKGlmIGFueSkuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gcGFyZW50LCB0aGF0IG1lYW5zIHRoZSBjdXJyZW50IHNvbHVubSBpcyB0aGUgcm9vdCBwYXJlbnRcbiAgICAgKi9cbiAgICBwYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBpcGVBcmdzOiBJQ29sdW1uUGlwZUFyZ3M7XG4gICAgaGFzTmVzdGVkUGF0aDogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUgbGFzdCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGFmdGVyIHRoZSBjdXJyZW50ICovXG4gICAgaXNMYXN0UGlubmVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGZvciB0aGUgZ3JpZCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGJlZm9yZSB0aGUgY3VycmVudCAqL1xuICAgIGlzRmlyc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXBwbHlTZWxlY3RhYmxlQ2xhc3M6IGJvb2xlYW47XG4gICAgLyoqIFRoZSB0aXRsZSBvZiB0aGUgY29sdW1uLCB1c2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCB3aXRoIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuICovXG4gICAgZ3JvdXBpbmdDb21wYXJlcjogKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgY3VzdG9tIHRlbXBsYXRlIGZvciBmaWx0ZXJpbmdcbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZmlsdGVyQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgZGVmaW5pdGlvbiB0byBtb3ZlIHRoZSBjb2x1bW4gdG8gdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKiBJdCB0YWtlcyB0aGUgaW5kZXggb2YgdHlwZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXJcbiAgICAqL1xuICAgIG1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgc2l6ZSAqL1xuICAgIGdldEF1dG9TaXplKCk6IHN0cmluZztcbiAgICBnZXRSZXNpemFibGVDb2xVbmRlckVuZCgpOiBNUkxSZXNpemVDb2x1bW5JbmZvW107XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgd2lkdGggb2YgdGhlIGNlbGxzIHVuZGVyIHRoZSBjb2x1bW4gKi9cbiAgICBnZXRDZWxsV2lkdGgoKTogc3RyaW5nO1xuICAgIGdldEdyaWRUZW1wbGF0ZShpc1JvdzogYm9vbGVhbik6IHN0cmluZztcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB0b2dnbGUgY29sdW1uIHZpYmlzaWxpdHkgKGhpZGRlbiBvciB2aXNpYmxlKSAqL1xuICAgIHRvZ2dsZVZpc2liaWxpdHkodmFsdWU/OiBib29sZWFuKTogdm9pZDtcbiAgICBwb3B1bGF0ZVZpc2libGVJbmRleGVzPygpOiB2b2lkO1xuICAgIC8qKiBQaW5zIHRoZSBjb2x1bW4gYXQgdGhlIHNwZWNpZmllZCBpbmRleCAoaWYgbm90IGFscmVhZHkgcGlubmVkKS4gKi9cbiAgICBwaW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xuICAgIC8qKiBVbnBpbnMgdGhlIGNvbHVtbiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IChpZiBub3QgYWxyZWFkeSB1bnBpbm5lZCkuICovXG4gICAgdW5waW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyB3aGVuIGEgZm9ybSBncm91cCBpcyBjcmVhdGVkIGluIHRoZSBncmlkLlxuICogLSBmb3JtR3JvdXA6IFRoZSBmb3JtIGdyb3VwIHRoYXQgaXMgY3JlYXRlZC5cbiAqIC0gb3duZXI6IFRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgZm9ybSBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3Mge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyBmb3IgdGhlIGdyaWQgdmFsaWRhdGlvbiBzdGF0dXMgY2hhbmdlIGV2ZW50LlxuICogLSBzdGF0dXM6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyAoJ1ZBTElEJyBvciAnSU5WQUxJRCcpLlxuICogLSBvd25lcjogVGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSB2YWxpZGF0aW9uIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncyB7XG4gICAgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXR1cy5cbiAqIC0gJ1ZBTElEJzogVGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIHZhbGlkLlxuICogLSAnSU5WQUxJRCc6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uU3RhdHVzID0gJ1ZBTElEJyB8ICdJTlZBTElEJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZ3JpZC5cbiAqIC0gc3RhdHVzOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgKCdWQUxJRCcgb3IgJ0lOVkFMSUQnKS5cbiAqIC0gZXJyb3JzOiBUaGUgdmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXM7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgcmVjb3JkIGluIHRoZSBncmlkLlxuICogLSBga2V5YDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZWNvcmQuXG4gKiAtIGBmaWVsZHNgOiBBbiBhcnJheSBvZiB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBpbmRpdmlkdWFsIGZpZWxkcyBpbiB0aGUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAga2V5OiBhbnk7XG4gICAgZmllbGRzOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZmllbGQgaW4gdGhlIGdyaWQuXG4gKiAtYGZpZWxkYDogVGhlIG5hbWUgb2YgdGhlIGZpZWxkIChwcm9wZXJ0eSkgYmVpbmcgdmFsaWRhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBmaWVsZDogc3RyaW5nXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc2VydmljZSBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNlcnZpY2VUeXBlIHtcblxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYEdyaWRUeXBlYCB0aGF0IGNvbnRhaW5zIHRoZSBzZXJ2aWNlLiAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBDUlVEIHNlcnZpY2UgKENyZWF0ZSwgUmVhZCwgVXBkYXRlLCBEZWxldGUpIG9wZXJhdGlvbnMgb24gdGhlIGdyaWQgZGF0YS4gKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBBIHNlcnZpY2UgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIGNvbHVtbiBtb3Zpbmcgd2l0aGluIHRoZSBncmlkLiBJdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgY29sdW1uLCBpdHMgaWNvbiwgYW5kIGluZGljYXRvciBmb3IgY2FuY2VsYXRpb24uICovXG4gICAgY21zOiBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgdXNlZCBpbiB0aGUgZ3JpZC4gVGhlIHJldHVybmVkIHZhbHVlcyBjb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGdldF9kYXRhKCk6IGFueVtdO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYWxsIHRoZSBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgZ3JpZCwgaW5jbHVkaW5nIGFueSB0cmFuc2FjdGlvbmFsIGRhdGEuXG4gICAgICogYGluY2x1ZGVUcmFuc2FjdGlvbnNgOiBPcHRpb25hbCBwYXJhbWV0ZXIuIFNwZWNpZmllcyB3aGV0aGVyIHRvIGluY2x1ZGUgdHJhbnNhY3Rpb25hbCBkYXRhIGlmIHByZXNlbnQuXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGdyaWQuXG4gICAgICovXG4gICAgZ2V0X2FsbF9kYXRhKGluY2x1ZGVUcmFuc2FjdGlvbnM/OiBib29sZWFuKTogYW55W107XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gb2JqZWN0IGJ5IGl0cyBuYW1lLCB0YWtlbiBhcyBhIHBhcmFtZXRlci4gKi9cbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldFJvd0RhdGEoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByZWNvcmQgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldF9yZWNfYnlfaWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgYSBzcGVjaWZpYyByb3cgYnkgaXRzIGRhdGEuICovXG4gICAgZ2V0X3Jvd19pZChyb3dEYXRhOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgaW5kZXggKHRha2VuIGFzIGEgcGFyYW1ldGVyKSBpbiB0aGUgZ3JpZCAqL1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMga2V5ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIGdyaWQgKi9cbiAgICBnZXRfcm93X2J5X2tleShyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLiAqL1xuICAgIGdldF9yZWNfaW5kZXhfYnlfaWQocGs6IHN0cmluZyB8IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIGluZGV4LiAqL1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gaW4gdGhlIGdyaWQuICovXG4gICAgZ2V0X2NlbGxfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy4gKi9cbiAgICBnZXRfY2VsbF9ieV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JRDogbnVtYmVyIHwgc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy5cbiAgICAgKiBJdCBjb3VudHMgb25seSB0aGUgaW5kZXhlcyBvZiB0aGUgdmlzaWJsZSBjb2x1bW5zIGFuZCByb3dzXG4gICAgICovXG4gICAgZ2V0X2NlbGxfYnlfdmlzaWJsZV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiB0aGF0IHNldHMgdGhlIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIGdyb3VwIHJvdyAodXNlZCBmb3IgdHJlZSBncmlkcylcbiAgICAgKiBJdCB0YWtlcyB0aGUgdmFsdWUgZm9yIHRoZSBleHBhbnRpb24gYXMgYSBwYXJhbWV0ZXIgKGV4cGFuZGVkIG9yIGNvbGxhcHNlZClcbiAgICAgKi9cbiAgICBzZXRfZ3JvdXByb3dfZXhwYW5zaW9uX3N0YXRlPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICByb3dfZGVsZXRlZF90cmFuc2FjdGlvbihpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBhZGRpbmcgYSBuZXcgcm93IHRvIHRoZSBncmlkLlxuICAgICAqIEl0IHRha2VzIHRoZSByb3cncyBkYXRhIGFuZCB0aGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50IHJvdyBpZiBhcHBsaWNhYmxlICh1c2VkIGZvciB0cmVlIGdyaWRzKVxuICAgICAqL1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgZGVsZXRpbmcgYSByb3csIHNwZWNpZmllZCBieSBpdCdzIGlkZW50aWRpZXIgKHRha2VuIGFzIGEgcGFyYW1ldGVyKSAqL1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgcm93J3MgY3VycmVudCBzdGF0ZSBvZiBleHBhbnRpb24gKHVzZWQgZm9yIHRyZWUgZ3JpZHMpKi9cbiAgICBnZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc2V0dGluZyBhIG5ldyBleHBhbnRpb24gc3RhdGUuIEl0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKi9cbiAgICBzZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQ7XG4gICAgZ2V0X3N1bW1hcnlfZGF0YSgpOiBhbnlbXTtcblxuICAgIHByZXBhcmVfc29ydGluZ19leHByZXNzaW9uKHN0YXRlQ29sbGVjdGlvbnM6IEFycmF5PEFycmF5PGFueT4+LCBleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNvcnRpbmcgYnkgb25seSBvbmUgZXhwcmVzc2lvblxuICAgICAqIFRoZSBleHByZXNzaW9uIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzb3J0aW5nIGJ5IG11bHRpcGxlIGV4cHJlc3Npb25zXG4gICAgICogVGhlIGV4cHJlc3Npb25zIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnRfbXVsdGlwbGUoZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmVzZXRpbmcgdGhlIHNvcnRpbmcgKi9cbiAgICBjbGVhcl9zb3J0KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKiBSZXByZXNlbnRzIGFuIGV2ZW50LCB0cmlnZ2VyZWQgd2hlbiB0aGUgcGluIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBnZXRfcGluX3Jvd19ldmVudF9hcmdzKHJvd0lEOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlLCBwaW5uZWQ/OiBib29sZWFuKTogSVBpblJvd0V2ZW50QXJncztcblxuICAgIGZpbHRlckRhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdO1xuICAgIHNvcnREYXRhQnlFeHByZXNzaW9ucyhkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogYW55W107XG5cbiAgICB1cGRhdGVfY2VsbChjZWxsOiBJZ3hDZWxsKTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuICAgIHVwZGF0ZV9yb3cocm93OiBJZ3hFZGl0Um93LCB2YWx1ZTogYW55LCBldmVudD86IEV2ZW50KTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuXG4gICAgZXhwYW5kX3BhdGhfdG9fcmVjb3JkPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCk6IHZvaWQ7XG4gICAgZ2V0X3NlbGVjdGVkX2NoaWxkcmVuPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCwgc2VsZWN0ZWRSb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBnZXRfZ3JvdXBCeV9yZWNvcmRfaWQ/KGdSb3c6IElHcm91cEJ5UmVjb3JkKTogc3RyaW5nO1xuICAgIHJlbW92ZV9ncm91cGluZ19leHByZXNzaW9uPyhmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXJfZ3JvdXBieT8oZmllbGQ6IHN0cmluZyB8IGFueSk6IHZvaWQ7XG4gICAgZ2V0UGFyZW50Um93SWQ/KGNoaWxkOiBHcmlkVHlwZSk6IGFueTtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IEdyaWRUeXBlW107XG4gICAgZ2V0Q2hpbGRHcmlkPyhwYXRoOiBJUGF0aFNlZ21lbnRbXSk6IEdyaWRUeXBlO1xuXG4gICAgdW5zZXRDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG59XG5cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgZ3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWRcbiAqIEV4dGVuZHMgYElHcmlkRGF0YUJpbmRhYmxlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRUeXBlIGV4dGVuZHMgSUdyaWREYXRhQmluZGFibGUge1xuICAgIC8qKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEueC4gUGxlYXNlIHVzZSB0aGUgYC0taWctc2l6ZWAgQ1NTIGN1c3RvbSBwcm9wZXJ0eS4gKi9cbiAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGxvY2FsZSBvZiB0aGUgZHJpZzogYFVTRGAsIGBFVVJgLCBgR0JQYCwgYENOWWAsIGBKUFlgLCBldGMuICovXG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VTdHJpbmdzOiBJR3JpZFJlc291cmNlU3RyaW5ncztcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmF0aXZlIEhUTUwgZWxlbWVudCBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgcm93cyBpbiB0aGUgZ3JpZCBhcmUgZWRpdGFibGUuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBlZGl0ZWQgKi9cbiAgICByb3dFZGl0YWJsZTogYm9vbGVhbjtcbiAgICByb290U3VtbWFyaWVzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgZmlsdGVyaW5nIGluIHRoZSBncmlkIGlzIGVuYWJsZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSBncmlkIGNhbiBiZSBmaWx0ZXJlZCAqL1xuICAgIGFsbG93RmlsdGVyaW5nOiBib29sZWFuO1xuICAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgcm93cyBpbiB0aGUgZ3JpZCBjYW4gYmUgZHJhZ2dlZC4gSWYgdGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIHJvd3MgY2FuIGJlIGRyYWdnZWQgKi9cbiAgICByb3dEcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHVuaXF1ZSBwcmltYXJ5IGtleSB1c2VkIGZvciBpZGVudGlmeWluZyByb3dzIGluIHRoZSBncmlkICovXG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZ3JpZC4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgaGVpZ2h0IG9mIHRoZSB2aXNpYmxlIHJvd3MgaW4gdGhlIGdyaWQuICovXG4gICAgcmVuZGVyZWRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBwaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIHN1bW1hcnlQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGdyb3VwYWJsZVBpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgZmlsdGVyaW5nUGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNDb2x1bW5MYXlvdXRzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBpcyBjdXJyZW50bHkgaW4gYSBtb3Zpbmcgc3RhdGUuICovXG4gICAgbW92aW5nOiBib29sZWFuO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIC8qKiBTdHJhdGVneSwgdXNlZCBmb3IgY2xvbmluZyB0aGUgcHJvdmlkZWQgZGF0YS4gVGhlIHR5cGUgaGFzIG9uZSBtZXRob2QsIHRoYXQgdGFrZXMgYW55IHR5cGUgb2YgZGF0YSAqL1xuICAgIGRhdGFDbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3k7XG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBzZXJ2aWNlIHR5cGUgcHJvdmlkaW5nIEFQSSBtZXRob2RzIGZvciB0aGUgZ3JpZCAqL1xuICAgIHJlYWRvbmx5IGdyaWRBUEk6IEdyaWRTZXJ2aWNlVHlwZTtcblxuICAgIC8qKiBUaGUgZmlsdGVyIG1vZGUgZm9yIHRoZSBncmlkLiBJdCBjYW4gYmUgcXVpY2sgZmlsdGVyIG9mIGV4Y2VsLXN0eWxlIGZpbHRlciAqL1xuICAgIGZpbHRlck1vZGU6IEZpbHRlck1vZGU7XG5cbiAgICAvLyBUWVBFXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGhlYWRSb3c6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cEFyZWE6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyaW5nUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgYWN0aW9uU3RyaXA6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByZXNpemVMaW5lOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB0Zm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yOiBJZ3hQYWdpbmF0b3JDb21wb25lbnQ7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yTGlzdD86IFF1ZXJ5TGlzdDxJZ3hQYWdpbmF0b3JDb21wb25lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNydWRTZXJ2aWNlOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgc3VtbWFyeVNlcnZpY2U6IGFueTtcblxuXG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdmlydHVhbGl6YXRpb24gZm9yIHRoZSBncmlkLiBJdCBoYXMgYW4gb3duZXIsIHN0YXJ0IGluZGV4IGFuZCBjaHVuayBzaXplICovXG4gICAgdmlydHVhbGl6YXRpb25TdGF0ZTogSUZvck9mU3RhdGU7XG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIC8qKiBUaGUgc2VydmljZSBoYW5kbGluZyBzZWxlY3Rpb24gaW4gdGhlIGdyaWQuIFNlbGVjdGluZywgZGVzZWxlY3RpbmcgZWxlbWVudHMgKi9cbiAgICBzZWxlY3Rpb25TZXJ2aWNlOiBhbnk7XG4gICAgbmF2aWdhdGlvbjogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1NlcnZpY2U6IGFueTtcbiAgICBvdXRsZXQ6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaGFzIGNvbHVtbnMgdGhhdCBjYW4gYmUgbW92ZWQgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNNb3ZhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQncyByb3dzIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIGlzUm93U2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNlbGVjdG9ycyBvZiB0aGUgcm93cyBhcmUgdmlzaWJsZSAqL1xuICAgIHNob3dSb3dTZWxlY3RvcnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3MgZWxlbWVudCBpcyBwaW5uZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncmlkICovXG4gICAgaXNQaW5uaW5nVG9TdGFydDogYm9vbGVhbjtcbiAgICAvKiogSWRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBvZiB0aGUgZ3JpZCBpcyBpbiBkcmFnIG1vZGUgKi9cbiAgICBjb2x1bW5JbkRyYWc6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHdpZHRoIG9mIHBpbm5lZCBlbGVtZW50ICovXG4gICAgcGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHdpZHRoIG9mIHVucGlubmVkIGVsZW1lbnQgKi9cbiAgICB1bnBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgLyoqIFRoZSBDU1MgbWFyZ2luIG9mIHRoZSBzdW1tYXJpZXMgKi9cbiAgICBzdW1tYXJpZXNNYXJnaW46IG51bWJlcjtcbiAgICBoZWFkU2VsZWN0b3JCYXNlQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaGFzIGNvbHVtbnMgdGhhdCBhcmUgc2hvd24gKi9cbiAgICBoYXNWaXNpYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBleHBhbmRhYmxlIGNoaWxkcmVuIChoaWVyYXJjaGljYWwgYW5kIHRyZWUgZ3JpZClcbiAgICAgKi9cbiAgICBoYXNFeHBhbmRhYmxlQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgY29sbGFwc2VkIGdyaWQgZWxlbWVudHMgc2hvdWxkIGJlIGV4cGFuZGVkXG4gICAgICovXG4gICAgc2hvd0V4cGFuZEFsbD86IGJvb2xlYW47XG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY291bnQgb2Ygb25seSB0aGUgaGlkZGVuIChub3QgdmlzaWJsZSkgY29sdW1ucyAqL1xuICAgIGhpZGRlbkNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb3VudCBvZiBvbmx5IHRoZSBwaW5uZWQgY29sdW1ucyAqL1xuICAgIHBpbm5lZENvbHVtbnNDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGdyaWQgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGdyb3VwLWJ5IHJvd3MuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGdyb3VwUm93VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGdyb3VwIHJvdyBzZWxlY3Rvci5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciByb3cgbG9hZGluZyBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBzZWxlY3Rvci5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZFNlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciByb3cgc2VsZWN0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBzb3J0IGhlYWRlciBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc29ydEhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBhc2NlbmRpbmcgc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnRBc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgZGVzY2VuZGluZyBzb3J0IGhlYWRlciBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc29ydERlc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGNvbGxhcHNlZCBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBoZWFkZXJDb2xsYXBzZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBoZWFkZXIgZXhwYW5kZWQgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyRXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqIFRoZSB0ZW1wbGF0ZSBmb3IgZHJhZyBpbmRpY2F0b3IgaWNvbnMuIENvdWxkIGJlIG9mIGFueSB0eXBlICovXG4gICAgZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBUaGUgYmFzZSBkcmFnIGluZGljYXRvciBpY29uLiBDb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGRyYWdJbmRpY2F0b3JJY29uQmFzZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0cmFuc2l0aW9ucyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBncmlkLiAqL1xuICAgIGRpc2FibGVUcmFuc2l0aW9uczogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbmN5IHN5bWJvbCBpcyBwb3NpdGlvbmVkIHRvIHRoZSBsZWZ0IG9mIHZhbHVlcy4gKi9cbiAgICBjdXJyZW5jeVBvc2l0aW9uTGVmdDogYm9vbGVhbjtcblxuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBpcyBzZXQgYnkgdGhlIHVzZXIsIG9yIGlzIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseS4gKi9cbiAgICBjb2x1bW5XaWR0aFNldEJ5VXNlcjogYm9vbGVhbjtcbiAgICBoZWFkZXJGZWF0dXJlc1dpZHRoOiBudW1iZXI7XG4gICAgLyoqIENTUyBzdHlsaW5nIGNhbGN1bGF0ZWQgZm9yIGFuIGVsZW1lbnQ6IGNhbGNIZWlnaHQsIGNhbGNXaWR0aCwgb3V0ZXJXaWR0aCAqL1xuICAgIGNhbGNIZWlnaHQ6IG51bWJlcjtcbiAgICBjYWxjV2lkdGg6IG51bWJlcjtcbiAgICBvdXRlcldpZHRoOiBudW1iZXI7XG4gICAgLyoqIFRoZSBoZWlnaHQgb2YgZWFjaCByb3cgaW4gdGhlIGdyaWQuIFNldHRpbmcgYSBjb25zdGFudCBoZWlnaHQgY2FuIHNvbHZlIHByb2JsZW1zIHdpdGggbm90IHNob3dpbmcgYWxsIGFsZW1lbnRzIHdoZW4gc2Nyb2xsaW5nICovXG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgbXVsdGlSb3dMYXlvdXRSb3dTaXplOiBudW1iZXI7XG4gICAgLyoqIE1pbmltYWwgd2lkdGggZm9yIGhlYWRlcnMgKi9cbiAgICBkZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDogYW55O1xuICAgIG1heExldmVsSGVhZGVyRGVwdGg6IG51bWJlcjtcbiAgICBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgLyoqIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZSwgY2FsY3VsYXRlZCBmb3IgZWFjaCBlbGVtZW50ICovXG4gICAgX2Jhc2VGb250U2l6ZT86IG51bWJlcjtcbiAgICBzY3JvbGxTaXplOiBudW1iZXI7XG5cbiAgICAvKiogVGhlIHRyaWdnZXIgZm9yIGdyaWQgdmFsaWRhdGlvbi4gSXQncyB2YWx1ZSBjYW4gZWlnaHRlciBiZSBgY2hhbmdlYCBvciBgYmx1cmAgKi9cbiAgICB2YWxpZGF0aW9uVHJpZ2dlcjogR3JpZFZhbGlkYXRpb25UcmlnZ2VyO1xuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciBjb2x1bW5zIGFuZCByb3dzIHBpbm5pbmcgaW4gdGhlIGdyaWRcbiAgICAgKiBJdCdzIG9mIHR5cGUgSVBpbm5pbmdDb25maWcsIHdoaWNoIGNhbiBoYXZlIHZhbHVlIGZvciBjb2x1bW5zIChzdGFydCwgZW5kKSBhbmQgZm9yIHJvd3MgKHRvcCwgYm90dG9tKVxuICAgICovXG4gICAgcGlubmluZzogSVBpbm5pbmdDb25maWc7XG4gICAgZXhwYW5zaW9uU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPjtcbiAgICBwYXJlbnRWaXJ0RGlyOiBhbnk7XG4gICAgdGJvZHk6IGFueTtcbiAgICB2ZXJ0aWNhbFNjcm9sbENvbnRhaW5lcjogYW55O1xuICAgIGRhdGFSb3dMaXN0OiBhbnk7XG4gICAgcm93TGlzdDogYW55O1xuICAgIC8qKiBBbiB1bm1vZGlmaWFibGUgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNvbHVtbnMgb2YgdGhlIGdyaWQuICovXG4gICAgY29sdW1uTGlzdDogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIGNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHZpc2libGUgKG5vdCBoaWRkZW4pIGluIHRoZSB2aWV3ICovXG4gICAgdmlzaWJsZUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIG5vdCBwaW5uZWQgKi9cbiAgICB1bnBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIHBpbm5lZCAqL1xuICAgIHBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogcmVwcmVzZW50cyBhbiBhcnJheSBvZiB0aGUgaGVhZGVycyBvZiB0aGUgY29sdW1ucyAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHM6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckdyb3Vwc0xpc3Q6IGFueVtdO1xuICAgIHN1bW1hcmllc1Jvd0xpc3Q6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDb250YWluZXI6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgY2VsbHMgYXJlIHNlbGVjdGFibGUgaW4gdGhlIGdyaWQgKi9cbiAgICBpc0NlbGxTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBpdCBpcyBhbGxvd2VkIHRvIHNlbGVjdCBtb3JlIHRoYW4gb25lIHJvdyBpbiB0aGUgZ3JpZCAqL1xuICAgIGlzTXVsdGlSb3dTZWxlY3Rpb25FbmFibGVkOiBib29sZWFuO1xuICAgIGhhc1Bpbm5lZFJlY29yZHM6IGJvb2xlYW47XG4gICAgcGlubmVkUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkUmVjb3JkczogYW55W107XG4gICAgdW5waW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaW5uZWREYXRhVmlldzogYW55W107XG4gICAgcGlubmVkUm93czogYW55W107XG4gICAgZGF0YVZpZXc6IGFueVtdO1xuICAgIF9maWx0ZXJlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgX2ZpbHRlcmVkU29ydGVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBmaWx0ZXJlZFNvcnRlZERhdGE6IGFueVtdO1xuICAgIGRhdGFXaXRoQWRkZWRJblRyYW5zYWN0aW9uUm93czogYW55W107XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHRyYW5zYWN0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiAqL1xuICAgIHJlYWRvbmx5IHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZXJ2aWNlPFRyYW5zYWN0aW9uLCBTdGF0ZT47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHZhbGlkYXRpb24gc2VydmljZSBmb3IgdGhlIGdyaWQuIFRoZSB0eXBlIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgKGxvZ2ljKSBmb3IgdmFsaWRhdGluZyByZWNvcmRzICovXG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbjogSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlO1xuICAgIGRlZmF1bHRTdW1tYXJ5SGVpZ2h0OiBudW1iZXI7XG4gICAgc3VtbWFyeVJvd0hlaWdodDogbnVtYmVyO1xuICAgIHJvd0VkaXRpbmdPdmVybGF5OiBJZ3hUb2dnbGVEaXJlY3RpdmU7XG4gICAgdG90YWxSb3dzQ291bnRBZnRlckZpbHRlcjogbnVtYmVyO1xuICAgIF90b3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBwYWdpbmcgb2YgdGhlIGdyaWQuIEl0IGNhbiBiZSBlaWdodGVyICdMb2NhbCcgb3IgJ1JlbW90ZSdcbiAgICAgKiAtIExvY2FsOiBEZWZhdWx0IHZhbHVlOyBUaGUgZ3JpZCB3aWxsIHBhZ2luYXRlIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcGFnZVxuICAgICAqL1xuICAgIHBhZ2luZ01vZGU6IEdyaWRQYWdpbmdNb2RlO1xuICAgIC8qKiBUaGUgcGFnaW5nIHN0YXRlIGZvciB0aGUgZ3JpZDsgVXNlZCB0byBjb25maWd1cmUgaG93IHBhZ2luZyBzaG91bGQgYmUgYXBwbGllZCAtIHdoaWNoIGlzIHRoZSBjdXJyZW50IHBhZ2UsIHJlY29yZHMgcGVyIHBhZ2UgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBhZ2luZ1N0YXRlOiBhbnk7XG5cbiAgICByb3dFZGl0VGFiczogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsYXN0IHNlYXJjaCBpbiB0aGUgZ3JpZFxuICAgICAqIEl0IGNvbnRhaW5zIHRoZSBzZWFyY2ggdGV4dCAodGhlIHVzZXIgaGFzIGVudGVyZWQpLCB0aGUgbWF0Y2ggYW5kIHNvbWUgc2V0dGluZ3MgZm9yIHRoZSBzZWFyY2hcbiAgICAgKi9cbiAgICBsYXN0U2VhcmNoSW5mbzogSVNlYXJjaEluZm87XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnZTogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBlclBhZ2U6IG51bWJlcjtcbiAgICAvKiogVGhlIElEIG9mIHRoZSByb3cgY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgaW4gdGhlIGdyaWQuICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgcm93IGlzIGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG5cbiAgICBmaXJzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBsYXN0RWRpdGFibGVDb2x1bW5JbmRleDogbnVtYmVyO1xuICAgIGlzUm93UGlubmluZ1RvVG9wOiBib29sZWFuO1xuICAgIGhhc0RldGFpbHM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzU3VtbWFyaXplZENvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uR3JvdXBzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0VkaXRhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgcHJvdmlkZXMgYSBjYWxsYmFjayBmb3IgbG9hZGluZyB1bmlxdWUgY29sdW1uIHZhbHVlcyBvbiBkZW1hbmQuXG4gICAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBwcm92aWRlZCwgdGhlIHVuaXF1ZSB2YWx1ZXMgaXQgZ2VuZXJhdGVzIHdpbGwgYmUgdXNlZCBieSB0aGUgRXhjZWwgU3R5bGUgRmlsdGVyaW5nICAqL1xuICAgIHVuaXF1ZUNvbHVtblZhbHVlc1N0cmF0ZWd5OiAoY29sdW1uOiBDb2x1bW5UeXBlLCB0cmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGRvbmU6ICh2YWx1ZXM6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIC8qKiBQcm9wZXJ0eSwgdGhhdCBnZXRzIHRoZSBoZWFkZXIgY2VsbCBpbm5lciB3aWR0aCBmb3IgYXV0by1zaXppbmcuICovXG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGNoYW5nZSBkZXRlY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICAgKiBBIGNoYW5nZS1kZXRlY3Rpb24gdHJlZSBjb2xsZWN0cyBhbGwgdmlld3MgdGhhdCBhcmUgdG8gYmUgY2hlY2tlZCBmb3IgY2hhbmdlcy5cbiAgICAgKiBUaGUgcHJvcGVydHkgY2Fubm90IGJlIGNoYW5nZWQgKHJlYWRvbmx5KSAqL1xuICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGV4cGFuZGVkIHJvdyBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNvbGxhcHNlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93Q29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGljb25cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY2VsbHM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjZWxsU2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIHJvd3M6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICByb3dTZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY29sdW1uczogJ25vbmUnLCdzaW5nbGUnLCAnbXVsdGlwbGUnLCAnbXVsdGlwbGVDYXNjYWRlJyAqL1xuICAgIGNvbHVtblNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNhbGN1bGF0aW9uIG1vZGUgZm9yIHN1bW1hcmllczogJ3Jvb3RMZXZlbE9ubHknLCAnY2hpbGRMZXZlbHNPbmx5JywgJ3Jvb3RBbmRDaGlsZExldmVscycgKi9cbiAgICBzdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlOiBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2Ygc3VtbWFyaWVzOiAndG9wJywgJ2JvdHRvbScgKi9cbiAgICBzdW1tYXJ5UG9zaXRpb246IEdyaWRTdW1tYXJ5UG9zaXRpb247XG5cbiAgICAvLyBYWFg6IFdvcmsgYXJvdW5kIHRpbGwgd2UgZml4ZWQgdGhlIGluamVjdGlvbiB0b2tlbnNcbiAgICBsYXN0Q2hpbGRHcmlkPzogR3JpZFR5cGU7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdG9vbGJhck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBmbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBjaGlsZFJvdz86IGFueTtcbiAgICBleHBhbnNpb25EZXB0aD86IG51bWJlcjtcbiAgICBjaGlsZERhdGFLZXk/OiBhbnk7XG4gICAgZm9yZWlnbktleT86IGFueTtcbiAgICBjYXNjYWRlT25EZWxldGU/OiBib29sZWFuO1xuICAgIGxvYWRDaGlsZHJlbk9uRGVtYW5kPzogKHBhcmVudElEOiBhbnksIGRvbmU6IChjaGlsZHJlbjogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgaGFzQ2hpbGRyZW5LZXk/OiBhbnk7XG4gICAgbG9hZGluZ1Jvd3M/OiBTZXQ8YW55PjtcbiAgICBwYXJlbnQ/OiBHcmlkVHlwZTtcbiAgICBoaWdobGlnaHRlZFJvd0lEPzogYW55O1xuICAgIHVwZGF0ZU9uUmVuZGVyPzogYm9vbGVhbjtcbiAgICBjaGlsZExheW91dEtleXM/OiBhbnlbXTtcbiAgICBjaGlsZExheW91dExpc3Q/OiBRdWVyeUxpc3Q8YW55PjtcbiAgICByb290R3JpZD86IEdyaWRUeXBlO1xuICAgIHByb2Nlc3NlZFJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBwcm9jZXNzZWRFeHBhbmRlZEZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIHByb2Nlc3NlZFJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHRyZWVHcm91cEFyZWE/OiBhbnk7XG5cbiAgICBhY3RpdmVOb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2ZU5vZGVDaGFuZ2VFdmVudEFyZ3M+O1xuICAgIGdyaWRLZXlkb3duOiBFdmVudEVtaXR0ZXI8SUdyaWRLZXlkb3duRXZlbnRBcmdzPjtcbiAgICBjZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGRvdWJsZUNsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBjb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHJhbmdlU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxHcmlkU2VsZWN0aW9uUmFuZ2U+O1xuICAgIHJvd1NlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SVJvd1NlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgbG9jYWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZmlsdGVyaW5nOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V2ZW50QXJncz47XG4gICAgZmlsdGVyaW5nRG9uZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5FdmVudEFyZ3M+O1xuICAgIGNvbHVtblJlc2l6ZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uUmVzaXplRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdFbmQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5TZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZzogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICBjb2x1bW5QaW46IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICBiYXRjaEVkaXRpbmdDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZGVuc2l0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93QWRkZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93QWRkZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICByb3dEcmFnRW5kOiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdFbmRFdmVudEFyZ3M+O1xuICAgIHJvd1RvZ2dsZTogRXZlbnRFbWl0dGVyPElSb3dUb2dnbGVFdmVudEFyZ3M+O1xuICAgIGZvcm1Hcm91cENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3M+O1xuICAgIHZhbGlkYXRpb25TdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3M+O1xuXG4gICAgdG9vbGJhckV4cG9ydGluZzogRXZlbnRFbWl0dGVyPElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncz47XG4gICAgcmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlc2l6ZU5vdGlmeTogU3ViamVjdDx2b2lkPjtcblxuICAgIHNvcnRTdHJhdGVneTogSUdyaWRTb3J0aW5nU3RyYXRlZ3k7XG4gICAgZ3JvdXBTdHJhdGVneT86IElHcmlkR3JvdXBpbmdTdHJhdGVneTtcbiAgICBmaWx0ZXJpbmdMb2dpYzogRmlsdGVyaW5nTG9naWM7XG4gICAgZmlsdGVyU3RyYXRlZ3k6IElGaWx0ZXJpbmdTdHJhdGVneTtcbiAgICBhbGxvd0FkdmFuY2VkRmlsdGVyaW5nOiBib29sZWFuO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW107XG4gICAgc29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIHNvcnRpbmdPcHRpb25zOiBJU29ydGluZ09wdGlvbnM7XG5cbiAgICBiYXRjaEVkaXRpbmc6IGJvb2xlYW47XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZT86IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcbiAgICBncm91cHNFeHBhbmRlZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgZ3JvdXBzUmVjb3Jkcz86IElHcm91cEJ5UmVjb3JkW107XG4gICAgZ3JvdXBpbmdGbGF0UmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ01ldGFkYXRhPzogYW55W107XG4gICAgc2VsZWN0ZWRDZWxscz86IENlbGxUeXBlW107XG4gICAgc2VsZWN0ZWRSb3dzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBhY3RpdmVEZXNjZW5kYW50Pzogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGlzUGl2b3Q/OiBib29sZWFuO1xuXG4gICAgdG9nZ2xlR3JvdXA/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZz8oZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeT8oZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbiAgICByZXNvbHZlT3V0bGV0PygpOiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuICAgIHVwZGF0ZUNvbHVtbnMoY29sdW1uczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBnZXRTZWxlY3RlZFJhbmdlcygpOiBHcmlkU2VsZWN0aW9uUmFuZ2VbXTtcbiAgICBkZXNlbGVjdEFsbENvbHVtbnMoKTogdm9pZDtcbiAgICBkZXNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdGVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW107XG4gICAgcmVmcmVzaFNlYXJjaCgpOiB2b2lkO1xuICAgIGdldERlZmF1bHRFeHBhbmRTdGF0ZShyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgdHJhY2tDb2x1bW5DaGFuZ2VzKGluZGV4OiBudW1iZXIsIGNvbHVtbjogYW55KTogYW55O1xuICAgIGdldFBvc3NpYmxlQ29sdW1uV2lkdGgoKTogc3RyaW5nO1xuICAgIHJlc2V0SG9yaXpvbnRhbFZpcnR1YWxpemF0aW9uKCk6IHZvaWQ7XG4gICAgaGFzVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbjtcbiAgICBnZXRWaXNpYmxlQ29udGVudEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0RHJhZ0dob3N0Q3VzdG9tVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgb3BlblJvd092ZXJsYXkoaWQ6IGFueSk6IHZvaWQ7XG4gICAgb3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKCk6IHZvaWQ7XG4gICAgc2hvd1NuYWNrYmFyRm9yKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldENvbHVtbkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IENvbHVtblR5cGU7XG4gICAgZ2V0SGVhZGVyR3JvdXBXaWR0aChjb2x1bW46IENvbHVtblR5cGUpOiBzdHJpbmc7XG4gICAgZ2V0Um93QnlLZXk/KGtleTogYW55KTogUm93VHlwZTtcbiAgICBnZXRSb3dCeUluZGV4PyhpbmRleDogbnVtYmVyKTogUm93VHlwZTtcbiAgICBzZXRGaWx0ZXJlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldEZpbHRlcmVkU29ydGVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24gfCBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJTb3J0KG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHBpblJvdyhpZDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgdW5waW5Sb3coaWQ6IGFueSwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgZ2V0VW5waW5uZWRJbmRleEJ5SWQoaWQ6IGFueSk6IG51bWJlcjtcbiAgICBnZXRFbXB0eVJlY29yZE9iamVjdEZvcihpblJvdzogUm93VHlwZSk6IGFueTtcbiAgICBpc1N1bW1hcnlSb3cocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzUmVjb3JkUGlubmVkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRJbml0aWFsUGlubmVkSW5kZXgocmVjOiBhbnkpOiBudW1iZXI7XG4gICAgaXNSZWNvcmRQaW5uZWRCeVZpZXdJbmRleChyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbjtcbiAgICBpc0NvbHVtbkdyb3VwZWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGlzRGV0YWlsUmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dyb3VwQnlSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR2hvc3RSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzVHJlZVJvdz8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzQ2hpbGRHcmlkUmVjb3JkPyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBpc0hpZXJhcmNoaWNhbFJlY29yZD8ocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIGNvbHVtblRvVmlzaWJsZUluZGV4KGtleTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICAgIG1vdmVDb2x1bW4oY29sdW1uOiBDb2x1bW5UeXBlLCB0YXJnZXQ6IENvbHVtblR5cGUsIHBvczogRHJvcFBvc2l0aW9uKTogdm9pZDtcbiAgICBuYXZpZ2F0ZVRvKHJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2x1bW5JbmRleDogbnVtYmVyLCBjYWxsYmFjaz86IChlOiBhbnkpID0+IGFueSk6IHZvaWQ7XG4gICAgZ2V0UHJldmlvdXNDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBnZXROZXh0Q2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgY2xlYXJDZWxsU2VsZWN0aW9uKCk6IHZvaWQ7XG4gICAgc2VsZWN0UmFuZ2UocmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZSB8IEdyaWRTZWxlY3Rpb25SYW5nZVtdKTogdm9pZDtcbiAgICBzZWxlY3RSb3dzKHJvd0lEczogYW55W10sIGNsZWFyQ3VycmVudFNlbGVjdGlvbj86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0VXBQYWdpbmF0b3IoKTogdm9pZDtcbiAgICBjcmVhdGVGaWx0ZXJEcm9wZG93bihjb2x1bW46IENvbHVtblR5cGUsIG9wdGlvbnM6IE92ZXJsYXlTZXR0aW5ncyk6IGFueTtcbiAgICB1cGRhdGVDZWxsKHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnksIGNvbHVtbjogc3RyaW5nKTogdm9pZDtcbiAgICAvLyBUeXBlIHRvIFJvd1R5cGVcbiAgICBjcmVhdGVSb3c/KGluZGV4OiBudW1iZXIsIGRhdGE/OiBhbnkpOiBSb3dUeXBlO1xuICAgIGRlbGV0ZVJvdyhpZDogYW55KTogYW55O1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICB1cGRhdGVSb3codmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSk6IHZvaWQ7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEZsYXQgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHJlY29yZHM6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgaXNUcmVlUm93KHJlYzogYW55KTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEhpZXJhcmNoaWNhbCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoaWNhbEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGNoaWxkTGF5b3V0S2V5czogYW55W107XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBQaXZvdCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpdm90R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBwaXZvdCBncmlkLlxuICAgICAqIGl0IGluY2x1ZGVzIGRpbWVudGlvbiBzdHJhdGVneSBmb3Igcm93cyBhbmQgY29sdW1ucywgZmlsdGVycyBhbmQgZGF0YSBrZXlzXG4gICAgICovXG4gICAgcGl2b3RDb25maWd1cmF0aW9uOiBJUGl2b3RDb25maWd1cmF0aW9uO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIGFsbCBkaW1lbnNpb25zIChyb3dzIGFuZCBjb2x1bW5zKSBpbiB0aGUgcGl2b3QgZ3JpZC5cbiAgICAgKiBpdCBpbmNsdWRlcyBoaWVyYXJjaGljYWwgbGV2ZWwsIGZpbHRlcnMgYW5kIHNvcnRpbmcsIGRpbWVudGlvbmFsIGxldmVsLCBldGMuXG4gICAgICovXG4gICAgYWxsRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRvIHNob3cgdGhlIHBpdm90IGNvbmZpZ3VyYXRpb24gVUkgaW4gdGhlIGdyaWQuICovXG4gICAgc2hvd1Bpdm90Q29uZmlndXJhdGlvblVJOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNvbHVtbkRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHJvd0RpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIHJvd0RpbWVuc2lvblJlc2l6aW5nOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHZhbHVlczogSVBpdm90VmFsdWVbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBkaW1lbnNpb25EYXRhQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpdm90Um93V2lkdGhzOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNldGluZyB1cCB0aGUgY29sdW1ucyBmb3IgdGhlIHBpdm90IGdyaWQgYmFzZWQgb24gdGhlIHBpdm90IGNvbmZpZ3VyYXRpb24gKi9cbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiB0aGF0IGFsbG93cyB0b2dnbGUgb2YgZXhwYW5zaW9uIHN0YXRlIG9mIGEgcm93ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIHBpdm90IGdyaWQgKi9cbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmVzb2x2aW5nIHRoZSBkYXRhIHR5cGUgZm9yIGEgc3BlY2lmaWMgZmllbGQgKGNvbHVtbikuXG4gICAgICogSXQgdGFrZXMgdGhlIGZpZWxkIGFzIGEgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGl0J3MgdHlwZVxuICAgICAqL1xuICAgIHJlc29sdmVEYXRhVHlwZXMoZmllbGQ6IGFueSk6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBtb3ZpbmcgZGltZW5zaW9uIGZyb20gaXRzIGN1cnJlbnRseSBjb2xsZWN0aW9uIHRvIHRoZSBzcGVjaWZpZWQgdGFyZ2V0IGNvbGxlY3Rpb25cbiAgICAgKiBieSB0eXBlIChSb3csIENvbHVtbiBvciBGaWx0ZXIpIGF0IHNwZWNpZmllZCBpbmRleCBvciBhdCB0aGUgY29sbGVjdGlvbidzIGVuZFxuICAgICAqL1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PzogbnVtYmVyKTtcbiAgICBnZXREaW1lbnNpb25zQnlUeXBlKGRpbWVuc2lvbjogUGl2b3REaW1lbnNpb25UeXBlKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgZGltZW5zaW9uJ3MgZW5hYmxlZCBzdGF0ZSBvbiBvciBvZmYuIFRoZSBkaW1lbnNpb24gcmVtYWlucyBpbiBpdHMgY3VycmVudCBjb2xsZWN0aW9uICovXG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICAvKiogU29ydCB0aGUgZGltZW5zaW9uIGFuZCBpdHMgY2hpbGRyZW4gaW4gdGhlIHByb3ZpZGVkIGRpcmVjdGlvbiAoYXNjZW5kaW5nLCBkZXNjZW5kaW5nIG9yIG5vbmUpLiAqL1xuICAgIHNvcnREaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHNvcnREaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pO1xuICAgIC8qKiBUb2dnbGVzIHRoZSB2YWx1ZSdzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgdmFsdWUgcmVtYWlucyBpbiBpdHMgY3VycmVudCBjb2xsZWN0aW9uLiAqL1xuICAgIHRvZ2dsZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSk7XG4gICAgLyoqIE1vdmUgdmFsdWUgZnJvbSBpdHMgY3VycmVudGx5IGF0IHNwZWNpZmllZCBpbmRleCBvciBhdCB0aGUgZW5kLlxuICAgICAqIElmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNldCwgaXQgd2lsbCBhZGQgaXQgdG8gdGhlIGVuZCBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBtb3ZlVmFsdWUodmFsdWU6IElQaXZvdFZhbHVlLCBpbmRleD86IG51bWJlcik7XG4gICAgcm93RGltZW5zaW9uV2lkdGhUb1BpeGVscyhkaW06IElQaXZvdERpbWVuc2lvbik6IG51bWJlcjtcbiAgICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGltZW5zaW9ucyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgZGltZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElEaW1lbnNpb25zQ2hhbmdlPjtcbiAgICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdmFsdWVzIGluIHRoZSBwaXZvdCBncmlkIGNoYW5nZS4gKi9cbiAgICB2YWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVmFsdWVzQ2hhbmdlPjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaXZvdEtleXM6IElQaXZvdEtleXM7XG4gICAgaGFzTXVsdGlwbGVWYWx1ZXM6IGJvb2xlYW47XG4gICAgZXhjZWxTdHlsZUZpbHRlck1heEhlaWdodDogc3RyaW5nO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNaW5IZWlnaHQ6IHN0cmluZztcbiAgICB2YWx1ZUNoaXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU1ZHSWNvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpemVJbmZvIHtcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIHBhZGRpbmc6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRNYXN0ZXJEZXRhaWxDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueTtcbiAgICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyb3VwQnlSb3dUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSUdyb3VwQnlSZWNvcmQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogUm93VHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dEcmFnR2hvc3RDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueSwgLy8gdGhpcyBpcyB0aGUgcm93IGRhdGFcbiAgICBkYXRhOiBhbnksIC8vIHRoaXMgaXMgYWxzbyB0aGUgcm93IGRhdGEgZm9yIHNvbWUgcmVhc29uLlxuICAgIGdyaWQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZEVtcHR5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IHVuZGVmaW5lZCxcbiAgICByb3dDaGFuZ2VzQ291bnQ6IG51bWJlcixcbiAgICBlbmRFZGl0OiAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZXh0VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0QWN0aW9uc1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBIZWFkZXJUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IENvbHVtblR5cGUsXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q2VsbFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksXG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55LFxuICAgIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w8YW55PixcbiAgICBkZWZhdWx0RXJyb3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgY2VsbDogQ2VsbFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBrZXlgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICBrZXk6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBzZWxlY3Q/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0PzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFN1bW1hcnlSZXN1bHRbXVxufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIHNldHRpbmdzIGZvciByb3cvY29sdW1uIHBpbm5pbmcgcG9zaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpbm5pbmdDb25maWcge1xuICAgIGNvbHVtbnM/OiBDb2x1bW5QaW5uaW5nUG9zaXRpb247XG4gICAgcm93cz86IFJvd1Bpbm5pbmdQb3NpdGlvbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBzZXR0aW5ncyBmb3IgY2xpcGJvYXJkIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpcGJvYXJkT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgY29weSBiZWhhdmlvclxuICAgICAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogSW5jbHVkZSB0aGUgY29sdW1ucyBoZWFkZXJzIGluIHRoZSBjbGlwYm9hcmQgb3V0cHV0LlxuICAgICAqL1xuICAgIGNvcHlIZWFkZXJzOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFwcGx5IHRoZSBjb2x1bW5zIGZvcm1hdHRlcnMgKGlmIGFueSkgb24gdGhlIGRhdGEgaW4gdGhlIGNsaXBib2FyZCBvdXRwdXQuXG4gICAgICovXG4gICAgY29weUZvcm1hdHRlcnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHNlcGFyYXRvciB1c2VkIGZvciBmb3JtYXR0aW5nIHRoZSBjb3B5IG91dHB1dC4gRGVmYXVsdHMgdG8gYFxcdGAuXG4gICAgICovXG4gICAgc2VwYXJhdG9yOiBzdHJpbmc7XG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2x1bW5QaW5uaW5nUG9zaXRpb24sIEZpbHRlck1vZGUsIEdyaWRQYWdpbmdNb2RlLCBHcmlkU2VsZWN0aW9uTW9kZSwgR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGUsIEdyaWRTdW1tYXJ5UG9zaXRpb24sIEdyaWRWYWxpZGF0aW9uVHJpZ2dlciwgUm93UGlubmluZ1Bvc2l0aW9uIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge1xuICAgIElTZWFyY2hJbmZvLCBJR3JpZENlbGxFdmVudEFyZ3MsIElSb3dTZWxlY3Rpb25FdmVudEFyZ3MsIElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3MsIElHcmlkRWRpdEV2ZW50QXJncyxcbiAgICBJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3MsIElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncyxcbiAgICBJUm93RHJhZ0VuZEV2ZW50QXJncywgSUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzLFxuICAgIElHcmlkRWRpdERvbmVFdmVudEFyZ3MsIElSb3dEYXRhRXZlbnRBcmdzLCBJR3JpZEtleWRvd25FdmVudEFyZ3MsIElSb3dEcmFnU3RhcnRFdmVudEFyZ3MsXG4gICAgSUNvbHVtbk1vdmluZ0V2ZW50QXJncywgSVBpbkNvbHVtbkV2ZW50QXJncyxcbiAgICBJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncyxcbiAgICBJQ2VsbFBvc2l0aW9uLCBJRmlsdGVyaW5nRXZlbnRBcmdzLCBJQ29sdW1uUmVzaXplRXZlbnRBcmdzLCBJUm93VG9nZ2xlRXZlbnRBcmdzLCBJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3MsIElQaW5Sb3dFdmVudEFyZ3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V2ZW50cyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSwgSURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGF0YVR5cGUsIEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nT3BlcmFuZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElDb2x1bW5QaXBlQXJncywgSUZpZWxkUGlwZUFyZ3MsIElTb3J0aW5nT3B0aW9ucywgTVJMUmVzaXplQ29sdW1uSW5mbyB9IGZyb20gJy4uL2NvbHVtbnMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5UmVzdWx0IH0gZnJvbSAnLi4vc3VtbWFyaWVzL2dyaWQtc3VtbWFyeSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24sIElTb3J0aW5nU3RyYXRlZ3ksIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JpZEdyb3VwaW5nU3RyYXRlZ3ksIElHcmlkU29ydGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSwgSWd4R3JpZEZvck9mRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9mb3Itb2YvZm9yX29mLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG4vKiogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIHNlZ21lbnQgb2YgYSBwYXRoIGluIGEgaGllcmFyY2hpY2FsIGdyaWQuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgLyoqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcm93IHdpdGhpbiB0aGUgc2VnbWVudC4gKi9cbiAgICByb3dJRDogYW55O1xuICAgIC8qKiBUaGUga2V5IHJlcHJlc2VudGluZyB0aGUgcm93J3MgJ2hpZXJhcmNoaWNhbCBsZXZlbC4gKi9cbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGF0YTogYW55W10gfCBudWxsO1xuICAgIGdldCBmaWx0ZXJlZERhdGEoKTogYW55W107XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGNlbGwgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjZWxsIG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgY2VsbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGxUeXBlIHtcbiAgICAvKiogVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGNlbGwuICovXG4gICAgdmFsdWU6IGFueTtcbiAgICAvKiogVGhlIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgY2VsbCBpcyBpbiBlZGl0IG1vZGUuICovXG4gICAgZWRpdFZhbHVlOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gSXQgaXMgZmFsc2UsIGlmIHRoZSBzZWxsIGlzIG5vdCBzZWxlY3RlZCwgYW5kIHRydWUsIGlmIGl0IGlzLiAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgYWN0aXZlIChmb2N1c2VkKS4gKi9cbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGNhbiBiZSBlZGl0ZWQuICovXG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBpbiBlZGl0IG1vZGUuICovXG4gICAgZWRpdE1vZGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIGNlbGwgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiAqL1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgcm93IHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0byAqL1xuICAgIHJvdzogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBpbnN0YW5jZSBjb250YWluaW5nIHRoZSBjZWxsICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIE9wdGlvbmFsOyBBbiBvYmplY3QgaWRlbnRpZnlpbmcgdGhlIGNlbGwuIEl0IGNvbnRhaW5zIHJvd0lELCBjb2x1bW5JRCwgYW5kIHJvd0luZGV4IG9mIHRoZSBjZWxsLiAqL1xuICAgIGlkPzogeyByb3dJRDogYW55OyBjb2x1bW5JRDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyIH07XG4gICAgLyoqIE9wdGlvbmFsOyBUaGUgYGNlbGxJRGAgaXMgdGhlIHVuaXF1ZSBrZXksIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNlbGwgKi9cbiAgICBjZWxsSUQ/OiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWw7IEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgdGhlIGNlbGwuXG4gICAgICogV2hldGhlciBpdCdzIHZhbGlkIG9yIGludmFsaWQsIGFuZCBpZiBpdCBoYXMgZXJyb3JzXG4gICAgICovXG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICAvKiogQW4gb3B0aW9uYWwgdGl0bGUgdG8gZGlzcGxheSBmb3IgdGhlIGNlbGwgKi9cbiAgICB0aXRsZT86IGFueTtcbiAgICAvKiogVGhlIENTUyB3aWR0aCBvZiB0aGUgY2VsbCBhcyBhIHN0cmluZy4gKi9cbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8uIEl0IGNvdW50cyBvbmx5IHRoZSB2aXNpYmxlIChub3QgaGlkZGVuKSBjb2x1bW5zICovXG4gICAgdmlzaWJsZUNvbHVtbkluZGV4PzogbnVtYmVyO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIGNlbGwuICovXG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byBzdGFydCBvciBlbmQgdGhlIGVkaXQgbW9kZSBvZiB0aGUgY2VsbC4gSXQgdGFrZXMgYSBib29sZWFuIHZhbHVlIGFzIGFuIGFyZ3VtZW50Ki9cbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsO1xuICAgICAqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBjZWxsIHRvIGZpdCB0aGUgY29udGVudFxuICAgICAqIFRoZSBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBjZWxsIHdpdGggdGhlIGxvbmdlc3QgY29udGVudCBhbmQgcmVzaXplIGFsbCBjZWxscyB0byB0aGF0IHNpemVcbiAgICAgKi9cbiAgICBjYWxjdWxhdGVTaXplVG9GaXQ/KHJhbmdlOiBhbnkpOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBhY3RpdmF0ZSB0aGUgY2VsbC5cbiAgICAgKiBJdCB0YWtlcyBhIGZvY3VzIG9yIGtleWJvYXJkIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgYWN0aXZhdGU/KGV2ZW50OiBGb2N1c0V2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgZG91YmxlLWNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgY2xpY2sgZXZlbnRzIG9uIHRoZSBjZWxsXG4gICAgICogSXQgdGFrZXMgYSBtb3VzZSBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgaGVhZGVyIGNlbGwgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBoZWFkZXIgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzLCByZWxldmFudCB0byB0aGUgaGVhZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyVHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIGNlbGwgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBjb2x1bW4gdGhhdCB0aGUgaGVhZGVyIGNlbGwgcmVwcmVzZW50cy4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgZGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHNvcnRlZC4gKi9cbiAgICBzb3J0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjZWxsIGlzIGN1cnJlbnRseSBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGhlYWRlciBpcyBhIHRpdGxlIGNlbGwuICovXG4gICAgdGl0bGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHNvcnRpbmcgZGlyZWN0aW9uIG9mIHRoZSBjb2x1bW4gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSByb3cgaW4gdGhlIGdyaWQuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSByb3cgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSByb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmF0aXZlIEhUTUwgZWxlbWVudCBvZiB0aGUgcm93IGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSByb3cgd2l0aGluIHRoZSBncmlkICovXG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICB2aWV3SW5kZXg6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBncm91cGVkLiAqL1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWFwIG9mIGNvbHVtbiBmaWVsZCBuYW1lcyB0byB0aGUgc3VtbWFyeSByZXN1bHRzIGZvciB0aGUgcm93LlxuICAgICAqL1xuICAgIHN1bW1hcmllcz86IE1hcDxzdHJpbmcsIElneFN1bW1hcnlSZXN1bHRbXT47XG4gICAgZ3JvdXBSb3c/OiBJR3JvdXBCeVJlY29yZDtcbiAgICBrZXk/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIGxpc3Qgb3IgYW4gYXJyYXkgb2YgY2VsbHMsIHRoYXQgYmVsb25nIHRvIHRoZSByb3dcbiAgICAgKi9cbiAgICBjZWxscz86IFF1ZXJ5TGlzdDxDZWxsVHlwZT4gfCBDZWxsVHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgcm93IGlzIGRpc2FibGVkXG4gICAgICovXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVmlydHVhbGl6YXRpb24gc3RhdGUgb2YgZGF0YSByZWNvcmQgYWRkZWQgZnJvbSBjYWNoZVxuICAgICAqL1xuICAgIHZpcnREaXJSb3c/OiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8Q29sdW1uVHlwZSwgQ29sdW1uVHlwZVtdPjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBwaW5uZWQuXG4gICAgICovXG4gICAgcGlubmVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBzZWxlY3RlZFxuICAgICAqL1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBleHBhbmRlZC5cbiAgICAgKiBUaGUgdmFsdWUgaXMgdHJ1ZSwgaWYgdGhlIHJvdyBpcyBleHBhbmRlZCBhbmQgZmFsc2UsIGlmIGl0IGlzIGNvbGxhcHNlZFxuICAgICAqL1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSByb3cgaXMgbWFya2VkIGZvciBkZWxldGlvbi5cbiAgICAgKi9cbiAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgcm93IGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWQuXG4gICAgICovXG4gICAgaW5FZGl0TW9kZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBDb250YWlucyB0aGUgY2hpbGQgcm93cyBvZiB0aGUgY3VycmVudCByb3csIGlmIHRoZXJlIGFyZSBhbnkuXG4gICAgICovXG4gICAgY2hpbGRyZW4/OiBSb3dUeXBlW107XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBDb250YWlucyB0aGUgcGFyZW50IHJvdyBvZiB0aGUgY3VycmVudCByb3csIGlmIGl0IGhhcyBvbmUuXG4gICAgICogSWYgdGhlIHBhcmVudCByb3cgZXhpc3QsIGl0IG1lYW5zIHRoYXQgdGhlIGN1cnJlbnQgcm93IGlzIGEgY2hpbGQgcm93XG4gICAgICovXG4gICAgcGFyZW50PzogUm93VHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBoYXMgYW55IGNoaWxkIHJvd3NcbiAgICAgKi9cbiAgICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoaWVyYXJjaGljYWwgcmVjb3JkIGFzc29jaWF0ZWQgd2l0aCB0aGUgcm93IChmb3IgdHJlZSBncmlkcykuXG4gICAgICogSXQgaXMgb2YgdHlwZSBJVHJlZUdyaWRSZWNvcmQsIHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRhLCBjaGlsZHJlbiwgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCwgZXRjLlxuICAgICAqL1xuICAgIHRyZWVSb3c/OiBJVHJlZUdyaWRSZWNvcmQ7XG4gICAgYWRkUm93VUk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhZGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBmb2N1c2VkPzogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50IHRoZSBncmlkIGluc3RhbmNlLCB0aGUgcm93IGJlbG9uZ3MgdG8gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBvblJvd1NlbGVjdG9yQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgY2xpY2sgZXZlbnQgb24gdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIGEgYE1vdXNlRXZlbnRgIGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBhZGRpbmcgYSBuZXcgcm93XG4gICAgICovXG4gICAgYmVnaW5BZGRSb3c/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiBlbGVtZW50cyBvZiB0aGUgcm93XG4gICAgICogSXQgdGFrZXMgdGhlIG5ldyB2YWx1ZSBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRlbGV0aW5nIHJvd3NcbiAgICAgKi9cbiAgICBkZWxldGU/OiAoKSA9PiBhbnk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgcGlubmluZyBhIHJvd1xuICAgICAqL1xuICAgIHBpbj86ICgpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgdW5waW5uaW5nIGEgcm93LCB0aGF0IGhhcyBiZWVuIHBpbm5lZFxuICAgICAqL1xuICAgIHVucGluPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFR5cGUge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgICBmaWx0ZXJzOiBJZ3hGaWx0ZXJpbmdPcGVyYW5kO1xuICAgIHBpcGVBcmdzOiBJRmllbGRQaXBlQXJncztcbiAgICBkZWZhdWx0VGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgZm9ybWF0dGVyKHZhbHVlOiBhbnksIHJvd0RhdGE/OiBhbnkpOiBhbnk7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNvbHVtbiBpbiB0aGUgYEdyaWRUeXBlYC4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGNvbHVtbiBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNvbHVtblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblR5cGUgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBpbmN0YW5jZSBvZiB0aGUgcGFyZW50IGBHcmlkVHlwZWAgdGhhdCBjb250YWlucyB0aGlzIGNvbHVtbi4gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICAvKiogQSBsaXN0LCBjb250YWluaW5nIGFsbCB0aGUgY2hpbGQgY29sdW1ucyB1bmRlciB0aGlzIGNvbHVtbiAoaWYgYW55KS4gKi9cbiAgICBjaGlsZHJlbjogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIC8qKiBBbiBhcnJheSwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMsIGluY2x1ZGluZyBuZXN0ZWQgY2hpbGRyZW4uICovXG4gICAgYWxsQ2hpbGRyZW46IENvbHVtblR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGdyb3VwIGNvbXBvbmVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1bW4uXG4gICAgICogQ291bGQgYmUgb2YgYW55IHR5cGVcbiAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJHcm91cDogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSBoZWFkZXIgY2VsbCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgICovXG4gICAgLy8gVFlQRVxuICAgIGhlYWRlckNlbGw6IGFueTtcbiAgICB2YWxpZGF0b3JzOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjdXN0b20gaGVhZGVyIG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIGNvbGxhcHNpYmxlIGluZGljYXRvciBvZiB0aGUgY29sdW1uLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckNsYXNzZXM6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZWxlbWVudC4gV2hlbiBhZGRlZCwgdGhleSB0YWtlIGRpZmZlcmVudCBzdHlsaW5nICovXG4gICAgaGVhZGVyU3R5bGVzOiBhbnk7XG4gICAgIC8qKiBSZXByZXNlbnRzIGN1c3RvbSBDU1MgY2xhc3NlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZ3JvdXAuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckdyb3VwQ2xhc3NlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBoZWFkZXIgZ3JvdXAuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlckdyb3VwU3R5bGVzOiBhbnk7XG5cbiAgICAvKiogXG4gICAgICogQ3VzdG9tIENTUyBzdHlsaW5nLCBhcHBwbGllZCB0byBldmVyeSBjb2x1bW4gXG4gICAgICogY2FsY1dpZHRoLCBtaW5XaWR0aFB4LCBtYXhXaWR0aFB4LCBtaW5XaWR0aCwgbWF4V2lkdGgsIG1pbldpZHRoUGVyY2VudCwgbWF4V2lkdGhQZXJjZW50LCByZXNvbHZlZFdpZHRoXG4gICAgICovXG4gICAgY2FsY1dpZHRoOiBhbnk7XG4gICAgbWluV2lkdGhQeDogbnVtYmVyO1xuICAgIG1heFdpZHRoUHg6IG51bWJlcjtcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xuICAgIG1heFdpZHRoOiBzdHJpbmc7XG4gICAgbWluV2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgcmVzb2x2ZWRXaWR0aDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBoZWFkZXIgdGV4dCBvZiB0aGUgY29sdW1uXG4gICAgICovXG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICAgKiBJbmNsdWRlcyB0aGUgaGlkZGVuIGNvbHVtbnMgd2hlbiBjb3VudGluZ1xuICAgICAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgdHlwZSBvZiBkYXRhIGZvciB0aGUgY29sdW1uOlxuICAgICAqIHN0cmluZywgbnVtYmVyLCBidXVsZWFuLCBjdXJyZW5jeSwgZGF0ZSwgdGltZSwgZXRjLlxuICAgICAqL1xuICAgIGRhdGFUeXBlOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIGN1c3RvbSBpbmxpbmUgZWRpdG9yIG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaW5saW5lRWRpdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gd2l0aGluIHRoZSBncmlkLlxuICAgICAqIERvZXMgbm90IGluY2x1ZGUgdGhlIGhpZGRlbiBjb2x1bW5zIHdoZW4gY291bnRpbmdcbiAgICAgKi9cbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcbiAgICAvKiogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZWQgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBjb2xsYXBzZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBjb2xsYXBzZWRcbiAgICAgKiBJdCBpcyB1c2VkIGluIHRyZWUgZ3JpZCBhbmQgZm9yIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlZCB3aGV0aGVyIHRoZSBjb2x1bW4gY2FuIGJlIGVkaXRlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIGVkaXRlZCAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSByZXNpemVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZCAqL1xuICAgIHJlc2l6YWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGRhdGEgb2YgdGhlIGNvbHVtbiBjYW4gYmUgc2VhcmNoZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGRhdGEgY2FuIGJlIHNlYXJjaGVkICovXG4gICAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbHVtbiBiZWxvbmdzIHRvIGEgZ3JvdXAgb2YgY29sdW1ucy4gKi9cbiAgICBjb2x1bW5Hcm91cDogYm9vbGVhbjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxMy4xLjAuIFVzZSBgSWd4R3JpZENvbXBvbmVudC5tb3ZpbmdgIGluc3RlYWQuKi9cbiAgICBtb3ZhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcHV0IGluIGEgZ3JvdXAuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBwdXQgaW4gYSBncm91cCAqL1xuICAgIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHNvcnRlZC4gKi9cbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIGZpbHRlcmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBmaWx0ZXJhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBpcyBjdXJyZW50bHkgaGlkZGVuIChub3QgdmlzaWJsZSkuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIG5vdCB2aXNpYmxlICovXG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW5ub3QgYmUgcGlubmVkICovXG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBoaWRkZW4uIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbm5vdCBiZSBoaWRkZW4gKi9cbiAgICBkaXNhYmxlSGlkaW5nOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3J0aW5nIHN0cmF0ZWd5IHVzZWQgZm9yIHNvcnRpbmcgdGhpcyBjb2x1bW4uXG4gICAgICogVGhlIGludGVyZmFjZSBjb250YWlucyBhIG1ldGhvZCBzb3J0IHRoYXQgc29ydHMgdGhlIHByb3ZpZGVkIGRhdGEgYmFzZWQgb24gdGhlIGdpdmVuIHNvcnRpbmcgZXhwcmVzc2lvbnNcbiAgICAgKi9cbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWFyY2ggc2hvdWxkIG1hdGNoIHJlc3VsdHMsIG5vIG1hdHRlciB0aGUgY2FzZSBvZiB0aGUgbGV0dGVycyAodXBwZXIgYW5kIGxvd2VyKVxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlIHJlc3VsdCB3aWxsIGRlcGVuZCBvbiB0aGUgY2FzZSAoZXhhbXBsZTogYEVgIHdpbGwgbm90IG1hdGNoIGBlYClcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIHJlc3VsdCB3aWxsIG5vdCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG1hdGNoIGBlYClcbiAgICAgKi9cbiAgICBzb3J0aW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJDZWxsOiBhbnk7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsdGVyaW5nIGV4cHJlc3Npb25zIGZvciB0aGUgY29sdW1uLlxuICAgICAqIFRoZSB0eXBlIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZm9yIGZpbHRlcmluZzogZmlsdGVyaW5nT3BlcmFuZHMsIG9wZXJhdG9yIChsb2dpYyksIGZpZWxkTmFtZSwgZXRjLlxuICAgICAqL1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgc3VtbWFyaWVzOiBhbnk7XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgYSBzdW1tYXJ5IG9mIHRoZSBjb2x1bW5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc3VtbWFyeVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgcGlubmVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBwaW5uZWQgKi9cbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBleHBhbmRlZCBvciBjb2xsYXBzZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIGV4cGFuZGVkICovXG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gY2FuIGJlIHNlbGVjdGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGNvbHVtbkxheW91dDogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIGxldmVsIG9mIHRoZSBjb2x1bW4gaW4gdGhlIGNvbHVtbiBsYXlvdXQgKi9cbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHJvd1N0YXJ0OiBudW1iZXI7XG4gICAgcm93RW5kOiBudW1iZXI7XG4gICAgY29sU3RhcnQ6IG51bWJlcjtcbiAgICBjb2xFbmQ6IG51bWJlcjtcbiAgICBncmlkUm93U3BhbjogbnVtYmVyO1xuICAgIGdyaWRDb2x1bW5TcGFuOiBudW1iZXI7XG4gICAgY29sdW1uTGF5b3V0Q2hpbGQ6IGJvb2xlYW47XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSByb290IHBhcmVudCBvZiB0aGlzIGNvbHVtbiAoaWYgYW55KS5cbiAgICAgKiBJZiB0aGVyZSBpcyBubyByb290IHBhcmVudCwgdGhhdCBtZWFucyB0aGUgY3VycmVudCBzb2x1bm0gaXMgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIGltbWVkaWF0ZSBwYXJlbnQgKHJpZ2h0IGFib3ZlKSBjb2x1bW4gb2YgdGhpcyBjb2x1bW4gKGlmIGFueSkuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gcGFyZW50LCB0aGF0IG1lYW5zIHRoZSBjdXJyZW50IHNvbHVubSBpcyB0aGUgcm9vdCBwYXJlbnRcbiAgICAgKi9cbiAgICBwYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBpcGVBcmdzOiBJQ29sdW1uUGlwZUFyZ3M7XG4gICAgaGFzTmVzdGVkUGF0aDogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGNvbHVtbiBpcyB0aGUgbGFzdCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGFmdGVyIHRoZSBjdXJyZW50ICovXG4gICAgaXNMYXN0UGlubmVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGZpcnN0IGZvciB0aGUgZ3JpZCB0byBiZSBwaW5uZWQuXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNlLCB0aGVyZSBhcmUgY29sdW1ucywgdGhhdCBoYXZlIGJlZW4gcGlubmVkIGJlZm9yZSB0aGUgY3VycmVudCAqL1xuICAgIGlzRmlyc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXBwbHlTZWxlY3RhYmxlQ2xhc3M6IGJvb2xlYW47XG4gICAgLyoqIFRoZSB0aXRsZSBvZiB0aGUgY29sdW1uLCB1c2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCB3aXRoIGN1c3RvbSBncm91cGluZyBjb21wYXJhdG9yIHRvIGRldGVybWluZSB0aGUgbWVtYmVycyBvZiB0aGUgZ3JvdXAuICovXG4gICAgZ3JvdXBpbmdDb21wYXJlcjogKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgY3VzdG9tIHRlbXBsYXRlIGZvciBmaWx0ZXJpbmdcbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZmlsdGVyQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgZGVmaW5pdGlvbiB0byBtb3ZlIHRoZSBjb2x1bW4gdG8gdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAgKiBJdCB0YWtlcyB0aGUgaW5kZXggb2YgdHlwZSBudW1iZXIgYXMgYSBwYXJhbWV0ZXJcbiAgICAqL1xuICAgIG1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgc2l6ZSAqL1xuICAgIGdldEF1dG9TaXplKCk6IHN0cmluZztcbiAgICBnZXRSZXNpemFibGVDb2xVbmRlckVuZCgpOiBNUkxSZXNpemVDb2x1bW5JbmZvW107XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gcmV0cmlldmUgdGhlIHNldCBDU1Mgd2lkdGggb2YgdGhlIGNlbGxzIHVuZGVyIHRoZSBjb2x1bW4gKi9cbiAgICBnZXRDZWxsV2lkdGgoKTogc3RyaW5nO1xuICAgIGdldEdyaWRUZW1wbGF0ZShpc1JvdzogYm9vbGVhbik6IHN0cmluZztcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB0b2dnbGUgY29sdW1uIHZpYmlzaWxpdHkgKGhpZGRlbiBvciB2aXNpYmxlKSAqL1xuICAgIHRvZ2dsZVZpc2liaWxpdHkodmFsdWU/OiBib29sZWFuKTogdm9pZDtcbiAgICBwb3B1bGF0ZVZpc2libGVJbmRleGVzPygpOiB2b2lkO1xuICAgIC8qKiBQaW5zIHRoZSBjb2x1bW4gYXQgdGhlIHNwZWNpZmllZCBpbmRleCAoaWYgbm90IGFscmVhZHkgcGlubmVkKS4gKi9cbiAgICBwaW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xuICAgIC8qKiBVbnBpbnMgdGhlIGNvbHVtbiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IChpZiBub3QgYWxyZWFkeSB1bnBpbm5lZCkuICovXG4gICAgdW5waW4oaW5kZXg/OiBudW1iZXIpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyB3aGVuIGEgZm9ybSBncm91cCBpcyBjcmVhdGVkIGluIHRoZSBncmlkLlxuICogLSBmb3JtR3JvdXA6IFRoZSBmb3JtIGdyb3VwIHRoYXQgaXMgY3JlYXRlZC5cbiAqIC0gb3duZXI6IFRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgZm9ybSBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3Mge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGV2ZW50IGFyZ3VtZW50cyBmb3IgdGhlIGdyaWQgdmFsaWRhdGlvbiBzdGF0dXMgY2hhbmdlIGV2ZW50LlxuICogLSBzdGF0dXM6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyAoJ1ZBTElEJyBvciAnSU5WQUxJRCcpLlxuICogLSBvd25lcjogVGhlIGdyaWQgaW5zdGFuY2UgdGhhdCBvd25zIHRoZSB2YWxpZGF0aW9uIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXR1c0V2ZW50QXJncyB7XG4gICAgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXR1cy5cbiAqIC0gJ1ZBTElEJzogVGhlIHZhbGlkYXRpb24gc3RhdHVzIGlzIHZhbGlkLlxuICogLSAnSU5WQUxJRCc6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uU3RhdHVzID0gJ1ZBTElEJyB8ICdJTlZBTElEJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZ3JpZC5cbiAqIC0gc3RhdHVzOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgKCdWQUxJRCcgb3IgJ0lOVkFMSUQnKS5cbiAqIC0gZXJyb3JzOiBUaGUgdmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXM7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgcmVjb3JkIGluIHRoZSBncmlkLlxuICogLSBga2V5YDogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZWNvcmQuXG4gKiAtIGBmaWVsZHNgOiBBbiBhcnJheSBvZiB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBpbmRpdmlkdWFsIGZpZWxkcyBpbiB0aGUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAga2V5OiBhbnk7XG4gICAgZmllbGRzOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIGEgZmllbGQgaW4gdGhlIGdyaWQuXG4gKiAtYGZpZWxkYDogVGhlIG5hbWUgb2YgdGhlIGZpZWxkIChwcm9wZXJ0eSkgYmVpbmcgdmFsaWRhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFZhbGlkYXRpb25TdGF0ZSBleHRlbmRzIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBmaWVsZDogc3RyaW5nXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgc2VydmljZSBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIGdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNlcnZpY2VUeXBlIHtcblxuICAgIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYEdyaWRUeXBlYCB0aGF0IGNvbnRhaW5zIHRoZSBzZXJ2aWNlLiAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZSBDUlVEIHNlcnZpY2UgKENyZWF0ZSwgUmVhZCwgVXBkYXRlLCBEZWxldGUpIG9wZXJhdGlvbnMgb24gdGhlIGdyaWQgZGF0YS4gKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBBIHNlcnZpY2UgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIGNvbHVtbiBtb3Zpbmcgd2l0aGluIHRoZSBncmlkLiBJdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgY29sdW1uLCBpdHMgaWNvbiwgYW5kIGluZGljYXRvciBmb3IgY2FuY2VsYXRpb24uICovXG4gICAgY21zOiBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgdXNlZCBpbiB0aGUgZ3JpZC4gVGhlIHJldHVybmVkIHZhbHVlcyBjb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGdldF9kYXRhKCk6IGFueVtdO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYWxsIHRoZSBkYXRhIGF2YWlsYWJsZSBpbiB0aGUgZ3JpZCwgaW5jbHVkaW5nIGFueSB0cmFuc2FjdGlvbmFsIGRhdGEuXG4gICAgICogYGluY2x1ZGVUcmFuc2FjdGlvbnNgOiBPcHRpb25hbCBwYXJhbWV0ZXIuIFNwZWNpZmllcyB3aGV0aGVyIHRvIGluY2x1ZGUgdHJhbnNhY3Rpb25hbCBkYXRhIGlmIHByZXNlbnQuXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIGFsbCB0aGUgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGdyaWQuXG4gICAgICovXG4gICAgZ2V0X2FsbF9kYXRhKGluY2x1ZGVUcmFuc2FjdGlvbnM/OiBib29sZWFuKTogYW55W107XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgYSBjb2x1bW4gb2JqZWN0IGJ5IGl0cyBuYW1lLCB0YWtlbiBhcyBhIHBhcmFtZXRlci4gKi9cbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByb3cgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldFJvd0RhdGEoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyByZWNvcmQgYnkgaXRzIHVuaXF1ZSBpZGVudGlmaWVyIChvZiBhbnkgdHlwZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIpLiAqL1xuICAgIGdldF9yZWNfYnlfaWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgYSBzcGVjaWZpYyByb3cgYnkgaXRzIGRhdGEuICovXG4gICAgZ2V0X3Jvd19pZChyb3dEYXRhOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgaW5kZXggKHRha2VuIGFzIGEgcGFyYW1ldGVyKSBpbiB0aGUgZ3JpZCAqL1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMga2V5ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIGdyaWQgKi9cbiAgICBnZXRfcm93X2J5X2tleShyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIHVuaXF1ZSBpZGVudGlmaWVyLiAqL1xuICAgIGdldF9yZWNfaW5kZXhfYnlfaWQocGs6IHN0cmluZyB8IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgaW5kZXggb2YgYSByZWNvcmQgaW4gdGhlIGdyaWQncyBkYXRhIGNvbGxlY3Rpb24gdXNpbmcgaXRzIGluZGV4LiAqL1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gaW4gdGhlIGdyaWQuICovXG4gICAgZ2V0X2NlbGxfYnlfa2V5KHJvd1NlbGVjdG9yOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy4gKi9cbiAgICBnZXRfY2VsbF9ieV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JRDogbnVtYmVyIHwgc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgY2VsbCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGFuZCBjb2x1bW4gdXNpbmcgdGhlaXIgaW5kZXhlcy5cbiAgICAgKiBJdCBjb3VudHMgb25seSB0aGUgaW5kZXhlcyBvZiB0aGUgdmlzaWJsZSBjb2x1bW5zIGFuZCByb3dzXG4gICAgICovXG4gICAgZ2V0X2NlbGxfYnlfdmlzaWJsZV9pbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiB0aGF0IHNldHMgdGhlIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIGdyb3VwIHJvdyAodXNlZCBmb3IgdHJlZSBncmlkcylcbiAgICAgKiBJdCB0YWtlcyB0aGUgdmFsdWUgZm9yIHRoZSBleHBhbnRpb24gYXMgYSBwYXJhbWV0ZXIgKGV4cGFuZGVkIG9yIGNvbGxhcHNlZClcbiAgICAgKi9cbiAgICBzZXRfZ3JvdXByb3dfZXhwYW5zaW9uX3N0YXRlPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQsIHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICByb3dfZGVsZXRlZF90cmFuc2FjdGlvbihpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBhZGRpbmcgYSBuZXcgcm93IHRvIHRoZSBncmlkLlxuICAgICAqIEl0IHRha2VzIHRoZSByb3cncyBkYXRhIGFuZCB0aGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50IHJvdyBpZiBhcHBsaWNhYmxlICh1c2VkIGZvciB0cmVlIGdyaWRzKVxuICAgICAqL1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgZGVsZXRpbmcgYSByb3csIHNwZWNpZmllZCBieSBpdCdzIGlkZW50aWRpZXIgKHRha2VuIGFzIGEgcGFyYW1ldGVyKSAqL1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgcm93J3MgY3VycmVudCBzdGF0ZSBvZiBleHBhbnRpb24gKHVzZWQgZm9yIHRyZWUgZ3JpZHMpKi9cbiAgICBnZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55KTogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc2V0dGluZyBhIG5ldyBleHBhbnRpb24gc3RhdGUuIEl0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKi9cbiAgICBzZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQ7XG4gICAgZ2V0X3N1bW1hcnlfZGF0YSgpOiBhbnlbXTtcblxuICAgIHByZXBhcmVfc29ydGluZ19leHByZXNzaW9uKHN0YXRlQ29sbGVjdGlvbnM6IEFycmF5PEFycmF5PGFueT4+LCBleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNvcnRpbmcgYnkgb25seSBvbmUgZXhwcmVzc2lvblxuICAgICAqIFRoZSBleHByZXNzaW9uIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzb3J0aW5nIGJ5IG11bHRpcGxlIGV4cHJlc3Npb25zXG4gICAgICogVGhlIGV4cHJlc3Npb25zIGNvbnRhaW5zIGZpZWxkTmFtZSwgc29ydGluZyBkaXJlY3RvcnksIHdoZXRoZXIgY2FzZSBzaG91bGQgYmUgaWdub3JlZCBhbmQgb3B0aW9uYWwgc29ydGluZyBzdHJhdGVneVxuICAgICAqL1xuICAgIHNvcnRfbXVsdGlwbGUoZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmVzZXRpbmcgdGhlIHNvcnRpbmcgKi9cbiAgICBjbGVhcl9zb3J0KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcblxuICAgIC8qKiBSZXByZXNlbnRzIGFuIGV2ZW50LCB0cmlnZ2VyZWQgd2hlbiB0aGUgcGluIHN0YXRlIGlzIGNoYW5nZWQgKi9cbiAgICBnZXRfcGluX3Jvd19ldmVudF9hcmdzKHJvd0lEOiBhbnksIGluZGV4PzogbnVtYmVyLCByb3c/OiBSb3dUeXBlLCBwaW5uZWQ/OiBib29sZWFuKTogSVBpblJvd0V2ZW50QXJncztcblxuICAgIGZpbHRlckRhdGFCeUV4cHJlc3Npb25zKGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdO1xuICAgIHNvcnREYXRhQnlFeHByZXNzaW9ucyhkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdKTogYW55W107XG5cbiAgICB1cGRhdGVfY2VsbChjZWxsOiBJZ3hDZWxsKTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuICAgIHVwZGF0ZV9yb3cocm93OiBJZ3hFZGl0Um93LCB2YWx1ZTogYW55LCBldmVudD86IEV2ZW50KTogSUdyaWRFZGl0RXZlbnRBcmdzO1xuXG4gICAgZXhwYW5kX3BhdGhfdG9fcmVjb3JkPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCk6IHZvaWQ7XG4gICAgZ2V0X3NlbGVjdGVkX2NoaWxkcmVuPyhyZWNvcmQ6IElUcmVlR3JpZFJlY29yZCwgc2VsZWN0ZWRSb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBnZXRfZ3JvdXBCeV9yZWNvcmRfaWQ/KGdSb3c6IElHcm91cEJ5UmVjb3JkKTogc3RyaW5nO1xuICAgIHJlbW92ZV9ncm91cGluZ19leHByZXNzaW9uPyhmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXJfZ3JvdXBieT8oZmllbGQ6IHN0cmluZyB8IGFueSk6IHZvaWQ7XG4gICAgZ2V0UGFyZW50Um93SWQ/KGNoaWxkOiBHcmlkVHlwZSk6IGFueTtcbiAgICBnZXRDaGlsZEdyaWRzPyhpbkRlcHRoPzogYm9vbGVhbik6IEdyaWRUeXBlW107XG4gICAgZ2V0Q2hpbGRHcmlkPyhwYXRoOiBJUGF0aFNlZ21lbnRbXSk6IEdyaWRUeXBlO1xuXG4gICAgdW5zZXRDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG4gICAgcmVnaXN0ZXJDaGlsZFJvd0lzbGFuZD8ocm93SXNsYW5kOiBHcmlkVHlwZSk6IHZvaWQ7XG59XG5cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgZ3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWRcbiAqIEV4dGVuZHMgYElHcmlkRGF0YUJpbmRhYmxlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRUeXBlIGV4dGVuZHMgSUdyaWREYXRhQmluZGFibGUge1xuICAgIC8qKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEueC4gUGxlYXNlIHVzZSB0aGUgYC0taWctc2l6ZWAgQ1NTIGN1c3RvbSBwcm9wZXJ0eS4gKi9cbiAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGxvY2FsZSBvZiB0aGUgZHJpZzogYFVTRGAsIGBFVVJgLCBgR0JQYCwgYENOWWAsIGBKUFlgLCBldGMuICovXG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VTdHJpbmdzOiBJR3JpZFJlc291cmNlU3RyaW5ncztcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbmF0aXZlIEhUTUwgZWxlbWVudCBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgcm93cyBpbiB0aGUgZ3JpZCBhcmUgZWRpdGFibGUuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBlZGl0ZWQgKi9cbiAgICByb3dFZGl0YWJsZTogYm9vbGVhbjtcbiAgICByb290U3VtbWFyaWVzRW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgZmlsdGVyaW5nIGluIHRoZSBncmlkIGlzIGVuYWJsZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSBncmlkIGNhbiBiZSBmaWx0ZXJlZCAqL1xuICAgIGFsbG93RmlsdGVyaW5nOiBib29sZWFuO1xuICAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgcm93cyBpbiB0aGUgZ3JpZCBjYW4gYmUgZHJhZ2dlZC4gSWYgdGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIHJvd3MgY2FuIGJlIGRyYWdnZWQgKi9cbiAgICByb3dEcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHVuaXF1ZSBwcmltYXJ5IGtleSB1c2VkIGZvciBpZGVudGlmeWluZyByb3dzIGluIHRoZSBncmlkICovXG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZ3JpZC4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgaGVpZ2h0IG9mIHRoZSB2aXNpYmxlIHJvd3MgaW4gdGhlIGdyaWQuICovXG4gICAgcmVuZGVyZWRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBwaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIHN1bW1hcnlQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGdyb3VwYWJsZVBpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgZmlsdGVyaW5nUGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNDb2x1bW5MYXlvdXRzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBpcyBjdXJyZW50bHkgaW4gYSBtb3Zpbmcgc3RhdGUuICovXG4gICAgbW92aW5nOiBib29sZWFuO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcblxuICAgIC8qKiBTdHJhdGVneSwgdXNlZCBmb3IgY2xvbmluZyB0aGUgcHJvdmlkZWQgZGF0YS4gVGhlIHR5cGUgaGFzIG9uZSBtZXRob2QsIHRoYXQgdGFrZXMgYW55IHR5cGUgb2YgZGF0YSAqL1xuICAgIGRhdGFDbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3k7XG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgZ3JpZCBzZXJ2aWNlIHR5cGUgcHJvdmlkaW5nIEFQSSBtZXRob2RzIGZvciB0aGUgZ3JpZCAqL1xuICAgIHJlYWRvbmx5IGdyaWRBUEk6IEdyaWRTZXJ2aWNlVHlwZTtcblxuICAgIC8qKiBUaGUgZmlsdGVyIG1vZGUgZm9yIHRoZSBncmlkLiBJdCBjYW4gYmUgcXVpY2sgZmlsdGVyIG9mIGV4Y2VsLXN0eWxlIGZpbHRlciAqL1xuICAgIGZpbHRlck1vZGU6IEZpbHRlck1vZGU7XG5cbiAgICAvLyBUWVBFXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGhlYWRSb3c6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cEFyZWE6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyaW5nUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgYWN0aW9uU3RyaXA6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByZXNpemVMaW5lOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB0Zm9vdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yOiBJZ3hQYWdpbmF0b3JDb21wb25lbnQ7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yTGlzdD86IFF1ZXJ5TGlzdDxJZ3hQYWdpbmF0b3JDb21wb25lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNydWRTZXJ2aWNlOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgc3VtbWFyeVNlcnZpY2U6IGFueTtcblxuXG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc3RhdGUgb2YgdmlydHVhbGl6YXRpb24gZm9yIHRoZSBncmlkLiBJdCBoYXMgYW4gb3duZXIsIHN0YXJ0IGluZGV4IGFuZCBjaHVuayBzaXplICovXG4gICAgdmlydHVhbGl6YXRpb25TdGF0ZTogSUZvck9mU3RhdGU7XG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIC8qKiBUaGUgc2VydmljZSBoYW5kbGluZyBzZWxlY3Rpb24gaW4gdGhlIGdyaWQuIFNlbGVjdGluZywgZGVzZWxlY3RpbmcgZWxlbWVudHMgKi9cbiAgICBzZWxlY3Rpb25TZXJ2aWNlOiBhbnk7XG4gICAgbmF2aWdhdGlvbjogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1NlcnZpY2U6IGFueTtcbiAgICBvdXRsZXQ6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaGFzIGNvbHVtbnMgdGhhdCBjYW4gYmUgbW92ZWQgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNNb3ZhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQncyByb3dzIGNhbiBiZSBzZWxlY3RlZCAqL1xuICAgIGlzUm93U2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNlbGVjdG9ycyBvZiB0aGUgcm93cyBhcmUgdmlzaWJsZSAqL1xuICAgIHNob3dSb3dTZWxlY3RvcnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3MgZWxlbWVudCBpcyBwaW5uZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncmlkICovXG4gICAgaXNQaW5uaW5nVG9TdGFydDogYm9vbGVhbjtcbiAgICAvKiogSWRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBvZiB0aGUgZ3JpZCBpcyBpbiBkcmFnIG1vZGUgKi9cbiAgICBjb2x1bW5JbkRyYWc6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHdpZHRoIG9mIHBpbm5lZCBlbGVtZW50ICovXG4gICAgcGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHdpZHRoIG9mIHVucGlubmVkIGVsZW1lbnQgKi9cbiAgICB1bnBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgLyoqIFRoZSBDU1MgbWFyZ2luIG9mIHRoZSBzdW1tYXJpZXMgKi9cbiAgICBzdW1tYXJpZXNNYXJnaW46IG51bWJlcjtcbiAgICBoZWFkU2VsZWN0b3JCYXNlQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaGFzIGNvbHVtbnMgdGhhdCBhcmUgc2hvd24gKi9cbiAgICBoYXNWaXNpYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBleHBhbmRhYmxlIGNoaWxkcmVuIChoaWVyYXJjaGljYWwgYW5kIHRyZWUgZ3JpZClcbiAgICAgKi9cbiAgICBoYXNFeHBhbmRhYmxlQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgY29sbGFwc2VkIGdyaWQgZWxlbWVudHMgc2hvdWxkIGJlIGV4cGFuZGVkXG4gICAgICovXG4gICAgc2hvd0V4cGFuZEFsbD86IGJvb2xlYW47XG5cbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY291bnQgb2Ygb25seSB0aGUgaGlkZGVuIChub3QgdmlzaWJsZSkgY29sdW1ucyAqL1xuICAgIGhpZGRlbkNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjb3VudCBvZiBvbmx5IHRoZSBwaW5uZWQgY29sdW1ucyAqL1xuICAgIHBpbm5lZENvbHVtbnNDb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGdyaWQgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGdyb3VwLWJ5IHJvd3MuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGdyb3VwUm93VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGdyb3VwIHJvdyBzZWxlY3Rvci5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciByb3cgbG9hZGluZyBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBzZWxlY3Rvci5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZFNlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciByb3cgc2VsZWN0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBzb3J0IGhlYWRlciBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc29ydEhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBhc2NlbmRpbmcgc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnRBc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgZGVzY2VuZGluZyBzb3J0IGhlYWRlciBpY29ucy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgc29ydERlc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGNvbGxhcHNlZCBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBoZWFkZXJDb2xsYXBzZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBoZWFkZXIgZXhwYW5kZWQgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyRXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqIFRoZSB0ZW1wbGF0ZSBmb3IgZHJhZyBpbmRpY2F0b3IgaWNvbnMuIENvdWxkIGJlIG9mIGFueSB0eXBlICovXG4gICAgZHJhZ0luZGljYXRvckljb25UZW1wbGF0ZTogYW55O1xuICAgIC8qKiBUaGUgYmFzZSBkcmFnIGluZGljYXRvciBpY29uLiBDb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGRyYWdJbmRpY2F0b3JJY29uQmFzZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0cmFuc2l0aW9ucyBhcmUgZGlzYWJsZWQgZm9yIHRoZSBncmlkLiAqL1xuICAgIGRpc2FibGVUcmFuc2l0aW9uczogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbmN5IHN5bWJvbCBpcyBwb3NpdGlvbmVkIHRvIHRoZSBsZWZ0IG9mIHZhbHVlcy4gKi9cbiAgICBjdXJyZW5jeVBvc2l0aW9uTGVmdDogYm9vbGVhbjtcblxuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBpcyBzZXQgYnkgdGhlIHVzZXIsIG9yIGlzIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseS4gKi9cbiAgICBjb2x1bW5XaWR0aFNldEJ5VXNlcjogYm9vbGVhbjtcbiAgICBoZWFkZXJGZWF0dXJlc1dpZHRoOiBudW1iZXI7XG4gICAgLyoqIENTUyBzdHlsaW5nIGNhbGN1bGF0ZWQgZm9yIGFuIGVsZW1lbnQ6IGNhbGNIZWlnaHQsIGNhbGNXaWR0aCwgb3V0ZXJXaWR0aCAqL1xuICAgIGNhbGNIZWlnaHQ6IG51bWJlcjtcbiAgICBjYWxjV2lkdGg6IG51bWJlcjtcbiAgICBvdXRlcldpZHRoOiBudW1iZXI7XG4gICAgLyoqIFRoZSBoZWlnaHQgb2YgZWFjaCByb3cgaW4gdGhlIGdyaWQuIFNldHRpbmcgYSBjb25zdGFudCBoZWlnaHQgY2FuIHNvbHZlIHByb2JsZW1zIHdpdGggbm90IHNob3dpbmcgYWxsIGFsZW1lbnRzIHdoZW4gc2Nyb2xsaW5nICovXG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgbXVsdGlSb3dMYXlvdXRSb3dTaXplOiBudW1iZXI7XG4gICAgLyoqIE1pbmltYWwgd2lkdGggZm9yIGhlYWRlcnMgKi9cbiAgICBkZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDogYW55O1xuICAgIG1heExldmVsSGVhZGVyRGVwdGg6IG51bWJlcjtcbiAgICBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgLyoqIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZSwgY2FsY3VsYXRlZCBmb3IgZWFjaCBlbGVtZW50ICovXG4gICAgX2Jhc2VGb250U2l6ZT86IG51bWJlcjtcbiAgICBzY3JvbGxTaXplOiBudW1iZXI7XG5cbiAgICAvKiogVGhlIHRyaWdnZXIgZm9yIGdyaWQgdmFsaWRhdGlvbi4gSXQncyB2YWx1ZSBjYW4gZWlnaHRlciBiZSBgY2hhbmdlYCBvciBgYmx1cmAgKi9cbiAgICB2YWxpZGF0aW9uVHJpZ2dlcjogR3JpZFZhbGlkYXRpb25UcmlnZ2VyO1xuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIGZvciBjb2x1bW5zIGFuZCByb3dzIHBpbm5pbmcgaW4gdGhlIGdyaWRcbiAgICAgKiBJdCdzIG9mIHR5cGUgSVBpbm5pbmdDb25maWcsIHdoaWNoIGNhbiBoYXZlIHZhbHVlIGZvciBjb2x1bW5zIChzdGFydCwgZW5kKSBhbmQgZm9yIHJvd3MgKHRvcCwgYm90dG9tKVxuICAgICovXG4gICAgcGlubmluZzogSVBpbm5pbmdDb25maWc7XG4gICAgZXhwYW5zaW9uU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPjtcbiAgICBwYXJlbnRWaXJ0RGlyOiBhbnk7XG4gICAgdGJvZHk6IGFueTtcbiAgICB2ZXJ0aWNhbFNjcm9sbENvbnRhaW5lcjogYW55O1xuICAgIGRhdGFSb3dMaXN0OiBhbnk7XG4gICAgcm93TGlzdDogYW55O1xuICAgIC8qKiBBbiB1bm1vZGlmaWFibGUgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNvbHVtbnMgb2YgdGhlIGdyaWQuICovXG4gICAgY29sdW1uTGlzdDogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIGNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHZpc2libGUgKG5vdCBoaWRkZW4pIGluIHRoZSB2aWV3ICovXG4gICAgdmlzaWJsZUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIG5vdCBwaW5uZWQgKi9cbiAgICB1bnBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogQW4gYXJyYXkgb2YgY29sdW1ucywgYnV0IGl0IGNvdW50cyBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIHBpbm5lZCAqL1xuICAgIHBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICAvKiogcmVwcmVzZW50cyBhbiBhcnJheSBvZiB0aGUgaGVhZGVycyBvZiB0aGUgY29sdW1ucyAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHM6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhlYWRlckdyb3Vwc0xpc3Q6IGFueVtdO1xuICAgIHN1bW1hcmllc1Jvd0xpc3Q6IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDb250YWluZXI6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgY2VsbHMgYXJlIHNlbGVjdGFibGUgaW4gdGhlIGdyaWQgKi9cbiAgICBpc0NlbGxTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBpdCBpcyBhbGxvd2VkIHRvIHNlbGVjdCBtb3JlIHRoYW4gb25lIHJvdyBpbiB0aGUgZ3JpZCAqL1xuICAgIGlzTXVsdGlSb3dTZWxlY3Rpb25FbmFibGVkOiBib29sZWFuO1xuICAgIGhhc1Bpbm5lZFJlY29yZHM6IGJvb2xlYW47XG4gICAgcGlubmVkUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkUmVjb3JkczogYW55W107XG4gICAgdW5waW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaW5uZWREYXRhVmlldzogYW55W107XG4gICAgcGlubmVkUm93czogYW55W107XG4gICAgZGF0YVZpZXc6IGFueVtdO1xuICAgIF9maWx0ZXJlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgX2ZpbHRlcmVkU29ydGVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBmaWx0ZXJlZFNvcnRlZERhdGE6IGFueVtdO1xuICAgIGRhdGFXaXRoQWRkZWRJblRyYW5zYWN0aW9uUm93czogYW55W107XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHRyYW5zYWN0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiAqL1xuICAgIHJlYWRvbmx5IHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZXJ2aWNlPFRyYW5zYWN0aW9uLCBTdGF0ZT47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHZhbGlkYXRpb24gc2VydmljZSBmb3IgdGhlIGdyaWQuIFRoZSB0eXBlIGNvbnRhaW5zIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgKGxvZ2ljKSBmb3IgdmFsaWRhdGluZyByZWNvcmRzICovXG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbjogSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlO1xuICAgIGRlZmF1bHRTdW1tYXJ5SGVpZ2h0OiBudW1iZXI7XG4gICAgc3VtbWFyeVJvd0hlaWdodDogbnVtYmVyO1xuICAgIHJvd0VkaXRpbmdPdmVybGF5OiBJZ3hUb2dnbGVEaXJlY3RpdmU7XG4gICAgdG90YWxSb3dzQ291bnRBZnRlckZpbHRlcjogbnVtYmVyO1xuICAgIF90b3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIHRoZSBwYWdpbmcgb2YgdGhlIGdyaWQuIEl0IGNhbiBiZSBlaWdodGVyICdMb2NhbCcgb3IgJ1JlbW90ZSdcbiAgICAgKiAtIExvY2FsOiBEZWZhdWx0IHZhbHVlOyBUaGUgZ3JpZCB3aWxsIHBhZ2luYXRlIHRoZSBkYXRhIHNvdXJjZSBiYXNlZCBvbiB0aGUgcGFnZVxuICAgICAqL1xuICAgIHBhZ2luZ01vZGU6IEdyaWRQYWdpbmdNb2RlO1xuICAgIC8qKiBUaGUgcGFnaW5nIHN0YXRlIGZvciB0aGUgZ3JpZDsgVXNlZCB0byBjb25maWd1cmUgaG93IHBhZ2luZyBzaG91bGQgYmUgYXBwbGllZCAtIHdoaWNoIGlzIHRoZSBjdXJyZW50IHBhZ2UsIHJlY29yZHMgcGVyIHBhZ2UgKi9cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHBhZ2luZ1N0YXRlOiBhbnk7XG5cbiAgICByb3dFZGl0VGFiczogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsYXN0IHNlYXJjaCBpbiB0aGUgZ3JpZFxuICAgICAqIEl0IGNvbnRhaW5zIHRoZSBzZWFyY2ggdGV4dCAodGhlIHVzZXIgaGFzIGVudGVyZWQpLCB0aGUgbWF0Y2ggYW5kIHNvbWUgc2V0dGluZ3MgZm9yIHRoZSBzZWFyY2hcbiAgICAgKi9cbiAgICBsYXN0U2VhcmNoSW5mbzogSVNlYXJjaEluZm87XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnZTogbnVtYmVyO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBlclBhZ2U6IG51bWJlcjtcbiAgICAvKiogVGhlIElEIG9mIHRoZSByb3cgY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgaW4gdGhlIGdyaWQuICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGEgcm93IGlzIGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG5cbiAgICBmaXJzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBsYXN0RWRpdGFibGVDb2x1bW5JbmRleDogbnVtYmVyO1xuICAgIGlzUm93UGlubmluZ1RvVG9wOiBib29sZWFuO1xuICAgIGhhc0RldGFpbHM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzU3VtbWFyaXplZENvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uR3JvdXBzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0VkaXRhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgcHJvdmlkZXMgYSBjYWxsYmFjayBmb3IgbG9hZGluZyB1bmlxdWUgY29sdW1uIHZhbHVlcyBvbiBkZW1hbmQuXG4gICAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBwcm92aWRlZCwgdGhlIHVuaXF1ZSB2YWx1ZXMgaXQgZ2VuZXJhdGVzIHdpbGwgYmUgdXNlZCBieSB0aGUgRXhjZWwgU3R5bGUgRmlsdGVyaW5nICAqL1xuICAgIHVuaXF1ZUNvbHVtblZhbHVlc1N0cmF0ZWd5OiAoY29sdW1uOiBDb2x1bW5UeXBlLCB0cmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGRvbmU6ICh2YWx1ZXM6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIC8qKiBQcm9wZXJ0eSwgdGhhdCBnZXRzIHRoZSBoZWFkZXIgY2VsbCBpbm5lciB3aWR0aCBmb3IgYXV0by1zaXppbmcuICovXG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGNoYW5nZSBkZXRlY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICAgKiBBIGNoYW5nZS1kZXRlY3Rpb24gdHJlZSBjb2xsZWN0cyBhbGwgdmlld3MgdGhhdCBhcmUgdG8gYmUgY2hlY2tlZCBmb3IgY2hhbmdlcy5cbiAgICAgKiBUaGUgcHJvcGVydHkgY2Fubm90IGJlIGNoYW5nZWQgKHJlYWRvbmx5KSAqL1xuICAgIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGV4cGFuZGVkIHJvdyBpbmRpY2F0b3JzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICByb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGNvbGxhcHNlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93Q29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGljb25cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY2VsbHM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjZWxsU2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIHJvd3M6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICByb3dTZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgY29sdW1uczogJ25vbmUnLCdzaW5nbGUnLCAnbXVsdGlwbGUnLCAnbXVsdGlwbGVDYXNjYWRlJyAqL1xuICAgIGNvbHVtblNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNhbGN1bGF0aW9uIG1vZGUgZm9yIHN1bW1hcmllczogJ3Jvb3RMZXZlbE9ubHknLCAnY2hpbGRMZXZlbHNPbmx5JywgJ3Jvb3RBbmRDaGlsZExldmVscycgKi9cbiAgICBzdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlOiBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgcG9zaXRpb24gb2Ygc3VtbWFyaWVzOiAndG9wJywgJ2JvdHRvbScgKi9cbiAgICBzdW1tYXJ5UG9zaXRpb246IEdyaWRTdW1tYXJ5UG9zaXRpb247XG5cbiAgICAvLyBYWFg6IFdvcmsgYXJvdW5kIHRpbGwgd2UgZml4ZWQgdGhlIGluamVjdGlvbiB0b2tlbnNcbiAgICBsYXN0Q2hpbGRHcmlkPzogR3JpZFR5cGU7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdG9vbGJhck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGFnaW5hdG9yT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBmbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBjaGlsZFJvdz86IGFueTtcbiAgICBleHBhbnNpb25EZXB0aD86IG51bWJlcjtcbiAgICBjaGlsZERhdGFLZXk/OiBhbnk7XG4gICAgZm9yZWlnbktleT86IGFueTtcbiAgICBjYXNjYWRlT25EZWxldGU/OiBib29sZWFuO1xuICAgIGxvYWRDaGlsZHJlbk9uRGVtYW5kPzogKHBhcmVudElEOiBhbnksIGRvbmU6IChjaGlsZHJlbjogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgaGFzQ2hpbGRyZW5LZXk/OiBhbnk7XG4gICAgbG9hZGluZ1Jvd3M/OiBTZXQ8YW55PjtcbiAgICBwYXJlbnQ/OiBHcmlkVHlwZTtcbiAgICBoaWdobGlnaHRlZFJvd0lEPzogYW55O1xuICAgIHVwZGF0ZU9uUmVuZGVyPzogYm9vbGVhbjtcbiAgICBjaGlsZExheW91dEtleXM/OiBhbnlbXTtcbiAgICBjaGlsZExheW91dExpc3Q/OiBRdWVyeUxpc3Q8YW55PjtcbiAgICByb290R3JpZD86IEdyaWRUeXBlO1xuICAgIHByb2Nlc3NlZFJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBwcm9jZXNzZWRFeHBhbmRlZEZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIHByb2Nlc3NlZFJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHRyZWVHcm91cEFyZWE/OiBhbnk7XG5cbiAgICBhY3RpdmVOb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2ZU5vZGVDaGFuZ2VFdmVudEFyZ3M+O1xuICAgIGdyaWRLZXlkb3duOiBFdmVudEVtaXR0ZXI8SUdyaWRLZXlkb3duRXZlbnRBcmdzPjtcbiAgICBjZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGRvdWJsZUNsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBjb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHJhbmdlU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxHcmlkU2VsZWN0aW9uUmFuZ2U+O1xuICAgIHJvd1NlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SVJvd1NlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgbG9jYWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZmlsdGVyaW5nOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V2ZW50QXJncz47XG4gICAgZmlsdGVyaW5nRG9uZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5FdmVudEFyZ3M+O1xuICAgIGNvbHVtblJlc2l6ZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uUmVzaXplRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdFbmQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5TZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZzogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICBjb2x1bW5QaW46IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICBiYXRjaEVkaXRpbmdDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZGVuc2l0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93QWRkZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93QWRkZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RW50ZXI6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEV4aXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dEcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICByb3dEcmFnRW5kOiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdFbmRFdmVudEFyZ3M+O1xuICAgIHJvd1RvZ2dsZTogRXZlbnRFbWl0dGVyPElSb3dUb2dnbGVFdmVudEFyZ3M+O1xuICAgIGZvcm1Hcm91cENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3M+O1xuICAgIHZhbGlkYXRpb25TdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3M+O1xuXG4gICAgdG9vbGJhckV4cG9ydGluZzogRXZlbnRFbWl0dGVyPElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncz47XG4gICAgcmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlc2l6ZU5vdGlmeTogU3ViamVjdDx2b2lkPjtcblxuICAgIHNvcnRTdHJhdGVneTogSUdyaWRTb3J0aW5nU3RyYXRlZ3k7XG4gICAgZ3JvdXBTdHJhdGVneT86IElHcmlkR3JvdXBpbmdTdHJhdGVneTtcbiAgICBmaWx0ZXJpbmdMb2dpYzogRmlsdGVyaW5nTG9naWM7XG4gICAgZmlsdGVyU3RyYXRlZ3k6IElGaWx0ZXJpbmdTdHJhdGVneTtcbiAgICBhbGxvd0FkdmFuY2VkRmlsdGVyaW5nOiBib29sZWFuO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW107XG4gICAgc29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIHNvcnRpbmdPcHRpb25zOiBJU29ydGluZ09wdGlvbnM7XG5cbiAgICBiYXRjaEVkaXRpbmc6IGJvb2xlYW47XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZT86IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcbiAgICBncm91cHNFeHBhbmRlZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgZ3JvdXBzUmVjb3Jkcz86IElHcm91cEJ5UmVjb3JkW107XG4gICAgZ3JvdXBpbmdGbGF0UmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ01ldGFkYXRhPzogYW55W107XG4gICAgc2VsZWN0ZWRDZWxscz86IENlbGxUeXBlW107XG4gICAgc2VsZWN0ZWRSb3dzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBhY3RpdmVEZXNjZW5kYW50Pzogc3RyaW5nO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGlzUGl2b3Q/OiBib29sZWFuO1xuXG4gICAgdG9nZ2xlR3JvdXA/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZz8oZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeT8oZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbiAgICByZXNvbHZlT3V0bGV0PygpOiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuICAgIHVwZGF0ZUNvbHVtbnMoY29sdW1uczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBnZXRTZWxlY3RlZFJhbmdlcygpOiBHcmlkU2VsZWN0aW9uUmFuZ2VbXTtcbiAgICBkZXNlbGVjdEFsbENvbHVtbnMoKTogdm9pZDtcbiAgICBkZXNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdGVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW107XG4gICAgcmVmcmVzaFNlYXJjaCgpOiB2b2lkO1xuICAgIGdldERlZmF1bHRFeHBhbmRTdGF0ZShyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgdHJhY2tDb2x1bW5DaGFuZ2VzKGluZGV4OiBudW1iZXIsIGNvbHVtbjogYW55KTogYW55O1xuICAgIGdldFBvc3NpYmxlQ29sdW1uV2lkdGgoKTogc3RyaW5nO1xuICAgIHJlc2V0SG9yaXpvbnRhbFZpcnR1YWxpemF0aW9uKCk6IHZvaWQ7XG4gICAgaGFzVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbjtcbiAgICBnZXRWaXNpYmxlQ29udGVudEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0RHJhZ0dob3N0Q3VzdG9tVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgb3BlblJvd092ZXJsYXkoaWQ6IGFueSk6IHZvaWQ7XG4gICAgb3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncyk6IHZvaWQ7XG4gICAgc2hvd1NuYWNrYmFyRm9yKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldENvbHVtbkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IENvbHVtblR5cGU7XG4gICAgZ2V0SGVhZGVyR3JvdXBXaWR0aChjb2x1bW46IENvbHVtblR5cGUpOiBzdHJpbmc7XG4gICAgZ2V0Um93QnlLZXk/KGtleTogYW55KTogUm93VHlwZTtcbiAgICBnZXRSb3dCeUluZGV4PyhpbmRleDogbnVtYmVyKTogUm93VHlwZTtcbiAgICBzZXRGaWx0ZXJlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldEZpbHRlcmVkU29ydGVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24gfCBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJTb3J0KG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHBpblJvdyhpZDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgdW5waW5Sb3coaWQ6IGFueSwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgZ2V0VW5waW5uZWRJbmRleEJ5SWQoaWQ6IGFueSk6IG51bWJlcjtcbiAgICBnZXRFbXB0eVJlY29yZE9iamVjdEZvcihpblJvdzogUm93VHlwZSk6IGFueTtcbiAgICBpc1N1bW1hcnlSb3cocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzUmVjb3JkUGlubmVkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRJbml0aWFsUGlubmVkSW5kZXgocmVjOiBhbnkpOiBudW1iZXI7XG4gICAgaXNSZWNvcmRQaW5uZWRCeVZpZXdJbmRleChyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbjtcbiAgICBpc0NvbHVtbkdyb3VwZWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGlzRGV0YWlsUmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dyb3VwQnlSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR2hvc3RSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzVHJlZVJvdz8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzQ2hpbGRHcmlkUmVjb3JkPyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBpc0hpZXJhcmNoaWNhbFJlY29yZD8ocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIGNvbHVtblRvVmlzaWJsZUluZGV4KGtleTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICAgIG1vdmVDb2x1bW4oY29sdW1uOiBDb2x1bW5UeXBlLCB0YXJnZXQ6IENvbHVtblR5cGUsIHBvczogRHJvcFBvc2l0aW9uKTogdm9pZDtcbiAgICBuYXZpZ2F0ZVRvKHJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2x1bW5JbmRleDogbnVtYmVyLCBjYWxsYmFjaz86IChlOiBhbnkpID0+IGFueSk6IHZvaWQ7XG4gICAgZ2V0UHJldmlvdXNDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBnZXROZXh0Q2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgY2xlYXJDZWxsU2VsZWN0aW9uKCk6IHZvaWQ7XG4gICAgc2VsZWN0UmFuZ2UocmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZSB8IEdyaWRTZWxlY3Rpb25SYW5nZVtdKTogdm9pZDtcbiAgICBzZWxlY3RSb3dzKHJvd0lEczogYW55W10sIGNsZWFyQ3VycmVudFNlbGVjdGlvbj86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0VXBQYWdpbmF0b3IoKTogdm9pZDtcbiAgICBjcmVhdGVGaWx0ZXJEcm9wZG93bihjb2x1bW46IENvbHVtblR5cGUsIG9wdGlvbnM6IE92ZXJsYXlTZXR0aW5ncyk6IGFueTtcbiAgICB1cGRhdGVDZWxsKHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnksIGNvbHVtbjogc3RyaW5nKTogdm9pZDtcbiAgICAvLyBUeXBlIHRvIFJvd1R5cGVcbiAgICBjcmVhdGVSb3c/KGluZGV4OiBudW1iZXIsIGRhdGE/OiBhbnkpOiBSb3dUeXBlO1xuICAgIGRlbGV0ZVJvdyhpZDogYW55KTogYW55O1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICB1cGRhdGVSb3codmFsdWU6IGFueSwgcm93U2VsZWN0b3I6IGFueSk6IHZvaWQ7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEZsYXQgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHJlY29yZHM6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgaXNUcmVlUm93KHJlYzogYW55KTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEhpZXJhcmNoaWNhbCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoaWNhbEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGNoaWxkTGF5b3V0S2V5czogYW55W107XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBQaXZvdCBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpdm90R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBwaXZvdCBncmlkLlxuICAgICAqIGl0IGluY2x1ZGVzIGRpbWVudGlvbiBzdHJhdGVneSBmb3Igcm93cyBhbmQgY29sdW1ucywgZmlsdGVycyBhbmQgZGF0YSBrZXlzXG4gICAgICovXG4gICAgcGl2b3RDb25maWd1cmF0aW9uOiBJUGl2b3RDb25maWd1cmF0aW9uO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIGFsbCBkaW1lbnNpb25zIChyb3dzIGFuZCBjb2x1bW5zKSBpbiB0aGUgcGl2b3QgZ3JpZC5cbiAgICAgKiBpdCBpbmNsdWRlcyBoaWVyYXJjaGljYWwgbGV2ZWwsIGZpbHRlcnMgYW5kIHNvcnRpbmcsIGRpbWVudGlvbmFsIGxldmVsLCBldGMuXG4gICAgICovXG4gICAgYWxsRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRvIHNob3cgdGhlIHBpdm90IGNvbmZpZ3VyYXRpb24gVUkgaW4gdGhlIGdyaWQuICovXG4gICAgc2hvd1Bpdm90Q29uZmlndXJhdGlvblVJOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGNvbHVtbkRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHJvd0RpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIHJvd0RpbWVuc2lvblJlc2l6aW5nOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHZhbHVlczogSVBpdm90VmFsdWVbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBkaW1lbnNpb25EYXRhQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpdm90Um93V2lkdGhzOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNldGluZyB1cCB0aGUgY29sdW1ucyBmb3IgdGhlIHBpdm90IGdyaWQgYmFzZWQgb24gdGhlIHBpdm90IGNvbmZpZ3VyYXRpb24gKi9cbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICAvKiogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiB0aGF0IGFsbG93cyB0b2dnbGUgb2YgZXhwYW5zaW9uIHN0YXRlIG9mIGEgcm93ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIHBpdm90IGdyaWQgKi9cbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgcmVzb2x2aW5nIHRoZSBkYXRhIHR5cGUgZm9yIGEgc3BlY2lmaWMgZmllbGQgKGNvbHVtbikuXG4gICAgICogSXQgdGFrZXMgdGhlIGZpZWxkIGFzIGEgcGFyYW1ldGVyIGFuZCByZXR1cm5zIGl0J3MgdHlwZVxuICAgICAqL1xuICAgIHJlc29sdmVEYXRhVHlwZXMoZmllbGQ6IGFueSk6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBtb3ZpbmcgZGltZW5zaW9uIGZyb20gaXRzIGN1cnJlbnRseSBjb2xsZWN0aW9uIHRvIHRoZSBzcGVjaWZpZWQgdGFyZ2V0IGNvbGxlY3Rpb25cbiAgICAgKiBieSB0eXBlIChSb3csIENvbHVtbiBvciBGaWx0ZXIpIGF0IHNwZWNpZmllZCBpbmRleCBvciBhdCB0aGUgY29sbGVjdGlvbidzIGVuZFxuICAgICAqL1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PzogbnVtYmVyKTtcbiAgICBnZXREaW1lbnNpb25zQnlUeXBlKGRpbWVuc2lvbjogUGl2b3REaW1lbnNpb25UeXBlKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgZGltZW5zaW9uJ3MgZW5hYmxlZCBzdGF0ZSBvbiBvciBvZmYuIFRoZSBkaW1lbnNpb24gcmVtYWlucyBpbiBpdHMgY3VycmVudCBjb2xsZWN0aW9uICovXG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICAvKiogU29ydCB0aGUgZGltZW5zaW9uIGFuZCBpdHMgY2hpbGRyZW4gaW4gdGhlIHByb3ZpZGVkIGRpcmVjdGlvbiAoYXNjZW5kaW5nLCBkZXNjZW5kaW5nIG9yIG5vbmUpLiAqL1xuICAgIHNvcnREaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHNvcnREaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pO1xuICAgIC8qKiBUb2dnbGVzIHRoZSB2YWx1ZSdzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgdmFsdWUgcmVtYWlucyBpbiBpdHMgY3VycmVudCBjb2xsZWN0aW9uLiAqL1xuICAgIHRvZ2dsZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSk7XG4gICAgLyoqIE1vdmUgdmFsdWUgZnJvbSBpdHMgY3VycmVudGx5IGF0IHNwZWNpZmllZCBpbmRleCBvciBhdCB0aGUgZW5kLlxuICAgICAqIElmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNldCwgaXQgd2lsbCBhZGQgaXQgdG8gdGhlIGVuZCBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBtb3ZlVmFsdWUodmFsdWU6IElQaXZvdFZhbHVlLCBpbmRleD86IG51bWJlcik7XG4gICAgcm93RGltZW5zaW9uV2lkdGhUb1BpeGVscyhkaW06IElQaXZvdERpbWVuc2lvbik6IG51bWJlcjtcbiAgICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGltZW5zaW9ucyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgZGltZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElEaW1lbnNpb25zQ2hhbmdlPjtcbiAgICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdmFsdWVzIGluIHRoZSBwaXZvdCBncmlkIGNoYW5nZS4gKi9cbiAgICB2YWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVmFsdWVzQ2hhbmdlPjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwaXZvdEtleXM6IElQaXZvdEtleXM7XG4gICAgaGFzTXVsdGlwbGVWYWx1ZXM6IGJvb2xlYW47XG4gICAgZXhjZWxTdHlsZUZpbHRlck1heEhlaWdodDogc3RyaW5nO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNaW5IZWlnaHQ6IHN0cmluZztcbiAgICB2YWx1ZUNoaXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU1ZHSWNvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNpemVJbmZvIHtcbiAgICB3aWR0aDogbnVtYmVyLFxuICAgIHBhZGRpbmc6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRNYXN0ZXJEZXRhaWxDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueTtcbiAgICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyb3VwQnlSb3dUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSUdyb3VwQnlSZWNvcmQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogUm93VHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dEcmFnR2hvc3RDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IGFueSwgLy8gdGhpcyBpcyB0aGUgcm93IGRhdGFcbiAgICBkYXRhOiBhbnksIC8vIHRoaXMgaXMgYWxzbyB0aGUgcm93IGRhdGEgZm9yIHNvbWUgcmVhc29uLlxuICAgIGdyaWQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZEVtcHR5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IHVuZGVmaW5lZCxcbiAgICByb3dDaGFuZ2VzQ291bnQ6IG51bWJlcixcbiAgICBlbmRFZGl0OiAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZXh0VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0QWN0aW9uc1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBIZWFkZXJUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IENvbHVtblR5cGUsXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q2VsbFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksXG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55LFxuICAgIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w8YW55PixcbiAgICBkZWZhdWx0RXJyb3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgY2VsbDogQ2VsbFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBrZXlgICovXG4gICAgcm93SUQ6IGFueTtcbiAgICBrZXk6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBzZWxlY3Q/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0PzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkO1xufVxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscyB7XG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xuICAgIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgICBzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEhlYWRTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFN1bW1hcnlSZXN1bHRbXVxufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIHNldHRpbmdzIGZvciByb3cvY29sdW1uIHBpbm5pbmcgcG9zaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpbm5pbmdDb25maWcge1xuICAgIGNvbHVtbnM/OiBDb2x1bW5QaW5uaW5nUG9zaXRpb247XG4gICAgcm93cz86IFJvd1Bpbm5pbmdQb3NpdGlvbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBzZXR0aW5ncyBmb3IgY2xpcGJvYXJkIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpcGJvYXJkT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgY29weSBiZWhhdmlvclxuICAgICAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogSW5jbHVkZSB0aGUgY29sdW1ucyBoZWFkZXJzIGluIHRoZSBjbGlwYm9hcmQgb3V0cHV0LlxuICAgICAqL1xuICAgIGNvcHlIZWFkZXJzOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFwcGx5IHRoZSBjb2x1bW5zIGZvcm1hdHRlcnMgKGlmIGFueSkgb24gdGhlIGRhdGEgaW4gdGhlIGNsaXBib2FyZCBvdXRwdXQuXG4gICAgICovXG4gICAgY29weUZvcm1hdHRlcnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHNlcGFyYXRvciB1c2VkIGZvciBmb3JtYXR0aW5nIHRoZSBjb3B5IG91dHB1dC4gRGVmYXVsdHMgdG8gYFxcdGAuXG4gICAgICovXG4gICAgc2VwYXJhdG9yOiBzdHJpbmc7XG59XG4iXX0=
@@ -251,6 +251,10 @@ export class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
251
251
  * @hidden
252
252
  */
253
253
  calculateGridHeight() { }
254
+ /**
255
+ * @hidden
256
+ */
257
+ calculateGridWidth() { }
254
258
  updateColumnList() {
255
259
  const nestedColumns = this.children.map((layout) => layout.columnList.toArray());
256
260
  const colsArray = [].concat.apply([], nestedColumns);
@@ -349,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
349
353
  }], expandChildren: [{
350
354
  type: Input
351
355
  }] } });
352
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWlzbGFuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvcm93LWlzbGFuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFHZixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFFTixLQUFLLEVBR0wsU0FBUyxFQUtULFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdsRSxPQUFPLEVBQVkscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQWlDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0YsT0FBTyxFQUFF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b0JBQ1osU0FBUyxFQUFFO3dCQUNQLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQix1QkFBdUI7cUJBQzFCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBbUtRLE1BQU07MkJBQUMscUJBQXFCOzswQkFJNUIsTUFBTTsyQkFBQyxRQUFROzswQkFRZixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFFdEMsTUFBTTsyQkFBQyxTQUFTO3VFQW5LZCxHQUFHO3NCQURULEtBQUs7Z0JBT0MsUUFBUTtzQkFEZCxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBT3RHLFlBQVk7c0JBRGxCLGVBQWU7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFJOUUscUJBQXFCO3NCQUQzQixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFJckQsdUJBQXVCO3NCQUQ3QixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFLbkQsWUFBWTtzQkFEbEIsZUFBZTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQU94RixZQUFZO3NCQURsQixNQUFNO2dCQWdCQSxXQUFXO3NCQURqQixNQUFNO2dCQWlCQSxlQUFlO3NCQURyQixNQUFNO2dCQStCSSxjQUFjO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZUNoYW5nZVJlY29yZCxcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgTE9DQUxFX0lELFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hIaWVyYXJjaGljYWxHcmlkQVBJU2VydmljZSB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nU2VydmljZSB9IGZyb20gJy4uL2ZpbHRlcmluZy9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsIERpc3BsYXlEZW5zaXR5VG9rZW4gfSBmcm9tICcuLi8uLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgSWd4R3JpZFN1bW1hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc3VtbWFyaWVzL2dyaWQtc3VtbWFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWRCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9oaWVyYXJjaGljYWwtZ3JpZC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hIaWVyYXJjaGljYWxHcmlkTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuL2hpZXJhcmNoaWNhbC1ncmlkLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgZmlyc3QsIGZpbHRlciwgdGFrZVVudGlsLCBwbHVjayB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElneENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hSb3dJc2xhbmRBUElTZXJ2aWNlIH0gZnJvbSAnLi9yb3ctaXNsYW5kLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IFBsYXRmb3JtVXRpbCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSWd4Q29sdW1uUmVzaXppbmdTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzaXppbmcvcmVzaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkVHlwZSwgSUdYX0dSSURfU0VSVklDRV9CQVNFIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEdyaWRUb29sYmFyRGlyZWN0aXZlLCBJZ3hHcmlkVG9vbGJhclRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uL3Rvb2xiYXIvY29tbW9uJztcbmltcG9ydCB7IElneEFjdGlvblN0cmlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9uLXN0cmlwL2FjdGlvbi1zdHJpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci1pbnRlcmZhY2VzJztcbmltcG9ydCB7IElneEZsYXRUcmFuc2FjdGlvbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgSUdyaWRDcmVhdGVkRXZlbnRBcmdzIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LXJvdy1pc2xhbmQnLFxuICAgIHRlbXBsYXRlOiBgYCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgSWd4Um93SXNsYW5kQVBJU2VydmljZSxcbiAgICAgICAgSWd4RmlsdGVyaW5nU2VydmljZSxcbiAgICAgICAgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2VcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93SXNsYW5kQ29tcG9uZW50IGV4dGVuZHMgSWd4SGllcmFyY2hpY2FsR3JpZEJhc2VEaXJlY3RpdmVcbiAgICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGtleSBvZiB0aGUgcm93IGlzbGFuZCBieSB3aGljaCBjaGlsZCBkYXRhIHdvdWxkIGJlIHRha2VuIGZyb20gdGhlIHJvdyBkYXRhIGlmIHN1Y2ggaXMgcHJvdmlkZWQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgW2RhdGFdPVwiRGF0YVwiIFthdXRvR2VuZXJhdGVdPVwidHJ1ZVwiPlxuICAgICAqICAgICAgPGlneC1yb3ctaXNsYW5kIFtrZXldPVwiJ2NoaWxkRGF0YSdcIj5cbiAgICAgKiAgICAgICAgICA8IS0tIC4uLiAtLT5cbiAgICAgKiAgICAgIDwvaWd4LXJvdy1pc2xhbmQ+XG4gICAgICogPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4Um93SXNsYW5kQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IElneFJvd0lzbGFuZENvbXBvbmVudCksIHsgcmVhZDogSWd4Um93SXNsYW5kQ29tcG9uZW50LCBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBwdWJsaWMgY2hpbGRyZW4gPSBuZXcgUXVlcnlMaXN0PElneFJvd0lzbGFuZENvbXBvbmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneENvbHVtbkNvbXBvbmVudCwgeyByZWFkOiBJZ3hDb2x1bW5Db21wb25lbnQsIGRlc2NlbmRhbnRzOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBjaGlsZENvbHVtbnMgPSBuZXcgUXVlcnlMaXN0PElneENvbHVtbkNvbXBvbmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoSWd4R3JpZFRvb2xiYXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgaXNsYW5kVG9vbGJhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkVG9vbGJhclRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBAQ29udGVudENoaWxkKElneFBhZ2luYXRvckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHB1YmxpYyBpc2xhbmRQYWdpbmF0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneEFjdGlvblN0cmlwQ29tcG9uZW50LCB7IHJlYWQ6IElneEFjdGlvblN0cmlwQ29tcG9uZW50LCBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBwdWJsaWMgYWN0aW9uU3RyaXBzOiBRdWVyeUxpc3Q8SWd4QWN0aW9uU3RyaXBDb21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBsYXlvdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtbWl0ZWQgd2hlbiBhIGdyaWQgaXMgYmVpbmcgY3JlYXRlZCBiYXNlZCBvbiB0aGlzIHJvdyBpc2xhbmQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgW2RhdGFdPVwiRGF0YVwiIFthdXRvR2VuZXJhdGVdPVwidHJ1ZVwiPlxuICAgICAqICAgICAgPGlneC1yb3ctaXNsYW5kIFtrZXldPVwiJ2NoaWxkRGF0YSdcIiAoZ3JpZENyZWF0ZWQpPVwiZ3JpZENyZWF0ZWQoJGV2ZW50KVwiICNyb3dJc2xhbmQ+XG4gICAgICogICAgICAgICAgPCEtLSAuLi4gLS0+XG4gICAgICogICAgICA8L2lneC1yb3ctaXNsYW5kPlxuICAgICAqIDwvaWd4LWhpZXJhcmNoaWNhbC1ncmlkPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJvd0lzbGFuZENvbXBvbmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBncmlkQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUdyaWRDcmVhdGVkRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBhZnRlciBhIGdyaWQgaXMgYmVpbmcgaW5pdGlhbGl6ZWQgZm9yIHRoaXMgcm93IGlzbGFuZC5cbiAgICAgKiBUaGUgZW1pdHRpbmcgaXMgZG9uZSBpbiBgbmdBZnRlclZpZXdJbml0YC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1oaWVyYXJjaGljYWwtZ3JpZCBbZGF0YV09XCJEYXRhXCIgW2F1dG9HZW5lcmF0ZV09XCJ0cnVlXCI+XG4gICAgICogICAgICA8aWd4LXJvdy1pc2xhbmQgW2tleV09XCInY2hpbGREYXRhJ1wiIChncmlkSW5pdGlhbGl6ZWQpPVwiZ3JpZEluaXRpYWxpemVkKCRldmVudClcIiAjcm93SXNsYW5kPlxuICAgICAqICAgICAgICAgIDwhLS0gLi4uIC0tPlxuICAgICAqICAgICAgPC9pZ3gtcm93LWlzbGFuZD5cbiAgICAgKiA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSb3dJc2xhbmRDb21wb25lbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZ3JpZEluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxJR3JpZENyZWF0ZWRFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGluaXRpYWxDaGFuZ2VzID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHJvb3RHcmlkOiBHcmlkVHlwZSA9IG51bGw7XG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGE6IGFueVtdIHwgbnVsbDtcblxuICAgIHByaXZhdGUgcmlfY29sdW1uTGlzdERpZmZlcjtcbiAgICBwcml2YXRlIGxheW91dF9pZCA9IGBpZ3gtcm93LWlzbGFuZC1gO1xuICAgIHByaXZhdGUgaXNJbml0ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGlmIGFsbCBpbW1lZGlhdGUgY2hpbGRyZW4gb2YgdGhlIGdyaWRzIGZvciB0aGlzIGBJZ3hSb3dJc2xhbmRDb21wb25lbnRgIHNob3VsZCBiZSBleHBhbmRlZC9jb2xsYXBzZWQuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgW2RhdGFdPVwiRGF0YVwiIFthdXRvR2VuZXJhdGVdPVwidHJ1ZVwiPlxuICAgICAqICAgICAgPGlneC1yb3ctaXNsYW5kIFtrZXldPVwiJ2NoaWxkRGF0YSdcIiBbZXhwYW5kQ2hpbGRyZW5dPVwidHJ1ZVwiICNyb3dJc2xhbmQ+XG4gICAgICogICAgICAgICAgPCEtLSAuLi4gLS0+XG4gICAgICogICAgICA8L2lneC1yb3ctaXNsYW5kPlxuICAgICAqIDwvaWd4LWhpZXJhcmNoaWNhbC1ncmlkPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJvd0lzbGFuZENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBleHBhbmRDaGlsZHJlbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kZWZhdWx0RXhwYW5kU3RhdGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkuZ2V0Q2hpbGRHcmlkcygpLmZvckVhY2goKGdyaWQpID0+IHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGdyaWQubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAvLyBEZXRlY3QgY2hhbmdlcyByaWdodCBhd2F5IGlmIHRoZSBncmlkIGlzIHZpc2libGVcbiAgICAgICAgICAgICAgICBncmlkLmV4cGFuZENoaWxkcmVuID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFbHNlIGRlZmVyIHRoZSBkZXRlY3Rpb24gb24gY2hhbmdlcyB3aGVuIHRoZSBncmlkIGdldHMgaW50byB2aWV3IGZvciBwZXJmb3JtYW5jZS5cbiAgICAgICAgICAgICAgICBncmlkLnVwZGF0ZU9uUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBpZiBhbGwgaW1tZWRpYXRlIGNoaWxkcmVuIG9mIHRoZSBncmlkcyBmb3IgdGhpcyBgSWd4Um93SXNsYW5kQ29tcG9uZW50YCBoYXZlIGJlZW4gc2V0IHRvIGJlIGV4cGFuZGVkL2NvbGxhcHNlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgZXhwYW5kZWQgPSB0aGlzLnJvd0lzbGFuZC5leHBhbmRDaGlsZHJlbjtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSb3dJc2xhbmRDb21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGV4cGFuZENoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmYXVsdEV4cGFuZFN0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlkKCkge1xuICAgICAgICBjb25zdCBwSWQgPSB0aGlzLnBhcmVudElkID8gdGhpcy5wYXJlbnRJZC5zdWJzdHJpbmcodGhpcy5wYXJlbnRJZC5pbmRleE9mKHRoaXMubGF5b3V0X2lkKSArIHRoaXMubGF5b3V0X2lkLmxlbmd0aCkgKyAnLScgOiAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0X2lkICsgcElkICsgdGhpcy5rZXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGFyZW50SWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudElzbGFuZCA/IHRoaXMucGFyZW50SXNsYW5kLmlkIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBsZXZlbCgpIHtcbiAgICAgICAgbGV0IHB0ciA9IHRoaXMucGFyZW50SXNsYW5kO1xuICAgICAgICBsZXQgbHZsID0gMDtcbiAgICAgICAgd2hpbGUgKHB0cikge1xuICAgICAgICAgICAgbHZsKys7XG4gICAgICAgICAgICBwdHIgPSBwdHIucGFyZW50SXNsYW5kO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsdmwgKyAxO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICB2YWxpZGF0aW9uU2VydmljZTogSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgICBzZWxlY3Rpb25TZXJ2aWNlOiBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfU0VSVklDRV9CQVNFKSBncmlkQVBJOiBJZ3hIaWVyYXJjaGljYWxHcmlkQVBJU2VydmljZSxcbiAgICAgICAgdHJhbnNhY3Rpb25GYWN0b3J5OiBJZ3hGbGF0VHJhbnNhY3Rpb25GYWN0b3J5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgem9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudCxcbiAgICAgICAgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIGVudkluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICBuYXZpZ2F0aW9uOiBJZ3hIaWVyYXJjaGljYWxHcmlkTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSWd4T3ZlcmxheVNlcnZpY2UpIG92ZXJsYXlTZXJ2aWNlOiBJZ3hPdmVybGF5U2VydmljZSxcbiAgICAgICAgc3VtbWFyeVNlcnZpY2U6IElneEdyaWRTdW1tYXJ5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBfZGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zLFxuICAgICAgICBwdWJsaWMgcm93SXNsYW5kQVBJOiBJZ3hSb3dJc2xhbmRBUElTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KExPQ0FMRV9JRCkgbG9jYWxlSWQ6IHN0cmluZyxcbiAgICAgICAgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkge1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIHZhbGlkYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgc2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgIGNvbFJlc2l6aW5nU2VydmljZSxcbiAgICAgICAgICAgIGdyaWRBUEksXG4gICAgICAgICAgICB0cmFuc2FjdGlvbkZhY3RvcnksXG4gICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgICAgY2RyLFxuICAgICAgICAgICAgZGlmZmVycyxcbiAgICAgICAgICAgIHZpZXdSZWYsXG4gICAgICAgICAgICBpbmplY3RvcixcbiAgICAgICAgICAgIGVudkluamVjdG9yLFxuICAgICAgICAgICAgbmF2aWdhdGlvbixcbiAgICAgICAgICAgIGZpbHRlcmluZ1NlcnZpY2UsXG4gICAgICAgICAgICBvdmVybGF5U2VydmljZSxcbiAgICAgICAgICAgIHN1bW1hcnlTZXJ2aWNlLFxuICAgICAgICAgICAgX2Rpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgICAgIGxvY2FsZUlkLFxuICAgICAgICAgICAgcGxhdGZvcm1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZ3JpZCA9IHRoaXMgYXMgR3JpZFR5cGU7XG4gICAgICAgIHRoaXMucm9vdEdyaWQgPSB0aGlzLmdyaWRBUEkuZ3JpZDtcbiAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkucm93SXNsYW5kID0gdGhpcztcbiAgICAgICAgdGhpcy5yaV9jb2x1bW5MaXN0RGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuLm5vdGlmeU9uQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIGV4aXN0aW5nIGdyaWRzIHNpbmNlIHRoZWlyIGNoaWxkIHJpIGhhdmUgYmVlbiBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0R3JpZHNGb3JJc2xhbmQodGhpcy5rZXkpLmZvckVhY2goZ3JpZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIChncmlkIGFzIGFueSkub25Sb3dJc2xhbmRDaGFuZ2UodGhpcy5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbmVzdGVkQ29sdW1ucyA9IHRoaXMuY2hpbGRyZW4ubWFwKChsYXlvdXQpID0+IGxheW91dC5jb2x1bW5MaXN0LnRvQXJyYXkoKSk7XG4gICAgICAgIGNvbnN0IGNvbHNBcnJheSA9IFtdLmNvbmNhdC5hcHBseShbXSwgbmVzdGVkQ29sdW1ucyk7XG4gICAgICAgIGNvbnN0IHRvcENvbHMgPSB0aGlzLmNvbHVtbkxpc3QuZmlsdGVyKChpdGVtKSA9PiBjb2xzQXJyYXkuaW5kZXhPZihpdGVtKSA9PT0gLTEpO1xuICAgICAgICB0aGlzLl9jaGlsZENvbHVtbnMgPSB0b3BDb2xzO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnModGhpcy5fY2hpbGRDb2x1bW5zKTtcbiAgICAgICAgdGhpcy5jb2x1bW5MaXN0LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbkxpc3QoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBoYW5kbGUgY29sdW1uIGNoYW5nZXMgc28gdGhhdCB0aGV5IGFyZSBwYXNzZWQgdG8gY2hpbGQgZ3JpZCBpbnN0YW5jZXMgd2hlbiBjb2x1bW5DaGFuZ2UgaXMgZW1pdHRlZC5cbiAgICAgICAgdGhpcy5yaV9jb2x1bW5MaXN0RGlmZmVyLmRpZmYodGhpcy5jaGlsZENvbHVtbnMpO1xuICAgICAgICB0aGlzLl9jaGlsZENvbHVtbnMuZm9yRWFjaCh4ID0+IHguY29sdW1uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHguZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVDb2x1bW5MaXN0KCkpKTtcbiAgICAgICAgdGhpcy5jaGlsZENvbHVtbnMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjaGFuZ2U6IFF1ZXJ5TGlzdDxJZ3hDb2x1bW5Db21wb25lbnQ+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5yaV9jb2x1bW5MaXN0RGlmZmVyLmRpZmYoY2hhbmdlKTtcbiAgICAgICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICAgICAgZGlmZi5mb3JFYWNoQWRkZWRJdGVtKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPElneENvbHVtbkNvbXBvbmVudD4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLml0ZW0uY29sdW1uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHJlY29yZC5pdGVtLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlQ29sdW1uTGlzdCgpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9uU3RyaXAgPSB0aGlzLmFjdGlvblN0cmlwcy5maXJzdDtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uU3RyaXApIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RyaXAubWVudU92ZXJsYXlTZXR0aW5ncy5vdXRsZXQgPSB0aGlzLm91dGxldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJvd0lzbGFuZEFQSS5yZWdpc3Rlcih0aGlzKTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50SXNsYW5kKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudElzbGFuZC5yb3dJc2xhbmRBUEkucmVnaXN0ZXJDaGlsZFJvd0lzbGFuZCh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEdyaWQuZ3JpZEFQSS5yZWdpc3RlckNoaWxkUm93SXNsYW5kKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2luaXQgPSBmYWxzZTtcblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGNoaWxkIHRvb2xiYXIgaWYgdGhlIHBhcmVudCBpc2xhbmQgaGFzIGEgdG9vbGJhciBkZWZpbml0aW9uXG4gICAgICAgIHRoaXMuZ3JpZENyZWF0ZWQucGlwZShwbHVjaygnZ3JpZCcpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShncmlkID0+IHtcbiAgICAgICAgICAgIGdyaWQucmVuZGVyZWQkLnBpcGUoZmlyc3QoKSwgZmlsdGVyKCgpID0+ICEhdGhpcy5pc2xhbmRUb29sYmFyVGVtcGxhdGUpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gZ3JpZC50b29sYmFyT3V0bGV0LmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmlzbGFuZFRvb2xiYXJUZW1wbGF0ZSwgeyAkaW1wbGljaXQ6IGdyaWQgfSkpO1xuICAgICAgICAgICAgZ3JpZC5yZW5kZXJlZCQucGlwZShmaXJzdCgpLCBmaWx0ZXIoKCkgPT4gISF0aGlzLmlzbGFuZFBhZ2luYXRvclRlbXBsYXRlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb290R3JpZC5wYWdpbmF0b3JMaXN0LmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiBncmlkLnNldFVwUGFnaW5hdG9yKCkpO1xuICAgICAgICAgICAgICAgICAgICBncmlkLnBhZ2luYXRvck91dGxldC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5pc2xhbmRQYWdpbmF0b3JUZW1wbGF0ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlcykge1xuICAgICAgICB0aGlzLmxheW91dENoYW5nZS5lbWl0KGNoYW5nZXMpO1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0KSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxDaGFuZ2VzLnB1c2goY2hhbmdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgYmFzZSBkZXN0cm95IGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSByZW5kZXJlZCBhbnl0aGluZyB0byB1c2UgcmVtb3ZlRXZlbnRMaXN0ZW5lciBvblxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkudW5zZXQodGhpcy5pZCk7XG4gICAgICAgIGlmICh0aGlzLnBhcmVudElzbGFuZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRHcmlkc0ZvcklzbGFuZCh0aGlzLmtleSkuZm9yRWFjaChncmlkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFuR3JpZFN0YXRlKGdyaWQpO1xuICAgICAgICAgICAgICAgIGdyaWQuZ3JpZEFQSS51bnNldENoaWxkUm93SXNsYW5kKHRoaXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudElzbGFuZC5yb3dJc2xhbmRBUEkudW5zZXRDaGlsZFJvd0lzbGFuZCh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm9vdEdyaWQuZ3JpZEFQSS51bnNldENoaWxkUm93SXNsYW5kKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5jbGVhbkdyaWRTdGF0ZSh0aGlzLnJvb3RHcmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVmbG93KCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNhbGN1bGF0ZUdyaWRIZWlnaHQoKSB7IH1cblxuICAgIHByb3RlY3RlZCBfY2hpbGRDb2x1bW5zID0gW107XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29sdW1uTGlzdCgpIHtcbiAgICAgICAgY29uc3QgbmVzdGVkQ29sdW1ucyA9IHRoaXMuY2hpbGRyZW4ubWFwKChsYXlvdXQpID0+IGxheW91dC5jb2x1bW5MaXN0LnRvQXJyYXkoKSk7XG4gICAgICAgIGNvbnN0IGNvbHNBcnJheSA9IFtdLmNvbmNhdC5hcHBseShbXSwgbmVzdGVkQ29sdW1ucyk7XG4gICAgICAgIGNvbnN0IHRvcENvbHMgPSB0aGlzLmNvbHVtbkxpc3QuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sc0FycmF5LmluZGV4T2YoaXRlbSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLyogUmVzZXQgdGhlIGRlZmF1bHQgd2lkdGggb2YgdGhlIGNvbHVtbnMgdGhhdCBjb21lIGludG8gdGhpcyByb3cgaXNsYW5kLFxuICAgICAgICAgICAgICAgIGJlY2F1c2UgdGhlIHJvb3QgY2F0Y2hlcyB0aGVtIGZpcnN0IGR1cmluZyB0aGUgZGV0ZWN0Q2hhbmdlcygpIGFuZCBzZXRzIHRoZWlyIGRlZmF1bHRXaWR0aC4gKi9cbiAgICAgICAgICAgICAgICBpdGVtLmRlZmF1bHRXaWR0aCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2NoaWxkQ29sdW1ucyA9IHRvcENvbHM7XG4gICAgICAgIHRoaXMucm93SXNsYW5kQVBJLmdldENoaWxkR3JpZHMoKS5mb3JFYWNoKChncmlkOiBHcmlkVHlwZSkgPT4ge1xuICAgICAgICAgICAgZ3JpZC5jcmVhdGVDb2x1bW5zTGlzdCh0aGlzLl9jaGlsZENvbHVtbnMpO1xuICAgICAgICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGdyaWQubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBncmlkLnVwZGF0ZU9uUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUNoaWxkcmVuKCkge1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5maXJzdCA9PT0gdGhpcykge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5yZXNldCh0aGlzLmNoaWxkcmVuLnRvQXJyYXkoKS5zbGljZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgICAgIGNoaWxkLnBhcmVudElzbGFuZCA9IHRoaXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5HcmlkU3RhdGUoZ3JpZCkge1xuICAgICAgICBncmlkLmNoaWxkR3JpZFRlbXBsYXRlcy5mb3JFYWNoKCh0bXBsKSA9PiB7XG4gICAgICAgICAgICB0bXBsLm93bmVyLmNsZWFuVmlldyh0bXBsLmNvbnRleHQudGVtcGxhdGVJRCk7XG4gICAgICAgIH0pO1xuICAgICAgICBncmlkLmNoaWxkR3JpZFRlbXBsYXRlcy5jbGVhcigpO1xuICAgICAgICBncmlkLm9uUm93SXNsYW5kQ2hhbmdlKCk7XG4gICAgfVxufVxuIl19
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWlzbGFuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvcm93LWlzbGFuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFHZixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFFTixLQUFLLEVBR0wsU0FBUyxFQUtULFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdsRSxPQUFPLEVBQVkscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQWlDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFnQjdFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQ0FBZ0M7SUEyRnZFOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsSUFDVyxjQUFjLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0MsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzVDLG1EQUFtRDtnQkFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0gsb0ZBQW9GO2dCQUNwRixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxFQUFFO1FBQ1QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUgsT0FBTyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDWixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLE9BQU8sR0FBRyxFQUFFO1lBQ1IsR0FBRyxFQUFFLENBQUM7WUFDTixHQUFHLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUNELE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFDSSxpQkFBMkMsRUFDM0MsZ0JBQXlDLEVBQ3pDLGtCQUE0QyxFQUNiLE9BQXNDLEVBQ3JFLGtCQUE2QyxFQUM3QyxVQUFtQyxFQUNuQyxJQUFZLEVBQ00sUUFBUSxFQUMxQixHQUFzQixFQUN0QixPQUF3QixFQUN4QixPQUF5QixFQUN6QixRQUFrQixFQUNsQixXQUFnQyxFQUNoQyxVQUFnRCxFQUNoRCxnQkFBcUMsRUFDVixjQUFpQyxFQUM1RCxjQUFxQyxFQUNJLHNCQUE4QyxFQUNoRixZQUFvQyxFQUN4QixRQUFnQixFQUNuQyxRQUFzQjtRQUN0QixLQUFLLENBQ0QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsSUFBSSxFQUNKLFFBQVEsRUFDUixHQUFHLEVBQ0gsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLFFBQVEsQ0FDWCxDQUFDO1FBeEJLLGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQWhLL0M7O1dBRUc7UUFFSSxhQUFRLEdBQUcsSUFBSSxTQUFTLEVBQXlCLENBQUM7UUFFekQ7O1dBRUc7UUFFSSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUFzQixDQUFDO1FBWTFEOztXQUVHO1FBRUksaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTlDOzs7Ozs7Ozs7OztXQVdHO1FBRUksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUUvRDs7Ozs7Ozs7Ozs7O1dBWUc7UUFFSSxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRW5FOztXQUVHO1FBQ0ksbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFM0I7O1dBRUc7UUFDSSxhQUFRLEdBQWEsSUFBSSxDQUFDO1FBSXpCLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUM5QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBNk9iLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0lBNUg3QixDQUFDO0lBRUQ7O09BRUc7SUFDYSxRQUFRO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsSUFBZ0IsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNhLGtCQUFrQjtRQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0MsSUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxzR0FBc0c7UUFDdEcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQXFDLEVBQUUsRUFBRTtZQUN6RyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELElBQUksSUFBSSxFQUFFO2dCQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQWdELEVBQUUsRUFBRTtvQkFDdkUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7Z0JBQzVHLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxlQUFlO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztpQkFDbkUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2lCQUNyRSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDMUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQU87UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNhLFdBQVc7UUFDdkIsa0dBQWtHO1FBQ2xHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNhLE1BQU0sS0FBSyxDQUFDO0lBRTVCOztPQUVHO0lBQ2EsbUJBQW1CLEtBQUssQ0FBQztJQUV6Qzs7T0FFRztJQUNhLGtCQUFrQixLQUFLLENBQUM7SUFJOUIsZ0JBQWdCO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNoQzs4R0FDOEY7Z0JBQzlGLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixPQUFPLElBQUksQ0FBQzthQUNmO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWMsRUFBRSxFQUFFO1lBQ3pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDOUI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBSTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQTVXUSxxQkFBcUIseUlBa0tsQixxQkFBcUIsc0dBSXJCLFFBQVEsK1BBUVIsaUJBQWlCLGtEQUVMLG1CQUFtQixtRUFFL0IsU0FBUztrR0FsTFoscUJBQXFCLGtPQVBuQjtZQUNQLHNCQUFzQjtZQUN0QixtQkFBbUI7WUFDbkIsdUJBQXVCO1NBQzFCLDZFQWdDYSx1QkFBdUIsMkJBQVUsV0FBVyx1RUFHNUMscUJBQXFCLDJCQUFVLFdBQVcsOEVBWnRCLHFCQUFxQixZQUFXLHFCQUFxQiwrQ0FNdEUsa0JBQWtCLFFBQVUsa0JBQWtCLCtDQVU5Qyx1QkFBdUIsUUFBVSx1QkFBdUIseUVBNUMvRCxFQUFFOzsyRkFRSCxxQkFBcUI7a0JBWGpDLFNBQVM7bUJBQUM7b0JBQ1AsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3FCQUMxQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQW1LUSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBSTVCLE1BQU07MkJBQUMsUUFBUTs7MEJBUWYsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUV4QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBRXRDLE1BQU07MkJBQUMsU0FBUzt1RUFuS2QsR0FBRztzQkFEVCxLQUFLO2dCQU9DLFFBQVE7c0JBRGQsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQU90RyxZQUFZO3NCQURsQixlQUFlO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBSTlFLHFCQUFxQjtzQkFEM0IsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBSXJELHVCQUF1QjtzQkFEN0IsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBS25ELFlBQVk7c0JBRGxCLGVBQWU7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFPeEYsWUFBWTtzQkFEbEIsTUFBTTtnQkFnQkEsV0FBVztzQkFEakIsTUFBTTtnQkFpQkEsZUFBZTtzQkFEckIsTUFBTTtnQkErQkksY0FBYztzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgSXRlcmFibGVDaGFuZ2VSZWNvcmQsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIExPQ0FMRV9JRCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4SGllcmFyY2hpY2FsR3JpZEFQSVNlcnZpY2UgfSBmcm9tICcuL2hpZXJhcmNoaWNhbC1ncmlkLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXJpbmcvZ3JpZC1maWx0ZXJpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuIH0gZnJvbSAnLi4vLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IElneEdyaWRTdW1tYXJ5U2VydmljZSB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hIaWVyYXJjaGljYWxHcmlkQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SGllcmFyY2hpY2FsR3JpZE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9oaWVyYXJjaGljYWwtZ3JpZC1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4T3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IGZpcnN0LCBmaWx0ZXIsIHRha2VVbnRpbCwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Um93SXNsYW5kQVBJU2VydmljZSB9IGZyb20gJy4vcm93LWlzbGFuZC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4uL3Jlc2l6aW5nL3Jlc2l6aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElHWF9HUklEX1NFUlZJQ0VfQkFTRSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hHcmlkVG9vbGJhckRpcmVjdGl2ZSwgSWd4R3JpZFRvb2xiYXJUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi90b29sYmFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1zdHJpcC9hY3Rpb24tc3RyaXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneFBhZ2luYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3BhZ2luYXRvci9wYWdpbmF0b3ItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBJZ3hGbGF0VHJhbnNhY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IElHcmlkQ3JlYXRlZEV2ZW50QXJncyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uL2dyaWQvZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1yb3ctaXNsYW5kJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIElneFJvd0lzbGFuZEFQSVNlcnZpY2UsXG4gICAgICAgIElneEZpbHRlcmluZ1NlcnZpY2UsXG4gICAgICAgIElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneFJvd0lzbGFuZENvbXBvbmVudCBleHRlbmRzIElneEhpZXJhcmNoaWNhbEdyaWRCYXNlRGlyZWN0aXZlXG4gICAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBrZXkgb2YgdGhlIHJvdyBpc2xhbmQgYnkgd2hpY2ggY2hpbGQgZGF0YSB3b3VsZCBiZSB0YWtlbiBmcm9tIHRoZSByb3cgZGF0YSBpZiBzdWNoIGlzIHByb3ZpZGVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkIFtkYXRhXT1cIkRhdGFcIiBbYXV0b0dlbmVyYXRlXT1cInRydWVcIj5cbiAgICAgKiAgICAgIDxpZ3gtcm93LWlzbGFuZCBba2V5XT1cIidjaGlsZERhdGEnXCI+XG4gICAgICogICAgICAgICAgPCEtLSAuLi4gLS0+XG4gICAgICogICAgICA8L2lneC1yb3ctaXNsYW5kPlxuICAgICAqIDwvaWd4LWhpZXJhcmNoaWNhbC1ncmlkPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneFJvd0lzbGFuZENvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGtleTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBJZ3hSb3dJc2xhbmRDb21wb25lbnQpLCB7IHJlYWQ6IElneFJvd0lzbGFuZENvbXBvbmVudCwgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgcHVibGljIGNoaWxkcmVuID0gbmV3IFF1ZXJ5TGlzdDxJZ3hSb3dJc2xhbmRDb21wb25lbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hDb2x1bW5Db21wb25lbnQsIHsgcmVhZDogSWd4Q29sdW1uQ29tcG9uZW50LCBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBwdWJsaWMgY2hpbGRDb2x1bW5zID0gbmV3IFF1ZXJ5TGlzdDxJZ3hDb2x1bW5Db21wb25lbnQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKElneEdyaWRUb29sYmFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGlzbGFuZFRvb2xiYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRvb2xiYXJUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZChJZ3hQYWdpbmF0b3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgaXNsYW5kUGFnaW5hdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hBY3Rpb25TdHJpcENvbXBvbmVudCwgeyByZWFkOiBJZ3hBY3Rpb25TdHJpcENvbXBvbmVudCwgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgcHVibGljIGFjdGlvblN0cmlwczogUXVlcnlMaXN0PElneEFjdGlvblN0cmlwQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbGF5b3V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbW1pdGVkIHdoZW4gYSBncmlkIGlzIGJlaW5nIGNyZWF0ZWQgYmFzZWQgb24gdGhpcyByb3cgaXNsYW5kLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkIFtkYXRhXT1cIkRhdGFcIiBbYXV0b0dlbmVyYXRlXT1cInRydWVcIj5cbiAgICAgKiAgICAgIDxpZ3gtcm93LWlzbGFuZCBba2V5XT1cIidjaGlsZERhdGEnXCIgKGdyaWRDcmVhdGVkKT1cImdyaWRDcmVhdGVkKCRldmVudClcIiAjcm93SXNsYW5kPlxuICAgICAqICAgICAgICAgIDwhLS0gLi4uIC0tPlxuICAgICAqICAgICAgPC9pZ3gtcm93LWlzbGFuZD5cbiAgICAgKiA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSb3dJc2xhbmRDb21wb25lbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZ3JpZENyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElHcmlkQ3JlYXRlZEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgYSBncmlkIGlzIGJlaW5nIGluaXRpYWxpemVkIGZvciB0aGlzIHJvdyBpc2xhbmQuXG4gICAgICogVGhlIGVtaXR0aW5nIGlzIGRvbmUgaW4gYG5nQWZ0ZXJWaWV3SW5pdGAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgW2RhdGFdPVwiRGF0YVwiIFthdXRvR2VuZXJhdGVdPVwidHJ1ZVwiPlxuICAgICAqICAgICAgPGlneC1yb3ctaXNsYW5kIFtrZXldPVwiJ2NoaWxkRGF0YSdcIiAoZ3JpZEluaXRpYWxpemVkKT1cImdyaWRJbml0aWFsaXplZCgkZXZlbnQpXCIgI3Jvd0lzbGFuZD5cbiAgICAgKiAgICAgICAgICA8IS0tIC4uLiAtLT5cbiAgICAgKiAgICAgIDwvaWd4LXJvdy1pc2xhbmQ+XG4gICAgICogPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4Um93SXNsYW5kQ29tcG9uZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGdyaWRJbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUdyaWRDcmVhdGVkRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBpbml0aWFsQ2hhbmdlcyA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByb290R3JpZDogR3JpZFR5cGUgPSBudWxsO1xuICAgIHB1YmxpYyByZWFkb25seSBkYXRhOiBhbnlbXSB8IG51bGw7XG5cbiAgICBwcml2YXRlIHJpX2NvbHVtbkxpc3REaWZmZXI7XG4gICAgcHJpdmF0ZSBsYXlvdXRfaWQgPSBgaWd4LXJvdy1pc2xhbmQtYDtcbiAgICBwcml2YXRlIGlzSW5pdCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBpZiBhbGwgaW1tZWRpYXRlIGNoaWxkcmVuIG9mIHRoZSBncmlkcyBmb3IgdGhpcyBgSWd4Um93SXNsYW5kQ29tcG9uZW50YCBzaG91bGQgYmUgZXhwYW5kZWQvY29sbGFwc2VkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkIFtkYXRhXT1cIkRhdGFcIiBbYXV0b0dlbmVyYXRlXT1cInRydWVcIj5cbiAgICAgKiAgICAgIDxpZ3gtcm93LWlzbGFuZCBba2V5XT1cIidjaGlsZERhdGEnXCIgW2V4cGFuZENoaWxkcmVuXT1cInRydWVcIiAjcm93SXNsYW5kPlxuICAgICAqICAgICAgICAgIDwhLS0gLi4uIC0tPlxuICAgICAqICAgICAgPC9pZ3gtcm93LWlzbGFuZD5cbiAgICAgKiA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZD5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hSb3dJc2xhbmRDb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZXhwYW5kQ2hpbGRyZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEV4cGFuZFN0YXRlID0gdmFsdWU7XG4gICAgICAgIHRoaXMucm93SXNsYW5kQVBJLmdldENoaWxkR3JpZHMoKS5mb3JFYWNoKChncmlkKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jb250YWlucyhncmlkLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgLy8gRGV0ZWN0IGNoYW5nZXMgcmlnaHQgYXdheSBpZiB0aGUgZ3JpZCBpcyB2aXNpYmxlXG4gICAgICAgICAgICAgICAgZ3JpZC5leHBhbmRDaGlsZHJlbiA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGdyaWQuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gRWxzZSBkZWZlciB0aGUgZGV0ZWN0aW9uIG9uIGNoYW5nZXMgd2hlbiB0aGUgZ3JpZCBnZXRzIGludG8gdmlldyBmb3IgcGVyZm9ybWFuY2UuXG4gICAgICAgICAgICAgICAgZ3JpZC51cGRhdGVPblJlbmRlciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgaWYgYWxsIGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgZ3JpZHMgZm9yIHRoaXMgYElneFJvd0lzbGFuZENvbXBvbmVudGAgaGF2ZSBiZWVuIHNldCB0byBiZSBleHBhbmRlZC9jb2xsYXBzZWQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGV4cGFuZGVkID0gdGhpcy5yb3dJc2xhbmQuZXhwYW5kQ2hpbGRyZW47XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4Um93SXNsYW5kQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBleHBhbmRDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRFeHBhbmRTdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpZCgpIHtcbiAgICAgICAgY29uc3QgcElkID0gdGhpcy5wYXJlbnRJZCA/IHRoaXMucGFyZW50SWQuc3Vic3RyaW5nKHRoaXMucGFyZW50SWQuaW5kZXhPZih0aGlzLmxheW91dF9pZCkgKyB0aGlzLmxheW91dF9pZC5sZW5ndGgpICsgJy0nIDogJyc7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dF9pZCArIHBJZCArIHRoaXMua2V5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhcmVudElkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnRJc2xhbmQgPyB0aGlzLnBhcmVudElzbGFuZC5pZCA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbGV2ZWwoKSB7XG4gICAgICAgIGxldCBwdHIgPSB0aGlzLnBhcmVudElzbGFuZDtcbiAgICAgICAgbGV0IGx2bCA9IDA7XG4gICAgICAgIHdoaWxlIChwdHIpIHtcbiAgICAgICAgICAgIGx2bCsrO1xuICAgICAgICAgICAgcHRyID0gcHRyLnBhcmVudElzbGFuZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbHZsICsgMTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmFsaWRhdGlvblNlcnZpY2U6IElneEdyaWRWYWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgc2VsZWN0aW9uU2VydmljZTogSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgIGNvbFJlc2l6aW5nU2VydmljZTogSWd4Q29sdW1uUmVzaXppbmdTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX1NFUlZJQ0VfQkFTRSkgZ3JpZEFQSTogSWd4SGllcmFyY2hpY2FsR3JpZEFQSVNlcnZpY2UsXG4gICAgICAgIHRyYW5zYWN0aW9uRmFjdG9yeTogSWd4RmxhdFRyYW5zYWN0aW9uRmFjdG9yeSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBlbnZJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgbmF2aWdhdGlvbjogSWd4SGllcmFyY2hpY2FsR3JpZE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KElneE92ZXJsYXlTZXJ2aWNlKSBvdmVybGF5U2VydmljZTogSWd4T3ZlcmxheVNlcnZpY2UsXG4gICAgICAgIHN1bW1hcnlTZXJ2aWNlOiBJZ3hHcmlkU3VtbWFyeVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgcHVibGljIHJvd0lzbGFuZEFQSTogSWd4Um93SXNsYW5kQVBJU2VydmljZSxcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICB2YWxpZGF0aW9uU2VydmljZSxcbiAgICAgICAgICAgIHNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgICAgICBjb2xSZXNpemluZ1NlcnZpY2UsXG4gICAgICAgICAgICBncmlkQVBJLFxuICAgICAgICAgICAgdHJhbnNhY3Rpb25GYWN0b3J5LFxuICAgICAgICAgICAgZWxlbWVudFJlZixcbiAgICAgICAgICAgIHpvbmUsXG4gICAgICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgICAgIGNkcixcbiAgICAgICAgICAgIGRpZmZlcnMsXG4gICAgICAgICAgICB2aWV3UmVmLFxuICAgICAgICAgICAgaW5qZWN0b3IsXG4gICAgICAgICAgICBlbnZJbmplY3RvcixcbiAgICAgICAgICAgIG5hdmlnYXRpb24sXG4gICAgICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgb3ZlcmxheVNlcnZpY2UsXG4gICAgICAgICAgICBzdW1tYXJ5U2VydmljZSxcbiAgICAgICAgICAgIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVJZCxcbiAgICAgICAgICAgIHBsYXRmb3JtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQgPSB0aGlzIGFzIEdyaWRUeXBlO1xuICAgICAgICB0aGlzLnJvb3RHcmlkID0gdGhpcy5ncmlkQVBJLmdyaWQ7XG4gICAgICAgIHRoaXMucm93SXNsYW5kQVBJLnJvd0lzbGFuZCA9IHRoaXM7XG4gICAgICAgIHRoaXMucmlfY29sdW1uTGlzdERpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4oKTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5ub3RpZnlPbkNoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBleGlzdGluZyBncmlkcyBzaW5jZSB0aGVpciBjaGlsZCByaSBoYXZlIGJlZW4gY2hhbmdlZC5cbiAgICAgICAgICAgICAgICB0aGlzLmdldEdyaWRzRm9ySXNsYW5kKHRoaXMua2V5KS5mb3JFYWNoKGdyaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAoZ3JpZCBhcyBhbnkpLm9uUm93SXNsYW5kQ2hhbmdlKHRoaXMuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG5lc3RlZENvbHVtbnMgPSB0aGlzLmNoaWxkcmVuLm1hcCgobGF5b3V0KSA9PiBsYXlvdXQuY29sdW1uTGlzdC50b0FycmF5KCkpO1xuICAgICAgICBjb25zdCBjb2xzQXJyYXkgPSBbXS5jb25jYXQuYXBwbHkoW10sIG5lc3RlZENvbHVtbnMpO1xuICAgICAgICBjb25zdCB0b3BDb2xzID0gdGhpcy5jb2x1bW5MaXN0LmZpbHRlcigoaXRlbSkgPT4gY29sc0FycmF5LmluZGV4T2YoaXRlbSkgPT09IC0xKTtcbiAgICAgICAgdGhpcy5fY2hpbGRDb2x1bW5zID0gdG9wQ29scztcbiAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zKHRoaXMuX2NoaWxkQ29sdW1ucyk7XG4gICAgICAgIHRoaXMuY29sdW1uTGlzdC5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5MaXN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGNvbHVtbiBjaGFuZ2VzIHNvIHRoYXQgdGhleSBhcmUgcGFzc2VkIHRvIGNoaWxkIGdyaWQgaW5zdGFuY2VzIHdoZW4gY29sdW1uQ2hhbmdlIGlzIGVtaXR0ZWQuXG4gICAgICAgIHRoaXMucmlfY29sdW1uTGlzdERpZmZlci5kaWZmKHRoaXMuY2hpbGRDb2x1bW5zKTtcbiAgICAgICAgdGhpcy5fY2hpbGRDb2x1bW5zLmZvckVhY2goeCA9PiB4LmNvbHVtbkNoYW5nZS5waXBlKHRha2VVbnRpbCh4LmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlQ29sdW1uTGlzdCgpKSk7XG4gICAgICAgIHRoaXMuY2hpbGRDb2x1bW5zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoY2hhbmdlOiBRdWVyeUxpc3Q8SWd4Q29sdW1uQ29tcG9uZW50PikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMucmlfY29sdW1uTGlzdERpZmZlci5kaWZmKGNoYW5nZSk7XG4gICAgICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgICAgIGRpZmYuZm9yRWFjaEFkZGVkSXRlbSgocmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxJZ3hDb2x1bW5Db21wb25lbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLmNvbHVtbkNoYW5nZS5waXBlKHRha2VVbnRpbChyZWNvcmQuaXRlbS5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZUNvbHVtbkxpc3QoKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvblN0cmlwID0gdGhpcy5hY3Rpb25TdHJpcHMuZmlyc3Q7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvblN0cmlwKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0cmlwLm1lbnVPdmVybGF5U2V0dGluZ3Mub3V0bGV0ID0gdGhpcy5vdXRsZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkucmVnaXN0ZXIodGhpcyk7XG4gICAgICAgIGlmICh0aGlzLnBhcmVudElzbGFuZCkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRJc2xhbmQucm93SXNsYW5kQVBJLnJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQodGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvb3RHcmlkLmdyaWRBUEkucmVnaXN0ZXJDaGlsZFJvd0lzbGFuZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbml0ID0gZmFsc2U7XG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBjaGlsZCB0b29sYmFyIGlmIHRoZSBwYXJlbnQgaXNsYW5kIGhhcyBhIHRvb2xiYXIgZGVmaW5pdGlvblxuICAgICAgICB0aGlzLmdyaWRDcmVhdGVkLnBpcGUocGx1Y2soJ2dyaWQnKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoZ3JpZCA9PiB7XG4gICAgICAgICAgICBncmlkLnJlbmRlcmVkJC5waXBlKGZpcnN0KCksIGZpbHRlcigoKSA9PiAhIXRoaXMuaXNsYW5kVG9vbGJhclRlbXBsYXRlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IGdyaWQudG9vbGJhck91dGxldC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5pc2xhbmRUb29sYmFyVGVtcGxhdGUsIHsgJGltcGxpY2l0OiBncmlkIH0pKTtcbiAgICAgICAgICAgIGdyaWQucmVuZGVyZWQkLnBpcGUoZmlyc3QoKSwgZmlsdGVyKCgpID0+ICEhdGhpcy5pc2xhbmRQYWdpbmF0b3JUZW1wbGF0ZSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdEdyaWQucGFnaW5hdG9yTGlzdC5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gZ3JpZC5zZXRVcFBhZ2luYXRvcigpKTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC5wYWdpbmF0b3JPdXRsZXQuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuaXNsYW5kUGFnaW5hdG9yVGVtcGxhdGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2UuZW1pdChjaGFuZ2VzKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsQ2hhbmdlcy5wdXNoKGNoYW5nZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gT3ZlcnJpZGUgdGhlIGJhc2UgZGVzdHJveSBiZWNhdXNlIHdlIGRvbid0IGhhdmUgcmVuZGVyZWQgYW55dGhpbmcgdG8gdXNlIHJlbW92ZUV2ZW50TGlzdGVuZXIgb25cbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICAgIHRoaXMucm93SXNsYW5kQVBJLnVuc2V0KHRoaXMuaWQpO1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRJc2xhbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0R3JpZHNGb3JJc2xhbmQodGhpcy5rZXkpLmZvckVhY2goZ3JpZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhbkdyaWRTdGF0ZShncmlkKTtcbiAgICAgICAgICAgICAgICBncmlkLmdyaWRBUEkudW5zZXRDaGlsZFJvd0lzbGFuZCh0aGlzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRJc2xhbmQucm93SXNsYW5kQVBJLnVuc2V0Q2hpbGRSb3dJc2xhbmQodGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJvb3RHcmlkLmdyaWRBUEkudW5zZXRDaGlsZFJvd0lzbGFuZCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYW5HcmlkU3RhdGUodGhpcy5yb290R3JpZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHJlZmxvdygpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBjYWxjdWxhdGVHcmlkSGVpZ2h0KCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGNhbGN1bGF0ZUdyaWRXaWR0aCgpIHsgfVxuXG4gICAgcHJvdGVjdGVkIF9jaGlsZENvbHVtbnMgPSBbXTtcblxuICAgIHByb3RlY3RlZCB1cGRhdGVDb2x1bW5MaXN0KCkge1xuICAgICAgICBjb25zdCBuZXN0ZWRDb2x1bW5zID0gdGhpcy5jaGlsZHJlbi5tYXAoKGxheW91dCkgPT4gbGF5b3V0LmNvbHVtbkxpc3QudG9BcnJheSgpKTtcbiAgICAgICAgY29uc3QgY29sc0FycmF5ID0gW10uY29uY2F0LmFwcGx5KFtdLCBuZXN0ZWRDb2x1bW5zKTtcbiAgICAgICAgY29uc3QgdG9wQ29scyA9IHRoaXMuY29sdW1uTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChjb2xzQXJyYXkuaW5kZXhPZihpdGVtKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAvKiBSZXNldCB0aGUgZGVmYXVsdCB3aWR0aCBvZiB0aGUgY29sdW1ucyB0aGF0IGNvbWUgaW50byB0aGlzIHJvdyBpc2xhbmQsXG4gICAgICAgICAgICAgICAgYmVjYXVzZSB0aGUgcm9vdCBjYXRjaGVzIHRoZW0gZmlyc3QgZHVyaW5nIHRoZSBkZXRlY3RDaGFuZ2VzKCkgYW5kIHNldHMgdGhlaXIgZGVmYXVsdFdpZHRoLiAqL1xuICAgICAgICAgICAgICAgIGl0ZW0uZGVmYXVsdFdpZHRoID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fY2hpbGRDb2x1bW5zID0gdG9wQ29scztcbiAgICAgICAgdGhpcy5yb3dJc2xhbmRBUEkuZ2V0Q2hpbGRHcmlkcygpLmZvckVhY2goKGdyaWQ6IEdyaWRUeXBlKSA9PiB7XG4gICAgICAgICAgICBncmlkLmNyZWF0ZUNvbHVtbnNMaXN0KHRoaXMuX2NoaWxkQ29sdW1ucyk7XG4gICAgICAgICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY29udGFpbnMoZ3JpZC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGdyaWQudXBkYXRlT25SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlQ2hpbGRyZW4oKSB7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmZpcnN0ID09PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnJlc2V0KHRoaXMuY2hpbGRyZW4udG9BcnJheSgpLnNsaWNlKDEpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICAgICAgY2hpbGQucGFyZW50SXNsYW5kID0gdGhpcztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhbkdyaWRTdGF0ZShncmlkKSB7XG4gICAgICAgIGdyaWQuY2hpbGRHcmlkVGVtcGxhdGVzLmZvckVhY2goKHRtcGwpID0+IHtcbiAgICAgICAgICAgIHRtcGwub3duZXIuY2xlYW5WaWV3KHRtcGwuY29udGV4dC50ZW1wbGF0ZUlEKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGdyaWQuY2hpbGRHcmlkVGVtcGxhdGVzLmNsZWFyKCk7XG4gICAgICAgIGdyaWQub25Sb3dJc2xhbmRDaGFuZ2UoKTtcbiAgICB9XG59XG4iXX0=
@@ -30,15 +30,15 @@ export class IgxGridToolbarAdvancedFilteringComponent {
30
30
  this.toolbar = toolbar;
31
31
  }
32
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: IgxToolbarToken }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n" }]
37
+ args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n" }]
38
38
  }], ctorParameters: function () { return [{ type: i1.IgxToolbarToken, decorators: [{
39
39
  type: Inject,
40
40
  args: [IgxToolbarToken]
41
41
  }] }]; }, propDecorators: { overlaySettings: [{
42
42
  type: Input
43
43
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvdG9vbGJhci9ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90b29sYmFyL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBRzlFOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyx3Q0FBd0M7SUFFakQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFLRCxZQUE4QyxPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUFJLENBQUM7OEdBWmxFLHdDQUF3QyxrQkFZNUIsZUFBZTtrR0FaM0Isd0NBQXdDLCtJQzVCckQseW9CQVVBLDRDRGdCYyxrQkFBa0Isd01BQUUsa0JBQWtCLGlLQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCLDJGQUFFLElBQUk7OzJGQUV4RSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0kscUNBQXFDLGNBRW5DLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7OzBCQWNwRSxNQUFNOzJCQUFDLGVBQWU7NENBRjdCLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRvb2xiYXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5cbi8qKlxuICogUHJvdmlkZXMgYSBwcmUtY29uZmlndXJlZCBidXR0b24gdG8gb3BlbiB0aGUgYWR2YW5jZWQgZmlsdGVyaW5nIGRpYWxvZyBvZiB0aGUgZ3JpZC5cbiAqXG4gKlxuICogQGlneE1vZHVsZSBJZ3hHcmlkVG9vbGJhck1vZHVsZVxuICogQGlneFBhcmVudCBJZ3hHcmlkVG9vbGJhckNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+PC9pZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5cbiAqIDxpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5DdXN0b20gdGV4dDwvaWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneEJ1dHRvbkRpcmVjdGl2ZSwgSWd4UmlwcGxlRGlyZWN0aXZlLCBOZ0NsYXNzLCBJZ3hJY29uQ29tcG9uZW50LCBOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkVG9vbGJhckFkdmFuY2VkRmlsdGVyaW5nQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGdyaWQgY29udGFpbmluZyB0aGlzIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXIuZ3JpZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncztcblxuICAgIGNvbnN0cnVjdG9yKCBASW5qZWN0KElneFRvb2xiYXJUb2tlbikgcHJpdmF0ZSB0b29sYmFyOiBJZ3hUb29sYmFyVG9rZW4pIHsgfVxufVxuIiwiPGJ1dHRvbiBpZ3hCdXR0b249XCJvdXRsaW5lZFwiIHR5cGU9XCJidXR0b25cIiBbZGlzcGxheURlbnNpdHldPVwiZ3JpZC5kaXNwbGF5RGVuc2l0eVwiIG5hbWU9XCJidG5BZHZhbmNlZEZpbHRlcmluZ1wiIGlneFJpcHBsZVxuICAgIFt0aXRsZV09XCJncmlkPy5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX3Rvb2x0aXBcIlxuICAgIChjbGljayk9XCJncmlkLm9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpXCJcbiAgICBbbmdDbGFzc109XCJncmlkLmFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlID8gJ2lneC1ncmlkLXRvb2xiYXJfX2Fkdi1maWx0ZXItLWZpbHRlcmVkJyA6ICdpZ3gtZ3JpZC10b29sYmFyX19hZHYtZmlsdGVyJ1wiPlxuICAgIDxpZ3gtaWNvbj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgPHNwYW4gI3JlZj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIiFyZWYuY2hpbGROb2Rlcy5sZW5ndGhcIj57eyBncmlkPy5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX2xhYmVsIH19PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvdG9vbGJhci9ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90b29sYmFyL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBRzlFOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyx3Q0FBd0M7SUFFakQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFLRCxZQUE4QyxPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUFJLENBQUM7OEdBWmxFLHdDQUF3QyxrQkFZNUIsZUFBZTtrR0FaM0Isd0NBQXdDLCtJQzVCckQsd3BCQVVBLDRDRGdCYyxrQkFBa0Isd01BQUUsa0JBQWtCLGlLQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCLDJGQUFFLElBQUk7OzJGQUV4RSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0kscUNBQXFDLGNBRW5DLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7OzBCQWNwRSxNQUFNOzJCQUFDLGVBQWU7NENBRjdCLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRvb2xiYXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5cbi8qKlxuICogUHJvdmlkZXMgYSBwcmUtY29uZmlndXJlZCBidXR0b24gdG8gb3BlbiB0aGUgYWR2YW5jZWQgZmlsdGVyaW5nIGRpYWxvZyBvZiB0aGUgZ3JpZC5cbiAqXG4gKlxuICogQGlneE1vZHVsZSBJZ3hHcmlkVG9vbGJhck1vZHVsZVxuICogQGlneFBhcmVudCBJZ3hHcmlkVG9vbGJhckNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+PC9pZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5cbiAqIDxpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5DdXN0b20gdGV4dDwvaWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneEJ1dHRvbkRpcmVjdGl2ZSwgSWd4UmlwcGxlRGlyZWN0aXZlLCBOZ0NsYXNzLCBJZ3hJY29uQ29tcG9uZW50LCBOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkVG9vbGJhckFkdmFuY2VkRmlsdGVyaW5nQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGdyaWQgY29udGFpbmluZyB0aGlzIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXIuZ3JpZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncztcblxuICAgIGNvbnN0cnVjdG9yKCBASW5qZWN0KElneFRvb2xiYXJUb2tlbikgcHJpdmF0ZSB0b29sYmFyOiBJZ3hUb29sYmFyVG9rZW4pIHsgfVxufVxuIiwiPGJ1dHRvbiBpZ3hCdXR0b249XCJvdXRsaW5lZFwiIHR5cGU9XCJidXR0b25cIiBbZGlzcGxheURlbnNpdHldPVwiZ3JpZC5kaXNwbGF5RGVuc2l0eVwiIG5hbWU9XCJidG5BZHZhbmNlZEZpbHRlcmluZ1wiIGlneFJpcHBsZVxuICAgIFt0aXRsZV09XCJncmlkPy5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX3Rvb2x0aXBcIlxuICAgIChjbGljayk9XCJncmlkLm9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZyhvdmVybGF5U2V0dGluZ3MpXCJcbiAgICBbbmdDbGFzc109XCJncmlkLmFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlID8gJ2lneC1ncmlkLXRvb2xiYXJfX2Fkdi1maWx0ZXItLWZpbHRlcmVkJyA6ICdpZ3gtZ3JpZC10b29sYmFyX19hZHYtZmlsdGVyJ1wiPlxuICAgIDxpZ3gtaWNvbj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgPHNwYW4gI3JlZj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIiFyZWYuY2hpbGROb2Rlcy5sZW5ndGhcIj57eyBncmlkPy5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX2xhYmVsIH19PC9zcGFuPlxuPC9idXR0b24+XG4iXX0=