barsa-novin-ray-core 1.0.446 → 1.0.448

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.
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
236
236
  }], pageSizeChange: [{
237
237
  type: Output
238
238
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUF3QnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBd0RsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFqRHBGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUE4QmhGLDBCQUFxQixHQUFHLElBQUksZUFB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QztTQUNmO1FBQ0QsVUFBVSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDN0IsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNTLHdCQUF3QixDQUFDLFVBQVU7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Z0hBalJRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLG9OQUhsQixFQUFFOzJGQUdILG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7aUlBRVksT0FBTztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBPbkluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBsdWNrLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2V0QWxsQ29sdW1uc1NvcnRlZCwgZ2V0VW5pcXVlSWQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcnRhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFVsdk1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdWx2bWFpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHtcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxuICAgIEdyaWRTZXR0aW5nLFxuICAgIENvbFNldHRpbmcsXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcbiAgICBTb3J0U2V0dGluZyxcbiAgICBNZW51SXRlbSxcbiAgICBQYWdpbmdTZXR0aW5nLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcbiAgICBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyxcbiAgICBGb3JtU2V0dGluZ1xufSBmcm9tICcuL21vZGVscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0U2V0dGluZyB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIElkOiBzdHJpbmc7XG4gICAgRXh0cmE6IGFueTtcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1yZXBvcnQtYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBTZXR0aW5nOiBSZXBvcnRTZXR0aW5nO1xuICAgIH07XG4gICAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBkZWZhdWx0R3JpZFNldHRpbmcgPSB7XG4gICAgICAgIENvbFNldHRpbmdMaXN0OiBbXSxcbiAgICAgICAgQXV0b1NpemVDb2x1bW5zOiBmYWxzZSxcbiAgICAgICAgU29ydFNldHRpbmdMaXN0OiBbXSxcbiAgICAgICAgSGlkZGVuOiB0cnVlXG4gICAgfTtcbiAgICBpdGVtU2VsZWN0b3I6IHN0cmluZztcbiAgICBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHNvcnRTZXR0aW5nczogeyBJc0dyb3VwZWQ6IGJvb2xlYW47IE5hbWU6IHN0cmluZzsgU29ydERpcmVjdGlvbjogc3RyaW5nIH1bXSB8IG51bGwgPSBudWxsO1xuICAgIHBhcmFtZXRlcnM6IGFueTtcbiAgICBmaWVsZHM6IGFueTtcblxuICAgIHZpc2libGVDb2x1bW5zJDogT2JzZXJ2YWJsZTxSZXBvcnRWaWV3Q29sdW1uW10+O1xuICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgbW9EYXRhTGlzdCQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbFtdPjtcbiAgICBncmlkU2V0dGluZyQ6IE9ic2VydmFibGU8R3JpZFNldHRpbmc+O1xuICAgIGdyb3VwYnkkOiBPYnNlcnZhYmxlPFNvcnRTZXR0aW5nW10+O1xuICAgIGFsbENoZWNrZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHBhZ2luZ1NldHRpbmckOiBPYnNlcnZhYmxlPFBhZ2luZ1NldHRpbmcgfCBudWxsPjtcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTxBYmJyZXZhdGlvbkRldmljZVNpemU+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGluRGlhbG9nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc011bHRpU2VsZWN0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBmdWxsc2NyZWVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBtZW51SXRlbXMkOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+O1xuICAgIHRvb2xiYXJCdXR0b25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgdG9vbGJhckVuYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGlkZVRvb2xiYXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhpZGVTZWFyY2hwYW5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgc2VsZWN0ZWRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IHVuZGVmaW5lZD47XG4gICAgY29uZGl0aW9uYWxGb3JtYXRzJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgbmV3SW5saW5lRWRpdE1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbD47XG4gICAgY2FydGFibGVUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogRm9ybVNldHRpbmcgfSB8IG51bGw+O1xuICAgIGNhcnRhYmxlQ2hpbGRzTW8kOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogTWV0YW9iamVjdERhdGFNb2RlbCB9IHwgbnVsbD47XG4gICAgc2VsZWN0ZWRDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBncmlkRnJlZUNvbHVtblNpemluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwcm90ZWN0ZWQgX3Zpc2libGVDb2x1bW5zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZXBvcnRWaWV3Q29sdW1uW10+KFtdKTtcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVGVybVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJvdGVjdGVkIGdyaWRTZXR0aW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxHcmlkU2V0dGluZz4odGhpcy5kZWZhdWx0R3JpZFNldHRpbmcpO1xuICAgIHByb3RlY3RlZCBncm91cGJ5U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTb3J0U2V0dGluZ1tdPihbXSk7XG4gICAgcHJpdmF0ZSBfYWxsQ2hlY2tlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCBwcm90ZWN0ZWQgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpc2libGVDb2x1bW5zJCA9IHRoaXMuX3Zpc2libGVDb2x1bW5zU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0kID0gdGhpcy5zZWFyY2hUZXJtU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nJCA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuZ3JvdXBieSQgPSB0aGlzLmdyb3VwYnlTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tlZCQgPSB0aGlzLl9hbGxDaGVja2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmZpZWxkcyA9IHt9O1xuICAgICAgICB0aGlzLnRvb2xiYXJCdXR0b25zJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRvb2xiYXJCdXR0b25zJDtcbiAgICB9XG4gICAgZ2V0IG1vRGF0YUxpc3QoKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3RTb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5EaWFsb2ckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaW5EaWFsb2ckO1xuICAgICAgICB0aGlzLmlzTXVsdGlTZWxlY3QkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaXNNdWx0aVNlbGVjdCQ7XG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbiQgPSB0aGlzLl91bHZNYWluU2VydmljZS5mdWxsc2NyZWVuJDtcbiAgICAgICAgdGhpcy5oaWRlU2VhcmNocGFuZWwkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVNlYXJjaHBhbmVsJDtcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XG4gICAgICAgIHRoaXMuaGlkZVRvb2xiYXIkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaGlkZVRvb2xiYXIkO1xuICAgICAgICB0aGlzLm5ld0lubGluZUVkaXRNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5uZXdJbmxpbmVFZGl0TW8kO1xuICAgICAgICB0aGlzLmNvbmRpdGlvbmFsRm9ybWF0cyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jb25kaXRpb25hbEZvcm1hdHMkO1xuICAgICAgICB0aGlzLmNhcnRhYmxlVGVtcGxhdGVzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNhcnRhYmxlVGVtcGxhdGVzJDtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZUNoaWxkc01vJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNhcnRhYmxlQ2hpbGRzTW8kO1xuICAgICAgICB0aGlzLnRpdGxlJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRpdGxlJC5waXBlKHBsdWNrKCd0ZXh0JykpO1xuICAgICAgICB0aGlzLm1lbnVJdGVtcyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tZW51SXRlbXMkO1xuICAgICAgICB0aGlzLnBhZ2luZ1NldHRpbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UucGFnaW5nU2V0dGluZyQ7XG4gICAgICAgIHRoaXMudG9vbGJhckVuYWJsZSQgPSB0aGlzLl91bHZNYWluU2VydmljZS5lbmFibGUkO1xuICAgICAgICB0aGlzLmdyaWRGcmVlQ29sdW1uU2l6aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmdyaWRGcmVlQ29sdW1uU2l6aW5nJDtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnZpd2VyTWFzayQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tb0RhdGFMaXN0JC5waXBlKG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbmQoKGMpID0+IGMuJElzQ2hlY2tlZCkpKTtcbiAgICAgICAgdGhpcy5tb0RhdGFMaXN0JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3QkLnBpcGUodGFwKChpdGVtcykgPT4gdGhpcy5fc2V0QWxsQ2hlY2tlZChpdGVtcykpKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnNlbGVjdGVkQ291bnQkO1xuXG4gICAgICAgIHRoaXMuY29udGV4dC5vbih7XG4gICAgICAgICAgICBzY29wZTogdGhpcyxcbiAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiB0aGlzLl9tb0RhdGFMaXN0Q2hhbmdlZCxcbiAgICAgICAgICAgIEdyaWRTZXR0aW5nQ2hhbmdlZDogdGhpcy5fZ3JpZFNldHRpbmdDaGFuZ2VkXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBpbiBnaGVpcmUgZmFhbCBib29kIGNob24gbW9zaGtlbCBlaWphZCBtaWthcmRcbiAgICAgICAgLy8gdmEgZGFyIHVsdiBldmVudCBiYWlhZCByYWlzZSBzaGF2YWRcbiAgICAgICAgLy8ga2UgZGF0YSBhbWFkZSBzaG9kZSB2YSB1bHZtYWluc2VydmljZSBhbiByYSBiZWdpcmFkLmdvemFyZXNoIG1vcnRhYmV0XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCh0aGlzLmNvbnRleHQubW9EYXRhTGlzdCk7XG5cbiAgICAgICAgbGV0IGdyaWRTZXR0aW5nID0gdGhpcy5kZWZhdWx0R3JpZFNldHRpbmc7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuR2V0R3JpZFNldHRpbmcpIHtcbiAgICAgICAgICAgIGdyaWRTZXR0aW5nID0gdGhpcy5jb250ZXh0LkdldEdyaWRTZXR0aW5nKCkgfHwgdGhpcy5kZWZhdWx0R3JpZFNldHRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRWaXNpYmxlQ29sdW1ucygpO1xuXG4gICAgICAgIGdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdCB8fD0gW107XG4gICAgICAgIHRoaXMuYWxsQ29sdW1ucyA9IHRoaXMuY29udGV4dC5hbGxDb2x1bW5zIHx8IFtdO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWRTZXR0aW5nKGdyaWRTZXR0aW5nLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycycsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaWQgPSBnZXRVbmlxdWVJZCg0KTtcblxuICAgICAgICB0aGlzLml0ZW1TZWxlY3RvciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaVJvdy5TZWxlY3RvcicpO1xuXG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyk7XG4gICAgICAgIGNvbnN0IGZpZWxkU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLnBhcmFtZXRlcnMsICdGaWVsZFNldHRpbmdzLk1vRGF0YUxpc3QnLCBbXSk7XG5cbiAgICAgICAgZmllbGRTZXR0aW5ncy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkc1tjLkNvbXBvbmVudFBhcmFtZXRlci4kQ2FwdGlvbl0gPSBjLiRDYXB0aW9uO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICB0YXAoKGRldmljZVNpemUpID0+IHRoaXMuX2RldmljZVNpemVDaGFuZ2VkKGRldmljZVNpemUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl93aW5kb3dSZXNpemVkKCkpO1xuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgnYWZ0ZXJyZW5kZXInLCB0aGlzKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC51bignTW9EYXRhTGlzdENoYW5nZWQnLCB0aGlzLl9tb0RhdGFMaXN0Q2hhbmdlZCk7XG4gICAgICAgIHRoaXMuY29udGV4dC51bignR3JpZFNldHRpbmdDaGFuZ2VkJywgdGhpcy5fZ3JpZFNldHRpbmdDaGFuZ2VkKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ncmlkU2V0dGluZ0NoYW5nZWQoc2V0dGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbW9EYXRhTGlzdENoYW5nZWQobW9EYXRhTGlzdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QobW9EYXRhTGlzdCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0QWxsQ2hlY2tlZChpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FsbENoZWNrZWRTb3VyY2UubmV4dChpdGVtcy5sZW5ndGggPiAwICYmICFpdGVtcy5zb21lKChjKSA9PiAhYy4kSXNDaGVja2VkKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVDb2x1bW5zUmVzaXplZChlOiBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyk6IHZvaWQge1xuICAgICAgICBjb25zdCBncmlkU2V0dGluZzogR3JpZFNldHRpbmcgPSB0aGlzLmdyaWRTZXR0aW5nU291cmNlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgcmVzaXplZCB9ID0gZTtcbiAgICAgICAgY29uc3QgY29sTGlzdDogQ29sU2V0dGluZ1tdID0gZ3JpZFNldHRpbmcuQ29sU2V0dGluZ0xpc3Q7XG4gICAgICAgIHJlc2l6ZWQuZm9yRWFjaCgoY29sdW1uMSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzaXplZENvbHVtbiA9IGNvbHVtbnMuZmluZCgoYykgPT4gYy5OYW1lID09PSBjb2x1bW4xLm5hbWUpO1xuICAgICAgICAgICAgaWYgKCFjb2xMaXN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sTGlzdC5maW5kKChjKSA9PiBjLk5hbWUgPT09IHJlc2l6ZWRDb2x1bW4/Lk5hbWUpO1xuICAgICAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgIGNvbHVtbi5XaWR0aCA9IGNvbHVtbjEud2lkdGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc2l6ZWRDb2x1bW4pIHtcbiAgICAgICAgICAgICAgICBjb2xMaXN0LnB1c2goeyBJc0hpZGRlbjogcmVzaXplZENvbHVtbi5IaWRkZW4sIE5hbWU6IHJlc2l6ZWRDb2x1bW4uTmFtZSwgV2lkdGg6IGNvbHVtbjEud2lkdGggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nKTtcbiAgICAgICAgdGhpcy5fZGV2aWNlU2l6ZUNoYW5nZWQodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWaXNpYmxlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IEdldEFsbENvbHVtbnNTb3J0ZWQodGhpcy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbnNTb3VyY2UubmV4dChjb2x1bW5zLmZpbHRlcigoYykgPT4gIWMuSGlkZGVuKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBhcHBseUdyb3VwYnkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNvcnRMaXN0OiBTb3J0U2V0dGluZ1tdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAnU2V0dGluZy5WaWV3LkdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmdyb3VwYnlTb3VyY2UubmV4dChzb3J0TGlzdC5maWx0ZXIoKGMpID0+IGMuSXNHcm91cGVkKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmFpc2VSb3dDbGljayhpbmRleCwgbW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Py5maXJlRXZlbnQoJ3Jvd2RibGNsaWNrJywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCBfZGV2aWNlU2l6ZUNoYW5nZWQoXzogc3RyaW5nKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBfd2luZG93UmVzaXplZCgpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgX29wZW5NbyhtbywgaSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYWlzZVJvd0NsaWNrKGksIG1vKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlR3JpZFNldHRpbmcoc2V0dGluZywgaXNTb3J0ID0gZmFsc2UsIHJhaXNlRXZlbnQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghc2V0dGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dC5TZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcgPSBzZXR0aW5nO1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XG4gICAgICAgIHRoaXMuYXBwbHlHcm91cGJ5KCk7XG4gICAgICAgIGlmIChpc1NvcnQpIHtcbiAgICAgICAgICAgIHNldHRpbmcuRXZlbnQgPSAnU29ydENoYW5nZSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXR0aW5nLkV2ZW50ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGV2aWNlU2l6ZUNoYW5nZWQodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcbiAgICAgICAgaWYgKHJhaXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoc2V0dGluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdVc2VyU2V0dGluZ0NoYW5nZScsIHRoaXMuY29udGV4dCwgZ3JpZFNldHRpbmcpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3VsdkNvbW1hbmRDbGlja2VkKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVDaGVja2VkQWxsKCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdChtbywgaW5kZXgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NoZWNrZWRBbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gdHJ1ZSkpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93U2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZW1vdmVDaGVja2VkQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXNlbGN0QWxsKCk7XG4gICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd0Rlc2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGVzZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgICAgIG1vLiRJc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd2Rlc2VsZWN0JywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xuICAgICAgICByZXR1cm4gbW87XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgICAgIC8vICAgIHRoaXMuX2Rlc2VsY3RBbGwoKTtcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgICAgIHJldHVybiBtbztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2RvQ2hlY2tlZEFsbChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2VkQWxsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVDaGVja2VkQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldFNlbGVjdGVkKCk6IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IHRoaXMubW9EYXRhTGlzdC5maW5kKChtbykgPT4gbW8uJElzQ2hlY2tlZCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0ZWRNby5qc29uID0gc2VsZWN0ZWRNbztcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkTW87XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWZyZXNoQ29udGV4dE1vRGF0YUxpc3QobW9EYXRhTGlzdCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdSZWZyZXNoQ29udGV4dE1vRGF0YUxpc3QnLCBtb0RhdGFMaXN0KTtcbiAgICB9XG59XG4iXX0=
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUF3QnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBd0RsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFqRHBGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUE4QmhGLDBCQUFxQixHQUFHLElBQUksZUFB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QztTQUNmO1FBQ0QsVUFBVSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDN0IsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUNTLHdCQUF3QixDQUFDLFVBQVU7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsMEJBQTBCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Z0hBalJRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLG9OQUhsQixFQUFFOzJGQUdILG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7aUlBRVksT0FBTztzQkFBZixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIElucHV0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBsdWNrLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2V0QWxsQ29sdW1uc1NvcnRlZCwgZ2V0VW5pcXVlSWQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG9ydGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbHZNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Vsdm1haW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xyXG5pbXBvcnQge1xyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIEdyaWRTZXR0aW5nLFxyXG4gICAgQ29sU2V0dGluZyxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXHJcbiAgICBTb3J0U2V0dGluZyxcclxuICAgIE1lbnVJdGVtLFxyXG4gICAgUGFnaW5nU2V0dGluZyxcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIGNvbHVtbnNSZXNpemVkRXZlbnRBcmdzLFxyXG4gICAgRm9ybVNldHRpbmdcclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFNldHRpbmcge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIEV4dHJhOiBhbnk7XHJcbn1cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JucmMtcmVwb3J0LWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgY29udGV4dDoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgICBTZXR0aW5nOiBSZXBvcnRTZXR0aW5nO1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlOiBudW1iZXI7XHJcblxyXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAgIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIGRlZmF1bHRHcmlkU2V0dGluZyA9IHtcclxuICAgICAgICBDb2xTZXR0aW5nTGlzdDogW10sXHJcbiAgICAgICAgQXV0b1NpemVDb2x1bW5zOiBmYWxzZSxcclxuICAgICAgICBTb3J0U2V0dGluZ0xpc3Q6IFtdLFxyXG4gICAgICAgIEhpZGRlbjogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGl0ZW1TZWxlY3Rvcjogc3RyaW5nO1xyXG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgaWQ6IHN0cmluZztcclxuXHJcbiAgICBzb3J0U2V0dGluZ3M6IHsgSXNHcm91cGVkOiBib29sZWFuOyBOYW1lOiBzdHJpbmc7IFNvcnREaXJlY3Rpb246IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcclxuICAgIHBhcmFtZXRlcnM6IGFueTtcclxuICAgIGZpZWxkczogYW55O1xyXG5cclxuICAgIHZpc2libGVDb2x1bW5zJDogT2JzZXJ2YWJsZTxSZXBvcnRWaWV3Q29sdW1uW10+O1xyXG4gICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XHJcbiAgICBncmlkU2V0dGluZyQ6IE9ic2VydmFibGU8R3JpZFNldHRpbmc+O1xyXG4gICAgZ3JvdXBieSQ6IE9ic2VydmFibGU8U29ydFNldHRpbmdbXT47XHJcbiAgICBhbGxDaGVja2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHBhZ2luZ1NldHRpbmckOiBPYnNlcnZhYmxlPFBhZ2luZ1NldHRpbmcgfCBudWxsPjtcclxuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XHJcbiAgICBtYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgaW5EaWFsb2ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgaXNNdWx0aVNlbGVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBmdWxsc2NyZWVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIG1lbnVJdGVtcyQ6IE9ic2VydmFibGU8TWVudUl0ZW1bXT47XHJcbiAgICB0b29sYmFyQnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgdG9vbGJhckVuYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBoaWRlVG9vbGJhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBoaWRlU2VhcmNocGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgc2VsZWN0ZWRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IHVuZGVmaW5lZD47XHJcbiAgICBjb25kaXRpb25hbEZvcm1hdHMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgIG5ld0lubGluZUVkaXRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+O1xyXG4gICAgY2FydGFibGVUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogRm9ybVNldHRpbmcgfSB8IG51bGw+O1xyXG4gICAgY2FydGFibGVDaGlsZHNNbyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gfCBudWxsPjtcclxuICAgIHNlbGVjdGVkQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgICBncmlkRnJlZUNvbHVtblNpemluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgcHJvdGVjdGVkIF92aXNpYmxlQ29sdW1uc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVwb3J0Vmlld0NvbHVtbltdPihbXSk7XHJcbiAgICBwcm90ZWN0ZWQgc2VhcmNoVGVybVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcbiAgICBwcm90ZWN0ZWQgZ3JpZFNldHRpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEdyaWRTZXR0aW5nPih0aGlzLmRlZmF1bHRHcmlkU2V0dGluZyk7XHJcbiAgICBwcm90ZWN0ZWQgZ3JvdXBieVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U29ydFNldHRpbmdbXT4oW10pO1xyXG4gICAgcHJpdmF0ZSBfYWxsQ2hlY2tlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMkID0gdGhpcy5fdmlzaWJsZUNvbHVtbnNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtJCA9IHRoaXMuc2VhcmNoVGVybVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nJCA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cGJ5JCA9IHRoaXMuZ3JvdXBieVNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmFsbENoZWNrZWQkID0gdGhpcy5fYWxsQ2hlY2tlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IHt9O1xyXG4gICAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UudG9vbGJhckJ1dHRvbnMkO1xyXG4gICAgfVxyXG4gICAgZ2V0IG1vRGF0YUxpc3QoKTogTWV0YW9iamVjdERhdGFNb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdFNvdXJjZS5nZXRWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnJlbmRlcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmluRGlhbG9nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmluRGlhbG9nJDtcclxuICAgICAgICB0aGlzLmlzTXVsdGlTZWxlY3QkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuaXNNdWx0aVNlbGVjdCQ7XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmZ1bGxzY3JlZW4kO1xyXG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaHBhbmVsJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbCQ7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XHJcbiAgICAgICAgdGhpcy5oaWRlVG9vbGJhciQgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlVG9vbGJhciQ7XHJcbiAgICAgICAgdGhpcy5uZXdJbmxpbmVFZGl0TW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubmV3SW5saW5lRWRpdE1vJDtcclxuICAgICAgICB0aGlzLmNvbmRpdGlvbmFsRm9ybWF0cyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jb25kaXRpb25hbEZvcm1hdHMkO1xyXG4gICAgICAgIHRoaXMuY2FydGFibGVUZW1wbGF0ZXMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY2FydGFibGVUZW1wbGF0ZXMkO1xyXG4gICAgICAgIHRoaXMuY2FydGFibGVDaGlsZHNNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jYXJ0YWJsZUNoaWxkc01vJDtcclxuICAgICAgICB0aGlzLnRpdGxlJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnRpdGxlJC5waXBlKHBsdWNrKCd0ZXh0JykpO1xyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1lbnVJdGVtcyQ7XHJcbiAgICAgICAgdGhpcy5wYWdpbmdTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2luZ1NldHRpbmckO1xyXG4gICAgICAgIHRoaXMudG9vbGJhckVuYWJsZSQgPSB0aGlzLl91bHZNYWluU2VydmljZS5lbmFibGUkO1xyXG4gICAgICAgIHRoaXMuZ3JpZEZyZWVDb2x1bW5TaXppbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZ3JpZEZyZWVDb2x1bW5TaXppbmckO1xyXG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aXdlck1hc2skLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tb0RhdGFMaXN0JC5waXBlKG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbmQoKGMpID0+IGMuJElzQ2hlY2tlZCkpKTtcclxuICAgICAgICB0aGlzLm1vRGF0YUxpc3QkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdCQucGlwZSh0YXAoKGl0ZW1zKSA9PiB0aGlzLl9zZXRBbGxDaGVja2VkKGl0ZW1zKSkpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZENvdW50JDtcclxuXHJcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcclxuICAgICAgICAgICAgc2NvcGU6IHRoaXMsXHJcbiAgICAgICAgICAgIE1vRGF0YUxpc3RDaGFuZ2VkOiB0aGlzLl9tb0RhdGFMaXN0Q2hhbmdlZCxcclxuICAgICAgICAgICAgR3JpZFNldHRpbmdDaGFuZ2VkOiB0aGlzLl9ncmlkU2V0dGluZ0NoYW5nZWRcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpbiBnaGVpcmUgZmFhbCBib29kIGNob24gbW9zaGtlbCBlaWphZCBtaWthcmRcclxuICAgICAgICAvLyB2YSBkYXIgdWx2IGV2ZW50IGJhaWFkIHJhaXNlIHNoYXZhZFxyXG4gICAgICAgIC8vIGtlIGRhdGEgYW1hZGUgc2hvZGUgdmEgdWx2bWFpbnNlcnZpY2UgYW4gcmEgYmVnaXJhZC5nb3phcmVzaCBtb3J0YWJldFxyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCh0aGlzLmNvbnRleHQubW9EYXRhTGlzdCk7XHJcblxyXG4gICAgICAgIGxldCBncmlkU2V0dGluZyA9IHRoaXMuZGVmYXVsdEdyaWRTZXR0aW5nO1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuR2V0R3JpZFNldHRpbmcpIHtcclxuICAgICAgICAgICAgZ3JpZFNldHRpbmcgPSB0aGlzLmNvbnRleHQuR2V0R3JpZFNldHRpbmcoKSB8fCB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NldFZpc2libGVDb2x1bW5zKCk7XHJcblxyXG4gICAgICAgIGdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdCB8fD0gW107XHJcbiAgICAgICAgdGhpcy5hbGxDb2x1bW5zID0gdGhpcy5jb250ZXh0LmFsbENvbHVtbnMgfHwgW107XHJcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkU2V0dGluZyhncmlkU2V0dGluZywgZmFsc2UsIGZhbHNlKTtcclxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxyXG4gICAgICAgICAgICAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMnLFxyXG4gICAgICAgICAgICBudWxsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmlkID0gZ2V0VW5pcXVlSWQoNCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXRlbVNlbGVjdG9yID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpUm93LlNlbGVjdG9yJyk7XHJcblxyXG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyk7XHJcbiAgICAgICAgY29uc3QgZmllbGRTZXR0aW5ncyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMucGFyYW1ldGVycywgJ0ZpZWxkU2V0dGluZ3MuTW9EYXRhTGlzdCcsIFtdKTtcclxuXHJcbiAgICAgICAgZmllbGRTZXR0aW5ncy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGRzW2MuQ29tcG9uZW50UGFyYW1ldGVyLiRDYXB0aW9uXSA9IGMuJENhcHRpb247XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRldmljZVNpemUkXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgdGFwKChkZXZpY2VTaXplKSA9PiB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZChkZXZpY2VTaXplKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fd2luZG93UmVzaXplZCgpKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgnYWZ0ZXJyZW5kZXInLCB0aGlzKTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdNb0RhdGFMaXN0Q2hhbmdlZCcsIHRoaXMuX21vRGF0YUxpc3RDaGFuZ2VkKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0dyaWRTZXR0aW5nQ2hhbmdlZCcsIHRoaXMuX2dyaWRTZXR0aW5nQ2hhbmdlZCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2dyaWRTZXR0aW5nQ2hhbmdlZChzZXR0aW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5ncmlkU2V0dGluZ1NvdXJjZS5uZXh0KHNldHRpbmcpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9tb0RhdGFMaXN0Q2hhbmdlZChtb0RhdGFMaXN0KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KG1vRGF0YUxpc3QpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRBbGxDaGVja2VkKGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9hbGxDaGVja2VkU291cmNlLm5leHQoaXRlbXMubGVuZ3RoID4gMCAmJiAhaXRlbXMuc29tZSgoYykgPT4gIWMuJElzQ2hlY2tlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfaGFuZGxlQ29sdW1uc1Jlc2l6ZWQoZTogY29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3MpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBncmlkU2V0dGluZzogR3JpZFNldHRpbmcgPSB0aGlzLmdyaWRTZXR0aW5nU291cmNlLmdldFZhbHVlKCk7XHJcbiAgICAgICAgY29uc3QgeyBjb2x1bW5zLCByZXNpemVkIH0gPSBlO1xyXG4gICAgICAgIGNvbnN0IGNvbExpc3Q6IENvbFNldHRpbmdbXSA9IGdyaWRTZXR0aW5nLkNvbFNldHRpbmdMaXN0O1xyXG4gICAgICAgIHJlc2l6ZWQuZm9yRWFjaCgoY29sdW1uMSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXNpemVkQ29sdW1uID0gY29sdW1ucy5maW5kKChjKSA9PiBjLk5hbWUgPT09IGNvbHVtbjEubmFtZSk7XHJcbiAgICAgICAgICAgIGlmICghY29sTGlzdCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbExpc3QuZmluZCgoYykgPT4gYy5OYW1lID09PSByZXNpemVkQ29sdW1uPy5OYW1lKTtcclxuICAgICAgICAgICAgaWYgKGNvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uLldpZHRoID0gY29sdW1uMS53aWR0aDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNpemVkQ29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xMaXN0LnB1c2goeyBJc0hpZGRlbjogcmVzaXplZENvbHVtbi5IaWRkZW4sIE5hbWU6IHJlc2l6ZWRDb2x1bW4uTmFtZSwgV2lkdGg6IGNvbHVtbjEud2lkdGggfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nKTtcclxuICAgICAgICB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZCh0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRWaXNpYmxlQ29sdW1ucygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gR2V0QWxsQ29sdW1uc1NvcnRlZCh0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5zU291cmNlLm5leHQoY29sdW1ucy5maWx0ZXIoKGMpID0+ICFjLkhpZGRlbikpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGFwcGx5R3JvdXBieSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzb3J0TGlzdDogU29ydFNldHRpbmdbXSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXHJcbiAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0JyxcclxuICAgICAgICAgICAgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBieVNvdXJjZS5uZXh0KHNvcnRMaXN0LmZpbHRlcigoYykgPT4gYy5Jc0dyb3VwZWQpKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfcmFpc2VSb3dDbGljayhpbmRleCwgbW8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgncm93ZGJsY2xpY2snLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgcHJvdGVjdGVkIF9kZXZpY2VTaXplQ2hhbmdlZChfOiBzdHJpbmcpOiB2b2lkIHt9XHJcbiAgICBwcm90ZWN0ZWQgX3dpbmRvd1Jlc2l6ZWQoKTogdm9pZCB7fVxyXG5cclxuICAgIHByb3RlY3RlZCBfb3Blbk1vKG1vLCBpKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmFpc2VSb3dDbGljayhpLCBtbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUdyaWRTZXR0aW5nKHNldHRpbmcsIGlzU29ydCA9IGZhbHNlLCByYWlzZUV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghc2V0dGluZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGV4dC5TZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcgPSBzZXR0aW5nO1xyXG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UubmV4dChzZXR0aW5nKTtcclxuICAgICAgICB0aGlzLmFwcGx5R3JvdXBieSgpO1xyXG4gICAgICAgIGlmIChpc1NvcnQpIHtcclxuICAgICAgICAgICAgc2V0dGluZy5FdmVudCA9ICdTb3J0Q2hhbmdlJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXR0aW5nLkV2ZW50ID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2RldmljZVNpemVDaGFuZ2VkKHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSk7XHJcbiAgICAgICAgaWYgKHJhaXNlRXZlbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmFpc2VFdmVudFVzZXJTZXR0aW5nQ2hhbmdlZChzZXR0aW5nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoZ3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVXNlclNldHRpbmdDaGFuZ2UnLCB0aGlzLmNvbnRleHQsIGdyaWRTZXR0aW5nKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfdWx2Q29tbWFuZENsaWNrZWQobW8sIGluZGV4KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlQ2hlY2tlZEFsbCgpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdChtbywgaW5kZXgpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9jaGVja2VkQWxsKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XHJcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4gKG1vLiRJc0NoZWNrZWQgPSB0cnVlKSk7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93U2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfcmVtb3ZlQ2hlY2tlZEFsbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kZXNlbGN0QWxsKCk7XHJcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93RGVzZWxlY3RBbGwnLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfZGVzZWxjdEFsbCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBtb0RhdGFMaXN0ID0gdGhpcy5tb0RhdGFMaXN0O1xyXG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gZmFsc2UpKTtcclxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZGVzZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd2Rlc2VsZWN0JywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xyXG4gICAgICAgIHJldHVybiBtbztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgICAgICAvLyAgICB0aGlzLl9kZXNlbGN0QWxsKCk7XHJcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93c2VsZWN0JywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xyXG4gICAgICAgIHJldHVybiBtbztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2RvQ2hlY2tlZEFsbChjaGVja2VkKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2hlY2tlZEFsbCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9nZXRTZWxlY3RlZCgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IHRoaXMubW9EYXRhTGlzdC5maW5kKChtbykgPT4gbW8uJElzQ2hlY2tlZCk7XHJcbiAgICAgICAgaWYgKCFzZWxlY3RlZE1vKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZWxlY3RlZE1vLmpzb24gPSBzZWxlY3RlZE1vO1xyXG4gICAgICAgIHJldHVybiBzZWxlY3RlZE1vO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIHJlZnJlc2hDb250ZXh0TW9EYXRhTGlzdChtb0RhdGFMaXN0KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnUmVmcmVzaENvbnRleHRNb0RhdGFMaXN0JywgbW9EYXRhTGlzdCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -14,6 +14,7 @@ export class ReportViewBaseComponent extends BaseComponent {
14
14
  this._portalService = _portalService;
15
15
  this._uploadService = _uploadService;
16
16
  this.rowActivable = true;
17
+ this.escapeKey = new EventEmitter();
17
18
  this.resetWorkflowState = new EventEmitter();
18
19
  this.deselectAll = new EventEmitter();
19
20
  this.editFormPanelCancel = new EventEmitter();
@@ -167,6 +168,9 @@ export class ReportViewBaseComponent extends BaseComponent {
167
168
  onEditFormPanelCancel(mo) {
168
169
  this.editFormPanelCancel.emit(mo);
169
170
  }
171
+ onEscapeKey(mo) {
172
+ this.escapeKey.emit(mo);
173
+ }
170
174
  onEditFormPanelValueChange(mo) {
171
175
  this.editFormPanelValueChange.emit(mo);
172
176
  }
@@ -211,7 +215,7 @@ export class ReportViewBaseComponent extends BaseComponent {
211
215
  _containerWidthChanged(_) { }
212
216
  }
213
217
  ReportViewBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportViewBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.FindColumnByDbNamePipe }, { token: i2.UlvMainService }, { token: i2.PortalService }, { token: i2.UploadService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
214
- ReportViewBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ReportViewBaseComponent, selector: "bnrc-report-view-base", inputs: { contextView: "contextView", viewSetting: "viewSetting", allColumns: "allColumns", isCheckList: "isCheckList", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", allChecked: "allChecked", moDataList: "moDataList", UlvMainCtrlr: "UlvMainCtrlr", access: "access", groupby: "groupby", selectedCount: "selectedCount", conditionalFormats: "conditionalFormats", parentHeight: "parentHeight", deviceName: "deviceName", deviceSize: "deviceSize", contextMenuItems: "contextMenuItems", columns: "columns", allowInlineEdit: "allowInlineEdit", secondaryColumns: "secondaryColumns", popin: "popin", customFieldInfo: "customFieldInfo", hasSummary: "hasSummary", hasSelected: "hasSelected", columnsCount: "columnsCount", hideOpenIcon: "hideOpenIcon", openOnClick: "openOnClick", typeDefId: "typeDefId", reportId: "reportId", listEditViewId: "listEditViewId", typeViewId: "typeViewId", extraRelation: "extraRelation", relationList: "relationList", disableResponsive: "disableResponsive", rowItem: "rowItem", mobileOrTablet: "mobileOrTablet", inDialog: "inDialog", isMultiSelect: "isMultiSelect", fullscreen: "fullscreen", hideSearchpanel: "hideSearchpanel", newInlineEditMo: "newInlineEditMo", selectedMo: "selectedMo", inlineEditMode: "inlineEditMode", onlyInlineEdit: "onlyInlineEdit", rowHoverable: "rowHoverable", tlbButtons: "tlbButtons", formSetting: "formSetting", disableOverflowContextMenu: "disableOverflowContextMenu", rowActivable: "rowActivable", contentDensity: "contentDensity", rtl: "rtl", showOkCancelButtons: "showOkCancelButtons", title: "title", hasInlineDeleteButton: "hasInlineDeleteButton", hasInlineEditButton: "hasInlineEditButton", contextSetting: "contextSetting", gridFreeColumnSizing: "gridFreeColumnSizing", navigationArrow: "navigationArrow", cartableTemplates: "cartableTemplates", cartableChildsMo: "cartableChildsMo", pagingSetting: "pagingSetting", containerWidth: "containerWidth" }, outputs: { resetWorkflowState: "resetWorkflowState", deselectAll: "deselectAll", editFormPanelCancel: "editFormPanelCancel", editFormPanelSave: "editFormPanelSave", selectNextInlineRecord: "selectNextInlineRecord", editFormPanelValueChange: "editFormPanelValueChange", ulvCommandClick: "ulvCommandClick", sortAscending: "sortAscending", workflowShareButtons: "workflowShareButtons", sortDescending: "sortDescending", filter: "filter", executeToolbarButton: "executeToolbarButton", rowCheck: "rowCheck", rowClick: "rowClick", cartableFormClosed: "cartableFormClosed", createNewMo: "createNewMo", updateMo: "updateMo", expandClick: "expandClick", trackBySelectedFn: "trackBySelectedFn", allCheckbox: "allCheckbox", mandatory: "mandatory", columnResized: "columnResized", hasDetailsInRow: "hasDetailsInRow" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
+ ReportViewBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ReportViewBaseComponent, selector: "bnrc-report-view-base", inputs: { contextView: "contextView", viewSetting: "viewSetting", allColumns: "allColumns", isCheckList: "isCheckList", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", allChecked: "allChecked", moDataList: "moDataList", UlvMainCtrlr: "UlvMainCtrlr", access: "access", groupby: "groupby", selectedCount: "selectedCount", conditionalFormats: "conditionalFormats", parentHeight: "parentHeight", deviceName: "deviceName", deviceSize: "deviceSize", contextMenuItems: "contextMenuItems", columns: "columns", allowInlineEdit: "allowInlineEdit", secondaryColumns: "secondaryColumns", popin: "popin", customFieldInfo: "customFieldInfo", hasSummary: "hasSummary", hasSelected: "hasSelected", columnsCount: "columnsCount", hideOpenIcon: "hideOpenIcon", openOnClick: "openOnClick", typeDefId: "typeDefId", reportId: "reportId", listEditViewId: "listEditViewId", typeViewId: "typeViewId", extraRelation: "extraRelation", relationList: "relationList", disableResponsive: "disableResponsive", rowItem: "rowItem", mobileOrTablet: "mobileOrTablet", inDialog: "inDialog", isMultiSelect: "isMultiSelect", fullscreen: "fullscreen", hideSearchpanel: "hideSearchpanel", newInlineEditMo: "newInlineEditMo", selectedMo: "selectedMo", inlineEditMode: "inlineEditMode", onlyInlineEdit: "onlyInlineEdit", rowHoverable: "rowHoverable", tlbButtons: "tlbButtons", formSetting: "formSetting", disableOverflowContextMenu: "disableOverflowContextMenu", rowActivable: "rowActivable", contentDensity: "contentDensity", rtl: "rtl", showOkCancelButtons: "showOkCancelButtons", title: "title", hasInlineDeleteButton: "hasInlineDeleteButton", hasInlineEditButton: "hasInlineEditButton", contextSetting: "contextSetting", gridFreeColumnSizing: "gridFreeColumnSizing", navigationArrow: "navigationArrow", cartableTemplates: "cartableTemplates", cartableChildsMo: "cartableChildsMo", pagingSetting: "pagingSetting", containerWidth: "containerWidth" }, outputs: { escapeKey: "escapeKey", resetWorkflowState: "resetWorkflowState", deselectAll: "deselectAll", editFormPanelCancel: "editFormPanelCancel", editFormPanelSave: "editFormPanelSave", selectNextInlineRecord: "selectNextInlineRecord", editFormPanelValueChange: "editFormPanelValueChange", ulvCommandClick: "ulvCommandClick", sortAscending: "sortAscending", workflowShareButtons: "workflowShareButtons", sortDescending: "sortDescending", filter: "filter", executeToolbarButton: "executeToolbarButton", rowCheck: "rowCheck", rowClick: "rowClick", cartableFormClosed: "cartableFormClosed", createNewMo: "createNewMo", updateMo: "updateMo", expandClick: "expandClick", trackBySelectedFn: "trackBySelectedFn", allCheckbox: "allCheckbox", mandatory: "mandatory", columnResized: "columnResized", hasDetailsInRow: "hasDetailsInRow" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
215
219
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ReportViewBaseComponent, decorators: [{
216
220
  type: Component,
217
221
  args: [{
@@ -343,6 +347,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
343
347
  type: Input
344
348
  }], pagingSetting: [{
345
349
  type: Input
350
+ }], escapeKey: [{
351
+ type: Output
346
352
  }], resetWorkflowState: [{
347
353
  type: Output
348
354
  }], deselectAll: [{
@@ -392,4 +398,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
392
398
  }], containerWidth: [{
393
399
  type: Input
394
400
  }] } });
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUlULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXdCakQsTUFBTSxPQUFPLHVCQUEyRCxTQUFRLGFBQWE7SUFtR3pGLFlBQ2MsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLG1CQUEyQyxFQUMzQyxlQUErQixFQUMvQixjQUE2QixFQUNqQixjQUE4QjtRQUVwRCxLQUFLLEVBQUUsQ0FBQztRQVJFLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ2pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXpEL0MsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFhbkIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDOUQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDNUQsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDakUsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDbkUsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4Qyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUNqRSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFDN0UsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBQ3JELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUN2RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ25ELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDdEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDMUQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFDNUQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBT3hELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHaEIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBSVgsb0JBQWUsR0FBRyxDQUFDLENBQUM7SUFXOUIsQ0FBQztJQXhCRCxJQUFhLGNBQWMsQ0FBQyxHQUFXO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBc0JELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3RFLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFDTyxvQkFBb0I7UUFDeEIsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLElBQUksRUFBRSxjQUFjO2dCQUNwQixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBNkMsRUFBRSxFQUFFO29CQUN2RCxNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO29CQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztvQkFDeEUsSUFBSSxPQUFPLEVBQUU7d0JBQ1IsT0FBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDckM7Z0JBQ0wsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDVCxLQUFLLEVBQUUsUUFBUTtnQkFDZixVQUFVLEVBQUUsS0FBSztnQkFDakIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxDQUE2QyxFQUFFLEVBQUU7b0JBQ3ZELE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDO29CQUM1RSxJQUFJLFNBQVMsRUFBRTt3QkFDVixTQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDekM7Z0JBQ0wsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUMzQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFlBQVksRUFBRSxJQUFJO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxDQUE2QyxFQUFFLEVBQUU7b0JBQ3ZELE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7YUFDSixDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUNELGFBQWE7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQ3BCLDhCQUE4QjtRQUM5QixxQkFBcUI7UUFDckIsK0JBQStCO1FBQy9CLHlDQUF5QztRQUN6QyxNQUFNO1FBQ04sVUFBVTtRQUNWLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxDQUF3QjtRQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxZQUFZLENBQUMsQ0FBZ0M7UUFDekMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtRQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELGFBQWEsQ0FBQyxFQUF1QjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELGVBQWU7UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsRUFBRTtRQUN2QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxFQUFFO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELHFCQUFxQixDQUFDLEVBQXVCO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELDBCQUEwQixDQUFDLEVBQXVCO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUU7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLE1BQU07UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELGdCQUFnQixDQUFDLE1BQU07UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELHdCQUF3QixDQUFDLENBQWdDLEVBQUUsRUFBdUIsRUFBRSxLQUFhO1FBQzdGLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNiLEtBQUssVUFBVTtnQkFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxZQUFZO2dCQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDakMsTUFBTTtTQUNiO0lBQ0wsQ0FBQztJQUNELGFBQWE7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELGNBQWMsQ0FBQyxLQUFhLEVBQUUsTUFBd0I7UUFDbEQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFhLEVBQUUsR0FBd0I7UUFDL0MsT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUNELDZEQUE2RDtJQUNuRCxzQkFBc0IsQ0FBQyxDQUFTLElBQVMsQ0FBQzs7b0hBalIzQyx1QkFBdUI7d0dBQXZCLHVCQUF1QixveEZBSHRCLEVBQUU7MkZBR0gsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7MEJBMkdRLFFBQVE7NENBekdKLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ00sY0FBYztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHkgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XHJcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UsIFVsdk1haW5TZXJ2aWNlLCBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxyXG4gICAgY29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3MsXHJcbiAgICBEZWZhdWx0Q29tbWFuZHNBY2Nlc3MsXHJcbiAgICBEZXZpY2VTaXplLFxyXG4gICAgRm9ybVNldHRpbmcsXHJcbiAgICBNZXRhb2JqZWN0RGF0YU1vZGVsLFxyXG4gICAgUmVsYXRpb25JdGVtVHlwZSxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXHJcbiAgICBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyxcclxuICAgIFNoYXJlQnV0dG9uc0Nob2ljZURlZixcclxuICAgIFR5cGVVbHZNYWluQ3RybHIsXHJcbiAgICBQYWdpbmdTZXR0aW5nLFxyXG4gICAgTWVudUl0ZW1cclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYm5yYy1yZXBvcnQtdmlldy1iYXNlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmc+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBjb250ZXh0VmlldzogYW55O1xyXG4gICAgQElucHV0KCkgdmlld1NldHRpbmc6IFQ7XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBhbnk7XHJcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdG9vbGJhckJ1dHRvbnM6IE1lbnVJdGVtW107XHJcbiAgICBASW5wdXQoKSBhbGxDaGVja2VkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbW9EYXRhTGlzdDogYW55O1xyXG4gICAgQElucHV0KCkgVWx2TWFpbkN0cmxyOiBUeXBlVWx2TWFpbkN0cmxyO1xyXG4gICAgQElucHV0KCkgYWNjZXNzOiBEZWZhdWx0Q29tbWFuZHNBY2Nlc3M7XHJcbiAgICBASW5wdXQoKSBncm91cGJ5OiBhbnk7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZENvdW50OiBhbnk7XHJcbiAgICBASW5wdXQoKSBjb25kaXRpb25hbEZvcm1hdHM6IGFueTtcclxuICAgIEBJbnB1dCgpIHBhcmVudEhlaWdodDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51SXRlbXM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgY29sdW1uczogYW55O1xyXG4gICAgQElucHV0KCkgYWxsb3dJbmxpbmVFZGl0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBzZWNvbmRhcnlDb2x1bW5zOiBhbnk7XHJcbiAgICBASW5wdXQoKSBwb3BpbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUZpZWxkSW5mbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IGFueTtcclxuICAgIEBJbnB1dCgpIGhhc1N1bW1hcnk6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoYXNTZWxlY3RlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbHVtbnNDb3VudDogYW55O1xyXG4gICAgQElucHV0KCkgaGlkZU9wZW5JY29uOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgb3Blbk9uQ2xpY2s6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0eXBlRGVmSWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlcG9ydElkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBsaXN0RWRpdFZpZXdJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdHlwZVZpZXdJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZXh0cmFSZWxhdGlvbjogYW55O1xyXG4gICAgQElucHV0KCkgcmVsYXRpb25MaXN0OiBBcnJheTxSZWxhdGlvbkl0ZW1UeXBlPjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVSZXNwb25zaXZlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcm93SXRlbTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIG1vYmlsZU9yVGFibGV0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaW5EaWFsb2c6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhpZGVTZWFyY2hwYW5lbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG5ld0lubGluZUVkaXRNbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBzZWxlY3RlZE1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgaW5saW5lRWRpdE1vZGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBvbmx5SW5saW5lRWRpdDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJvd0hvdmVyYWJsZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHRsYkJ1dHRvbnM6IGFueVtdO1xyXG4gICAgQElucHV0KCkgZm9ybVNldHRpbmc6IEZvcm1TZXR0aW5nO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByb3dBY3RpdmFibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xyXG4gICAgQElucHV0KCkgcnRsO1xyXG4gICAgQElucHV0KCkgc2hvd09rQ2FuY2VsQnV0dG9ucztcclxuICAgIEBJbnB1dCgpIHRpdGxlO1xyXG4gICAgQElucHV0KCkgaGFzSW5saW5lRGVsZXRlQnV0dG9uOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGFzSW5saW5lRWRpdEJ1dHRvbjogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNvbnRleHRTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgZ3JpZEZyZWVDb2x1bW5TaXppbmc6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBuYXZpZ2F0aW9uQXJyb3c6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNhcnRhYmxlVGVtcGxhdGVzOiB7IFtrZXk6IHN0cmluZ106IEZvcm1TZXR0aW5nIH07XHJcbiAgICBASW5wdXQoKSBjYXJ0YWJsZUNoaWxkc01vOiB7IFtrZXk6IHN0cmluZ106IE1ldGFvYmplY3REYXRhTW9kZWwgfTtcclxuICAgIEBJbnB1dCgpIHBhZ2luZ1NldHRpbmc6IFBhZ2luZ1NldHRpbmc7XHJcbiAgICBAT3V0cHV0KCkgcmVzZXRXb3JrZmxvd1N0YXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGRlc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRGb3JtUGFuZWxDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdEZvcm1QYW5lbFNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0TmV4dElubGluZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSBlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgdWx2Q29tbWFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHdvcmtmbG93U2hhcmVCdXR0b25zID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZUJ1dHRvbnNDaG9pY2VEZWY+KCk7XHJcbiAgICBAT3V0cHV0KCkgc29ydERlc2NlbmRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBleGVjdXRlVG9vbGJhckJ1dHRvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtSWQ6IHN0cmluZzsgb3B0aW9ucz86IGFueSB9PigpO1xyXG4gICAgQE91dHB1dCgpIHJvd0NoZWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleDsgY2F1c2U/IH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW87IGluZGV4IH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgY2FydGFibGVGb3JtQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleCB9PigpO1xyXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld01vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHVwZGF0ZU1vID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIGV4cGFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIHRyYWNrQnlTZWxlY3RlZEZuID0gbmV3IEV2ZW50RW1pdHRlcjx7IGluZGV4OyByZWNvcmQgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBhbGxDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgIEBPdXRwdXQoKSBtYW5kYXRvcnkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBAT3V0cHV0KCkgY29sdW1uUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8Y29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3M+KCk7XHJcbiAgICBAT3V0cHV0KCkgaGFzRGV0YWlsc0luUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQElucHV0KCkgc2V0IGNvbnRhaW5lcldpZHRoKHZhbDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGggPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGhDaGFuZ2VkKHZhbCk7XHJcbiAgICB9XHJcbiAgICByZXNpemVkQnlVc2VyOiBib29sZWFuO1xyXG4gICAgZWxXaWR0aDogbnVtYmVyO1xyXG4gICAgY2FuVmlldyA9IGZhbHNlO1xyXG4gICAgZml0V2lkdGg6IGJvb2xlYW47XHJcbiAgICBmaXJzdFNlbGVjdGVkTWV0YW9iamVjdDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIGNvbnRleHRNZW51V2lkdGggPSAwO1xyXG4gICAgZmllbGREaWN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gICAgYWN0aW9uTGlzdDogYW55W107XHJcbiAgICBwcml2YXRlIF9zaW5nbGVDbGlja2VkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aCA9IDA7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZmluZENvbHVtbkJ5RGJOYW1lOiBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX3VwbG9hZFNlcnZpY2U/OiBVcGxvYWRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgZ2V0IHNob3dWaWV3QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhblZpZXcgJiYgIXRoaXMuaW5saW5lRWRpdE1vZGUgJiYgIXRoaXMuaGlkZU9wZW5JY29uO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBpZiAodGhpcy5hY2Nlc3MuVmlldyAmJiAhdGhpcy5zaG93T2tDYW5jZWxCdXR0b25zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuVmlldyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdCA9IHRoaXMuX2NyZWF0ZUFjdGlvbkJ1dHRvbnMoKTtcclxuICAgICAgICB0aGlzLmVsV2lkdGggPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgIHRoaXMuZml0V2lkdGggPSB0aGlzLnZpZXdTZXR0aW5nPy5GaXRXaWR0aCA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkRGljdCA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoYykgPT4gKGZpZWxkRGljdFtjLkNhcHRpb25dID0gYy5OYW1lKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGREaWN0ID0gZmllbGREaWN0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NyZWF0ZUFjdGlvbkJ1dHRvbnMoKTogYW55W10ge1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbnM6IGFueVtdID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5saW5lRWRpdEJ1dHRvbikge1xyXG4gICAgICAgICAgICBidXR0b25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg6ICdlZGl0JyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXHJcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRCdG4gPSB0aGlzLnRvb2xiYXJCdXR0b25zLmZpbmQoKHRiKSA9PiB0Yj8uaXRlbUlkID09PSAnRWRpdCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0QnRuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0QnRuIGFzIGFueSkuaGFuZGxlcihlZGl0QnRuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5oYXNJbmxpbmVEZWxldGVCdXR0b24pIHtcclxuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGdseXBoOiAnZGVsZXRlJyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXHJcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUJ0biA9IHRoaXMudG9vbGJhckJ1dHRvbnMuZmluZCgodGIpID0+IHRiPy5pdGVtSWQgPT09ICdEZWxldGUnKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlQnRuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVCdG4gYXMgYW55KS5oYW5kbGVyKGRlbGV0ZUJ0bik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd1ZpZXdCdXR0b24pIHtcclxuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGdseXBoOiB0aGlzLm5hdmlnYXRpb25BcnJvdyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcclxuICAgICAgICAgICAgICAgIGNsb3NlT25DbGljazogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IChlOiB7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBpbmRleDogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1vLCBpbmRleCB9ID0gZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2xpY2soeyBtbywgaW5kZXggfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnV0dG9ucztcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBsZXQgZGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGRldGVjdENoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25EZXNlbGVjdEFsbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsLmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuX3NpbmdsZUNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKHRoaXMuX3NpbmdsZUNsaWNrZWQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0sIDMwKTtcclxuICAgICAgICAvLyB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXgsIGNhdXNlIH0pO1xyXG4gICAgICAgIHRoaXMucm93Q2hlY2suZW1pdCh7IG1vLCBpbmRleCB9KTtcclxuICAgIH1cclxuICAgIG9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoZTogU2hhcmVCdXR0b25zQ2hvaWNlRGVmKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NoYXJlQnV0dG9ucy5lbWl0KGUpO1xyXG4gICAgfVxyXG4gICAgb25PbGdvRXZlbnRzKGU6IHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpc1tlLnRpdGxlXS5lbWl0KGUuZGF0YSk7XHJcbiAgICB9XHJcbiAgICBvblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zaW5nbGVDbGlja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHsgbW8sIGluZGV4IH0pO1xyXG4gICAgfVxyXG4gICAgb25DYXJ0YWJsZUZvcm1DbG9zZWQoeyBtbywgaW5kZXggfSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FydGFibGVGb3JtQ2xvc2VkLmVtaXQoeyBtbywgaW5kZXggfSk7XHJcbiAgICB9XHJcbiAgICBvbkV4cGFuZENsaWNrKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRDbGljay5lbWl0KG1vKTtcclxuICAgIH1cclxuICAgIG9uQWxsQ2hlY2tib3goY2hlY2tlZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcclxuICAgIH1cclxuICAgIG9uQ2xlYXJDaGVja2JveCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFsbENoZWNrYm94LmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3ROZXh0SW5saW5lUmVjb3JkKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3ROZXh0SW5saW5lUmVjb3JkLmVtaXQobW8pO1xyXG4gICAgfVxyXG4gICAgb25FZGl0Rm9ybVBhbmVsU2F2ZShtbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFNhdmUuZW1pdChtbyk7XHJcbiAgICB9XHJcbiAgICBvbkVkaXRGb3JtUGFuZWxDYW5jZWwobW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdChtbyk7XHJcbiAgICB9XHJcbiAgICBvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZShtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlLmVtaXQobW8pO1xyXG4gICAgfVxyXG4gICAgb25VbHZDb21tYW5kKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVsdkNvbW1hbmRDbGljay5lbWl0KHsgbW8sIGluZGV4IH0pO1xyXG4gICAgfVxyXG4gICAgb25Tb3J0QXNjZW5kaW5nKGNvbHVtbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc29ydEFzY2VuZGluZy5lbWl0KGNvbHVtbik7XHJcbiAgICB9XHJcbiAgICBvblNvcnREZXNjZW5kaW5nKGNvbHVtbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc29ydERlc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xyXG4gICAgfVxyXG4gICAgb25GaWx0ZXIoY29sdW1uKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXIuZW1pdChjb2x1bW4pO1xyXG4gICAgfVxyXG4gICAgb25EeW5hbWljQ29tcG9uZW50RXZlbnRzKGU6IHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHN3aXRjaCAoZS50aXRsZSkge1xyXG4gICAgICAgICAgICBjYXNlICdyb3dDaGVjayc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAncm93Q2xpY2snOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5vblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3VsdkNvbW1hbmQnOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5vblVsdkNvbW1hbmQoeyBtbywgaW5kZXggfSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBfdHJhY2tCeVNlbGVjdGVkRm4oaW5kZXgsIHJlY29yZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhY2tCeVNlbGVjdGVkRm4/LmVtaXQoeyBpbmRleCwgcmVjb3JkIH0pO1xyXG4gICAgfVxyXG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7Y29sdW1uLk5hbWV9JHtpbmRleH1gO1xyXG4gICAgfVxyXG4gICAgX3RyYWNrQnlSb3coaW5kZXg6IG51bWJlciwgcm93OiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7cm93LiRHcm91cCA/IHJvdy4kR3JvdXAgOiByb3cuSWR9JHtpbmRleH1gO1xyXG4gICAgfVxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aENoYW5nZWQoXzogbnVtYmVyKTogdm9pZCB7fVxyXG59XHJcbiJdfQ==
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUlULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXdCakQsTUFBTSxPQUFPLHVCQUEyRCxTQUFRLGFBQWE7SUFvR3pGLFlBQ2MsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLG1CQUEyQyxFQUMzQyxlQUErQixFQUMvQixjQUE2QixFQUNqQixjQUE4QjtRQUVwRCxLQUFLLEVBQUUsQ0FBQztRQVJFLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ2pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQTFEL0MsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFhbkIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3BELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQzlELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FB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Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDTSxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmluZENvbHVtbkJ5RGJOYW1lUGlwZSB9IGZyb20gJy4uL3BpcGVzJztcclxuaW1wb3J0IHsgUG9ydGFsU2VydmljZSwgVWx2TWFpblNlcnZpY2UsIFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyxcclxuICAgIERlZmF1bHRDb21tYW5kc0FjY2VzcyxcclxuICAgIERldmljZVNpemUsXHJcbiAgICBGb3JtU2V0dGluZyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBSZWxhdGlvbkl0ZW1UeXBlLFxyXG4gICAgUmVwb3J0Vmlld0NvbHVtbixcclxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxyXG4gICAgU2hhcmVCdXR0b25zQ2hvaWNlRGVmLFxyXG4gICAgVHlwZVVsdk1haW5DdHJscixcclxuICAgIFBhZ2luZ1NldHRpbmcsXHJcbiAgICBNZW51SXRlbVxyXG59IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLXJlcG9ydC12aWV3LWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGNvbnRleHRWaWV3OiBhbnk7XHJcbiAgICBASW5wdXQoKSB2aWV3U2V0dGluZzogVDtcclxuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IGFueTtcclxuICAgIEBJbnB1dCgpIGlzQ2hlY2tMaXN0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVRvb2xiYXI6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSB0b29sYmFyQnV0dG9uczogTWVudUl0ZW1bXTtcclxuICAgIEBJbnB1dCgpIGFsbENoZWNrZWQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBVbHZNYWluQ3RybHI6IFR5cGVVbHZNYWluQ3RybHI7XHJcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcclxuICAgIEBJbnB1dCgpIGdyb3VwYnk6IGFueTtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkQ291bnQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbmRpdGlvbmFsRm9ybWF0czogYW55O1xyXG4gICAgQElucHV0KCkgcGFyZW50SGVpZ2h0OiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBkZXZpY2VOYW1lOiBEZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgQElucHV0KCkgY29udGV4dE1lbnVJdGVtczogYW55W107XHJcbiAgICBASW5wdXQoKSBjb2x1bW5zOiBhbnk7XHJcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGFueTtcclxuICAgIEBJbnB1dCgpIHNlY29uZGFyeUNvbHVtbnM6IGFueTtcclxuICAgIEBJbnB1dCgpIHBvcGluOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRJbmZvOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgYW55O1xyXG4gICAgQElucHV0KCkgaGFzU3VtbWFyeTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGhhc1NlbGVjdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29sdW1uc0NvdW50OiBhbnk7XHJcbiAgICBASW5wdXQoKSBoaWRlT3Blbkljb246IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBvcGVuT25DbGljazogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcmVwb3J0SWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGxpc3RFZGl0Vmlld0lkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB0eXBlVmlld0lkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBleHRyYVJlbGF0aW9uOiBhbnk7XHJcbiAgICBASW5wdXQoKSByZWxhdGlvbkxpc3Q6IEFycmF5PFJlbGF0aW9uSXRlbVR5cGU+O1xyXG4gICAgQElucHV0KCkgZGlzYWJsZVJlc3BvbnNpdmU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSByb3dJdGVtOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgbW9iaWxlT3JUYWJsZXQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBmdWxsc2NyZWVuOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaGlkZVNlYXJjaHBhbmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgbmV3SW5saW5lRWRpdE1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbDtcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG9ubHlJbmxpbmVFZGl0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcm93SG92ZXJhYmxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgdGxiQnV0dG9uczogYW55W107XHJcbiAgICBASW5wdXQoKSBmb3JtU2V0dGluZzogRm9ybVNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHJvd0FjdGl2YWJsZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHk7XHJcbiAgICBASW5wdXQoKSBydGw7XHJcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xyXG4gICAgQElucHV0KCkgdGl0bGU7XHJcbiAgICBASW5wdXQoKSBoYXNJbmxpbmVEZWxldGVCdXR0b246IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBoYXNJbmxpbmVFZGl0QnV0dG9uOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY29udGV4dFNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBncmlkRnJlZUNvbHVtblNpemluZzogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG5hdmlnYXRpb25BcnJvdzogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY2FydGFibGVUZW1wbGF0ZXM6IHsgW2tleTogc3RyaW5nXTogRm9ybVNldHRpbmcgfTtcclxuICAgIEBJbnB1dCgpIGNhcnRhYmxlQ2hpbGRzTW86IHsgW2tleTogc3RyaW5nXTogTWV0YW9iamVjdERhdGFNb2RlbCB9O1xyXG4gICAgQElucHV0KCkgcGFnaW5nU2V0dGluZzogUGFnaW5nU2V0dGluZztcclxuICAgIEBPdXRwdXQoKSBlc2NhcGVLZXkgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVzZXRXb3JrZmxvd1N0YXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGRlc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGVkaXRGb3JtUGFuZWxDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdEZvcm1QYW5lbFNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VsZWN0TmV4dElubGluZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSBlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XHJcbiAgICBAT3V0cHV0KCkgdWx2Q29tbWFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHdvcmtmbG93U2hhcmVCdXR0b25zID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZUJ1dHRvbnNDaG9pY2VEZWY+KCk7XHJcbiAgICBAT3V0cHV0KCkgc29ydERlc2NlbmRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBleGVjdXRlVG9vbGJhckJ1dHRvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtSWQ6IHN0cmluZzsgb3B0aW9ucz86IGFueSB9PigpO1xyXG4gICAgQE91dHB1dCgpIHJvd0NoZWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleDsgY2F1c2U/IH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW87IGluZGV4IH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgY2FydGFibGVGb3JtQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleCB9PigpO1xyXG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld01vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHVwZGF0ZU1vID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIGV4cGFuZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xyXG4gICAgQE91dHB1dCgpIHRyYWNrQnlTZWxlY3RlZEZuID0gbmV3IEV2ZW50RW1pdHRlcjx7IGluZGV4OyByZWNvcmQgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBhbGxDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgIEBPdXRwdXQoKSBtYW5kYXRvcnkgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBAT3V0cHV0KCkgY29sdW1uUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8Y29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3M+KCk7XHJcbiAgICBAT3V0cHV0KCkgaGFzRGV0YWlsc0luUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQElucHV0KCkgc2V0IGNvbnRhaW5lcldpZHRoKHZhbDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGggPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGhDaGFuZ2VkKHZhbCk7XHJcbiAgICB9XHJcbiAgICByZXNpemVkQnlVc2VyOiBib29sZWFuO1xyXG4gICAgZWxXaWR0aDogbnVtYmVyO1xyXG4gICAgY2FuVmlldyA9IGZhbHNlO1xyXG4gICAgZml0V2lkdGg6IGJvb2xlYW47XHJcbiAgICBmaXJzdFNlbGVjdGVkTWV0YW9iamVjdDogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIGNvbnRleHRNZW51V2lkdGggPSAwO1xyXG4gICAgZmllbGREaWN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gICAgYWN0aW9uTGlzdDogYW55W107XHJcbiAgICBwcml2YXRlIF9zaW5nbGVDbGlja2VkOiBib29sZWFuO1xyXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aCA9IDA7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByb3RlY3RlZCBfZmluZENvbHVtbkJ5RGJOYW1lOiBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX3VwbG9hZFNlcnZpY2U/OiBVcGxvYWRTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgZ2V0IHNob3dWaWV3QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhblZpZXcgJiYgIXRoaXMuaW5saW5lRWRpdE1vZGUgJiYgIXRoaXMuaGlkZU9wZW5JY29uO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBpZiAodGhpcy5hY2Nlc3MuVmlldyAmJiAhdGhpcy5zaG93T2tDYW5jZWxCdXR0b25zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuVmlldyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdCA9IHRoaXMuX2NyZWF0ZUFjdGlvbkJ1dHRvbnMoKTtcclxuICAgICAgICB0aGlzLmVsV2lkdGggPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgIHRoaXMuZml0V2lkdGggPSB0aGlzLnZpZXdTZXR0aW5nPy5GaXRXaWR0aCA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkRGljdCA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoYykgPT4gKGZpZWxkRGljdFtjLkNhcHRpb25dID0gYy5OYW1lKSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGREaWN0ID0gZmllbGREaWN0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX2NyZWF0ZUFjdGlvbkJ1dHRvbnMoKTogYW55W10ge1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbnM6IGFueVtdID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5saW5lRWRpdEJ1dHRvbikge1xyXG4gICAgICAgICAgICBidXR0b25zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg6ICdlZGl0JyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXHJcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRCdG4gPSB0aGlzLnRvb2xiYXJCdXR0b25zLmZpbmQoKHRiKSA9PiB0Yj8uaXRlbUlkID09PSAnRWRpdCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0QnRuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0QnRuIGFzIGFueSkuaGFuZGxlcihlZGl0QnRuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5oYXNJbmxpbmVEZWxldGVCdXR0b24pIHtcclxuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGdseXBoOiAnZGVsZXRlJyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXHJcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbGV0ZUJ0biA9IHRoaXMudG9vbGJhckJ1dHRvbnMuZmluZCgodGIpID0+IHRiPy5pdGVtSWQgPT09ICdEZWxldGUnKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlQnRuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVCdG4gYXMgYW55KS5oYW5kbGVyKGRlbGV0ZUJ0bik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2hvd1ZpZXdCdXR0b24pIHtcclxuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGdseXBoOiB0aGlzLm5hdmlnYXRpb25BcnJvdyxcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXHJcbiAgICAgICAgICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcclxuICAgICAgICAgICAgICAgIGNsb3NlT25DbGljazogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IChlOiB7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBpbmRleDogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1vLCBpbmRleCB9ID0gZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2xpY2soeyBtbywgaW5kZXggfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnV0dG9ucztcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBsZXQgZGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIGRldGVjdENoYW5nZXMgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGRldGVjdENoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25EZXNlbGVjdEFsbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsLmVtaXQoKTtcclxuICAgIH1cclxuICAgIG9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuX3NpbmdsZUNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIC8vICAgaWYgKHRoaXMuX3NpbmdsZUNsaWNrZWQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgIC8vICAgfVxyXG4gICAgICAgIC8vIH0sIDMwKTtcclxuICAgICAgICAvLyB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXgsIGNhdXNlIH0pO1xyXG4gICAgICAgIHRoaXMucm93Q2hlY2suZW1pdCh7IG1vLCBpbmRleCB9KTtcclxuICAgIH1cclxuICAgIG9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoZTogU2hhcmVCdXR0b25zQ2hvaWNlRGVmKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NoYXJlQnV0dG9ucy5lbWl0KGUpO1xyXG4gICAgfVxyXG4gICAgb25PbGdvRXZlbnRzKGU6IHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpc1tlLnRpdGxlXS5lbWl0KGUuZGF0YSk7XHJcbiAgICB9XHJcbiAgICBvblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zaW5nbGVDbGlja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHsgbW8sIGluZGV4IH0pO1xyXG4gICAgfVxyXG4gICAgb25DYXJ0YWJsZUZvcm1DbG9zZWQoeyBtbywgaW5kZXggfSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2FydGFibGVGb3JtQ2xvc2VkLmVtaXQoeyBtbywgaW5kZXggfSk7XHJcbiAgICB9XHJcbiAgICBvbkV4cGFuZENsaWNrKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRDbGljay5lbWl0KG1vKTtcclxuICAgIH1cclxuICAgIG9uQWxsQ2hlY2tib3goY2hlY2tlZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcclxuICAgIH1cclxuICAgIG9uQ2xlYXJDaGVja2JveCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFsbENoZWNrYm94LmVtaXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3ROZXh0SW5saW5lUmVjb3JkKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3ROZXh0SW5saW5lUmVjb3JkLmVtaXQobW8pO1xyXG4gICAgfVxyXG4gICAgb25FZGl0Rm9ybVBhbmVsU2F2ZShtbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFNhdmUuZW1pdChtbyk7XHJcbiAgICB9XHJcbiAgICBvbkVkaXRGb3JtUGFuZWxDYW5jZWwobW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdChtbyk7XHJcbiAgICB9XHJcbiAgICBvbkVzY2FwZUtleShtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXNjYXBlS2V5LmVtaXQobW8pO1xyXG4gICAgfVxyXG4gICAgb25FZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UobW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZS5lbWl0KG1vKTtcclxuICAgIH1cclxuICAgIG9uVWx2Q29tbWFuZCh7IG1vLCBpbmRleCB9KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51bHZDb21tYW5kQ2xpY2suZW1pdCh7IG1vLCBpbmRleCB9KTtcclxuICAgIH1cclxuICAgIG9uU29ydEFzY2VuZGluZyhjb2x1bW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnRBc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xyXG4gICAgfVxyXG4gICAgb25Tb3J0RGVzY2VuZGluZyhjb2x1bW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNvcnREZXNjZW5kaW5nLmVtaXQoY29sdW1uKTtcclxuICAgIH1cclxuICAgIG9uRmlsdGVyKGNvbHVtbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcclxuICAgIH1cclxuICAgIG9uRHluYW1pY0NvbXBvbmVudEV2ZW50cyhlOiB7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcclxuICAgICAgICAgICAgY2FzZSAncm93Q2hlY2snOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NsaWNrJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub25Sb3dDbGljayh7IG1vLCBpbmRleCB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd1bHZDb21tYW5kJzpcclxuICAgICAgICAgICAgICAgIHRoaXMub25VbHZDb21tYW5kKHsgbW8sIGluZGV4IH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgX3RyYWNrQnlTZWxlY3RlZEZuKGluZGV4LCByZWNvcmQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyYWNrQnlTZWxlY3RlZEZuPy5lbWl0KHsgaW5kZXgsIHJlY29yZCB9KTtcclxuICAgIH1cclxuICAgIF90cmFja0J5Q29sdW1uKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcclxuICAgIH1cclxuICAgIF90cmFja0J5Um93KGluZGV4OiBudW1iZXIsIHJvdzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAke3Jvdy4kR3JvdXAgPyByb3cuJEdyb3VwIDogcm93LklkfSR7aW5kZXh9YDtcclxuICAgIH1cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICAgIHByb3RlY3RlZCBfY29udGFpbmVyV2lkdGhDaGFuZ2VkKF86IG51bWJlcik6IHZvaWQge31cclxufVxyXG4iXX0=