@handsontable/angular 11.1.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@handsontable/angular/lib/hot-table-registerer.service.ts","ng://@handsontable/angular/lib/hot-settings-resolver.service.ts","ng://@handsontable/angular/lib/hot-table.component.ts","ng://@handsontable/angular/lib/hot-column.component.ts","ng://@handsontable/angular/lib/hot-table.module.ts"],"names":["instances","Map","HOT_DESTROYED_WARNING","HotTableRegisterer","prototype","getInstance","id","hotInstance","get","isDestroyed","console","warn","registerInstance","instance","set","removeInstance","delete","Injectable","AVAILABLE_OPTIONS","Object","keys","Handsontable","DefaultSettings","AVAILABLE_HOOKS","hooks","getRegistered","HotSettingsResolver","mergeSettings","component","isSettingsObject","mergedSettings","concat","forEach","key","option","isHook","indexOf","_this","this","args","_i","arguments","length","_ngZone","run","apply","prepareChanges","changes","result","param","hasOwnProperty","currentValue","HotTableComponent","_hotTableRegisterer","_hotSettingsResolver","__hotInstance","columnsComponents","hotId","defineProperty","ngAfterViewInit","options","columns_1","column","push","runOutsideAngular","Core","container","nativeElement","init","ngOnChanges","newOptions","updateHotTable","ngOnDestroy","destroy","newSettings","updateSettings","onAfterColumnsChange","columns_2","columns","onAfterColumnsNumberChange","addColumn","removeColumn","index","splice","Component","selector","template","encapsulation","ViewEncapsulation","None","providers","NgZone","ViewChild","static","Input","HotColumnComponent","parentComponent","firstRun","ngOnInit","HotTableModule","forRoot","ngModule","version","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst instances = new Map<string, Handsontable>();\n\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n@Injectable()\nexport class HotTableRegisterer {\n public getInstance(id: string): Handsontable {\n const hotInstance = instances.get(id);\n\n if (hotInstance.isDestroyed) {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n\n return hotInstance;\n }\n\n public registerInstance(id: string, instance: Handsontable): Map<string, Handsontable> {\n return instances.set(id, instance);\n }\n\n public removeInstance(id: string): boolean {\n return instances.delete(id);\n }\n}\n","import { Injectable, SimpleChanges } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings);\nconst AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered();\n\n@Injectable()\nexport class HotSettingsResolver {\n mergeSettings(component): object {\n const isSettingsObject = typeof component['settings'] === 'object';\n const mergedSettings: Handsontable.GridSettings = isSettingsObject ? component['settings'] : {};\n const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);\n\n options.forEach(key => {\n const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;\n let option;\n\n if (isSettingsObject && isHook) {\n option = component['settings'][key];\n }\n\n if (component[key] !== void 0) {\n option = component[key];\n }\n\n if (option === void 0) {\n return;\n\n } else if (typeof option === 'function' && isHook) {\n mergedSettings[key] = function(...args) {\n return component._ngZone.run(() => {\n return option.apply(this, args);\n });\n };\n\n } else {\n mergedSettings[key] = option;\n }\n });\n\n return mergedSettings;\n }\n\n prepareChanges(changes: SimpleChanges): Handsontable.GridSettings {\n const result: Handsontable.GridSettings = {};\n const parameters: string[] = Object.keys(changes);\n\n parameters.forEach((param) => {\n if (changes.hasOwnProperty(param)) {\n result[param] = changes[param].currentValue;\n }\n });\n\n return result;\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport Handsontable from 'handsontable/base';\nimport {\n HotTableRegisterer,\n HOT_DESTROYED_WARNING\n} from './hot-table-registerer.service';\nimport { HotSettingsResolver } from './hot-settings-resolver.service';\nimport { HotColumnComponent } from './hot-column.component';\n\n@Component({\n selector: 'hot-table',\n template: '<div #container [id]=\"hotId\"></div>',\n encapsulation: ViewEncapsulation.None,\n providers: [ HotTableRegisterer, HotSettingsResolver ],\n})\nexport class HotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n @ViewChild('container', { static: false }) public container;\n\n private __hotInstance: Handsontable = null;\n private columnsComponents: HotColumnComponent[] = [];\n // component inputs\n @Input() settings: Handsontable.GridSettings;\n @Input() hotId = '';\n // handsontable options\n @Input() activeHeaderClassName: Handsontable.GridSettings['activeHeaderClassName'];\n @Input() allowEmpty: Handsontable.GridSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.GridSettings['allowHtml'];\n @Input() allowInsertColumn: Handsontable.GridSettings['allowInsertColumn'];\n @Input() allowInsertRow: Handsontable.GridSettings['allowInsertRow'];\n @Input() allowInvalid: Handsontable.GridSettings['allowInvalid'];\n @Input() allowRemoveColumn: Handsontable.GridSettings['allowRemoveColumn'];\n @Input() allowRemoveRow: Handsontable.GridSettings['allowRemoveRow'];\n @Input() autoColumnSize: Handsontable.GridSettings['autoColumnSize'];\n @Input() autoRowSize: Handsontable.GridSettings['autoRowSize'];\n @Input() autoWrapCol: Handsontable.GridSettings['autoWrapCol'];\n @Input() autoWrapRow: Handsontable.GridSettings['autoWrapRow'];\n @Input() bindRowsWithHeaders: Handsontable.GridSettings['bindRowsWithHeaders'];\n @Input() cell: Handsontable.GridSettings['cell'];\n @Input() cells: Handsontable.GridSettings['cells'];\n @Input() checkedTemplate: Handsontable.GridSettings['checkedTemplate'];\n @Input() className: Handsontable.GridSettings['className'];\n @Input() colHeaders: Handsontable.GridSettings['colHeaders'];\n @Input() collapsibleColumns: Handsontable.GridSettings['collapsibleColumns'];\n @Input() columnHeaderHeight: Handsontable.GridSettings['columnHeaderHeight'];\n @Input() columns: Handsontable.GridSettings['columns'];\n @Input() columnSorting: Handsontable.GridSettings['columnSorting'];\n @Input() columnSummary: Handsontable.GridSettings['columnSummary'];\n @Input() colWidths: Handsontable.GridSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.GridSettings['commentedCellClassName'];\n @Input() comments: Handsontable.GridSettings['comments'];\n @Input() contextMenu: Handsontable.GridSettings['contextMenu'];\n @Input() copyable: Handsontable.GridSettings['copyable'];\n @Input() copyPaste: Handsontable.GridSettings['copyPaste'];\n @Input() correctFormat: Handsontable.GridSettings['correctFormat'];\n @Input() currentColClassName: Handsontable.GridSettings['currentColClassName'];\n @Input() currentHeaderClassName: Handsontable.GridSettings['currentHeaderClassName'];\n @Input() currentRowClassName: Handsontable.GridSettings['currentRowClassName'];\n @Input() customBorders: Handsontable.GridSettings['customBorders'];\n @Input() data: Handsontable.GridSettings['data'];\n @Input() dataSchema: Handsontable.GridSettings['dataSchema'];\n @Input() dateFormat: Handsontable.GridSettings['dateFormat'];\n @Input() defaultDate: Handsontable.GridSettings['defaultDate'];\n @Input() disableVisualSelection: Handsontable.GridSettings['disableVisualSelection'];\n @Input() dragToScroll: Handsontable.GridSettings['dragToScroll'];\n @Input() dropdownMenu: Handsontable.GridSettings['dropdownMenu'];\n @Input() editor: Handsontable.GridSettings['editor'];\n @Input() enterBeginsEditing: Handsontable.GridSettings['enterBeginsEditing'];\n @Input() enterMoves: Handsontable.GridSettings['enterMoves'];\n @Input() fillHandle: Handsontable.GridSettings['fillHandle'];\n @Input() filter: Handsontable.GridSettings['filter'];\n @Input() filteringCaseSensitive: Handsontable.GridSettings['filteringCaseSensitive'];\n @Input() filters: Handsontable.GridSettings['filters'];\n @Input() fixedColumnsLeft: Handsontable.GridSettings['fixedColumnsLeft'];\n @Input() fixedRowsBottom: Handsontable.GridSettings['fixedRowsBottom'];\n @Input() fixedRowsTop: Handsontable.GridSettings['fixedRowsTop'];\n @Input() formulas: Handsontable.GridSettings['formulas'];\n @Input() fragmentSelection: Handsontable.GridSettings['fragmentSelection'];\n @Input() height: Handsontable.GridSettings['height'];\n @Input() hiddenColumns: Handsontable.GridSettings['hiddenColumns'];\n @Input() hiddenRows: Handsontable.GridSettings['hiddenRows'];\n @Input() invalidCellClassName: Handsontable.GridSettings['invalidCellClassName'];\n @Input() label: Handsontable.GridSettings['label'];\n @Input() language: Handsontable.GridSettings['language'];\n @Input() licenseKey: Handsontable.GridSettings['licenseKey'];\n @Input() manualColumnFreeze: Handsontable.GridSettings['manualColumnFreeze'];\n @Input() manualColumnMove: Handsontable.GridSettings['manualColumnMove'];\n @Input() manualColumnResize: Handsontable.GridSettings['manualColumnResize'];\n @Input() manualRowMove: Handsontable.GridSettings['manualRowMove'];\n @Input() manualRowResize: Handsontable.GridSettings['manualRowResize'];\n @Input() maxCols: Handsontable.GridSettings['maxCols'];\n @Input() maxRows: Handsontable.GridSettings['maxRows'];\n @Input() mergeCells: Handsontable.GridSettings['mergeCells'];\n @Input() minCols: Handsontable.GridSettings['minCols'];\n @Input() minRows: Handsontable.GridSettings['minRows'];\n @Input() minSpareCols: Handsontable.GridSettings['minSpareCols'];\n @Input() minSpareRows: Handsontable.GridSettings['minSpareRows'];\n @Input() multiColumnSorting: Handsontable.GridSettings['multiColumnSorting'];\n @Input() nestedHeaders: Handsontable.GridSettings['nestedHeaders'];\n @Input() nestedRows: Handsontable.GridSettings['nestedRows'];\n @Input() noWordWrapClassName: Handsontable.GridSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.GridSettings['numericFormat'];\n @Input() observeDOMVisibility: Handsontable.GridSettings['observeDOMVisibility'];\n @Input() outsideClickDeselects: Handsontable.GridSettings['outsideClickDeselects'];\n @Input() persistentState: Handsontable.GridSettings['persistentState'];\n @Input() placeholder: Handsontable.GridSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.GridSettings['placeholderCellClassName'];\n @Input() preventOverflow: Handsontable.GridSettings['preventOverflow'];\n @Input() preventWheel: Handsontable.GridSettings['preventWheel'];\n @Input() readOnly: Handsontable.GridSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.GridSettings['readOnlyCellClassName'];\n @Input() renderAllRows: Handsontable.GridSettings['renderAllRows'];\n @Input() renderer: Handsontable.GridSettings['renderer'];\n @Input() rowHeaders: Handsontable.GridSettings['rowHeaders'];\n @Input() rowHeaderWidth: Handsontable.GridSettings['rowHeaderWidth'];\n @Input() rowHeights: Handsontable.GridSettings['rowHeights'];\n @Input() search: Handsontable.GridSettings['search'];\n @Input() selectionMode: Handsontable.GridSettings['selectionMode'];\n @Input() selectOptions: Handsontable.GridSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.GridSettings['skipColumnOnPaste'];\n @Input() skipRowOnPaste: any;\n @Input() sortByRelevance: Handsontable.GridSettings['sortByRelevance'];\n @Input() source: Handsontable.GridSettings['source'];\n @Input() startCols: Handsontable.GridSettings['startCols'];\n @Input() startRows: Handsontable.GridSettings['startRows'];\n @Input() stretchH: Handsontable.GridSettings['stretchH'];\n @Input() strict: Handsontable.GridSettings['strict'];\n @Input() tableClassName: Handsontable.GridSettings['tableClassName'];\n @Input() tabMoves: Handsontable.GridSettings['tabMoves'];\n @Input() title: Handsontable.GridSettings['title'];\n @Input() trimDropdown: Handsontable.GridSettings['trimDropdown'];\n @Input() trimRows: Handsontable.GridSettings['nestedRows'];\n @Input() trimWhitespace: Handsontable.GridSettings['trimWhitespace'];\n @Input() type: Handsontable.GridSettings['type'];\n @Input() uncheckedTemplate: Handsontable.GridSettings['uncheckedTemplate'];\n @Input() undo: Handsontable.GridSettings['undo'];\n @Input() validator: Handsontable.GridSettings['validator'];\n @Input() viewportColumnRenderingOffset: Handsontable.GridSettings['viewportColumnRenderingOffset'];\n @Input() viewportRowRenderingOffset: Handsontable.GridSettings['viewportRowRenderingOffset'];\n @Input() visibleRows: Handsontable.GridSettings['visibleRows'];\n @Input() width: Handsontable.GridSettings['width'];\n @Input() wordWrap: Handsontable.GridSettings['wordWrap'];\n\n // handsontable hooks\n @Input() afterAddChild: Handsontable.GridSettings['afterAddChild'];\n @Input() afterAutofill: Handsontable.GridSettings['afterAutofill'];\n @Input() afterBeginEditing: Handsontable.GridSettings['afterBeginEditing'];\n @Input() afterCellMetaReset: Handsontable.GridSettings['afterCellMetaReset'];\n @Input() afterChange: Handsontable.GridSettings['afterChange'];\n @Input() afterChangesObserved: Handsontable.GridSettings['afterChangesObserved'];\n @Input() afterColumnCollapse: Handsontable.GridSettings['afterColumnCollapse'];\n @Input() afterColumnExpand: Handsontable.GridSettings['afterColumnExpand'];\n @Input() afterColumnMove: Handsontable.GridSettings['afterColumnMove'];\n @Input() afterColumnResize: Handsontable.GridSettings['afterColumnResize'];\n @Input() afterColumnSort: Handsontable.GridSettings['afterColumnSort'];\n @Input() afterContextMenuDefaultOptions: Handsontable.GridSettings['afterContextMenuDefaultOptions'];\n @Input() afterContextMenuHide: Handsontable.GridSettings['afterContextMenuHide'];\n @Input() afterContextMenuShow: Handsontable.GridSettings['afterContextMenuShow'];\n @Input() afterCopy: Handsontable.GridSettings['afterCopy'];\n @Input() afterCopyLimit: Handsontable.GridSettings['afterCopyLimit'];\n @Input() afterCreateCol: Handsontable.GridSettings['afterCreateCol'];\n @Input() afterCreateRow: Handsontable.GridSettings['afterCreateRow'];\n @Input() afterCut: Handsontable.GridSettings['afterCut'];\n @Input() afterDeselect: Handsontable.GridSettings['afterDeselect'];\n @Input() afterDestroy: Handsontable.GridSettings['afterDestroy'];\n @Input() afterDetachChild: Handsontable.GridSettings['afterDetachChild'];\n @Input() afterDocumentKeyDown: Handsontable.GridSettings['afterDocumentKeyDown'];\n @Input() afterDrawSelection: Handsontable.GridSettings['afterDrawSelection'];\n @Input() afterDropdownMenuDefaultOptions: Handsontable.GridSettings['afterDropdownMenuDefaultOptions'];\n @Input() afterDropdownMenuHide: Handsontable.GridSettings['afterDropdownMenuHide'];\n @Input() afterDropdownMenuShow: Handsontable.GridSettings['afterDropdownMenuShow'];\n @Input() afterFilter: Handsontable.GridSettings['afterFilter'];\n @Input() afterGetCellMeta: Handsontable.GridSettings['afterGetCellMeta'];\n @Input() afterGetColHeader: Handsontable.GridSettings['afterGetColHeader'];\n @Input() afterGetColumnHeaderRenderers: Handsontable.GridSettings['afterGetColumnHeaderRenderers'];\n @Input() afterGetRowHeader: Handsontable.GridSettings['afterGetRowHeader'];\n @Input() afterGetRowHeaderRenderers: Handsontable.GridSettings['afterGetRowHeaderRenderers'];\n @Input() afterHideColumns: Handsontable.GridSettings['afterHideColumns'];\n @Input() afterHideRows: Handsontable.GridSettings['afterHideRows'];\n @Input() afterInit: Handsontable.GridSettings['afterInit'];\n @Input() afterLanguageChange: Handsontable.GridSettings['afterLanguageChange'];\n @Input() afterListen: Handsontable.GridSettings['afterListen'];\n @Input() afterLoadData: Handsontable.GridSettings['afterLoadData'];\n @Input() afterMergeCells: Handsontable.GridSettings['afterMergeCells'];\n @Input() afterModifyTransformEnd: Handsontable.GridSettings['afterModifyTransformEnd'];\n @Input() afterModifyTransformStart: Handsontable.GridSettings['afterModifyTransformStart'];\n @Input() afterMomentumScroll: Handsontable.GridSettings['afterMomentumScroll'];\n @Input() afterOnCellContextMenu: Handsontable.GridSettings['afterOnCellContextMenu'];\n @Input() afterOnCellCornerDblClick: Handsontable.GridSettings['afterOnCellCornerDblClick'];\n @Input() afterOnCellCornerMouseDown: Handsontable.GridSettings['afterOnCellCornerMouseDown'];\n @Input() afterOnCellMouseDown: Handsontable.GridSettings['afterOnCellMouseDown'];\n @Input() afterOnCellMouseOut: Handsontable.GridSettings['afterOnCellMouseOut'];\n @Input() afterOnCellMouseOver: Handsontable.GridSettings['afterOnCellMouseOver'];\n @Input() afterOnCellMouseUp: Handsontable.GridSettings['afterOnCellMouseUp'];\n @Input() afterPaste: Handsontable.GridSettings['afterPaste'];\n @Input() afterPluginsInitialized: Handsontable.GridSettings['afterPluginsInitialized'];\n @Input() afterRedo: Handsontable.GridSettings['afterRedo'];\n @Input() afterRedoStackChange: Handsontable.GridSettings['afterRedoStackChange'];\n @Input() afterRefreshDimensions: Handsontable.GridSettings['afterRefreshDimensions'];\n @Input() afterRemoveCellMeta: Handsontable.GridSettings['afterRemoveCellMeta'];\n @Input() afterRemoveCol: Handsontable.GridSettings['afterRemoveCol'];\n @Input() afterRemoveRow: Handsontable.GridSettings['afterRemoveRow'];\n @Input() afterRender: Handsontable.GridSettings['afterRender'];\n @Input() afterRenderer: Handsontable.GridSettings['afterRenderer'];\n @Input() afterRowMove: Handsontable.GridSettings['afterRowMove'];\n @Input() afterRowResize: Handsontable.GridSettings['afterRowResize'];\n @Input() afterScrollHorizontally: Handsontable.GridSettings['afterScrollHorizontally'];\n @Input() afterScrollVertically: Handsontable.GridSettings['afterScrollVertically'];\n @Input() afterSelection: Handsontable.GridSettings['afterSelection'];\n @Input() afterSelectionByProp: Handsontable.GridSettings['afterSelectionByProp'];\n @Input() afterSelectionEnd: Handsontable.GridSettings['afterSelectionEnd'];\n @Input() afterSelectionEndByProp: Handsontable.GridSettings['afterSelectionEndByProp'];\n @Input() afterSetCellMeta: Handsontable.GridSettings['afterSetCellMeta'];\n @Input() afterSetDataAtCell: Handsontable.GridSettings['afterSetDataAtCell'];\n @Input() afterSetDataAtRowProp: Handsontable.GridSettings['afterSetDataAtRowProp'];\n @Input() afterSetSourceDataAtCell: Handsontable.GridSettings['afterSetSourceDataAtCell'];\n @Input() afterTrimRow: Handsontable.GridSettings['afterTrimRow'];\n @Input() afterUndo: Handsontable.GridSettings['afterUndo'];\n @Input() afterUndoStackChange: Handsontable.GridSettings['afterUndoStackChange'];\n @Input() afterUnhideColumns: Handsontable.GridSettings['afterUnhideColumns'];\n @Input() afterUnhideRows: Handsontable.GridSettings['afterUnhideRows'];\n @Input() afterUnlisten: Handsontable.GridSettings['afterUnlisten'];\n @Input() afterUnmergeCells: Handsontable.GridSettings['afterUnmergeCells'];\n @Input() afterUntrimRow: Handsontable.GridSettings['afterUntrimRow'];\n @Input() afterUpdateSettings: Handsontable.GridSettings['afterUpdateSettings'];\n @Input() afterValidate: Handsontable.GridSettings['afterValidate'];\n @Input() afterViewportColumnCalculatorOverride: Handsontable.GridSettings['afterViewportColumnCalculatorOverride'];\n @Input() afterViewportRowCalculatorOverride: Handsontable.GridSettings['afterViewportRowCalculatorOverride'];\n @Input() afterViewRender: Handsontable.GridSettings['afterViewRender'];\n @Input() beforeAddChild: Handsontable.GridSettings['beforeAddChild'];\n @Input() beforeAutofill: Handsontable.GridSettings['beforeAutofill'];\n @Input() beforeAutofillInsidePopulate: Handsontable.GridSettings['beforeAutofillInsidePopulate'];\n @Input() beforeCellAlignment: Handsontable.GridSettings['beforeCellAlignment'];\n @Input() beforeChange: Handsontable.GridSettings['beforeChange'];\n @Input() beforeChangeRender: Handsontable.GridSettings['beforeChangeRender'];\n @Input() beforeColumnCollapse: Handsontable.GridSettings['beforeColumnCollapse'];\n @Input() beforeColumnExpand: Handsontable.GridSettings['beforeColumnExpand'];\n @Input() beforeColumnMove: Handsontable.GridSettings['beforeColumnMove'];\n @Input() beforeColumnResize: Handsontable.GridSettings['beforeColumnResize'];\n @Input() beforeColumnSort: Handsontable.GridSettings['beforeColumnSort'];\n @Input() beforeContextMenuSetItems: Handsontable.GridSettings['beforeContextMenuSetItems'];\n @Input() beforeContextMenuShow: Handsontable.GridSettings['beforeContextMenuShow'];\n @Input() beforeCopy: Handsontable.GridSettings['beforeCopy'];\n @Input() beforeCreateCol: Handsontable.GridSettings['beforeCreateCol'];\n @Input() beforeCreateRow: Handsontable.GridSettings['beforeCreateRow'];\n @Input() beforeCut: Handsontable.GridSettings['beforeCut'];\n @Input() beforeDetachChild: Handsontable.GridSettings['beforeDetachChild'];\n @Input() beforeDrawBorders: Handsontable.GridSettings['beforeDrawBorders'];\n @Input() beforeDropdownMenuSetItems: Handsontable.GridSettings['beforeDropdownMenuSetItems'];\n @Input() beforeDropdownMenuShow: Handsontable.GridSettings['beforeDropdownMenuShow'];\n @Input() beforeFilter: Handsontable.GridSettings['beforeFilter'];\n @Input() beforeGetCellMeta: Handsontable.GridSettings['beforeGetCellMeta'];\n @Input() beforeHideColumns: Handsontable.GridSettings['beforeHideColumns'];\n @Input() beforeHideRows: Handsontable.GridSettings['beforeHideRows'];\n @Input() beforeInit: Handsontable.GridSettings['beforeInit'];\n @Input() beforeInitWalkontable: Handsontable.GridSettings['beforeInitWalkontable'];\n @Input() beforeKeyDown: Handsontable.GridSettings['beforeKeyDown'];\n @Input() beforeLanguageChange: Handsontable.GridSettings['beforeLanguageChange'];\n @Input() beforeLoadData: Handsontable.GridSettings['beforeLoadData'];\n @Input() beforeMergeCells: Handsontable.GridSettings['beforeMergeCells'];\n @Input() beforeOnCellContextMenu: Handsontable.GridSettings['beforeOnCellContextMenu'];\n @Input() beforeOnCellMouseDown: Handsontable.GridSettings['beforeOnCellMouseDown'];\n @Input() beforeOnCellMouseOut: Handsontable.GridSettings['beforeOnCellMouseOut'];\n @Input() beforeOnCellMouseOver: Handsontable.GridSettings['beforeOnCellMouseOver'];\n @Input() beforeOnCellMouseUp: Handsontable.GridSettings['beforeOnCellMouseUp'];\n @Input() beforePaste: Handsontable.GridSettings['beforePaste'];\n @Input() beforeRedo: Handsontable.GridSettings['beforeRedo'];\n @Input() beforeRedoStackChange: Handsontable.GridSettings['beforeRedoStackChange'];\n @Input() beforeRefreshDimensions: Handsontable.GridSettings['beforeRefreshDimensions'];\n @Input() beforeRemoveCellClassNames: Handsontable.GridSettings['beforeRemoveCellClassNames'];\n @Input() beforeRemoveCellMeta: Handsontable.GridSettings['beforeRemoveCellMeta'];\n @Input() beforeRemoveCol: Handsontable.GridSettings['beforeRemoveCol'];\n @Input() beforeRemoveRow: Handsontable.GridSettings['beforeRemoveRow'];\n @Input() beforeRender: Handsontable.GridSettings['beforeRender'];\n @Input() beforeRenderer: Handsontable.GridSettings['beforeRenderer'];\n @Input() beforeRowMove: Handsontable.GridSettings['beforeRowMove'];\n @Input() beforeRowResize: Handsontable.GridSettings['beforeRowResize'];\n @Input() beforeSetCellMeta: Handsontable.GridSettings['beforeSetCellMeta'];\n @Input() beforeSetRangeEnd: Handsontable.GridSettings['beforeSetRangeEnd'];\n @Input() beforeSetRangeStart: Handsontable.GridSettings['beforeSetRangeStart'];\n @Input() beforeSetRangeStartOnly: Handsontable.GridSettings['beforeSetRangeStartOnly'];\n @Input() beforeStretchingColumnWidth: Handsontable.GridSettings['beforeStretchingColumnWidth'];\n @Input() beforeTouchScroll: Handsontable.GridSettings['beforeTouchScroll'];\n @Input() beforeTrimRow: Handsontable.GridSettings['beforeTrimRow'];\n @Input() beforeUndo: Handsontable.GridSettings['beforeUndo'];\n @Input() beforeUndoStackChange: Handsontable.GridSettings['beforeUndoStackChange'];\n @Input() beforeUnhideColumns: Handsontable.GridSettings['beforeUnhideColumns'];\n @Input() beforeUnhideRows: Handsontable.GridSettings['beforeUnhideRows'];\n @Input() beforeUnmergeCells: Handsontable.GridSettings['beforeUnmergeCells'];\n @Input() beforeUntrimRow: Handsontable.GridSettings['beforeUntrimRow'];\n @Input() beforeValidate: Handsontable.GridSettings['beforeValidate'];\n @Input() beforeValueRender: Handsontable.GridSettings['beforeValueRender'];\n @Input() beforeViewRender: Handsontable.GridSettings['beforeViewRender'];\n @Input() construct: Handsontable.GridSettings['construct'];\n @Input() init: Handsontable.GridSettings['init'];\n @Input() modifyAutoColumnSizeSeed: Handsontable.GridSettings['modifyAutoColumnSizeSeed'];\n @Input() modifyAutofillRange: Handsontable.GridSettings['modifyAutofillRange'];\n @Input() modifyColHeader: Handsontable.GridSettings['modifyColHeader'];\n @Input() modifyColumnHeaderHeight: Handsontable.GridSettings['modifyColumnHeaderHeight'];\n @Input() modifyColWidth: Handsontable.GridSettings['modifyColWidth'];\n @Input() modifyCopyableRange: Handsontable.GridSettings['modifyCopyableRange'];\n @Input() modifyData: Handsontable.GridSettings['modifyData'];\n @Input() modifyGetCellCoords: Handsontable.GridSettings['modifyGetCellCoords'];\n @Input() modifyRowData: Handsontable.GridSettings['modifyRowData'];\n @Input() modifyRowHeader: Handsontable.GridSettings['modifyRowHeader'];\n @Input() modifyRowHeaderWidth: Handsontable.GridSettings['modifyRowHeaderWidth'];\n @Input() modifyRowHeight: Handsontable.GridSettings['modifyRowHeight'];\n @Input() modifySourceData: Handsontable.GridSettings['modifySourceData'];\n @Input() modifyTransformEnd: Handsontable.GridSettings['modifyTransformEnd'];\n @Input() modifyTransformStart: Handsontable.GridSettings['modifyTransformStart'];\n @Input() persistentStateLoad: Handsontable.GridSettings['persistentStateLoad'];\n @Input() persistentStateReset: Handsontable.GridSettings['persistentStateReset'];\n @Input() persistentStateSave: Handsontable.GridSettings['persistentStateSave'];\n\n constructor(\n private _ngZone: NgZone,\n private _hotTableRegisterer: HotTableRegisterer,\n private _hotSettingsResolver: HotSettingsResolver,\n ) {}\n\n private get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n this._hotTableRegisterer.removeInstance(this.hotId);\n\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n private set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n ngAfterViewInit(): void {\n const options: Handsontable.GridSettings = this._hotSettingsResolver.mergeSettings(this);\n\n if (this.columnsComponents.length > 0) {\n const columns = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n options['columns'] = columns;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);\n\n if (this.hotId) {\n this._hotTableRegisterer.registerInstance(this.hotId, this.hotInstance);\n }\n // @ts-ignore\n this.hotInstance.init();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.hotInstance === null) {\n return;\n }\n\n const newOptions: Handsontable.GridSettings = this._hotSettingsResolver.prepareChanges(changes);\n\n this.updateHotTable(newOptions);\n }\n\n ngOnDestroy(): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n });\n\n if (this.hotId) {\n this._hotTableRegisterer.removeInstance(this.hotId);\n }\n }\n\n updateHotTable(newSettings: Handsontable.GridSettings ): void {\n if (!this.hotInstance) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance.updateSettings(newSettings, false);\n });\n }\n\n onAfterColumnsChange(): void {\n if (this.columnsComponents === void 0) {\n return;\n }\n\n if (this.columnsComponents.length > 0) {\n const columns: Handsontable.ColumnSettings[] = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n const newOptions = {\n columns: columns\n };\n\n this.updateHotTable(newOptions);\n }\n }\n\n onAfterColumnsNumberChange(): void {\n const columns: Handsontable.ColumnSettings[] = [];\n\n if (this.columnsComponents.length > 0) {\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n }\n\n this.updateHotTable({ columns });\n }\n\n addColumn(column: HotColumnComponent): void {\n this.columnsComponents.push(column);\n this.onAfterColumnsNumberChange();\n }\n\n removeColumn(column: HotColumnComponent): void {\n const index: number = this.columnsComponents.indexOf(column);\n\n this.columnsComponents.splice(index, 1);\n this.onAfterColumnsNumberChange();\n }\n\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n} from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport Handsontable from 'handsontable/base';\n\n@Component({\n selector: 'hot-column',\n template: '',\n})\nexport class HotColumnComponent implements OnInit, OnChanges, OnDestroy {\n private firstRun = true;\n // handsontable column options\n @Input() allowEmpty: Handsontable.ColumnSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.ColumnSettings['allowHtml'];\n @Input() allowInvalid: Handsontable.ColumnSettings['allowInvalid'];\n @Input() checkedTemplate: Handsontable.ColumnSettings['checkedTemplate'];\n @Input() className: Handsontable.ColumnSettings['className'];\n @Input() columnSorting: Handsontable.ColumnSettings['columnSorting'];\n @Input() colWidths: Handsontable.ColumnSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.ColumnSettings['commentedCellClassName'];\n @Input() copyable: Handsontable.ColumnSettings['copyable'];\n @Input() correctFormat: Handsontable.ColumnSettings['correctFormat'];\n @Input() data: Handsontable.ColumnSettings['data'];\n @Input() dateFormat: Handsontable.ColumnSettings['dateFormat'];\n @Input() defaultDate: Handsontable.ColumnSettings['defaultDate'];\n @Input() editor: Handsontable.ColumnSettings['editor'];\n @Input() filteringCaseSensitive: Handsontable.ColumnSettings['filteringCaseSensitive'];\n @Input() invalidCellClassName: Handsontable.ColumnSettings['invalidCellClassName'];\n @Input() label: Handsontable.ColumnSettings['label'];\n @Input() language: Handsontable.ColumnSettings['language'];\n @Input() noWordWrapClassName: Handsontable.ColumnSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.ColumnSettings['numericFormat'];\n @Input() placeholder: Handsontable.ColumnSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.ColumnSettings['placeholderCellClassName'];\n @Input() readOnly: Handsontable.ColumnSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.ColumnSettings['readOnlyCellClassName'];\n @Input() renderer: Handsontable.ColumnSettings['renderer'];\n @Input() selectOptions: Handsontable.ColumnSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.ColumnSettings['skipColumnOnPaste'];\n @Input() sortByRelevance: Handsontable.ColumnSettings['sortByRelevance'];\n @Input() source: Handsontable.ColumnSettings['source'];\n @Input() strict: Handsontable.ColumnSettings['strict'];\n @Input() title: Handsontable.ColumnSettings['title'];\n @Input() trimDropdown: Handsontable.ColumnSettings['trimDropdown'];\n @Input() type: Handsontable.ColumnSettings['type'];\n @Input() uncheckedTemplate: Handsontable.ColumnSettings['uncheckedTemplate'];\n @Input() validator: Handsontable.ColumnSettings['validator'];\n @Input() visibleRows: Handsontable.ColumnSettings['visibleRows'];\n @Input() width: Handsontable.ColumnSettings['width'];\n @Input() wordWrap: Handsontable.ColumnSettings['wordWrap'];\n\n constructor(private parentComponent: HotTableComponent) {}\n\n ngOnInit(): void {\n this.firstRun = false;\n this.parentComponent.addColumn(this);\n }\n\n ngOnChanges(): void {\n if (this.firstRun) {\n return;\n }\n\n this.parentComponent.onAfterColumnsChange();\n }\n\n ngOnDestroy(): void {\n this.parentComponent.removeColumn(this);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport { HotColumnComponent } from './hot-column.component';\nimport { HotTableRegisterer } from './hot-table-registerer.service';\n\n@NgModule({\n declarations: [\n HotTableComponent,\n HotColumnComponent,\n ],\n exports: [\n HotTableComponent,\n HotColumnComponent,\n ]\n})\nexport class HotTableModule {\n static version = '11.1.0';\n\n public static forRoot(): ModuleWithProviders<HotTableModule> {\n return {\n ngModule: HotTableModule,\n providers: [ HotTableRegisterer ],\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["ng://@handsontable/angular/lib/hot-table-registerer.service.ts","ng://@handsontable/angular/lib/hot-settings-resolver.service.ts","ng://@handsontable/angular/lib/hot-table.component.ts","ng://@handsontable/angular/lib/hot-column.component.ts","ng://@handsontable/angular/lib/hot-table.module.ts"],"names":["instances","Map","HOT_DESTROYED_WARNING","HotTableRegisterer","prototype","getInstance","id","hotInstance","get","isDestroyed","console","warn","registerInstance","instance","set","removeInstance","delete","Injectable","AVAILABLE_OPTIONS","Object","keys","Handsontable","DefaultSettings","AVAILABLE_HOOKS","hooks","getRegistered","HotSettingsResolver","mergeSettings","component","isSettingsObject","mergedSettings","concat","forEach","key","option","isHook","indexOf","_this","this","args","_i","arguments","length","_ngZone","run","apply","prepareChanges","changes","result","param","hasOwnProperty","currentValue","HotTableComponent","_hotTableRegisterer","_hotSettingsResolver","__hotInstance","columnsComponents","hotId","defineProperty","ngAfterViewInit","options","columns_1","column","push","runOutsideAngular","Core","container","nativeElement","init","ngOnChanges","newOptions","updateHotTable","ngOnDestroy","destroy","newSettings","updateSettings","onAfterColumnsChange","columns_2","columns","onAfterColumnsNumberChange","addColumn","removeColumn","index","splice","Component","selector","template","encapsulation","ViewEncapsulation","None","providers","NgZone","ViewChild","static","Input","HotColumnComponent","parentComponent","firstRun","ngOnInit","HotTableModule","forRoot","ngModule","version","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst instances = new Map<string, Handsontable>();\n\nexport const HOT_DESTROYED_WARNING = 'The Handsontable instance bound to this component was destroyed and cannot be' +\n ' used properly.';\n\n@Injectable()\nexport class HotTableRegisterer {\n public getInstance(id: string): Handsontable {\n const hotInstance = instances.get(id);\n\n if (hotInstance.isDestroyed) {\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n\n return hotInstance;\n }\n\n public registerInstance(id: string, instance: Handsontable): Map<string, Handsontable> {\n return instances.set(id, instance);\n }\n\n public removeInstance(id: string): boolean {\n return instances.delete(id);\n }\n}\n","import { Injectable, SimpleChanges } from '@angular/core';\nimport Handsontable from 'handsontable/base';\n\nconst AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings);\nconst AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered();\n\n@Injectable()\nexport class HotSettingsResolver {\n mergeSettings(component): object {\n const isSettingsObject = typeof component['settings'] === 'object';\n const mergedSettings: Handsontable.GridSettings = isSettingsObject ? component['settings'] : {};\n const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS);\n\n options.forEach(key => {\n const isHook = AVAILABLE_HOOKS.indexOf(key) > -1;\n let option;\n\n if (isSettingsObject && isHook) {\n option = component['settings'][key];\n }\n\n if (component[key] !== void 0) {\n option = component[key];\n }\n\n if (option === void 0) {\n return;\n\n } else if (typeof option === 'function' && isHook) {\n mergedSettings[key] = function(...args) {\n return component._ngZone.run(() => {\n return option.apply(this, args);\n });\n };\n\n } else {\n mergedSettings[key] = option;\n }\n });\n\n return mergedSettings;\n }\n\n prepareChanges(changes: SimpleChanges): Handsontable.GridSettings {\n const result: Handsontable.GridSettings = {};\n const parameters: string[] = Object.keys(changes);\n\n parameters.forEach((param) => {\n if (changes.hasOwnProperty(param)) {\n result[param] = changes[param].currentValue;\n }\n });\n\n return result;\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport Handsontable from 'handsontable/base';\nimport {\n HotTableRegisterer,\n HOT_DESTROYED_WARNING\n} from './hot-table-registerer.service';\nimport { HotSettingsResolver } from './hot-settings-resolver.service';\nimport { HotColumnComponent } from './hot-column.component';\n\n@Component({\n selector: 'hot-table',\n template: '<div #container [id]=\"hotId\"></div>',\n encapsulation: ViewEncapsulation.None,\n providers: [ HotTableRegisterer, HotSettingsResolver ],\n})\nexport class HotTableComponent implements AfterViewInit, OnChanges, OnDestroy {\n @ViewChild('container', { static: false }) public container;\n\n private __hotInstance: Handsontable = null;\n private columnsComponents: HotColumnComponent[] = [];\n // component inputs\n @Input() settings: Handsontable.GridSettings;\n @Input() hotId = '';\n // handsontable options\n @Input() activeHeaderClassName: Handsontable.GridSettings['activeHeaderClassName'];\n @Input() allowEmpty: Handsontable.GridSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.GridSettings['allowHtml'];\n @Input() allowInsertColumn: Handsontable.GridSettings['allowInsertColumn'];\n @Input() allowInsertRow: Handsontable.GridSettings['allowInsertRow'];\n @Input() allowInvalid: Handsontable.GridSettings['allowInvalid'];\n @Input() allowRemoveColumn: Handsontable.GridSettings['allowRemoveColumn'];\n @Input() allowRemoveRow: Handsontable.GridSettings['allowRemoveRow'];\n @Input() autoColumnSize: Handsontable.GridSettings['autoColumnSize'];\n @Input() autoRowSize: Handsontable.GridSettings['autoRowSize'];\n @Input() autoWrapCol: Handsontable.GridSettings['autoWrapCol'];\n @Input() autoWrapRow: Handsontable.GridSettings['autoWrapRow'];\n @Input() bindRowsWithHeaders: Handsontable.GridSettings['bindRowsWithHeaders'];\n @Input() cell: Handsontable.GridSettings['cell'];\n @Input() cells: Handsontable.GridSettings['cells'];\n @Input() checkedTemplate: Handsontable.GridSettings['checkedTemplate'];\n @Input() className: Handsontable.GridSettings['className'];\n @Input() colHeaders: Handsontable.GridSettings['colHeaders'];\n @Input() collapsibleColumns: Handsontable.GridSettings['collapsibleColumns'];\n @Input() columnHeaderHeight: Handsontable.GridSettings['columnHeaderHeight'];\n @Input() columns: Handsontable.GridSettings['columns'];\n @Input() columnSorting: Handsontable.GridSettings['columnSorting'];\n @Input() columnSummary: Handsontable.GridSettings['columnSummary'];\n @Input() colWidths: Handsontable.GridSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.GridSettings['commentedCellClassName'];\n @Input() comments: Handsontable.GridSettings['comments'];\n @Input() contextMenu: Handsontable.GridSettings['contextMenu'];\n @Input() copyable: Handsontable.GridSettings['copyable'];\n @Input() copyPaste: Handsontable.GridSettings['copyPaste'];\n @Input() correctFormat: Handsontable.GridSettings['correctFormat'];\n @Input() currentColClassName: Handsontable.GridSettings['currentColClassName'];\n @Input() currentHeaderClassName: Handsontable.GridSettings['currentHeaderClassName'];\n @Input() currentRowClassName: Handsontable.GridSettings['currentRowClassName'];\n @Input() customBorders: Handsontable.GridSettings['customBorders'];\n @Input() data: Handsontable.GridSettings['data'];\n @Input() dataSchema: Handsontable.GridSettings['dataSchema'];\n @Input() dateFormat: Handsontable.GridSettings['dateFormat'];\n @Input() defaultDate: Handsontable.GridSettings['defaultDate'];\n @Input() disableVisualSelection: Handsontable.GridSettings['disableVisualSelection'];\n @Input() dragToScroll: Handsontable.GridSettings['dragToScroll'];\n @Input() dropdownMenu: Handsontable.GridSettings['dropdownMenu'];\n @Input() editor: Handsontable.GridSettings['editor'];\n @Input() enterBeginsEditing: Handsontable.GridSettings['enterBeginsEditing'];\n @Input() enterMoves: Handsontable.GridSettings['enterMoves'];\n @Input() fillHandle: Handsontable.GridSettings['fillHandle'];\n @Input() filter: Handsontable.GridSettings['filter'];\n @Input() filteringCaseSensitive: Handsontable.GridSettings['filteringCaseSensitive'];\n @Input() filters: Handsontable.GridSettings['filters'];\n @Input() fixedColumnsLeft: Handsontable.GridSettings['fixedColumnsLeft'];\n @Input() fixedColumnsStart: Handsontable.GridSettings['fixedColumnsStart'];\n @Input() fixedRowsBottom: Handsontable.GridSettings['fixedRowsBottom'];\n @Input() fixedRowsTop: Handsontable.GridSettings['fixedRowsTop'];\n @Input() formulas: Handsontable.GridSettings['formulas'];\n @Input() fragmentSelection: Handsontable.GridSettings['fragmentSelection'];\n @Input() height: Handsontable.GridSettings['height'];\n @Input() hiddenColumns: Handsontable.GridSettings['hiddenColumns'];\n @Input() hiddenRows: Handsontable.GridSettings['hiddenRows'];\n @Input() invalidCellClassName: Handsontable.GridSettings['invalidCellClassName'];\n @Input() label: Handsontable.GridSettings['label'];\n @Input() language: Handsontable.GridSettings['language'];\n @Input() layoutDirection: Handsontable.GridSettings['layoutDirection'];\n @Input() licenseKey: Handsontable.GridSettings['licenseKey'];\n @Input() manualColumnFreeze: Handsontable.GridSettings['manualColumnFreeze'];\n @Input() manualColumnMove: Handsontable.GridSettings['manualColumnMove'];\n @Input() manualColumnResize: Handsontable.GridSettings['manualColumnResize'];\n @Input() manualRowMove: Handsontable.GridSettings['manualRowMove'];\n @Input() manualRowResize: Handsontable.GridSettings['manualRowResize'];\n @Input() maxCols: Handsontable.GridSettings['maxCols'];\n @Input() maxRows: Handsontable.GridSettings['maxRows'];\n @Input() mergeCells: Handsontable.GridSettings['mergeCells'];\n @Input() minCols: Handsontable.GridSettings['minCols'];\n @Input() minRows: Handsontable.GridSettings['minRows'];\n @Input() minSpareCols: Handsontable.GridSettings['minSpareCols'];\n @Input() minSpareRows: Handsontable.GridSettings['minSpareRows'];\n @Input() multiColumnSorting: Handsontable.GridSettings['multiColumnSorting'];\n @Input() nestedHeaders: Handsontable.GridSettings['nestedHeaders'];\n @Input() nestedRows: Handsontable.GridSettings['nestedRows'];\n @Input() noWordWrapClassName: Handsontable.GridSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.GridSettings['numericFormat'];\n @Input() observeDOMVisibility: Handsontable.GridSettings['observeDOMVisibility'];\n @Input() outsideClickDeselects: Handsontable.GridSettings['outsideClickDeselects'];\n @Input() persistentState: Handsontable.GridSettings['persistentState'];\n @Input() placeholder: Handsontable.GridSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.GridSettings['placeholderCellClassName'];\n @Input() preventOverflow: Handsontable.GridSettings['preventOverflow'];\n @Input() preventWheel: Handsontable.GridSettings['preventWheel'];\n @Input() readOnly: Handsontable.GridSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.GridSettings['readOnlyCellClassName'];\n @Input() renderAllRows: Handsontable.GridSettings['renderAllRows'];\n @Input() renderer: Handsontable.GridSettings['renderer'];\n @Input() rowHeaders: Handsontable.GridSettings['rowHeaders'];\n @Input() rowHeaderWidth: Handsontable.GridSettings['rowHeaderWidth'];\n @Input() rowHeights: Handsontable.GridSettings['rowHeights'];\n @Input() search: Handsontable.GridSettings['search'];\n @Input() selectionMode: Handsontable.GridSettings['selectionMode'];\n @Input() selectOptions: Handsontable.GridSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.GridSettings['skipColumnOnPaste'];\n @Input() skipRowOnPaste: any;\n @Input() sortByRelevance: Handsontable.GridSettings['sortByRelevance'];\n @Input() source: Handsontable.GridSettings['source'];\n @Input() startCols: Handsontable.GridSettings['startCols'];\n @Input() startRows: Handsontable.GridSettings['startRows'];\n @Input() stretchH: Handsontable.GridSettings['stretchH'];\n @Input() strict: Handsontable.GridSettings['strict'];\n @Input() tableClassName: Handsontable.GridSettings['tableClassName'];\n @Input() tabMoves: Handsontable.GridSettings['tabMoves'];\n @Input() title: Handsontable.GridSettings['title'];\n @Input() trimDropdown: Handsontable.GridSettings['trimDropdown'];\n @Input() trimRows: Handsontable.GridSettings['nestedRows'];\n @Input() trimWhitespace: Handsontable.GridSettings['trimWhitespace'];\n @Input() type: Handsontable.GridSettings['type'];\n @Input() uncheckedTemplate: Handsontable.GridSettings['uncheckedTemplate'];\n @Input() undo: Handsontable.GridSettings['undo'];\n @Input() validator: Handsontable.GridSettings['validator'];\n @Input() viewportColumnRenderingOffset: Handsontable.GridSettings['viewportColumnRenderingOffset'];\n @Input() viewportRowRenderingOffset: Handsontable.GridSettings['viewportRowRenderingOffset'];\n @Input() visibleRows: Handsontable.GridSettings['visibleRows'];\n @Input() width: Handsontable.GridSettings['width'];\n @Input() wordWrap: Handsontable.GridSettings['wordWrap'];\n\n // handsontable hooks\n @Input() afterAddChild: Handsontable.GridSettings['afterAddChild'];\n @Input() afterAutofill: Handsontable.GridSettings['afterAutofill'];\n @Input() afterBeginEditing: Handsontable.GridSettings['afterBeginEditing'];\n @Input() afterCellMetaReset: Handsontable.GridSettings['afterCellMetaReset'];\n @Input() afterChange: Handsontable.GridSettings['afterChange'];\n @Input() afterChangesObserved: Handsontable.GridSettings['afterChangesObserved'];\n @Input() afterColumnCollapse: Handsontable.GridSettings['afterColumnCollapse'];\n @Input() afterColumnExpand: Handsontable.GridSettings['afterColumnExpand'];\n @Input() afterColumnMove: Handsontable.GridSettings['afterColumnMove'];\n @Input() afterColumnResize: Handsontable.GridSettings['afterColumnResize'];\n @Input() afterColumnSort: Handsontable.GridSettings['afterColumnSort'];\n @Input() afterContextMenuDefaultOptions: Handsontable.GridSettings['afterContextMenuDefaultOptions'];\n @Input() afterContextMenuHide: Handsontable.GridSettings['afterContextMenuHide'];\n @Input() afterContextMenuShow: Handsontable.GridSettings['afterContextMenuShow'];\n @Input() afterCopy: Handsontable.GridSettings['afterCopy'];\n @Input() afterCopyLimit: Handsontable.GridSettings['afterCopyLimit'];\n @Input() afterCreateCol: Handsontable.GridSettings['afterCreateCol'];\n @Input() afterCreateRow: Handsontable.GridSettings['afterCreateRow'];\n @Input() afterCut: Handsontable.GridSettings['afterCut'];\n @Input() afterDeselect: Handsontable.GridSettings['afterDeselect'];\n @Input() afterDestroy: Handsontable.GridSettings['afterDestroy'];\n @Input() afterDetachChild: Handsontable.GridSettings['afterDetachChild'];\n @Input() afterDocumentKeyDown: Handsontable.GridSettings['afterDocumentKeyDown'];\n @Input() afterDrawSelection: Handsontable.GridSettings['afterDrawSelection'];\n @Input() afterDropdownMenuDefaultOptions: Handsontable.GridSettings['afterDropdownMenuDefaultOptions'];\n @Input() afterDropdownMenuHide: Handsontable.GridSettings['afterDropdownMenuHide'];\n @Input() afterDropdownMenuShow: Handsontable.GridSettings['afterDropdownMenuShow'];\n @Input() afterFilter: Handsontable.GridSettings['afterFilter'];\n @Input() afterGetCellMeta: Handsontable.GridSettings['afterGetCellMeta'];\n @Input() afterGetColHeader: Handsontable.GridSettings['afterGetColHeader'];\n @Input() afterGetColumnHeaderRenderers: Handsontable.GridSettings['afterGetColumnHeaderRenderers'];\n @Input() afterGetRowHeader: Handsontable.GridSettings['afterGetRowHeader'];\n @Input() afterGetRowHeaderRenderers: Handsontable.GridSettings['afterGetRowHeaderRenderers'];\n @Input() afterHideColumns: Handsontable.GridSettings['afterHideColumns'];\n @Input() afterHideRows: Handsontable.GridSettings['afterHideRows'];\n @Input() afterInit: Handsontable.GridSettings['afterInit'];\n @Input() afterLanguageChange: Handsontable.GridSettings['afterLanguageChange'];\n @Input() afterListen: Handsontable.GridSettings['afterListen'];\n @Input() afterLoadData: Handsontable.GridSettings['afterLoadData'];\n @Input() afterMergeCells: Handsontable.GridSettings['afterMergeCells'];\n @Input() afterModifyTransformEnd: Handsontable.GridSettings['afterModifyTransformEnd'];\n @Input() afterModifyTransformStart: Handsontable.GridSettings['afterModifyTransformStart'];\n @Input() afterMomentumScroll: Handsontable.GridSettings['afterMomentumScroll'];\n @Input() afterOnCellContextMenu: Handsontable.GridSettings['afterOnCellContextMenu'];\n @Input() afterOnCellCornerDblClick: Handsontable.GridSettings['afterOnCellCornerDblClick'];\n @Input() afterOnCellCornerMouseDown: Handsontable.GridSettings['afterOnCellCornerMouseDown'];\n @Input() afterOnCellMouseDown: Handsontable.GridSettings['afterOnCellMouseDown'];\n @Input() afterOnCellMouseOut: Handsontable.GridSettings['afterOnCellMouseOut'];\n @Input() afterOnCellMouseOver: Handsontable.GridSettings['afterOnCellMouseOver'];\n @Input() afterOnCellMouseUp: Handsontable.GridSettings['afterOnCellMouseUp'];\n @Input() afterPaste: Handsontable.GridSettings['afterPaste'];\n @Input() afterPluginsInitialized: Handsontable.GridSettings['afterPluginsInitialized'];\n @Input() afterRedo: Handsontable.GridSettings['afterRedo'];\n @Input() afterRedoStackChange: Handsontable.GridSettings['afterRedoStackChange'];\n @Input() afterRefreshDimensions: Handsontable.GridSettings['afterRefreshDimensions'];\n @Input() afterRemoveCellMeta: Handsontable.GridSettings['afterRemoveCellMeta'];\n @Input() afterRemoveCol: Handsontable.GridSettings['afterRemoveCol'];\n @Input() afterRemoveRow: Handsontable.GridSettings['afterRemoveRow'];\n @Input() afterRender: Handsontable.GridSettings['afterRender'];\n @Input() afterRenderer: Handsontable.GridSettings['afterRenderer'];\n @Input() afterRowMove: Handsontable.GridSettings['afterRowMove'];\n @Input() afterRowResize: Handsontable.GridSettings['afterRowResize'];\n @Input() afterScrollHorizontally: Handsontable.GridSettings['afterScrollHorizontally'];\n @Input() afterScrollVertically: Handsontable.GridSettings['afterScrollVertically'];\n @Input() afterSelection: Handsontable.GridSettings['afterSelection'];\n @Input() afterSelectionByProp: Handsontable.GridSettings['afterSelectionByProp'];\n @Input() afterSelectionEnd: Handsontable.GridSettings['afterSelectionEnd'];\n @Input() afterSelectionEndByProp: Handsontable.GridSettings['afterSelectionEndByProp'];\n @Input() afterSetCellMeta: Handsontable.GridSettings['afterSetCellMeta'];\n @Input() afterSetDataAtCell: Handsontable.GridSettings['afterSetDataAtCell'];\n @Input() afterSetDataAtRowProp: Handsontable.GridSettings['afterSetDataAtRowProp'];\n @Input() afterSetSourceDataAtCell: Handsontable.GridSettings['afterSetSourceDataAtCell'];\n @Input() afterTrimRow: Handsontable.GridSettings['afterTrimRow'];\n @Input() afterUndo: Handsontable.GridSettings['afterUndo'];\n @Input() afterUndoStackChange: Handsontable.GridSettings['afterUndoStackChange'];\n @Input() afterUnhideColumns: Handsontable.GridSettings['afterUnhideColumns'];\n @Input() afterUnhideRows: Handsontable.GridSettings['afterUnhideRows'];\n @Input() afterUnlisten: Handsontable.GridSettings['afterUnlisten'];\n @Input() afterUnmergeCells: Handsontable.GridSettings['afterUnmergeCells'];\n @Input() afterUntrimRow: Handsontable.GridSettings['afterUntrimRow'];\n @Input() afterUpdateSettings: Handsontable.GridSettings['afterUpdateSettings'];\n @Input() afterValidate: Handsontable.GridSettings['afterValidate'];\n @Input() afterViewportColumnCalculatorOverride: Handsontable.GridSettings['afterViewportColumnCalculatorOverride'];\n @Input() afterViewportRowCalculatorOverride: Handsontable.GridSettings['afterViewportRowCalculatorOverride'];\n @Input() afterViewRender: Handsontable.GridSettings['afterViewRender'];\n @Input() beforeAddChild: Handsontable.GridSettings['beforeAddChild'];\n @Input() beforeAutofill: Handsontable.GridSettings['beforeAutofill'];\n @Input() beforeAutofillInsidePopulate: Handsontable.GridSettings['beforeAutofillInsidePopulate'];\n @Input() beforeCellAlignment: Handsontable.GridSettings['beforeCellAlignment'];\n @Input() beforeChange: Handsontable.GridSettings['beforeChange'];\n @Input() beforeChangeRender: Handsontable.GridSettings['beforeChangeRender'];\n @Input() beforeColumnCollapse: Handsontable.GridSettings['beforeColumnCollapse'];\n @Input() beforeColumnExpand: Handsontable.GridSettings['beforeColumnExpand'];\n @Input() beforeColumnMove: Handsontable.GridSettings['beforeColumnMove'];\n @Input() beforeColumnResize: Handsontable.GridSettings['beforeColumnResize'];\n @Input() beforeColumnSort: Handsontable.GridSettings['beforeColumnSort'];\n @Input() beforeContextMenuSetItems: Handsontable.GridSettings['beforeContextMenuSetItems'];\n @Input() beforeContextMenuShow: Handsontable.GridSettings['beforeContextMenuShow'];\n @Input() beforeCopy: Handsontable.GridSettings['beforeCopy'];\n @Input() beforeCreateCol: Handsontable.GridSettings['beforeCreateCol'];\n @Input() beforeCreateRow: Handsontable.GridSettings['beforeCreateRow'];\n @Input() beforeCut: Handsontable.GridSettings['beforeCut'];\n @Input() beforeDetachChild: Handsontable.GridSettings['beforeDetachChild'];\n @Input() beforeDrawBorders: Handsontable.GridSettings['beforeDrawBorders'];\n @Input() beforeDropdownMenuSetItems: Handsontable.GridSettings['beforeDropdownMenuSetItems'];\n @Input() beforeDropdownMenuShow: Handsontable.GridSettings['beforeDropdownMenuShow'];\n @Input() beforeFilter: Handsontable.GridSettings['beforeFilter'];\n @Input() beforeGetCellMeta: Handsontable.GridSettings['beforeGetCellMeta'];\n @Input() beforeHideColumns: Handsontable.GridSettings['beforeHideColumns'];\n @Input() beforeHideRows: Handsontable.GridSettings['beforeHideRows'];\n @Input() beforeInit: Handsontable.GridSettings['beforeInit'];\n @Input() beforeInitWalkontable: Handsontable.GridSettings['beforeInitWalkontable'];\n @Input() beforeKeyDown: Handsontable.GridSettings['beforeKeyDown'];\n @Input() beforeLanguageChange: Handsontable.GridSettings['beforeLanguageChange'];\n @Input() beforeLoadData: Handsontable.GridSettings['beforeLoadData'];\n @Input() beforeMergeCells: Handsontable.GridSettings['beforeMergeCells'];\n @Input() beforeOnCellContextMenu: Handsontable.GridSettings['beforeOnCellContextMenu'];\n @Input() beforeOnCellMouseDown: Handsontable.GridSettings['beforeOnCellMouseDown'];\n @Input() beforeOnCellMouseOut: Handsontable.GridSettings['beforeOnCellMouseOut'];\n @Input() beforeOnCellMouseOver: Handsontable.GridSettings['beforeOnCellMouseOver'];\n @Input() beforeOnCellMouseUp: Handsontable.GridSettings['beforeOnCellMouseUp'];\n @Input() beforePaste: Handsontable.GridSettings['beforePaste'];\n @Input() beforeRedo: Handsontable.GridSettings['beforeRedo'];\n @Input() beforeRedoStackChange: Handsontable.GridSettings['beforeRedoStackChange'];\n @Input() beforeRefreshDimensions: Handsontable.GridSettings['beforeRefreshDimensions'];\n @Input() beforeRemoveCellClassNames: Handsontable.GridSettings['beforeRemoveCellClassNames'];\n @Input() beforeRemoveCellMeta: Handsontable.GridSettings['beforeRemoveCellMeta'];\n @Input() beforeRemoveCol: Handsontable.GridSettings['beforeRemoveCol'];\n @Input() beforeRemoveRow: Handsontable.GridSettings['beforeRemoveRow'];\n @Input() beforeRender: Handsontable.GridSettings['beforeRender'];\n @Input() beforeRenderer: Handsontable.GridSettings['beforeRenderer'];\n @Input() beforeRowMove: Handsontable.GridSettings['beforeRowMove'];\n @Input() beforeRowResize: Handsontable.GridSettings['beforeRowResize'];\n @Input() beforeSetCellMeta: Handsontable.GridSettings['beforeSetCellMeta'];\n @Input() beforeSetRangeEnd: Handsontable.GridSettings['beforeSetRangeEnd'];\n @Input() beforeSetRangeStart: Handsontable.GridSettings['beforeSetRangeStart'];\n @Input() beforeSetRangeStartOnly: Handsontable.GridSettings['beforeSetRangeStartOnly'];\n @Input() beforeStretchingColumnWidth: Handsontable.GridSettings['beforeStretchingColumnWidth'];\n @Input() beforeTouchScroll: Handsontable.GridSettings['beforeTouchScroll'];\n @Input() beforeTrimRow: Handsontable.GridSettings['beforeTrimRow'];\n @Input() beforeUndo: Handsontable.GridSettings['beforeUndo'];\n @Input() beforeUndoStackChange: Handsontable.GridSettings['beforeUndoStackChange'];\n @Input() beforeUnhideColumns: Handsontable.GridSettings['beforeUnhideColumns'];\n @Input() beforeUnhideRows: Handsontable.GridSettings['beforeUnhideRows'];\n @Input() beforeUnmergeCells: Handsontable.GridSettings['beforeUnmergeCells'];\n @Input() beforeUntrimRow: Handsontable.GridSettings['beforeUntrimRow'];\n @Input() beforeValidate: Handsontable.GridSettings['beforeValidate'];\n @Input() beforeValueRender: Handsontable.GridSettings['beforeValueRender'];\n @Input() beforeViewRender: Handsontable.GridSettings['beforeViewRender'];\n @Input() construct: Handsontable.GridSettings['construct'];\n @Input() init: Handsontable.GridSettings['init'];\n @Input() modifyAutoColumnSizeSeed: Handsontable.GridSettings['modifyAutoColumnSizeSeed'];\n @Input() modifyAutofillRange: Handsontable.GridSettings['modifyAutofillRange'];\n @Input() modifyColHeader: Handsontable.GridSettings['modifyColHeader'];\n @Input() modifyColumnHeaderHeight: Handsontable.GridSettings['modifyColumnHeaderHeight'];\n @Input() modifyColWidth: Handsontable.GridSettings['modifyColWidth'];\n @Input() modifyCopyableRange: Handsontable.GridSettings['modifyCopyableRange'];\n @Input() modifyData: Handsontable.GridSettings['modifyData'];\n @Input() modifyGetCellCoords: Handsontable.GridSettings['modifyGetCellCoords'];\n @Input() modifyRowData: Handsontable.GridSettings['modifyRowData'];\n @Input() modifyRowHeader: Handsontable.GridSettings['modifyRowHeader'];\n @Input() modifyRowHeaderWidth: Handsontable.GridSettings['modifyRowHeaderWidth'];\n @Input() modifyRowHeight: Handsontable.GridSettings['modifyRowHeight'];\n @Input() modifySourceData: Handsontable.GridSettings['modifySourceData'];\n @Input() modifyTransformEnd: Handsontable.GridSettings['modifyTransformEnd'];\n @Input() modifyTransformStart: Handsontable.GridSettings['modifyTransformStart'];\n @Input() persistentStateLoad: Handsontable.GridSettings['persistentStateLoad'];\n @Input() persistentStateReset: Handsontable.GridSettings['persistentStateReset'];\n @Input() persistentStateSave: Handsontable.GridSettings['persistentStateSave'];\n\n constructor(\n private _ngZone: NgZone,\n private _hotTableRegisterer: HotTableRegisterer,\n private _hotSettingsResolver: HotSettingsResolver,\n ) {}\n\n private get hotInstance(): Handsontable | null {\n if (!this.__hotInstance || (this.__hotInstance && !this.__hotInstance.isDestroyed)) {\n\n // Will return the Handsontable instance or `null` if it's not yet been created.\n return this.__hotInstance;\n\n } else {\n this._hotTableRegisterer.removeInstance(this.hotId);\n\n console.warn(HOT_DESTROYED_WARNING);\n\n return null;\n }\n }\n\n private set hotInstance(hotInstance) {\n this.__hotInstance = hotInstance;\n }\n\n ngAfterViewInit(): void {\n const options: Handsontable.GridSettings = this._hotSettingsResolver.mergeSettings(this);\n\n if (this.columnsComponents.length > 0) {\n const columns = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n options['columns'] = columns;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);\n\n if (this.hotId) {\n this._hotTableRegisterer.registerInstance(this.hotId, this.hotInstance);\n }\n // @ts-ignore\n this.hotInstance.init();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.hotInstance === null) {\n return;\n }\n\n const newOptions: Handsontable.GridSettings = this._hotSettingsResolver.prepareChanges(changes);\n\n this.updateHotTable(newOptions);\n }\n\n ngOnDestroy(): void {\n this._ngZone.runOutsideAngular(() => {\n if (this.hotInstance) {\n this.hotInstance.destroy();\n }\n });\n\n if (this.hotId) {\n this._hotTableRegisterer.removeInstance(this.hotId);\n }\n }\n\n updateHotTable(newSettings: Handsontable.GridSettings ): void {\n if (!this.hotInstance) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this.hotInstance.updateSettings(newSettings, false);\n });\n }\n\n onAfterColumnsChange(): void {\n if (this.columnsComponents === void 0) {\n return;\n }\n\n if (this.columnsComponents.length > 0) {\n const columns: Handsontable.ColumnSettings[] = [];\n\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n\n const newOptions = {\n columns: columns\n };\n\n this.updateHotTable(newOptions);\n }\n }\n\n onAfterColumnsNumberChange(): void {\n const columns: Handsontable.ColumnSettings[] = [];\n\n if (this.columnsComponents.length > 0) {\n this.columnsComponents.forEach((column) => {\n columns.push(this._hotSettingsResolver.mergeSettings(column));\n });\n }\n\n this.updateHotTable({ columns });\n }\n\n addColumn(column: HotColumnComponent): void {\n this.columnsComponents.push(column);\n this.onAfterColumnsNumberChange();\n }\n\n removeColumn(column: HotColumnComponent): void {\n const index: number = this.columnsComponents.indexOf(column);\n\n this.columnsComponents.splice(index, 1);\n this.onAfterColumnsNumberChange();\n }\n\n}\n","import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n Input,\n} from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport Handsontable from 'handsontable/base';\n\n@Component({\n selector: 'hot-column',\n template: '',\n})\nexport class HotColumnComponent implements OnInit, OnChanges, OnDestroy {\n private firstRun = true;\n // handsontable column options\n @Input() allowEmpty: Handsontable.ColumnSettings['allowEmpty'];\n @Input() allowHtml: Handsontable.ColumnSettings['allowHtml'];\n @Input() allowInvalid: Handsontable.ColumnSettings['allowInvalid'];\n @Input() checkedTemplate: Handsontable.ColumnSettings['checkedTemplate'];\n @Input() className: Handsontable.ColumnSettings['className'];\n @Input() columnSorting: Handsontable.ColumnSettings['columnSorting'];\n @Input() colWidths: Handsontable.ColumnSettings['colWidths'];\n @Input() commentedCellClassName: Handsontable.ColumnSettings['commentedCellClassName'];\n @Input() copyable: Handsontable.ColumnSettings['copyable'];\n @Input() correctFormat: Handsontable.ColumnSettings['correctFormat'];\n @Input() data: Handsontable.ColumnSettings['data'];\n @Input() dateFormat: Handsontable.ColumnSettings['dateFormat'];\n @Input() defaultDate: Handsontable.ColumnSettings['defaultDate'];\n @Input() editor: Handsontable.ColumnSettings['editor'];\n @Input() filteringCaseSensitive: Handsontable.ColumnSettings['filteringCaseSensitive'];\n @Input() invalidCellClassName: Handsontable.ColumnSettings['invalidCellClassName'];\n @Input() label: Handsontable.ColumnSettings['label'];\n @Input() language: Handsontable.ColumnSettings['language'];\n @Input() noWordWrapClassName: Handsontable.ColumnSettings['noWordWrapClassName'];\n @Input() numericFormat: Handsontable.ColumnSettings['numericFormat'];\n @Input() placeholder: Handsontable.ColumnSettings['placeholder'];\n @Input() placeholderCellClassName: Handsontable.ColumnSettings['placeholderCellClassName'];\n @Input() readOnly: Handsontable.ColumnSettings['readOnly'];\n @Input() readOnlyCellClassName: Handsontable.ColumnSettings['readOnlyCellClassName'];\n @Input() renderer: Handsontable.ColumnSettings['renderer'];\n @Input() selectOptions: Handsontable.ColumnSettings['selectOptions'];\n @Input() skipColumnOnPaste: Handsontable.ColumnSettings['skipColumnOnPaste'];\n @Input() sortByRelevance: Handsontable.ColumnSettings['sortByRelevance'];\n @Input() source: Handsontable.ColumnSettings['source'];\n @Input() strict: Handsontable.ColumnSettings['strict'];\n @Input() title: Handsontable.ColumnSettings['title'];\n @Input() trimDropdown: Handsontable.ColumnSettings['trimDropdown'];\n @Input() type: Handsontable.ColumnSettings['type'];\n @Input() uncheckedTemplate: Handsontable.ColumnSettings['uncheckedTemplate'];\n @Input() validator: Handsontable.ColumnSettings['validator'];\n @Input() visibleRows: Handsontable.ColumnSettings['visibleRows'];\n @Input() width: Handsontable.ColumnSettings['width'];\n @Input() wordWrap: Handsontable.ColumnSettings['wordWrap'];\n\n constructor(private parentComponent: HotTableComponent) {}\n\n ngOnInit(): void {\n this.firstRun = false;\n this.parentComponent.addColumn(this);\n }\n\n ngOnChanges(): void {\n if (this.firstRun) {\n return;\n }\n\n this.parentComponent.onAfterColumnsChange();\n }\n\n ngOnDestroy(): void {\n this.parentComponent.removeColumn(this);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HotTableComponent } from './hot-table.component';\nimport { HotColumnComponent } from './hot-column.component';\nimport { HotTableRegisterer } from './hot-table-registerer.service';\n\n@NgModule({\n declarations: [\n HotTableComponent,\n HotColumnComponent,\n ],\n exports: [\n HotTableComponent,\n HotColumnComponent,\n ]\n})\nexport class HotTableModule {\n static version = '12.1.0';\n\n public static forRoot(): ModuleWithProviders<HotTableModule> {\n return {\n ngModule: HotTableModule,\n providers: [ HotTableRegisterer ],\n };\n }\n}\n"]}
@@ -244,6 +244,7 @@ HotTableComponent.propDecorators = {
244
244
  filteringCaseSensitive: [{ type: Input }],
245
245
  filters: [{ type: Input }],
246
246
  fixedColumnsLeft: [{ type: Input }],
247
+ fixedColumnsStart: [{ type: Input }],
247
248
  fixedRowsBottom: [{ type: Input }],
248
249
  fixedRowsTop: [{ type: Input }],
249
250
  formulas: [{ type: Input }],
@@ -254,6 +255,7 @@ HotTableComponent.propDecorators = {
254
255
  invalidCellClassName: [{ type: Input }],
255
256
  label: [{ type: Input }],
256
257
  language: [{ type: Input }],
258
+ layoutDirection: [{ type: Input }],
257
259
  licenseKey: [{ type: Input }],
258
260
  manualColumnFreeze: [{ type: Input }],
259
261
  manualColumnMove: [{ type: Input }],
@@ -598,6 +600,8 @@ if (false) {
598
600
  /** @type {?} */
599
601
  HotTableComponent.prototype.fixedColumnsLeft;
600
602
  /** @type {?} */
603
+ HotTableComponent.prototype.fixedColumnsStart;
604
+ /** @type {?} */
601
605
  HotTableComponent.prototype.fixedRowsBottom;
602
606
  /** @type {?} */
603
607
  HotTableComponent.prototype.fixedRowsTop;
@@ -618,6 +622,8 @@ if (false) {
618
622
  /** @type {?} */
619
623
  HotTableComponent.prototype.language;
620
624
  /** @type {?} */
625
+ HotTableComponent.prototype.layoutDirection;
626
+ /** @type {?} */
621
627
  HotTableComponent.prototype.licenseKey;
622
628
  /** @type {?} */
623
629
  HotTableComponent.prototype.manualColumnFreeze;
@@ -1087,4 +1093,4 @@ if (false) {
1087
1093
  */
1088
1094
  HotTableComponent.prototype._hotSettingsResolver;
1089
1095
  }
1090
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVN0RSxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7SUEwUzVCLFlBQ1UsT0FBZSxFQUNmLG1CQUF1QyxFQUN2QyxvQkFBeUM7UUFGekMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQTFTM0Msa0JBQWEsR0FBaUIsSUFBSSxDQUFDO1FBQ25DLHNCQUFpQixHQUF5QixFQUFFLENBQUM7UUFHNUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQXVTakIsQ0FBQzs7Ozs7SUFFSixJQUFZLFdBQVc7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUVsRixnRkFBZ0Y7WUFDaEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBRTNCO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFx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LGdEQUErRTs7SUFDL0UsMENBQW1FOztJQUNuRSw0Q0FBdUU7O0lBQ3ZFLGlEQUFpRjs7SUFDakYsNENBQXVFOztJQUN2RSw2Q0FBeUU7O0lBQ3pFLCtDQUE2RTs7SUFDN0UsaURBQWlGOztJQUNqRixnREFBK0U7O0lBQy9FLGlEQUFpRjs7SUFDakYsZ0RBQStFOzs7OztJQUc3RSxvQ0FBdUI7Ozs7O0lBQ3ZCLGdEQUErQzs7Ozs7SUFDL0MsaURBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgSGFuZHNvbnRhYmxlIGZyb20gJ2hhbmRzb250YWJsZS9iYXNlJztcbmltcG9ydCB7XG4gIEhvdFRhYmxlUmVnaXN0ZXJlcixcbiAgSE9UX0RFU1RST1lFRF9XQVJOSU5HXG59IGZyb20gJy4vaG90LXRhYmxlLXJlZ2lzdGVyZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RTZXR0aW5nc1Jlc29sdmVyIH0gZnJvbSAnLi9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2hvdC1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaG90LXRhYmxlJyxcbiAgdGVtcGxhdGU6ICc8ZGl2ICNjb250YWluZXIgW2lkXT1cImhvdElkXCI+PC9kaXY+JyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbIEhvdFRhYmxlUmVnaXN0ZXJlciwgSG90U2V0dGluZ3NSZXNvbHZlciBdLFxufSlcbmV4cG9ydCBjbGFzcyBIb3RUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBjb250YWluZXI7XG5cbiAgcHJpdmF0ZSBfX2hvdEluc3RhbmNlOiBIYW5kc29udGFibGUgPSBudWxsO1xuICBwcml2YXRlIGNvbHVtbnNDb21wb25lbnRzOiBIb3RDb2x1bW5Db21wb25lbnRbXSA9IFtdO1xuICAvLyBjb21wb25lbnQgaW5wdXRzXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzO1xuICBASW5wdXQoKSBob3RJZCA9ICcnO1xuICAvLyBoYW5kc29udGFibGUgb3B0aW9uc1xuICBASW5wdXQoKSBhY3RpdmVIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FjdGl2ZUhlYWRlckNsYXNzTmFtZSddO1xuICBASW5wdXQoKSBhbGxvd0VtcHR5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0VtcHR5J107XG4gIEBJbnB1dCgpIGFsbG93SHRtbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dIdG1sJ107XG4gIEBJbnB1dCgpIGFsbG93SW5zZXJ0Q29sdW1uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0luc2VydENvbHVtbiddO1xuICBASW5wdXQoKSBhbGxvd0luc2VydFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dJbnNlcnRSb3cnXTtcbiAgQElucHV0KCkgYWxsb3dJbnZhbGlkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0ludmFsaWQnXTtcbiAgQElucHV0KCkgYWxsb3dSZW1vdmVDb2x1bW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93UmVtb3ZlQ29sdW1uJ107XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd1JlbW92ZVJvdyddO1xuICBASW5wdXQoKSBhdXRvQ29sdW1uU2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b0NvbHVtblNpemUnXTtcbiAgQElucHV0KCkgYXV0b1Jvd1NpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2F1dG9Sb3dTaXplJ107XG4gIEBJbnB1dCgpIGF1dG9XcmFwQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvV3JhcENvbCddO1xuICBASW5wdXQoKSBhdXRvV3JhcFJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b1dyYXBSb3cnXTtcbiAgQElucHV0KCkgYmluZFJvd3NXaXRoSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmluZFJvd3NXaXRoSGVhZGVycyddO1xuICBASW5wdXQoKSBjZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxsJ107XG4gIEBJbnB1dCgpIGNlbGxzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjZWxscyddO1xuICBASW5wdXQoKSBjaGVja2VkVGVtcGxhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb2xIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xIZWFkZXJzJ107XG4gIEBJbnB1dCgpIGNvbGxhcHNpYmxlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sbGFwc2libGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIGNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbHVtbnMnXTtcbiAgQElucHV0KCkgY29sdW1uU29ydGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1uU29ydGluZyddO1xuICBASW5wdXQoKSBjb2x1bW5TdW1tYXJ5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5TdW1tYXJ5J107XG4gIEBJbnB1dCgpIGNvbFdpZHRoczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sV2lkdGhzJ107XG4gIEBJbnB1dCgpIGNvbW1lbnRlZENlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRlZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY29tbWVudHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbW1lbnRzJ107XG4gIEBJbnB1dCgpIGNvbnRleHRNZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBjb3B5YWJsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29weWFibGUnXTtcbiAgQElucHV0KCkgY29weVBhc3RlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3B5UGFzdGUnXTtcbiAgQElucHV0KCkgY29ycmVjdEZvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29ycmVjdEZvcm1hdCddO1xuICBASW5wdXQoKSBjdXJyZW50Q29sQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXJyZW50Q29sQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1cnJlbnRIZWFkZXJDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY3VycmVudFJvd0NsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY3VycmVudFJvd0NsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjdXN0b21Cb3JkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXN0b21Cb3JkZXJzJ107XG4gIEBJbnB1dCgpIGRhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGEnXTtcbiAgQElucHV0KCkgZGF0YVNjaGVtYTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YVNjaGVtYSddO1xuICBASW5wdXQoKSBkYXRlRm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkYXRlRm9ybWF0J107XG4gIEBJbnB1dCgpIGRlZmF1bHREYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkZWZhdWx0RGF0ZSddO1xuICBASW5wdXQoKSBkaXNhYmxlVmlzdWFsU2VsZWN0aW9uOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkaXNhYmxlVmlzdWFsU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGRyYWdUb1Njcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJhZ1RvU2Nyb2xsJ107XG4gIEBJbnB1dCgpIGRyb3Bkb3duTWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZHJvcGRvd25NZW51J107XG4gIEBJbnB1dCgpIGVkaXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZWRpdG9yJ107XG4gIEBJbnB1dCgpIGVudGVyQmVnaW5zRWRpdGluZzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZW50ZXJCZWdpbnNFZGl0aW5nJ107XG4gIEBJbnB1dCgpIGVudGVyTW92ZXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2VudGVyTW92ZXMnXTtcbiAgQElucHV0KCkgZmlsbEhhbmRsZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsbEhhbmRsZSddO1xuICBASW5wdXQoKSBmaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlciddO1xuICBASW5wdXQoKSBmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlJ107XG4gIEBJbnB1dCgpIGZpbHRlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlcnMnXTtcbiAgQElucHV0KCkgZml4ZWRDb2x1bW5zTGVmdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZml4ZWRDb2x1bW5zTGVmdCddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NCb3R0b206IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c0JvdHRvbSddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NUb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c1RvcCddO1xuICBASW5wdXQoKSBmb3JtdWxhczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZm9ybXVsYXMnXTtcbiAgQElucHV0KCkgZnJhZ21lbnRTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZyYWdtZW50U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGVpZ2h0J107XG4gIEBJbnB1dCgpIGhpZGRlbkNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2hpZGRlbkNvbHVtbnMnXTtcbiAgQElucHV0KCkgaGlkZGVuUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGlkZGVuUm93cyddO1xuICBASW5wdXQoKSBpbnZhbGlkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW52YWxpZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbGFiZWw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xhYmVsJ107XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBsaWNlbnNlS2V5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsaWNlbnNlS2V5J107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbENvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgbWFudWFsQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYW51YWxDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgbWFudWFsUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsUm93TW92ZSddO1xuICBASW5wdXQoKSBtYW51YWxSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbFJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBtYXhDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYXhDb2xzJ107XG4gIEBJbnB1dCgpIG1heFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21heFJvd3MnXTtcbiAgQElucHV0KCkgbWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBtaW5Db2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5Db2xzJ107XG4gIEBJbnB1dCgpIG1pblJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21pblJvd3MnXTtcbiAgQElucHV0KCkgbWluU3BhcmVDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZUNvbHMnXTtcbiAgQElucHV0KCkgbWluU3BhcmVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZVJvd3MnXTtcbiAgQElucHV0KCkgbXVsdGlDb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtdWx0aUNvbHVtblNvcnRpbmcnXTtcbiAgQElucHV0KCkgbmVzdGVkSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmVzdGVkSGVhZGVycyddO1xuICBASW5wdXQoKSBuZXN0ZWRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIG5vV29yZFdyYXBDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ25vV29yZFdyYXBDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbnVtZXJpY0Zvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbnVtZXJpY0Zvcm1hdCddO1xuICBASW5wdXQoKSBvYnNlcnZlRE9NVmlzaWJpbGl0eTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snb2JzZXJ2ZURPTVZpc2liaWxpdHknXTtcbiAgQElucHV0KCkgb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydvdXRzaWRlQ2xpY2tEZXNlbGVjdHMnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGUnXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3BsYWNlaG9sZGVyJ107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIHByZXZlbnRPdmVyZmxvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudE92ZXJmbG93J107XG4gIEBJbnB1dCgpIHByZXZlbnRXaGVlbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudFdoZWVsJ107XG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZWFkT25seSddO1xuICBASW5wdXQoKSByZWFkT25seUNlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlYWRPbmx5Q2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSByZW5kZXJBbGxSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJBbGxSb3dzJ107XG4gIEBJbnB1dCgpIHJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSByb3dIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJzJ107XG4gIEBJbnB1dCgpIHJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSByb3dIZWlnaHRzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWlnaHRzJ107XG4gIEBJbnB1dCgpIHNlYXJjaDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VhcmNoJ107XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlbGVjdGlvbk1vZGUnXTtcbiAgQElucHV0KCkgc2VsZWN0T3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VsZWN0T3B0aW9ucyddO1xuICBASW5wdXQoKSBza2lwQ29sdW1uT25QYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2tpcENvbHVtbk9uUGFzdGUnXTtcbiAgQElucHV0KCkgc2tpcFJvd09uUGFzdGU6IGFueTtcbiAgQElucHV0KCkgc29ydEJ5UmVsZXZhbmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3J0QnlSZWxldmFuY2UnXTtcbiAgQElucHV0KCkgc291cmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3VyY2UnXTtcbiAgQElucHV0KCkgc3RhcnRDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydENvbHMnXTtcbiAgQElucHV0KCkgc3RhcnRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydFJvd3MnXTtcbiAgQElucHV0KCkgc3RyZXRjaEg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3N0cmV0Y2hIJ107XG4gIEBJbnB1dCgpIHN0cmljdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RyaWN0J107XG4gIEBJbnB1dCgpIHRhYmxlQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0YWJsZUNsYXNzTmFtZSddO1xuICBASW5wdXQoKSB0YWJNb3ZlczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndGFiTW92ZXMnXTtcbiAgQElucHV0KCkgdGl0bGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RpdGxlJ107XG4gIEBJbnB1dCgpIHRyaW1Ecm9wZG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHJpbURyb3Bkb3duJ107XG4gIEBJbnB1dCgpIHRyaW1Sb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIHRyaW1XaGl0ZXNwYWNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0cmltV2hpdGVzcGFjZSddO1xuICBASW5wdXQoKSB0eXBlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0eXBlJ107XG4gIEBJbnB1dCgpIHVuY2hlY2tlZFRlbXBsYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmNoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSB1bmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmRvJ107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmFsaWRhdG9yJ107XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldCddO1xuICBASW5wdXQoKSB2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQnXTtcbiAgQElucHV0KCkgdmlzaWJsZVJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3Zpc2libGVSb3dzJ107XG4gIEBJbnB1dCgpIHdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd3aWR0aCddO1xuICBASW5wdXQoKSB3b3JkV3JhcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snd29yZFdyYXAnXTtcblxuICAvLyBoYW5kc29udGFibGUgaG9va3NcbiAgQElucHV0KCkgYWZ0ZXJBZGRDaGlsZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJBZGRDaGlsZCddO1xuICBASW5wdXQoKSBhZnRlckF1dG9maWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckF1dG9maWxsJ107XG4gIEBJbnB1dCgpIGFmdGVyQmVnaW5FZGl0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckJlZ2luRWRpdGluZyddO1xuICBASW5wdXQoKSBhZnRlckNlbGxNZXRhUmVzZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2VsbE1ldGFSZXNldCddO1xuICBASW5wdXQoKSBhZnRlckNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2hhbmdlc09ic2VydmVkJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uQ29sbGFwc2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uQ29sbGFwc2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uRXhwYW5kJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uTW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtblJlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uU29ydCddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51SGlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb250ZXh0TWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb3B5J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weUxpbWl0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvcHlMaW1pdCddO1xuICBASW5wdXQoKSBhZnRlckNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJDcmVhdGVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckN1dCddO1xuICBASW5wdXQoKSBhZnRlckRlc2VsZWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRlc2VsZWN0J107XG4gIEBJbnB1dCgpIGFmdGVyRGVzdHJveTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEZXN0cm95J107XG4gIEBJbnB1dCgpIGFmdGVyRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRGV0YWNoQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJEb2N1bWVudEtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRG9jdW1lbnRLZXlEb3duJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJhd1NlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEcmF3U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVIaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRmlsdGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyddO1xuICBASW5wdXQoKSBhZnRlckdldFJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRSb3dIZWFkZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzJ107XG4gIEBJbnB1dCgpIGFmdGVySGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJIaWRlUm93cyddO1xuICBASW5wdXQoKSBhZnRlckluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySW5pdCddO1xuICBASW5wdXQoKSBhZnRlckxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxhbmd1YWdlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyTGlzdGVuOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxpc3RlbiddO1xuICBASW5wdXQoKSBhZnRlckxvYWREYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxvYWREYXRhJ107XG4gIEBJbnB1dCgpIGFmdGVyTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJNZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCddO1xuICBASW5wdXQoKSBhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0J107XG4gIEBJbnB1dCgpIGFmdGVyTW9tZW50dW1TY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9tZW50dW1TY3JvbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lckRibENsaWNrJ107XG4gIEBJbnB1dCgpIGFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlRG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU91dCddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZVVwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYWZ0ZXJQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQYXN0ZSddO1xuICBASW5wdXQoKSBhZnRlclBsdWdpbnNJbml0aWFsaXplZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVkb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclJlbW92ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlciddO1xuICBASW5wdXQoKSBhZnRlclJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSb3dNb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbEhvcml6b250YWxseTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNjcm9sbFZlcnRpY2FsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uQnlQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdGlvbkJ5UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNlbGVjdGlvbkVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZWxlY3Rpb25FbmQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRW5kQnlQcm9wJ107XG4gIEBJbnB1dCgpIGFmdGVyU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRSb3dQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdFJvd1Byb3AnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldFNvdXJjZURhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJUcmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclRyaW1Sb3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVuZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVSb3dzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5saXN0ZW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5saXN0ZW4nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5tZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW50cmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVudHJpbVJvdyddO1xuICBASW5wdXQoKSBhZnRlclVwZGF0ZVNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVwZGF0ZVNldHRpbmdzJ107XG4gIEBJbnB1dCgpIGFmdGVyVmFsaWRhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSddO1xuICBASW5wdXQoKSBhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlJ107XG4gIEBJbnB1dCgpIGFmdGVyVmlld1JlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3UmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUFkZENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVBZGRDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVBdXRvZmlsbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSddO1xuICBASW5wdXQoKSBiZWZvcmVDZWxsQWxpZ25tZW50OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDZWxsQWxpZ25tZW50J107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZVJlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkNvbGxhcHNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Db2xsYXBzZSddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbkV4cGFuZCddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5Nb3ZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblJlc2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uUmVzaXplJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtblNvcnQnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyddO1xuICBASW5wdXQoKSBiZWZvcmVDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbnRleHRNZW51U2hvdyddO1xuICBASW5wdXQoKSBiZWZvcmVDb3B5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb3B5J107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlQ29sJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGJlZm9yZUN1dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZURldGFjaENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVEZXRhY2hDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVEcmF3Qm9yZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJhd0JvcmRlcnMnXTtcbiAgQElucHV0KCkgYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zJ107XG4gIEBJbnB1dCgpIGJlZm9yZURyb3Bkb3duTWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYmVmb3JlRmlsdGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVGaWx0ZXInXTtcbiAgQElucHV0KCkgYmVmb3JlR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUdldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZUhpZGVDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVIaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBiZWZvcmVIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSGlkZVJvd3MnXTtcbiAgQElucHV0KCkgYmVmb3JlSW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSW5pdCddO1xuICBASW5wdXQoKSBiZWZvcmVJbml0V2Fsa29udGFibGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUluaXRXYWxrb250YWJsZSddO1xuICBASW5wdXQoKSBiZWZvcmVLZXlEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVLZXlEb3duJ107XG4gIEBJbnB1dCgpIGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVMYW5ndWFnZUNoYW5nZSddO1xuICBASW5wdXQoKSBiZWZvcmVMb2FkRGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTG9hZERhdGEnXTtcbiAgQElucHV0KCkgYmVmb3JlTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsQ29udGV4dE1lbnUnXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VPdXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlT3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VPdmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlVXA6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYmVmb3JlUGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVBhc3RlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlZG86IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZG8nXTtcbiAgQElucHV0KCkgYmVmb3JlUmVkb1N0YWNrQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZWRvU3RhY2tDaGFuZ2UnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZnJlc2hEaW1lbnNpb25zJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVtb3ZlQ2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVSb3cnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJvd01vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJvd01vdmUnXTtcbiAgQElucHV0KCkgYmVmb3JlUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSb3dSZXNpemUnXTtcbiAgQElucHV0KCkgYmVmb3JlU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZUVuZCddO1xuICBASW5wdXQoKSBiZWZvcmVTZXRSYW5nZVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlU3RhcnRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSddO1xuICBASW5wdXQoKSBiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCddO1xuICBASW5wdXQoKSBiZWZvcmVUb3VjaFNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVG91Y2hTY3JvbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVbmRvJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuZG9TdGFja0NoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVuaGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVVbnRyaW1Sb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVudHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVWYWxpZGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYmVmb3JlVmFsdWVSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZhbHVlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVZpZXdSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZpZXdSZW5kZXInXTtcbiAgQElucHV0KCkgY29uc3RydWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb25zdHJ1Y3QnXTtcbiAgQElucHV0KCkgaW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW5pdCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvZmlsbFJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlBdXRvZmlsbFJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbEhlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbFdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb2xXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlDb3B5YWJsZVJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb3B5YWJsZVJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeURhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeURhdGEnXTtcbiAgQElucHV0KCkgbW9kaWZ5R2V0Q2VsbENvb3JkczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5R2V0Q2VsbENvb3JkcyddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93SGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dIZWlnaHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0hlaWdodCddO1xuICBASW5wdXQoKSBtb2RpZnlTb3VyY2VEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlTb3VyY2VEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybUVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5VHJhbnNmb3JtRW5kJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlUcmFuc2Zvcm1TdGFydCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVMb2FkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVMb2FkJ107XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVSZXNldCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVTYXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVTYXZlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfaG90VGFibGVSZWdpc3RlcmVyOiBIb3RUYWJsZVJlZ2lzdGVyZXIsXG4gICAgcHJpdmF0ZSBfaG90U2V0dGluZ3NSZXNvbHZlcjogSG90U2V0dGluZ3NSZXNvbHZlcixcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGhvdEluc3RhbmNlKCk6IEhhbmRzb250YWJsZSB8IG51bGwge1xuICAgIGlmICghdGhpcy5fX2hvdEluc3RhbmNlIHx8ICh0aGlzLl9faG90SW5zdGFuY2UgJiYgIXRoaXMuX19ob3RJbnN0YW5jZS5pc0Rlc3Ryb3llZCkpIHtcblxuICAgICAgLy8gV2lsbCByZXR1cm4gdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBvciBgbnVsbGAgaWYgaXQncyBub3QgeWV0IGJlZW4gY3JlYXRlZC5cbiAgICAgIHJldHVybiB0aGlzLl9faG90SW5zdGFuY2U7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuXG4gICAgICBjb25zb2xlLndhcm4oSE9UX0RFU1RST1lFRF9XQVJOSU5HKTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXQgaG90SW5zdGFuY2UoaG90SW5zdGFuY2UpIHtcbiAgICB0aGlzLl9faG90SW5zdGFuY2UgPSBob3RJbnN0YW5jZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKHRoaXMpO1xuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1ucyA9IFtdO1xuXG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG5cbiAgICAgIG9wdGlvbnNbJ2NvbHVtbnMnXSA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaG90SW5zdGFuY2UgPSBuZXcgSGFuZHNvbnRhYmxlLkNvcmUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgIGlmICh0aGlzLmhvdElkKSB7XG4gICAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZWdpc3Rlckluc3RhbmNlKHRoaXMuaG90SWQsIHRoaXMuaG90SW5zdGFuY2UpO1xuICAgICAgfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5ob3RJbnN0YW5jZS5pbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG90SW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5wcmVwYXJlQ2hhbmdlcyhjaGFuZ2VzKTtcblxuICAgIHRoaXMudXBkYXRlSG90VGFibGUobmV3T3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5ob3RJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5ob3RJZCkge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUhvdFRhYmxlKG5ld1NldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ob3RJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKG5ld1NldHRpbmdzLCBmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFmdGVyQ29sdW1uc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cyA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1uczogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzW10gPSBbXTtcblxuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXdPcHRpb25zID0ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnVwZGF0ZUhvdFRhYmxlKG5ld09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbnM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1tdID0gW107XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVIb3RUYWJsZSh7IGNvbHVtbnMgfSk7XG4gIH1cblxuICBhZGRDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnB1c2goY29sdW1uKTtcbiAgICB0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk7XG4gIH1cblxuICByZW1vdmVDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5pbmRleE9mKGNvbHVtbik7XG5cbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpO1xuICB9XG5cbn1cbiJdfQ==
1096
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxZQUFZLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDdEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVN0RSxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7SUE0UzVCLFlBQ1UsT0FBZSxFQUNmLG1CQUF1QyxFQUN2QyxvQkFBeUM7UUFGekMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQTVTM0Msa0JBQWEsR0FBaUIsSUFBSSxDQUFDO1FBQ25DLHNCQUFpQixHQUF5QixFQUFFLENBQUM7UUFHNUMsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQXlTakIsQ0FBQzs7Ozs7SUFFSixJQUFZLFdBQVc7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUVsRixnRkFBZ0Y7WUFDaEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBRTNCO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFx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Rjs7SUFDekYsMkNBQXFFOztJQUNyRSxnREFBK0U7O0lBQy9FLHVDQUE2RDs7SUFDN0QsZ0RBQStFOztJQUMvRSwwQ0FBbUU7O0lBQ25FLDRDQUF1RTs7SUFDdkUsaURBQWlGOztJQUNqRiw0Q0FBdUU7O0lBQ3ZFLDZDQUF5RTs7SUFDekUsK0NBQTZFOztJQUM3RSxpREFBaUY7O0lBQ2pGLGdEQUErRTs7SUFDL0UsaURBQWlGOztJQUNqRixnREFBK0U7Ozs7O0lBRzdFLG9DQUF1Qjs7Ozs7SUFDdkIsZ0RBQStDOzs7OztJQUMvQyxpREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlL2Jhc2UnO1xuaW1wb3J0IHtcbiAgSG90VGFibGVSZWdpc3RlcmVyLFxuICBIT1RfREVTVFJPWUVEX1dBUk5JTkdcbn0gZnJvbSAnLi9ob3QtdGFibGUtcmVnaXN0ZXJlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhvdFNldHRpbmdzUmVzb2x2ZXIgfSBmcm9tICcuL2hvdC1zZXR0aW5ncy1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7IEhvdENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vaG90LWNvbHVtbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdob3QtdGFibGUnLFxuICB0ZW1wbGF0ZTogJzxkaXYgI2NvbnRhaW5lciBbaWRdPVwiaG90SWRcIj48L2Rpdj4nLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFsgSG90VGFibGVSZWdpc3RlcmVyLCBIb3RTZXR0aW5nc1Jlc29sdmVyIF0sXG59KVxuZXhwb3J0IGNsYXNzIEhvdFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGNvbnRhaW5lcjtcblxuICBwcml2YXRlIF9faG90SW5zdGFuY2U6IEhhbmRzb250YWJsZSA9IG51bGw7XG4gIHByaXZhdGUgY29sdW1uc0NvbXBvbmVudHM6IEhvdENvbHVtbkNvbXBvbmVudFtdID0gW107XG4gIC8vIGNvbXBvbmVudCBpbnB1dHNcbiAgQElucHV0KCkgc2V0dGluZ3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3M7XG4gIEBJbnB1dCgpIGhvdElkID0gJyc7XG4gIC8vIGhhbmRzb250YWJsZSBvcHRpb25zXG4gIEBJbnB1dCgpIGFjdGl2ZUhlYWRlckNsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWN0aXZlSGVhZGVyQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGFsbG93RW1wdHk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93RW1wdHknXTtcbiAgQElucHV0KCkgYWxsb3dIdG1sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0h0bWwnXTtcbiAgQElucHV0KCkgYWxsb3dJbnNlcnRDb2x1bW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93SW5zZXJ0Q29sdW1uJ107XG4gIEBJbnB1dCgpIGFsbG93SW5zZXJ0Um93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhbGxvd0luc2VydFJvdyddO1xuICBASW5wdXQoKSBhbGxvd0ludmFsaWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93SW52YWxpZCddO1xuICBASW5wdXQoKSBhbGxvd1JlbW92ZUNvbHVtbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWxsb3dSZW1vdmVDb2x1bW4nXTtcbiAgQElucHV0KCkgYWxsb3dSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FsbG93UmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGF1dG9Db2x1bW5TaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvQ29sdW1uU2l6ZSddO1xuICBASW5wdXQoKSBhdXRvUm93U2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYXV0b1Jvd1NpemUnXTtcbiAgQElucHV0KCkgYXV0b1dyYXBDb2w6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2F1dG9XcmFwQ29sJ107XG4gIEBJbnB1dCgpIGF1dG9XcmFwUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhdXRvV3JhcFJvdyddO1xuICBASW5wdXQoKSBiaW5kUm93c1dpdGhIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiaW5kUm93c1dpdGhIZWFkZXJzJ107XG4gIEBJbnB1dCgpIGNlbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NlbGwnXTtcbiAgQElucHV0KCkgY2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NlbGxzJ107XG4gIEBJbnB1dCgpIGNoZWNrZWRUZW1wbGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY2hlY2tlZFRlbXBsYXRlJ107XG4gIEBJbnB1dCgpIGNsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGNvbEhlYWRlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbEhlYWRlcnMnXTtcbiAgQElucHV0KCkgY29sbGFwc2libGVDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xsYXBzaWJsZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgY29sdW1uSGVhZGVySGVpZ2h0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5IZWFkZXJIZWlnaHQnXTtcbiAgQElucHV0KCkgY29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29sdW1ucyddO1xuICBASW5wdXQoKSBjb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2x1bW5Tb3J0aW5nJ107XG4gIEBJbnB1dCgpIGNvbHVtblN1bW1hcnk6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbHVtblN1bW1hcnknXTtcbiAgQElucHV0KCkgY29sV2lkdGhzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb2xXaWR0aHMnXTtcbiAgQElucHV0KCkgY29tbWVudGVkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29tbWVudGVkQ2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjb21tZW50czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY29tbWVudHMnXTtcbiAgQElucHV0KCkgY29udGV4dE1lbnU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvbnRleHRNZW51J107XG4gIEBJbnB1dCgpIGNvcHlhYmxlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3B5YWJsZSddO1xuICBASW5wdXQoKSBjb3B5UGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2NvcHlQYXN0ZSddO1xuICBASW5wdXQoKSBjb3JyZWN0Rm9ybWF0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb3JyZWN0Rm9ybWF0J107XG4gIEBJbnB1dCgpIGN1cnJlbnRDb2xDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1cnJlbnRDb2xDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgY3VycmVudEhlYWRlckNsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snY3VycmVudEhlYWRlckNsYXNzTmFtZSddO1xuICBASW5wdXQoKSBjdXJyZW50Um93Q2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjdXJyZW50Um93Q2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIGN1c3RvbUJvcmRlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2N1c3RvbUJvcmRlcnMnXTtcbiAgQElucHV0KCkgZGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YSddO1xuICBASW5wdXQoKSBkYXRhU2NoZW1hOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkYXRhU2NoZW1hJ107XG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGVGb3JtYXQnXTtcbiAgQElucHV0KCkgZGVmYXVsdERhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RlZmF1bHREYXRlJ107XG4gIEBJbnB1dCgpIGRpc2FibGVWaXN1YWxTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2Rpc2FibGVWaXN1YWxTZWxlY3Rpb24nXTtcbiAgQElucHV0KCkgZHJhZ1RvU2Nyb2xsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkcmFnVG9TY3JvbGwnXTtcbiAgQElucHV0KCkgZHJvcGRvd25NZW51OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydkcm9wZG93bk1lbnUnXTtcbiAgQElucHV0KCkgZWRpdG9yOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydlZGl0b3InXTtcbiAgQElucHV0KCkgZW50ZXJCZWdpbnNFZGl0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydlbnRlckJlZ2luc0VkaXRpbmcnXTtcbiAgQElucHV0KCkgZW50ZXJNb3ZlczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZW50ZXJNb3ZlcyddO1xuICBASW5wdXQoKSBmaWxsSGFuZGxlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaWxsSGFuZGxlJ107XG4gIEBJbnB1dCgpIGZpbHRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsdGVyJ107XG4gIEBJbnB1dCgpIGZpbHRlcmluZ0Nhc2VTZW5zaXRpdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpbHRlcmluZ0Nhc2VTZW5zaXRpdmUnXTtcbiAgQElucHV0KCkgZmlsdGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZmlsdGVycyddO1xuICBASW5wdXQoKSBmaXhlZENvbHVtbnNMZWZ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaXhlZENvbHVtbnNMZWZ0J107XG4gIEBJbnB1dCgpIGZpeGVkQ29sdW1uc1N0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydmaXhlZENvbHVtbnNTdGFydCddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NCb3R0b206IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c0JvdHRvbSddO1xuICBASW5wdXQoKSBmaXhlZFJvd3NUb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZpeGVkUm93c1RvcCddO1xuICBASW5wdXQoKSBmb3JtdWxhczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZm9ybXVsYXMnXTtcbiAgQElucHV0KCkgZnJhZ21lbnRTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2ZyYWdtZW50U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGVpZ2h0J107XG4gIEBJbnB1dCgpIGhpZGRlbkNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2hpZGRlbkNvbHVtbnMnXTtcbiAgQElucHV0KCkgaGlkZGVuUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaGlkZGVuUm93cyddO1xuICBASW5wdXQoKSBpbnZhbGlkQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW52YWxpZENlbGxDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbGFiZWw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xhYmVsJ107XG4gIEBJbnB1dCgpIGxhbmd1YWdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsYW5ndWFnZSddO1xuICBASW5wdXQoKSBsYXlvdXREaXJlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2xheW91dERpcmVjdGlvbiddO1xuICBASW5wdXQoKSBsaWNlbnNlS2V5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydsaWNlbnNlS2V5J107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbkZyZWV6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsQ29sdW1uRnJlZXplJ107XG4gIEBJbnB1dCgpIG1hbnVhbENvbHVtbk1vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbENvbHVtbk1vdmUnXTtcbiAgQElucHV0KCkgbWFudWFsQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYW51YWxDb2x1bW5SZXNpemUnXTtcbiAgQElucHV0KCkgbWFudWFsUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWFudWFsUm93TW92ZSddO1xuICBASW5wdXQoKSBtYW51YWxSb3dSZXNpemU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21hbnVhbFJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBtYXhDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtYXhDb2xzJ107XG4gIEBJbnB1dCgpIG1heFJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21heFJvd3MnXTtcbiAgQElucHV0KCkgbWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBtaW5Db2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5Db2xzJ107XG4gIEBJbnB1dCgpIG1pblJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21pblJvd3MnXTtcbiAgQElucHV0KCkgbWluU3BhcmVDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZUNvbHMnXTtcbiAgQElucHV0KCkgbWluU3BhcmVSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtaW5TcGFyZVJvd3MnXTtcbiAgQElucHV0KCkgbXVsdGlDb2x1bW5Tb3J0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtdWx0aUNvbHVtblNvcnRpbmcnXTtcbiAgQElucHV0KCkgbmVzdGVkSGVhZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbmVzdGVkSGVhZGVycyddO1xuICBASW5wdXQoKSBuZXN0ZWRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIG5vV29yZFdyYXBDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ25vV29yZFdyYXBDbGFzc05hbWUnXTtcbiAgQElucHV0KCkgbnVtZXJpY0Zvcm1hdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbnVtZXJpY0Zvcm1hdCddO1xuICBASW5wdXQoKSBvYnNlcnZlRE9NVmlzaWJpbGl0eTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snb2JzZXJ2ZURPTVZpc2liaWxpdHknXTtcbiAgQElucHV0KCkgb3V0c2lkZUNsaWNrRGVzZWxlY3RzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydvdXRzaWRlQ2xpY2tEZXNlbGVjdHMnXTtcbiAgQElucHV0KCkgcGVyc2lzdGVudFN0YXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGUnXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3BsYWNlaG9sZGVyJ107XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyQ2VsbENsYXNzTmFtZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lJ107XG4gIEBJbnB1dCgpIHByZXZlbnRPdmVyZmxvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudE92ZXJmbG93J107XG4gIEBJbnB1dCgpIHByZXZlbnRXaGVlbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sncHJldmVudFdoZWVsJ107XG4gIEBJbnB1dCgpIHJlYWRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZWFkT25seSddO1xuICBASW5wdXQoKSByZWFkT25seUNlbGxDbGFzc05hbWU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3JlYWRPbmx5Q2VsbENsYXNzTmFtZSddO1xuICBASW5wdXQoKSByZW5kZXJBbGxSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJBbGxSb3dzJ107XG4gIEBJbnB1dCgpIHJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyZW5kZXJlciddO1xuICBASW5wdXQoKSByb3dIZWFkZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJzJ107XG4gIEBJbnB1dCgpIHJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSByb3dIZWlnaHRzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydyb3dIZWlnaHRzJ107XG4gIEBJbnB1dCgpIHNlYXJjaDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VhcmNoJ107XG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3NlbGVjdGlvbk1vZGUnXTtcbiAgQElucHV0KCkgc2VsZWN0T3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2VsZWN0T3B0aW9ucyddO1xuICBASW5wdXQoKSBza2lwQ29sdW1uT25QYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc2tpcENvbHVtbk9uUGFzdGUnXTtcbiAgQElucHV0KCkgc2tpcFJvd09uUGFzdGU6IGFueTtcbiAgQElucHV0KCkgc29ydEJ5UmVsZXZhbmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3J0QnlSZWxldmFuY2UnXTtcbiAgQElucHV0KCkgc291cmNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzb3VyY2UnXTtcbiAgQElucHV0KCkgc3RhcnRDb2xzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydENvbHMnXTtcbiAgQElucHV0KCkgc3RhcnRSb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydzdGFydFJvd3MnXTtcbiAgQElucHV0KCkgc3RyZXRjaEg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3N0cmV0Y2hIJ107XG4gIEBJbnB1dCgpIHN0cmljdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snc3RyaWN0J107XG4gIEBJbnB1dCgpIHRhYmxlQ2xhc3NOYW1lOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0YWJsZUNsYXNzTmFtZSddO1xuICBASW5wdXQoKSB0YWJNb3ZlczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndGFiTW92ZXMnXTtcbiAgQElucHV0KCkgdGl0bGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RpdGxlJ107XG4gIEBJbnB1dCgpIHRyaW1Ecm9wZG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndHJpbURyb3Bkb3duJ107XG4gIEBJbnB1dCgpIHRyaW1Sb3dzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyduZXN0ZWRSb3dzJ107XG4gIEBJbnB1dCgpIHRyaW1XaGl0ZXNwYWNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0cmltV2hpdGVzcGFjZSddO1xuICBASW5wdXQoKSB0eXBlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd0eXBlJ107XG4gIEBJbnB1dCgpIHVuY2hlY2tlZFRlbXBsYXRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmNoZWNrZWRUZW1wbGF0ZSddO1xuICBASW5wdXQoKSB1bmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd1bmRvJ107XG4gIEBJbnB1dCgpIHZhbGlkYXRvcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmFsaWRhdG9yJ107XG4gIEBJbnB1dCgpIHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd2aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldCddO1xuICBASW5wdXQoKSB2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1sndmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQnXTtcbiAgQElucHV0KCkgdmlzaWJsZVJvd3M6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3Zpc2libGVSb3dzJ107XG4gIEBJbnB1dCgpIHdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWyd3aWR0aCddO1xuICBASW5wdXQoKSB3b3JkV3JhcDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snd29yZFdyYXAnXTtcblxuICAvLyBoYW5kc29udGFibGUgaG9va3NcbiAgQElucHV0KCkgYWZ0ZXJBZGRDaGlsZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJBZGRDaGlsZCddO1xuICBASW5wdXQoKSBhZnRlckF1dG9maWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckF1dG9maWxsJ107XG4gIEBJbnB1dCgpIGFmdGVyQmVnaW5FZGl0aW5nOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckJlZ2luRWRpdGluZyddO1xuICBASW5wdXQoKSBhZnRlckNlbGxNZXRhUmVzZXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2VsbE1ldGFSZXNldCddO1xuICBASW5wdXQoKSBhZnRlckNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDaGFuZ2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ2hhbmdlc09ic2VydmVkJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uQ29sbGFwc2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uQ29sbGFwc2UnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uRXhwYW5kJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uTW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyQ29sdW1uUmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvbHVtblJlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlckNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29sdW1uU29ydCddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyddO1xuICBASW5wdXQoKSBhZnRlckNvbnRleHRNZW51SGlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb250ZXh0TWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ29udGV4dE1lbnVTaG93J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDb3B5J107XG4gIEBJbnB1dCgpIGFmdGVyQ29weUxpbWl0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckNvcHlMaW1pdCddO1xuICBASW5wdXQoKSBhZnRlckNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJDcmVhdGVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJDcmVhdGVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyQ3V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckN1dCddO1xuICBASW5wdXQoKSBhZnRlckRlc2VsZWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRlc2VsZWN0J107XG4gIEBJbnB1dCgpIGFmdGVyRGVzdHJveTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEZXN0cm95J107XG4gIEBJbnB1dCgpIGFmdGVyRGV0YWNoQ2hpbGQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRGV0YWNoQ2hpbGQnXTtcbiAgQElucHV0KCkgYWZ0ZXJEb2N1bWVudEtleURvd246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRG9jdW1lbnRLZXlEb3duJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJhd1NlbGVjdGlvbjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJEcmF3U2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVIaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudUhpZGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckRyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJGaWx0ZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyRmlsdGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRDb2xIZWFkZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIGFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyddO1xuICBASW5wdXQoKSBhZnRlckdldFJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJHZXRSb3dIZWFkZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzJ107XG4gIEBJbnB1dCgpIGFmdGVySGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJIaWRlUm93cyddO1xuICBASW5wdXQoKSBhZnRlckluaXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVySW5pdCddO1xuICBASW5wdXQoKSBhZnRlckxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxhbmd1YWdlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyTGlzdGVuOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxpc3RlbiddO1xuICBASW5wdXQoKSBhZnRlckxvYWREYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlckxvYWREYXRhJ107XG4gIEBJbnB1dCgpIGFmdGVyTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJNZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybUVuZCddO1xuICBASW5wdXQoKSBhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0J107XG4gIEBJbnB1dCgpIGFmdGVyTW9tZW50dW1TY3JvbGw6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyTW9tZW50dW1TY3JvbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbENvcm5lckRibENsaWNrOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lckRibENsaWNrJ107XG4gIEBJbnB1dCgpIGFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlRG93bjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZU91dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU91dCddO1xuICBASW5wdXQoKSBhZnRlck9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJPbkNlbGxNb3VzZU92ZXInXTtcbiAgQElucHV0KCkgYWZ0ZXJPbkNlbGxNb3VzZVVwOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlck9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYWZ0ZXJQYXN0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQYXN0ZSddO1xuICBASW5wdXQoKSBhZnRlclBsdWdpbnNJbml0aWFsaXplZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVkb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVmcmVzaERpbWVuc2lvbnMnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDZWxsTWV0YSddO1xuICBASW5wdXQoKSBhZnRlclJlbW92ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYWZ0ZXJSZW1vdmVSb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyUmVtb3ZlUm93J107XG4gIEBJbnB1dCgpIGFmdGVyUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlciddO1xuICBASW5wdXQoKSBhZnRlclJlbmRlcmVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93TW92ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJSb3dNb3ZlJ107XG4gIEBJbnB1dCgpIGFmdGVyUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclJvd1Jlc2l6ZSddO1xuICBASW5wdXQoKSBhZnRlclNjcm9sbEhvcml6b250YWxseTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNjcm9sbFZlcnRpY2FsbHknXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb246IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uJ107XG4gIEBJbnB1dCgpIGFmdGVyU2VsZWN0aW9uQnlQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNlbGVjdGlvbkJ5UHJvcCddO1xuICBASW5wdXQoKSBhZnRlclNlbGVjdGlvbkVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJTZWxlY3Rpb25FbmQnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3A6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2VsZWN0aW9uRW5kQnlQcm9wJ107XG4gIEBJbnB1dCgpIGFmdGVyU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyU2V0Q2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXREYXRhQXRSb3dQcm9wOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldERhdGFBdFJvd1Byb3AnXTtcbiAgQElucHV0KCkgYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclNldFNvdXJjZURhdGFBdENlbGwnXTtcbiAgQElucHV0KCkgYWZ0ZXJUcmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclRyaW1Sb3cnXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVuZG8nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlQ29sdW1uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVDb2x1bW5zJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJVbmhpZGVSb3dzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW5saXN0ZW46IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5saXN0ZW4nXTtcbiAgQElucHV0KCkgYWZ0ZXJVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVW5tZXJnZUNlbGxzJ107XG4gIEBJbnB1dCgpIGFmdGVyVW50cmltUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVudHJpbVJvdyddO1xuICBASW5wdXQoKSBhZnRlclVwZGF0ZVNldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclVwZGF0ZVNldHRpbmdzJ107XG4gIEBJbnB1dCgpIGFmdGVyVmFsaWRhdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2FmdGVyVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSddO1xuICBASW5wdXQoKSBhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlJ107XG4gIEBJbnB1dCgpIGFmdGVyVmlld1JlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYWZ0ZXJWaWV3UmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUFkZENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVBZGRDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVBdXRvZmlsbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSddO1xuICBASW5wdXQoKSBiZWZvcmVDZWxsQWxpZ25tZW50OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDZWxsQWxpZ25tZW50J107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNoYW5nZVJlbmRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ2hhbmdlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtbkNvbGxhcHNlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Db2xsYXBzZSddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5FeHBhbmQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtbkV4cGFuZCddO1xuICBASW5wdXQoKSBiZWZvcmVDb2x1bW5Nb3ZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb2x1bW5Nb3ZlJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblJlc2l6ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29sdW1uUmVzaXplJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNvbHVtblNvcnQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbHVtblNvcnQnXTtcbiAgQElucHV0KCkgYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ29udGV4dE1lbnVTZXRJdGVtcyddO1xuICBASW5wdXQoKSBiZWZvcmVDb250ZXh0TWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUNvbnRleHRNZW51U2hvdyddO1xuICBASW5wdXQoKSBiZWZvcmVDb3B5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVDb3B5J107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZUNvbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlQ29sJ107XG4gIEBJbnB1dCgpIGJlZm9yZUNyZWF0ZVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3JlYXRlUm93J107XG4gIEBJbnB1dCgpIGJlZm9yZUN1dDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlQ3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZURldGFjaENoaWxkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVEZXRhY2hDaGlsZCddO1xuICBASW5wdXQoKSBiZWZvcmVEcmF3Qm9yZGVyczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlRHJhd0JvcmRlcnMnXTtcbiAgQElucHV0KCkgYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zJ107XG4gIEBJbnB1dCgpIGJlZm9yZURyb3Bkb3duTWVudVNob3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZURyb3Bkb3duTWVudVNob3cnXTtcbiAgQElucHV0KCkgYmVmb3JlRmlsdGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVGaWx0ZXInXTtcbiAgQElucHV0KCkgYmVmb3JlR2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUdldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZUhpZGVDb2x1bW5zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVIaWRlQ29sdW1ucyddO1xuICBASW5wdXQoKSBiZWZvcmVIaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSGlkZVJvd3MnXTtcbiAgQElucHV0KCkgYmVmb3JlSW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlSW5pdCddO1xuICBASW5wdXQoKSBiZWZvcmVJbml0V2Fsa29udGFibGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZUluaXRXYWxrb250YWJsZSddO1xuICBASW5wdXQoKSBiZWZvcmVLZXlEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVLZXlEb3duJ107XG4gIEBJbnB1dCgpIGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVMYW5ndWFnZUNoYW5nZSddO1xuICBASW5wdXQoKSBiZWZvcmVMb2FkRGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTG9hZERhdGEnXTtcbiAgQElucHV0KCkgYmVmb3JlTWVyZ2VDZWxsczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlTWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVPbkNlbGxDb250ZXh0TWVudTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsQ29udGV4dE1lbnUnXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VEb3duOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVPbkNlbGxNb3VzZURvd24nXTtcbiAgQElucHV0KCkgYmVmb3JlT25DZWxsTW91c2VPdXQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlT3V0J107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlT25DZWxsTW91c2VPdmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZU9uQ2VsbE1vdXNlVXA6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZU9uQ2VsbE1vdXNlVXAnXTtcbiAgQElucHV0KCkgYmVmb3JlUGFzdGU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVBhc3RlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlZG86IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZG8nXTtcbiAgQElucHV0KCkgYmVmb3JlUmVkb1N0YWNrQ2hhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZWRvU3RhY2tDaGFuZ2UnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVmcmVzaERpbWVuc2lvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlZnJlc2hEaW1lbnNpb25zJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyddO1xuICBASW5wdXQoKSBiZWZvcmVSZW1vdmVDZWxsTWV0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlUmVtb3ZlQ2VsbE1ldGEnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlQ29sOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVDb2wnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVtb3ZlUm93OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW1vdmVSb3cnXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSZW5kZXInXTtcbiAgQElucHV0KCkgYmVmb3JlUmVuZGVyZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJlbmRlcmVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVJvd01vdmU6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVJvd01vdmUnXTtcbiAgQElucHV0KCkgYmVmb3JlUm93UmVzaXplOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVSb3dSZXNpemUnXTtcbiAgQElucHV0KCkgYmVmb3JlU2V0Q2VsbE1ldGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVNldENlbGxNZXRhJ107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlRW5kOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZUVuZCddO1xuICBASW5wdXQoKSBiZWZvcmVTZXRSYW5nZVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0J107XG4gIEBJbnB1dCgpIGJlZm9yZVNldFJhbmdlU3RhcnRPbmx5OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSddO1xuICBASW5wdXQoKSBiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCddO1xuICBASW5wdXQoKSBiZWZvcmVUb3VjaFNjcm9sbDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVG91Y2hTY3JvbGwnXTtcbiAgQElucHV0KCkgYmVmb3JlVHJpbVJvdzogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVVbmRvOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydiZWZvcmVVbmRvJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuZG9TdGFja0NoYW5nZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5kb1N0YWNrQ2hhbmdlJ107XG4gIEBJbnB1dCgpIGJlZm9yZVVuaGlkZUNvbHVtbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVuaGlkZUNvbHVtbnMnXTtcbiAgQElucHV0KCkgYmVmb3JlVW5oaWRlUm93czogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVW5oaWRlUm93cyddO1xuICBASW5wdXQoKSBiZWZvcmVVbm1lcmdlQ2VsbHM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVubWVyZ2VDZWxscyddO1xuICBASW5wdXQoKSBiZWZvcmVVbnRyaW1Sb3c6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVVudHJpbVJvdyddO1xuICBASW5wdXQoKSBiZWZvcmVWYWxpZGF0ZTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snYmVmb3JlVmFsaWRhdGUnXTtcbiAgQElucHV0KCkgYmVmb3JlVmFsdWVSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZhbHVlUmVuZGVyJ107XG4gIEBJbnB1dCgpIGJlZm9yZVZpZXdSZW5kZXI6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2JlZm9yZVZpZXdSZW5kZXInXTtcbiAgQElucHV0KCkgY29uc3RydWN0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydjb25zdHJ1Y3QnXTtcbiAgQElucHV0KCkgaW5pdDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snaW5pdCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeUF1dG9Db2x1bW5TaXplU2VlZCddO1xuICBASW5wdXQoKSBtb2RpZnlBdXRvZmlsbFJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlBdXRvZmlsbFJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbEhlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sSGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbHVtbkhlYWRlckhlaWdodDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0J107XG4gIEBJbnB1dCgpIG1vZGlmeUNvbFdpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb2xXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlDb3B5YWJsZVJhbmdlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlDb3B5YWJsZVJhbmdlJ107XG4gIEBJbnB1dCgpIG1vZGlmeURhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeURhdGEnXTtcbiAgQElucHV0KCkgbW9kaWZ5R2V0Q2VsbENvb3JkczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5R2V0Q2VsbENvb3JkcyddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcjogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5Um93SGVhZGVyJ107XG4gIEBJbnB1dCgpIG1vZGlmeVJvd0hlYWRlcldpZHRoOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlSb3dIZWFkZXJXaWR0aCddO1xuICBASW5wdXQoKSBtb2RpZnlSb3dIZWlnaHQ6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ21vZGlmeVJvd0hlaWdodCddO1xuICBASW5wdXQoKSBtb2RpZnlTb3VyY2VEYXRhOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlTb3VyY2VEYXRhJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybUVuZDogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snbW9kaWZ5VHJhbnNmb3JtRW5kJ107XG4gIEBJbnB1dCgpIG1vZGlmeVRyYW5zZm9ybVN0YXJ0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydtb2RpZnlUcmFuc2Zvcm1TdGFydCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVMb2FkOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVMb2FkJ107XG4gIEBJbnB1dCgpIHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVSZXNldCddO1xuICBASW5wdXQoKSBwZXJzaXN0ZW50U3RhdGVTYXZlOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzWydwZXJzaXN0ZW50U3RhdGVTYXZlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfaG90VGFibGVSZWdpc3RlcmVyOiBIb3RUYWJsZVJlZ2lzdGVyZXIsXG4gICAgcHJpdmF0ZSBfaG90U2V0dGluZ3NSZXNvbHZlcjogSG90U2V0dGluZ3NSZXNvbHZlcixcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGhvdEluc3RhbmNlKCk6IEhhbmRzb250YWJsZSB8IG51bGwge1xuICAgIGlmICghdGhpcy5fX2hvdEluc3RhbmNlIHx8ICh0aGlzLl9faG90SW5zdGFuY2UgJiYgIXRoaXMuX19ob3RJbnN0YW5jZS5pc0Rlc3Ryb3llZCkpIHtcblxuICAgICAgLy8gV2lsbCByZXR1cm4gdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBvciBgbnVsbGAgaWYgaXQncyBub3QgeWV0IGJlZW4gY3JlYXRlZC5cbiAgICAgIHJldHVybiB0aGlzLl9faG90SW5zdGFuY2U7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuXG4gICAgICBjb25zb2xlLndhcm4oSE9UX0RFU1RST1lFRF9XQVJOSU5HKTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXQgaG90SW5zdGFuY2UoaG90SW5zdGFuY2UpIHtcbiAgICB0aGlzLl9faG90SW5zdGFuY2UgPSBob3RJbnN0YW5jZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKHRoaXMpO1xuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1ucyA9IFtdO1xuXG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG5cbiAgICAgIG9wdGlvbnNbJ2NvbHVtbnMnXSA9IGNvbHVtbnM7XG4gICAgfVxuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaG90SW5zdGFuY2UgPSBuZXcgSGFuZHNvbnRhYmxlLkNvcmUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgIGlmICh0aGlzLmhvdElkKSB7XG4gICAgICAgIHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlci5yZWdpc3Rlckluc3RhbmNlKHRoaXMuaG90SWQsIHRoaXMuaG90SW5zdGFuY2UpO1xuICAgICAgfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5ob3RJbnN0YW5jZS5pbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaG90SW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5wcmVwYXJlQ2hhbmdlcyhjaGFuZ2VzKTtcblxuICAgIHRoaXMudXBkYXRlSG90VGFibGUobmV3T3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgICAgdGhpcy5ob3RJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5ob3RJZCkge1xuICAgICAgdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUhvdFRhYmxlKG5ld1NldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ob3RJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKG5ld1NldHRpbmdzLCBmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkFmdGVyQ29sdW1uc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cyA9PT0gdm9pZCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29sdW1uczogSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzW10gPSBbXTtcblxuICAgICAgdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29sdW1ucy5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyhjb2x1bW4pKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuZXdPcHRpb25zID0ge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnVwZGF0ZUhvdFRhYmxlKG5ld09wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbHVtbnM6IEhhbmRzb250YWJsZS5Db2x1bW5TZXR0aW5nc1tdID0gW107XG5cbiAgICBpZiAodGhpcy5jb2x1bW5zQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5tZXJnZVNldHRpbmdzKGNvbHVtbikpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVIb3RUYWJsZSh7IGNvbHVtbnMgfSk7XG4gIH1cblxuICBhZGRDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnB1c2goY29sdW1uKTtcbiAgICB0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCk7XG4gIH1cblxuICByZW1vdmVDb2x1bW4oY29sdW1uOiBIb3RDb2x1bW5Db21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5jb2x1bW5zQ29tcG9uZW50cy5pbmRleE9mKGNvbHVtbik7XG5cbiAgICB0aGlzLmNvbHVtbnNDb21wb25lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5vbkFmdGVyQ29sdW1uc051bWJlckNoYW5nZSgpO1xuICB9XG5cbn1cbiJdfQ==
@@ -18,7 +18,7 @@ export class HotTableModule {
18
18
  };
19
19
  }
20
20
  }
21
- HotTableModule.version = '11.1.0';
21
+ HotTableModule.version = '12.1.0';
22
22
  HotTableModule.decorators = [
23
23
  { type: NgModule, args: [{
24
24
  declarations: [
@@ -35,4 +35,4 @@ if (false) {
35
35
  /** @type {?} */
36
36
  HotTableModule.version;
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFZcEUsTUFBTSxPQUFPLGNBQWM7Ozs7SUFHbEIsTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxDQUFFLGtCQUFrQixDQUFFO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQVBNLHNCQUFPLEdBQUcsUUFBUSxDQUFDOztZQVgzQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGlCQUFpQjtvQkFDakIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsaUJBQWlCO29CQUNqQixrQkFBa0I7aUJBQ25CO2FBQ0Y7Ozs7SUFFQyx1QkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG90VGFibGVDb21wb25lbnQgfSBmcm9tICcuL2hvdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG90Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb3RUYWJsZVJlZ2lzdGVyZXIgfSBmcm9tICcuL2hvdC10YWJsZS1yZWdpc3RlcmVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBIb3RUYWJsZUNvbXBvbmVudCxcbiAgICBIb3RDb2x1bW5Db21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBIb3RUYWJsZUNvbXBvbmVudCxcbiAgICBIb3RDb2x1bW5Db21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSG90VGFibGVNb2R1bGUge1xuICBzdGF0aWMgdmVyc2lvbiA9ICcxMS4xLjAnO1xuXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEhvdFRhYmxlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBIb3RUYWJsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogWyBIb3RUYWJsZVJlZ2lzdGVyZXIgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYW5kc29udGFibGUvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ob3QtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFZcEUsTUFBTSxPQUFPLGNBQWM7Ozs7SUFHbEIsTUFBTSxDQUFDLE9BQU87UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxDQUFFLGtCQUFrQixDQUFFO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQVBNLHNCQUFPLEdBQUcsUUFBUSxDQUFDOztZQVgzQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGlCQUFpQjtvQkFDakIsa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsaUJBQWlCO29CQUNqQixrQkFBa0I7aUJBQ25CO2FBQ0Y7Ozs7SUFFQyx1QkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG90VGFibGVDb21wb25lbnQgfSBmcm9tICcuL2hvdC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG90Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb3RUYWJsZVJlZ2lzdGVyZXIgfSBmcm9tICcuL2hvdC10YWJsZS1yZWdpc3RlcmVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBIb3RUYWJsZUNvbXBvbmVudCxcbiAgICBIb3RDb2x1bW5Db21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBIb3RUYWJsZUNvbXBvbmVudCxcbiAgICBIb3RDb2x1bW5Db21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSG90VGFibGVNb2R1bGUge1xuICBzdGF0aWMgdmVyc2lvbiA9ICcxMi4xLjAnO1xuXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEhvdFRhYmxlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBIb3RUYWJsZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogWyBIb3RUYWJsZVJlZ2lzdGVyZXIgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=