1 line
29 KiB
JavaScript
1 line
29 KiB
JavaScript
(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["column_editor-ColumnEditor"],{9613:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.ColumnEditor = function( options ) {\n\t\tvar opts = $.extend( {}, $.fn.ColumnEditor.defaults, options );\n\n\t\tvar parent_awesome_box = null;\n\n\t\tvar a_dropdown = null;\n\n\t\tvar $this = this;\n\n\t\tvar is_mouse_over = false;\n\n\t\tvar layout_selector = null;\n\n\t\tvar user_generic_data_api = null;\n\n\t\tvar related_layout_Array = null;\n\n\t\tvar all_columns;\n\n\t\tvar original_columns;\n\n\t\tvar numArray = [\n\t\t\t{ label: $.i18n._( 'Default' ), value: 0 },\n\t\t\t{ label: 5, value: 5 },\n\t\t\t{ label: 10, value: 10 },\n\t\t\t{\n\t\t\t\tlabel: 15,\n\t\t\t\tvalue: 15\n\t\t\t},\n\t\t\t{ label: 20, value: 20 },\n\t\t\t{ label: 25, value: 25 },\n\t\t\t{ label: 50, value: 50 },\n\t\t\t{\n\t\t\t\tlabel: 100,\n\t\t\t\tvalue: 100\n\t\t\t},\n\t\t\t{ label: 250, value: 250 },\n\t\t\t{ label: 500, value: 500 },\n\t\t\t{ label: 1000, value: 1000 }\n\t\t];\n\n\t\tthis.getIsMouseOver = function() {\n\t\t\treturn is_mouse_over;\n\t\t};\n\n\t\tthis.getParentAwesomeBox = function() {\n\t\t\treturn parent_awesome_box;\n\t\t};\n\n\t\tGlobal.addCss( 'global/widgets/column_editor/ColumnEditor.css' );\n\n\t\tthis.show = function() {\n\n\t\t\tif ( LocalCacheData.openAwesomeBoxColumnEditor ) {\n\n\t\t\t\tif ( LocalCacheData.openAwesomeBoxColumnEditor.getParentAwesomeBox().getId() === parent_awesome_box.getId() ) {\n\t\t\t\t\tLocalCacheData.openAwesomeBoxColumnEditor.onClose();\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tLocalCacheData.openAwesomeBoxColumnEditor.onClose();\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tvar layout = parent_awesome_box.getLayout();\n\t\t\tvar a_dropdown_div = $( this ).find( '.column-editor-drop-down-div' );\n\n\t\t\tvar rows_per_page_div = $( this ).find( '.rows-per-page-div' );\n\n\t\t\ta_dropdown = Global.loadWidgetByName( FormItemType.AWESOME_DROPDOWN );\n\t\t\t//Create ADropDown\n\t\t\ta_dropdown = a_dropdown.ADropDown( {\n\t\t\t\tdisplay_show_all: false,\n\t\t\t\tid: 'column_editor',\n\t\t\t\tkey: 'value',\n\t\t\t\tdisplay_close_btn: false,\n\t\t\t\tdisplay_column_settings: false,\n\t\t\t\tstatic_height: 150,\n\t\t\t\tresize_grids: true\n\t\t\t} );\n\n\t\t\ta_dropdown_div.append( a_dropdown );\n\n\t\t\t//Add Self to UI\n\t\t\t$( 'body' ).append( $( this ).css( 'visibility', 'hidden' ) ); // #2734 - Add to DOM but invisible so code can do calculations, but user does not see flashes.\n\n\t\t\ta_dropdown.setColumns( [\n\t\t\t\t{ name: 'label', index: 'label', label: $.i18n._( 'Column Name' ), width: 100, sortable: false }\n\t\t\t] );\n\n\t\t\ta_dropdown.setUnselectedGridData( parent_awesome_box.getAllColumns() );\n\n\t\t\toriginal_columns = parent_awesome_box.getDisplayColumnsForEditor();\n\t\t\ta_dropdown.setSelectGridData( original_columns );\n\n\t\t\ta_dropdown.setResizeGrids( true );\n\n\t\t\t//Set position\n\t\t\tif ( 958 + $( parent_awesome_box ).offset().left + 50 > Global.bodyWidth() ) {\n\t\t\t\t$( this ).css( 'left', Global.bodyWidth() - 958 - 50 );\n\t\t\t} else {\n\n\t\t\t\t$( this ).css( 'left', $( parent_awesome_box ).offset().left );\n\t\t\t}\n\n\t\t\tvar $$this = this;\n\t\t\tsetTimeout( function() {\n\t\t\t\tif ( ( $( $$this ).height() + $( parent_awesome_box ).offset().top + 50 ) > Global.bodyHeight() ) {\n\t\t\t\t\t$( $$this ).css( 'top', ( Global.bodyHeight() - $( $$this ).height() - 25 ) );\n\t\t\t\t} else {\n\t\t\t\t\t$( $$this ).css( 'top', $( parent_awesome_box ).offset().top + 25 );\n\t\t\t\t}\n\t\t\t\t$( $$this ).css( 'visibility', 'visible' ); // show once all positions and sizes are done calculating and moving.\n\t\t\t}, 100 );\n\n\t\t\t$( this ).mouseenter( function() {\n\t\t\t\tis_mouse_over = true;\n\t\t\t} );\n\n\t\t\t$( this ).mouseleave( function( e ) {\n\t\t\t\t// Issue #2853 - This comparison fixes an issue where firefox improperly triggers mouseleave on select menus.\n\t\t\t\tif ( e.target == this ) {\n\t\t\t\t\tis_mouse_over = false;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tLocalCacheData.openAwesomeBoxColumnEditor = $this;\n\n\t\t\tif ( layout && Global.isSet( layout.data.type ) && layout.data.type === 10 ) {\n\t\t\t\ta_dropdown_div.css( 'display', 'none' );\n\t\t\t\trows_per_page_div.css( 'display', 'none' );\n\n\t\t\t} else {\n\t\t\t\ta_dropdown_div.css( 'display', 'block' );\n\t\t\t\trows_per_page_div.css( 'display', 'block' );\n\t\t\t}\n\n\t\t\tvar script_name = parent_awesome_box.getScriptName();\n\n\t\t\tvar api = parent_awesome_box.getAPI();\n\n\t\t\tapi.getOptions( 'columns', {\n\t\t\t\tonResult: function( columns_result ) {\n\n\t\t\t\t\tvar columns_result_data = columns_result.getResult();\n\t\t\t\t\tall_columns = Global.buildColumnArray( columns_result_data );\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tuser_generic_data_api.getUserGenericData( { filter_data: { script: script_name, deleted: false } },\n\t\t\t\t{\n\t\t\t\t\tonResult: function( results ) {\n\n\t\t\t\t\t\tvar result_data = results.getResult();\n\n\t\t\t\t\t\t//Save layout array\n\t\t\t\t\t\trelated_layout_Array = result_data;\n\n\t\t\t\t\t\tif ( result_data && result_data.length > 0 ) {\n\n\t\t\t\t\t\t\tresult_data.sort( function( a, b ) {\n\n\t\t\t\t\t\t\t\treturn Global.compare( a, b, 'name' );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t$( layout_selector ).empty();\n\n\t\t\t\t\t\t\tvar source_data = [];\n\n\t\t\t\t\t\t\tsource_data.push( { label: $.i18n._( Global.customize_item ), value: -1 } );\n\n\t\t\t\t\t\t\tvar len = result_data.length;\n\t\t\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\t\t\tvar item = result_data[i];\n\t\t\t\t\t\t\t\tsource_data.push( { label: item.name, value: item.id } );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tlayout_selector.setSourceData( source_data );\n\n\t\t\t\t\t\t\tif ( layout && Global.isSet( layout.data.type ) && layout.data.type === 10 ) {\n\t\t\t\t\t\t\t\t$( $( layout_selector ).find( 'option' ) ).filter( function() {\n\t\t\t\t\t\t\t\t\treturn parseInt( $( this ).attr( 'value' ) ) === layout.data.layout_id;\n\t\t\t\t\t\t\t\t} ).prop( 'selected', true ).attr( 'selected', true );\n\n\t\t\t\t\t\t\t\tvar select_id = layout_selector.getValue();\n\n\t\t\t\t\t\t\t\t//If saved layout is deleted. Show first one and show columns setting\n\t\t\t\t\t\t\t\tif ( select_id === -1 ) {\n\t\t\t\t\t\t\t\t\ta_dropdown_div.css( 'display', 'block' );\n\t\t\t\t\t\t\t\t\trows_per_page_div.css( 'display', 'block' );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tsource_data = [];\n\n\t\t\t\t\t\t\tsource_data.push( { label: $.i18n._( Global.customize_item ), value: -1 } );\n\n//\t\t\t\t\t\t$( layout_selector ).append( '<option value=\"' + -1 + '\">' + Global.customize_item + '</option>' );\n\n\t\t\t\t\t\t\tlayout_selector.setSourceData( source_data );\n\t\t\t\t\t\t\t//If saved layout is deleted. Show first one and show columns setting\n\t\t\t\t\t\t\ta_dropdown_div.css( 'display', 'block' );\n\t\t\t\t\t\t\trows_per_page_div.css( 'display', 'block' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t};\n\n\t\tthis.onClose = function() {\n\t\t\t$( $this ).remove();\n\t\t\tLocalCacheData.openAwesomeBoxColumnEditor = null;\n\t\t\tis_mouse_over = false;\n\t\t};\n\n\t\tthis.onSave = function() {\n\t\t\t$this.onClose();\n\n\t\t\tvar select_id = layout_selector.getValue();\n\n\t\t\tif ( !related_layout_Array ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( select_id !== -1 ) {\n\t\t\t\tvar len = related_layout_Array.length;\n\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\tvar item = related_layout_Array[i];\n\t\t\t\t\tif ( item.id === select_id ) {\n\t\t\t\t\t\titem.data.filter_data = Global.convertLayoutFilterToAPIFilter( item );\n\t\t\t\t\t\titem.data.display_columns = $this.buildDisplayColumns( item.data.display_columns );\n\t\t\t\t\t\tparent_awesome_box.onColumnSettingSaveFromLayout( item );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar rowPerPageSelect = $( $this ).find( '#rows-per-page-selector' );\n\n\t\t\t\trowPerPageSelect.find( 'option:selected' ).each( function() {\n\n\t\t\t\t\tvar selectId = $( this ).attr( 'value' );\n\n\t\t\t\t\tvar selection_items = a_dropdown.getSelectItems();\n\n\t\t\t\t\tif ( selection_items.length === 0 ) {\n\t\t\t\t\t\tselection_items = original_columns;\n\t\t\t\t\t}\n\n\t\t\t\t\tparent_awesome_box.onColumnSettingSave( selection_items, selectId, '-1' );\n\n\t\t\t\t} );\n\t\t\t}\n\n\t\t};\n\n\t\tthis.buildDisplayColumns = function( api_display_columns ) {\n\t\t\tvar len = all_columns.length;\n\t\t\tvar len1 = api_display_columns.length;\n\t\t\tvar display_columns = [];\n\n\t\t\tfor ( var j = 0; j < len1; j++ ) {\n\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( api_display_columns[j] === all_columns[i].value ) {\n\t\t\t\t\t\tdisplay_columns.push( all_columns[i] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn display_columns;\n\t\t};\n\n\t\t//For multiple items like .xxx could contains a few widgets.\n\t\tthis.each( function() {\n\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tvar close_btn = $( this ).find( '#close_btn' );\n\n\t\t\tvar save_btn = $( this ).find( '#save_btn' );\n\n\t\t\tuser_generic_data_api = TTAPI.APIUserGenericData;\n\n\t\t\tparent_awesome_box = o.parent_awesome_box;\n\n\t\t\tclose_btn.bind( 'click', $this.onClose );\n\n\t\t\tsave_btn.bind( 'click', $this.onSave );\n\n\t\t\tvar rows_selector = $( this ).find( '#rows-per-page-selector' );\n\n\t\t\tvar len = numArray.length;\n\n\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\tvar item = numArray[i];\n\t\t\t\t$( rows_selector ).append( '<option value=\"' + item.value + '\">' + item.label + '</option>' );\n\t\t\t}\n\n\t\t\t$( $( rows_selector ).find( 'option' ) ).filter( function() {\n\t\t\t\treturn $( this ).attr( 'value' ) === parent_awesome_box.getRowPerPage();\n\t\t\t} ).prop( 'selected', true ).attr( 'selected', true );\n\n\t\t\tlayout_selector = $( this ).find( '#layout-selector' );\n\t\t\tlayout_selector = layout_selector.TComboBox();\n\n\t\t\tvar a_dropdown_div = $( this ).find( '.column-editor-drop-down-div' );\n\t\t\tvar rows_per_page_div = $( this ).find( '.rows-per-page-div' );\n\n\t\t\tlayout_selector.bind( 'formItemChange', function( e, widget ) {\n\t\t\t\tvar select_id = widget.getValue();\n\n\t\t\t\tif ( select_id !== -1 ) {\n\t\t\t\t\ta_dropdown_div.css( 'display', 'none' );\n\t\t\t\t\trows_per_page_div.css( 'display', 'none' );\n\n\t\t\t\t} else {\n\t\t\t\t\ta_dropdown_div.css( 'display', 'block' );\n\t\t\t\t\trows_per_page_div.css( 'display', 'block' );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.ColumnEditor.defaults = {};\n\t$.fn.ColumnEditor.html_template = `\n\t\t<div class=\"column-editor\">\n\t\t\t<div class=\"layout-name-div\">\n\t\t\t\t<div class=\"form-item-div\">\n\t\t\t\t\t<span class=\"choose-layout form-item-label\"></span>\n\t\t\t\t\t<div class=\"form-item-input-div\">\n\t\t\t\t\t\t<select id=\"layout-selector\" class=\"t-select\"/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"column-editor-drop-down-div\"></div>\n\t\t\t<div style=\"clear: both\"></div>\n\t\t\t<div class=\"rows-per-page-div\">\n\t\t\t\t<div class=\"form-item-div\">\n\t\t\t\t\t<span class=\"rows-per-page form-item-label\"></span>\n\t\t\t\t\t<div class=\"form-item-input-div\">\n\t\t\t\t\t\t<select id=\"rows-per-page-selector\" class=\"t-select\"/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div style=\"clear: both\"></div>\n\t\t\t<div class=\"bottom-action-div\">\n\t\t\t\t<button id=\"save_btn\" class=\"t-button\"></button>\n\t\t\t\t<button id=\"close_btn\" class=\"t-button\">Close</button>\n\t\t\t</div>\n\t\t</div>\n\t`;\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsR0FBRyxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L2dsb2JhbC93aWRnZXRzL2NvbHVtbl9lZGl0b3IvQ29sdW1uRWRpdG9yLmpzPzI1N2QiXSwic291cmNlc0NvbnRlbnQiOlsiKCBmdW5jdGlvbiggJCApIHtcblxuXHQkLmZuLkNvbHVtbkVkaXRvciA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXHRcdHZhciBvcHRzID0gJC5leHRlbmQoIHt9LCAkLmZuLkNvbHVtbkVkaXRvci5kZWZhdWx0cywgb3B0aW9ucyApO1xuXG5cdFx0dmFyIHBhcmVudF9hd2Vzb21lX2JveCA9IG51bGw7XG5cblx0XHR2YXIgYV9kcm9wZG93biA9IG51bGw7XG5cblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXG5cdFx0dmFyIGlzX21vdXNlX292ZXIgPSBmYWxzZTtcblxuXHRcdHZhciBsYXlvdXRfc2VsZWN0b3IgPSBudWxsO1xuXG5cdFx0dmFyIHVzZXJfZ2VuZXJpY19kYXRhX2FwaSA9IG51bGw7XG5cblx0XHR2YXIgcmVsYXRlZF9sYXlvdXRfQXJyYXkgPSBudWxsO1xuXG5cdFx0dmFyIGFsbF9jb2x1bW5zO1xuXG5cdFx0dmFyIG9yaWdpbmFsX2NvbHVtbnM7XG5cblx0XHR2YXIgbnVtQXJyYXkgPSBbXG5cdFx0XHR7IGxhYmVsOiAkLmkxOG4uXyggJ0RlZmF1bHQnICksIHZhbHVlOiAwIH0sXG5cdFx0XHR7IGxhYmVsOiA1LCB2YWx1ZTogNSB9LFxuXHRcdFx0eyBsYWJlbDogMTAsIHZhbHVlOiAxMCB9LFxuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogMTUsXG5cdFx0XHRcdHZhbHVlOiAxNVxuXHRcdFx0fSxcblx0XHRcdHsgbGFiZWw6IDIwLCB2YWx1ZTogMjAgfSxcblx0XHRcdHsgbGFiZWw6IDI1LCB2YWx1ZTogMjUgfSxcblx0XHRcdHsgbGFiZWw6IDUwLCB2YWx1ZTogNTAgfSxcblx0XHRcdHtcblx0XHRcdFx0bGFiZWw6IDEwMCxcblx0XHRcdFx0dmFsdWU6IDEwMFxuXHRcdFx0fSxcblx0XHRcdHsgbGFiZWw6IDI1MCwgdmFsdWU6IDI1MCB9LFxuXHRcdFx0eyBsYWJlbDogNTAwLCB2YWx1ZTogNTAwIH0sXG5cdFx0XHR7IGxhYmVsOiAxMDAwLCB2YWx1ZTogMTAwMCB9XG5cdFx0XTtcblxuXHRcdHRoaXMuZ2V0SXNNb3VzZU92ZXIgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBpc19tb3VzZV9vdmVyO1xuXHRcdH07XG5cblx0XHR0aGlzLmdldFBhcmVudEF3ZXNvbWVCb3ggPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBwYXJlbnRfYXdlc29tZV9ib3g7XG5cdFx0fTtcblxuXHRcdEdsb2JhbC5hZGRDc3MoICdnbG9iYWwvd2lkZ2V0cy9jb2x1bW5fZWRpdG9yL0NvbHVtbkVkaXRvci5jc3MnICk7XG5cblx0XHR0aGlzLnNob3cgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0aWYgKCBMb2NhbENhY2hlRGF0YS5vcGVuQXdlc29tZUJveENvbHVtbkVkaXRvciApIHtcblxuXHRcdFx0XHRpZiAoIExvY2FsQ2FjaGVEYXRhLm9wZW5Bd2Vzb21lQm94Q29sdW1uRWRpdG9yLmdldFBhcmVudEF3ZXNvbWVCb3goKS5nZXRJZCgpID09PSBwYXJlbnRfYXdlc29tZV9ib3guZ2V0SWQoKSApIHtcblx0XHRcdFx0XHRMb2NhbENhY2hlRGF0YS5vcGVuQXdlc29tZUJveENvbHVtbkVkaXRvci5vbkNsb3NlKCk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdExvY2FsQ2FjaGVEYXRhLm9wZW5Bd2Vzb21lQm94Q29sdW1uRWRpdG9yLm9uQ2xvc2UoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHR9XG5cblx0XHRcdHZhciBsYXlvdXQgPSBwYXJlbnRfYXdlc29tZV9ib3guZ2V0TGF5b3V0KCk7XG5cdFx0XHR2YXIgYV9kcm9wZG93bl9kaXYgPSAkKCB0aGlzICkuZmluZCggJy5jb2x1bW4tZWRpdG9yLWRyb3AtZG93bi1kaXYnICk7XG5cblx0XHRcdHZhciByb3dzX3Blcl9wYWdlX2RpdiA9ICQoIHRoaXMgKS5maW5kKCAnLnJvd3MtcGVyLXBhZ2UtZGl2JyApO1xuXG5cdFx0XHRhX2Ryb3Bkb3duID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0RST1BET1dOICk7XG5cdFx0XHQvL0NyZWF0ZSBBRHJvcERvd25cblx0XHRcdGFfZHJvcGRvd24gPSBhX2Ryb3Bkb3duLkFEcm9wRG93bigge1xuXHRcdFx0XHRkaXNwbGF5X3Nob3dfYWxsOiBmYWxzZSxcblx0XHRcdFx0aWQ6ICdjb2x1bW5fZWRpdG9yJyxcblx0XHRcdFx0a2V5OiAndmFsdWUnLFxuXHRcdFx0XHRkaXNwbGF5X2Nsb3NlX2J0bjogZmFsc2UsXG5cdFx0XHRcdGRpc3BsYXlfY29sdW1uX3NldHRpbmdzOiBmYWxzZSxcblx0XHRcdFx0c3RhdGljX2hlaWdodDogMTUwLFxuXHRcdFx0XHRyZXNpemVfZ3JpZHM6IHRydWVcblx0XHRcdH0gKTtcblxuXHRcdFx0YV9kcm9wZG93bl9kaXYuYXBwZW5kKCBhX2Ryb3Bkb3duICk7XG5cblx0XHRcdC8vQWRkIFNlbGYgdG8gVUlcblx0XHRcdCQoICdib2R5JyApLmFwcGVuZCggJCggdGhpcyApLmNzcyggJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyApICk7IC8vICMyNzM0IC0gQWRkIHRvIERPTSBidXQgaW52aXNpYmxlIHNvIGNvZGUgY2FuIGRvIGNhbGN1bGF0aW9ucywgYnV0IHVzZXIgZG9lcyBub3Qgc2VlIGZsYXNoZXMuXG5cblx0XHRcdGFfZHJvcGRvd24uc2V0Q29sdW1ucyggW1xuXHRcdFx0XHR7IG5hbWU6ICdsYWJlbCcsIGluZGV4OiAnbGFiZWwnLCBsYWJlbDogJC5pMThuLl8oICdDb2x1bW4gTmFtZScgKSwgd2lkdGg6IDEwMCwgc29ydGFibGU6IGZhbHNlIH1cblx0XHRcdF0gKTtcblxuXHRcdFx0YV9kcm9wZG93bi5zZXRVbnNlbGVjdGVkR3JpZERhdGEoIHBhcmVudF9hd2Vzb21lX2JveC5nZXRBbGxDb2x1bW5zKCkgKTtcblxuXHRcdFx0b3JpZ2luYWxfY29sdW1ucyA9IHBhcmVudF9hd2Vzb21lX2JveC5nZXREaXNwbGF5Q29sdW1uc0ZvckVkaXRvcigpO1xuXHRcdFx0YV9kcm9wZG93bi5zZXRTZWxlY3RHcmlkRGF0YSggb3JpZ2luYWxfY29sdW1ucyApO1xuXG5cdFx0XHRhX2Ryb3Bkb3duLnNldFJlc2l6ZUdyaWRzKCB0cnVlICk7XG5cblx0XHRcdC8vU2V0IHBvc2l0aW9uXG5cdFx0XHRpZiAoIDk1OCArICQoIHBhcmVudF9hd2Vzb21lX2JveCApLm9mZnNldCgpLmxlZnQgKyA1MCA+IEdsb2JhbC5ib2R5V2lkdGgoKSApIHtcblx0XHRcdFx0JCggdGhpcyApLmNzcyggJ2xlZnQnLCBHbG9iYWwuYm9keVdpZHRoKCkgLSA5NTggLSA1MCApO1xuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHQkKCB0aGlzICkuY3NzKCAnbGVmdCcsICQoIHBhcmVudF9hd2Vzb21lX2JveCApLm9mZnNldCgpLmxlZnQgKTtcblx0XHRcdH1cblxuXHRcdFx0dmFyICQkdGhpcyA9IHRoaXM7XG5cdFx0XHRzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAoICQoICQkdGhpcyApLmhlaWdodCgpICsgJCggcGFyZW50X2F3ZXNvbWVfYm94ICkub2Zmc2V0KCkudG9wICsgNTAgKSA+IEdsb2JhbC5ib2R5SGVpZ2h0KCkgKSB7XG5cdFx0XHRcdFx0JCggJCR0aGlzICkuY3NzKCAndG9wJywgKCBHbG9iYWwuYm9keUhlaWdodCgpIC0gJCggJCR0aGlzICkuaGVpZ2h0KCkgLSAyNSApICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JCggJCR0aGlzICkuY3NzKCAndG9wJywgJCggcGFyZW50X2F3ZXNvbWVfYm94ICkub2Zmc2V0KCkudG9wICsgMjUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQkKCAkJHRoaXMgKS5jc3MoICd2aXNpYmlsaXR5JywgJ3Zpc2libGUnICk7IC8vIHNob3cgb25jZSBhbGwgcG9zaXRpb25zIGFuZCBzaXplcyBhcmUgZG9uZSBjYWxjdWxhdGluZyBhbmQgbW92aW5nLlxuXHRcdFx0fSwgMTAwICk7XG5cblx0XHRcdCQoIHRoaXMgKS5tb3VzZWVudGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0aXNfbW91c2Vfb3ZlciA9IHRydWU7XG5cdFx0XHR9ICk7XG5cblx0XHRcdCQoIHRoaXMgKS5tb3VzZWxlYXZlKCBmdW5jdGlvbiggZSApIHtcblx0XHRcdFx0Ly8gSXNzdWUgIzI4NTMgLSBUaGlzIGNvbXBhcmlzb24gZml4ZXMgYW4gaXNzdWUgd2hlcmUgZmlyZWZveCBpbXByb3Blcmx5IHRyaWdnZXJzIG1vdXNlbGVhdmUgb24gc2VsZWN0IG1lbnVzLlxuXHRcdFx0XHRpZiAoIGUudGFyZ2V0ID09IHRoaXMgKSB7XG5cdFx0XHRcdFx0aXNfbW91c2Vfb3ZlciA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cblx0XHRcdExvY2FsQ2FjaGVEYXRhLm9wZW5Bd2Vzb21lQm94Q29sdW1uRWRpdG9yID0gJHRoaXM7XG5cblx0XHRcdGlmICggbGF5b3V0ICYmIEdsb2JhbC5pc1NldCggbGF5b3V0LmRhdGEudHlwZSApICYmIGxheW91dC5kYXRhLnR5cGUgPT09IDEwICkge1xuXHRcdFx0XHRhX2Ryb3Bkb3duX2Rpdi5jc3MoICdkaXNwbGF5JywgJ25vbmUnICk7XG5cdFx0XHRcdHJvd3NfcGVyX3BhZ2VfZGl2LmNzcyggJ2Rpc3BsYXknLCAnbm9uZScgKTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YV9kcm9wZG93bl9kaXYuY3NzKCAnZGlzcGxheScsICdibG9jaycgKTtcblx0XHRcdFx0cm93c19wZXJfcGFnZV9kaXYuY3NzKCAnZGlzcGxheScsICdibG9jaycgKTtcblx0XHRcdH1cblxuXHRcdFx0dmFyIHNjcmlwdF9uYW1lID0gcGFyZW50X2F3ZXNvbWVfYm94LmdldFNjcmlwdE5hbWUoKTtcblxuXHRcdFx0dmFyIGFwaSA9IHBhcmVudF9hd2Vzb21lX2JveC5nZXRBUEkoKTtcblxuXHRcdFx0YXBpLmdldE9wdGlvbnMoICdjb2x1bW5zJywge1xuXHRcdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIGNvbHVtbnNfcmVzdWx0ICkge1xuXG5cdFx0XHRcdFx0dmFyIGNvbHVtbnNfcmVzdWx0X2RhdGEgPSBjb2x1bW5zX3Jlc3VsdC5nZXRSZXN1bHQoKTtcblx0XHRcdFx0XHRhbGxfY29sdW1ucyA9IEdsb2JhbC5idWlsZENvbHVtbkFycmF5KCBjb2x1bW5zX3Jlc3VsdF9kYXRhICk7XG5cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXG5cdFx0XHR1c2VyX2dlbmVyaWNfZGF0YV9hcGkuZ2V0VXNlckdlbmVyaWNEYXRhKCB7IGZpbHRlcl9kYXRhOiB7IHNjcmlwdDogc2NyaXB0X25hbWUsIGRlbGV0ZWQ6IGZhbHNlIH0gfSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0cyApIHtcblxuXHRcdFx0XHRcdFx0dmFyIHJlc3VsdF9kYXRhID0gcmVzdWx0cy5nZXRSZXN1bHQoKTtcblxuXHRcdFx0XHRcdFx0Ly9TYXZlIGxheW91dCBhcnJheVxuXHRcdFx0XHRcdFx0cmVsYXRlZF9sYXlvdXRfQXJyYXkgPSByZXN1bHRfZGF0YTtcblxuXHRcdFx0XHRcdFx0aWYgKCByZXN1bHRfZGF0YSAmJiByZXN1bHRfZGF0YS5sZW5ndGggPiAwICkge1xuXG5cdFx0XHRcdFx0XHRcdHJlc3VsdF9kYXRhLnNvcnQoIGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIEdsb2JhbC5jb21wYXJlKCBhLCBiLCAnbmFtZScgKTtcblxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cblx0XHRcdFx0XHRcdFx0JCggbGF5b3V0X3NlbGVjdG9yICkuZW1wdHkoKTtcblxuXHRcdFx0XHRcdFx0XHR2YXIgc291cmNlX2RhdGEgPSBbXTtcblxuXHRcdFx0XHRcdFx0XHRzb3VyY2VfZGF0YS5wdXNoKCB7IGxhYmVsOiAkLmkxOG4uXyggR2xvYmFsLmN1c3RvbWl6ZV9pdGVtICksIHZhbHVlOiAtMSB9ICk7XG5cblx0XHRcdFx0XHRcdFx0dmFyIGxlbiA9IHJlc3VsdF9kYXRhLmxlbmd0aDtcblx0XHRcdFx0XHRcdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGl0ZW0gPSByZXN1bHRfZGF0YVtpXTtcblx0XHRcdFx0XHRcdFx0XHRzb3VyY2VfZGF0YS5wdXNoKCB7IGxhYmVsOiBpdGVtLm5hbWUsIHZhbHVlOiBpdGVtLmlkIH0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGxheW91dF9zZWxlY3Rvci5zZXRTb3VyY2VEYXRhKCBzb3VyY2VfZGF0YSApO1xuXG5cdFx0XHRcdFx0XHRcdGlmICggbGF5b3V0ICYmIEdsb2JhbC5pc1NldCggbGF5b3V0LmRhdGEudHlwZSApICYmIGxheW91dC5kYXRhLnR5cGUgPT09IDEwICkge1xuXHRcdFx0XHRcdFx0XHRcdCQoICQoIGxheW91dF9zZWxlY3RvciApLmZpbmQoICdvcHRpb24nICkgKS5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KCAkKCB0aGlzICkuYXR0ciggJ3ZhbHVlJyApICkgPT09IGxheW91dC5kYXRhLmxheW91dF9pZDtcblx0XHRcdFx0XHRcdFx0XHR9ICkucHJvcCggJ3NlbGVjdGVkJywgdHJ1ZSApLmF0dHIoICdzZWxlY3RlZCcsIHRydWUgKTtcblxuXHRcdFx0XHRcdFx0XHRcdHZhciBzZWxlY3RfaWQgPSBsYXlvdXRfc2VsZWN0b3IuZ2V0VmFsdWUoKTtcblxuXHRcdFx0XHRcdFx0XHRcdC8vSWYgc2F2ZWQgbGF5b3V0IGlzIGRlbGV0ZWQuIFNob3cgZmlyc3Qgb25lIGFuZCBzaG93IGNvbHVtbnMgc2V0dGluZ1xuXHRcdFx0XHRcdFx0XHRcdGlmICggc2VsZWN0X2lkID09PSAtMSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGFfZHJvcGRvd25fZGl2LmNzcyggJ2Rpc3BsYXknLCAnYmxvY2snICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyb3dzX3Blcl9wYWdlX2Rpdi5jc3MoICdkaXNwbGF5JywgJ2Jsb2NrJyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdHNvdXJjZV9kYXRhID0gW107XG5cblx0XHRcdFx0XHRcdFx0c291cmNlX2RhdGEucHVzaCggeyBsYWJlbDogJC5pMThuLl8oIEdsb2JhbC5jdXN0b21pemVfaXRlbSApLCB2YWx1ZTogLTEgfSApO1xuXG4vL1x0XHRcdFx0XHRcdCQoIGxheW91dF9zZWxlY3RvciApLmFwcGVuZCggJzxvcHRpb24gdmFsdWU9XCInICsgLTEgKyAnXCI+JyArIEdsb2JhbC5jdXN0b21pemVfaXRlbSArICc8L29wdGlvbj4nICk7XG5cblx0XHRcdFx0XHRcdFx0bGF5b3V0X3NlbGVjdG9yLnNldFNvdXJjZURhdGEoIHNvdXJjZV9kYXRhICk7XG5cdFx0XHRcdFx0XHRcdC8vSWYgc2F2ZWQgbGF5b3V0IGlzIGRlbGV0ZWQuIFNob3cgZmlyc3Qgb25lIGFuZCBzaG93IGNvbHVtbnMgc2V0dGluZ1xuXHRcdFx0XHRcdFx0XHRhX2Ryb3Bkb3duX2Rpdi5jc3MoICdkaXNwbGF5JywgJ2Jsb2NrJyApO1xuXHRcdFx0XHRcdFx0XHRyb3dzX3Blcl9wYWdlX2Rpdi5jc3MoICdkaXNwbGF5JywgJ2Jsb2NrJyApO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cblx0XHR9O1xuXG5cdFx0dGhpcy5vbkNsb3NlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHQkKCAkdGhpcyApLnJlbW92ZSgpO1xuXHRcdFx0TG9jYWxDYWNoZURhdGEub3BlbkF3ZXNvbWVCb3hDb2x1bW5FZGl0b3IgPSBudWxsO1xuXHRcdFx0aXNfbW91c2Vfb3ZlciA9IGZhbHNlO1xuXHRcdH07XG5cblx0XHR0aGlzLm9uU2F2ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0JHRoaXMub25DbG9zZSgpO1xuXG5cdFx0XHR2YXIgc2VsZWN0X2lkID0gbGF5b3V0X3NlbGVjdG9yLmdldFZhbHVlKCk7XG5cblx0XHRcdGlmICggIXJlbGF0ZWRfbGF5b3V0X0FycmF5ICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGlmICggc2VsZWN0X2lkICE9PSAtMSApIHtcblx0XHRcdFx0dmFyIGxlbiA9IHJlbGF0ZWRfbGF5b3V0X0FycmF5Lmxlbmd0aDtcblx0XHRcdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0dmFyIGl0ZW0gPSByZWxhdGVkX2xheW91dF9BcnJheVtpXTtcblx0XHRcdFx0XHRpZiAoIGl0ZW0uaWQgPT09IHNlbGVjdF9pZCApIHtcblx0XHRcdFx0XHRcdGl0ZW0uZGF0YS5maWx0ZXJfZGF0YSA9IEdsb2JhbC5jb252ZXJ0TGF5b3V0RmlsdGVyVG9BUElGaWx0ZXIoIGl0ZW0gKTtcblx0XHRcdFx0XHRcdGl0ZW0uZGF0YS5kaXNwbGF5X2NvbHVtbnMgPSAkdGhpcy5idWlsZERpc3BsYXlDb2x1bW5zKCBpdGVtLmRhdGEuZGlzcGxheV9jb2x1bW5zICk7XG5cdFx0XHRcdFx0XHRwYXJlbnRfYXdlc29tZV9ib3gub25Db2x1bW5TZXR0aW5nU2F2ZUZyb21MYXlvdXQoIGl0ZW0gKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YXIgcm93UGVyUGFnZVNlbGVjdCA9ICQoICR0aGlzICkuZmluZCggJyNyb3dzLXBlci1wYWdlLXNlbGVjdG9yJyApO1xuXG5cdFx0XHRcdHJvd1BlclBhZ2VTZWxlY3QuZmluZCggJ29wdGlvbjpzZWxlY3RlZCcgKS5lYWNoKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHRcdHZhciBzZWxlY3RJZCA9ICQoIHRoaXMgKS5hdHRyKCAndmFsdWUnICk7XG5cblx0XHRcdFx0XHR2YXIgc2VsZWN0aW9uX2l0ZW1zID0gYV9kcm9wZG93bi5nZXRTZWxlY3RJdGVtcygpO1xuXG5cdFx0XHRcdFx0aWYgKCBzZWxlY3Rpb25faXRlbXMubGVuZ3RoID09PSAwICkge1xuXHRcdFx0XHRcdFx0c2VsZWN0aW9uX2l0ZW1zID0gb3JpZ2luYWxfY29sdW1ucztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRwYXJlbnRfYXdlc29tZV9ib3gub25Db2x1bW5TZXR0aW5nU2F2ZSggc2VsZWN0aW9uX2l0ZW1zLCBzZWxlY3RJZCwgJy0xJyApO1xuXG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLmJ1aWxkRGlzcGxheUNvbHVtbnMgPSBmdW5jdGlvbiggYXBpX2Rpc3BsYXlfY29sdW1ucyApIHtcblx0XHRcdHZhciBsZW4gPSBhbGxfY29sdW1ucy5sZW5ndGg7XG5cdFx0XHR2YXIgbGVuMSA9IGFwaV9kaXNwbGF5X2NvbHVtbnMubGVuZ3RoO1xuXHRcdFx0dmFyIGRpc3BsYXlfY29sdW1ucyA9IFtdO1xuXG5cdFx0XHRmb3IgKCB2YXIgaiA9IDA7IGogPCBsZW4xOyBqKysgKSB7XG5cdFx0XHRcdGZvciAoIHZhciBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHRcdGlmICggYXBpX2Rpc3BsYXlfY29sdW1uc1tqXSA9PT0gYWxsX2NvbHVtbnNbaV0udmFsdWUgKSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5X2NvbHVtbnMucHVzaCggYWxsX2NvbHVtbnNbaV0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBkaXNwbGF5X2NvbHVtbnM7XG5cdFx0fTtcblxuXHRcdC8vRm9yIG11bHRpcGxlIGl0ZW1zIGxpa2UgLnh4eCBjb3VsZCBjb250YWlucyBhIGZldyB3aWRnZXRzLlxuXHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdHZhciBvID0gJC5tZXRhID8gJC5leHRlbmQoIHt9LCBvcHRzLCAkKCB0aGlzICkuZGF0YSgpICkgOiBvcHRzO1xuXG5cdFx0XHR2YXIgY2xvc2VfYnRuID0gJCggdGhpcyApLmZpbmQoICcjY2xvc2VfYnRuJyApO1xuXG5cdFx0XHR2YXIgc2F2ZV9idG4gPSAkKCB0aGlzICkuZmluZCggJyNzYXZlX2J0bicgKTtcblxuXHRcdFx0dXNlcl9nZW5lcmljX2RhdGFfYXBpID0gVFRBUEkuQVBJVXNlckdlbmVyaWNEYXRhO1xuXG5cdFx0XHRwYXJlbnRfYXdlc29tZV9ib3ggPSBvLnBhcmVudF9hd2Vzb21lX2JveDtcblxuXHRcdFx0Y2xvc2VfYnRuLmJpbmQoICdjbGljaycsICR0aGlzLm9uQ2xvc2UgKTtcblxuXHRcdFx0c2F2ZV9idG4uYmluZCggJ2NsaWNrJywgJHRoaXMub25TYXZlICk7XG5cblx0XHRcdHZhciByb3dzX3NlbGVjdG9yID0gJCggdGhpcyApLmZpbmQoICcjcm93cy1wZXItcGFnZS1zZWxlY3RvcicgKTtcblxuXHRcdFx0dmFyIGxlbiA9IG51bUFycmF5Lmxlbmd0aDtcblxuXHRcdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdHZhciBpdGVtID0gbnVtQXJyYXlbaV07XG5cdFx0XHRcdCQoIHJvd3Nfc2VsZWN0b3IgKS5hcHBlbmQoICc8b3B0aW9uIHZhbHVlPVwiJyArIGl0ZW0udmFsdWUgKyAnXCI+JyArIGl0ZW0ubGFiZWwgKyAnPC9vcHRpb24+JyApO1xuXHRcdFx0fVxuXG5cdFx0XHQkKCAkKCByb3dzX3NlbGVjdG9yICkuZmluZCggJ29wdGlvbicgKSApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAkKCB0aGlzICkuYXR0ciggJ3ZhbHVlJyApID09PSBwYXJlbnRfYXdlc29tZV9ib3guZ2V0Um93UGVyUGFnZSgpO1xuXHRcdFx0fSApLnByb3AoICdzZWxlY3RlZCcsIHRydWUgKS5hdHRyKCAnc2VsZWN0ZWQnLCB0cnVlICk7XG5cblx0XHRcdGxheW91dF9zZWxlY3RvciA9ICQoIHRoaXMgKS5maW5kKCAnI2xheW91dC1zZWxlY3RvcicgKTtcblx0XHRcdGxheW91dF9zZWxlY3RvciA9IGxheW91dF9zZWxlY3Rvci5UQ29tYm9Cb3goKTtcblxuXHRcdFx0dmFyIGFfZHJvcGRvd25fZGl2ID0gJCggdGhpcyApLmZpbmQoICcuY29sdW1uLWVkaXRvci1kcm9wLWRvd24tZGl2JyApO1xuXHRcdFx0dmFyIHJvd3NfcGVyX3BhZ2VfZGl2ID0gJCggdGhpcyApLmZpbmQoICcucm93cy1wZXItcGFnZS1kaXYnICk7XG5cblx0XHRcdGxheW91dF9zZWxlY3Rvci5iaW5kKCAnZm9ybUl0ZW1DaGFuZ2UnLCBmdW5jdGlvbiggZSwgd2lkZ2V0ICkge1xuXHRcdFx0XHR2YXIgc2VsZWN0X2lkID0gd2lkZ2V0LmdldFZhbHVlKCk7XG5cblx0XHRcdFx0aWYgKCBzZWxlY3RfaWQgIT09IC0xICkge1xuXHRcdFx0XHRcdGFfZHJvcGRvd25fZGl2LmNzcyggJ2Rpc3BsYXknLCAnbm9uZScgKTtcblx0XHRcdFx0XHRyb3dzX3Blcl9wYWdlX2Rpdi5jc3MoICdkaXNwbGF5JywgJ25vbmUnICk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhX2Ryb3Bkb3duX2Rpdi5jc3MoICdkaXNwbGF5JywgJ2Jsb2NrJyApO1xuXHRcdFx0XHRcdHJvd3NfcGVyX3BhZ2VfZGl2LmNzcyggJ2Rpc3BsYXknLCAnYmxvY2snICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH07XG5cblx0JC5mbi5Db2x1bW5FZGl0b3IuZGVmYXVsdHMgPSB7fTtcblx0JC5mbi5Db2x1bW5FZGl0b3IuaHRtbF90ZW1wbGF0ZSA9IGBcblx0XHQ8ZGl2IGNsYXNzPVwiY29sdW1uLWVkaXRvclwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImxheW91dC1uYW1lLWRpdlwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1pdGVtLWRpdlwiPlxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2hvb3NlLWxheW91dCBmb3JtLWl0ZW0tbGFiZWxcIj48L3NwYW4+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taXRlbS1pbnB1dC1kaXZcIj5cblx0XHRcdFx0XHRcdDxzZWxlY3QgaWQ9XCJsYXlvdXQtc2VsZWN0b3JcIiBjbGFzcz1cInQtc2VsZWN0XCIvPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImNvbHVtbi1lZGl0b3ItZHJvcC1kb3duLWRpdlwiPjwvZGl2PlxuXHRcdFx0PGRpdiBzdHlsZT1cImNsZWFyOiBib3RoXCI+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwicm93cy1wZXItcGFnZS1kaXZcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0taXRlbS1kaXZcIj5cblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInJvd3MtcGVyLXBhZ2UgZm9ybS1pdGVtLWxhYmVsXCI+PC9zcGFuPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW0taW5wdXQtZGl2XCI+XG5cdFx0XHRcdFx0XHQ8c2VsZWN0IGlkPVwicm93cy1wZXItcGFnZS1zZWxlY3RvclwiIGNsYXNzPVwidC1zZWxlY3RcIi8+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IHN0eWxlPVwiY2xlYXI6IGJvdGhcIj48L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJib3R0b20tYWN0aW9uLWRpdlwiPlxuXHRcdFx0XHQ8YnV0dG9uIGlkPVwic2F2ZV9idG5cIiBjbGFzcz1cInQtYnV0dG9uXCI+PC9idXR0b24+XG5cdFx0XHRcdDxidXR0b24gaWQ9XCJjbG9zZV9idG5cIiBjbGFzcz1cInQtYnV0dG9uXCI+Q2xvc2U8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRgO1xuXG59ICkoIGpRdWVyeSApOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9613\n")}}]); |