TimeTrex/interface/html5/dist/combobox-TComboBox.bundle.js

1 line
25 KiB
JavaScript

(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["combobox-TComboBox"],{5519:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TComboBox = function( options ) {\n\t\tvar opts = $.extend( {}, $.fn.TComboBox.defaults, options );\n\t\tvar $this = this;\n\t\tvar field;\n\t\tvar source_data = null;\n\n\t\tvar select_value = null;\n\n\t\tvar set_empty = false;\n\n\t\tvar set_any = false;\n\n\t\tvar set_select_item_when_set_source_data = false;\n\n\t\tvar error_string = '';\n\n\t\tvar error_tip_box;\n\n\t\tvar mass_edit_mode = false;\n\n\t\tvar check_box = null;\n\n\t\tvar enabled = true;\n\n\t\tvar valueKey = 'value';\n\n\t\tvar labelKey = 'label';\n\n\t\tvar customFirstItemLabel = '';\n\n\t\tthis.setValueKey = function( val ) {\n\t\t\tvalueKey = val;\n\t\t};\n\n\t\tthis.setLabelKey = function( val ) {\n\t\t\tlabelKey = val;\n\t\t};\n\n\t\tthis.getEnabled = function() {\n\t\t\treturn enabled;\n\t\t};\n\n\t\tthis.setEnabled = function( val ) {\n\t\t\tenabled = val;\n\n\t\t\tif ( val === false || val === '' ) {\n\t\t\t\t$this.attr( 'disabled', 'true' );\n\t\t\t\t$this.addClass( 't-select-readonly' );\n\t\t\t} else {\n\t\t\t\t$this.removeAttr( 'disabled' );\n\t\t\t\t$this.removeClass( 't-select-readonly' );\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setCheckBox = function( val ) {\n\t\t\tif ( check_box ) {\n\t\t\t\tcheck_box.children().eq( 0 )[0].checked = val;\n\t\t\t}\n\t\t};\n\n\t\tthis.isChecked = function() {\n\t\t\tif ( check_box ) {\n\t\t\t\tif ( check_box.children().eq( 0 )[0].checked === true ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\tthis.setMassEditMode = function( val ) {\n\t\t\tmass_edit_mode = val;\n\n\t\t\tif ( mass_edit_mode ) {\n\t\t\t\tcheck_box = $( ' <div class=\"mass-edit-checkbox-wrapper\"><input type=\"checkbox\" class=\"mass-edit-checkbox\"></input>' +\n\t\t\t\t\t'<label for=\"checkbox-input-1\" class=\"input-helper input-helper--checkbox\"></label></div>' );\n\t\t\t\tcheck_box.insertBefore( $( this ) );\n\n\t\t\t\tcheck_box.change( function() {\n\t\t\t\t\t$this.trigger( 'formItemChange', [$this] );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tif ( check_box ) {\n\t\t\t\t\tcheck_box.remove();\n\t\t\t\t\tcheck_box = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setErrorStyle = function( errStr, show, isWarning ) {\n\t\t\tif ( isWarning ) {\n\t\t\t\t$( this ).addClass( 'warning-tip' );\n\t\t\t} else {\n\t\t\t\t$( this ).addClass( 'error-tip' );\n\t\t\t}\n\t\t\terror_string = errStr;\n\n\t\t\tif ( show ) {\n\t\t\t\tthis.showErrorTip();\n\t\t\t}\n\t\t};\n\n\t\tthis.showErrorTip = function( sec ) {\n\n\t\t\tif ( !Global.isSet( sec ) ) {\n\t\t\t\tsec = 2;\n\t\t\t}\n\n\t\t\tif ( !error_tip_box ) {\n\t\t\t\terror_tip_box = Global.loadWidgetByName( WidgetNamesDic.ERROR_TOOLTIP );\n\t\t\t\terror_tip_box = error_tip_box.ErrorTipBox();\n\t\t\t}\n\t\t\tif ( $( this ).hasClass( 'warning-tip' ) ) {\n\t\t\t\terror_tip_box.show( this, error_string, sec, true );\n\t\t\t} else {\n\t\t\t\terror_tip_box.show( this, error_string, sec );\n\t\t\t}\n\t\t};\n\n\t\tthis.hideErrorTip = function() {\n\n\t\t\tif ( Global.isSet( error_tip_box ) ) {\n\t\t\t\terror_tip_box.remove();\n\t\t\t}\n\n\t\t};\n\n\t\tthis.clearErrorStyle = function() {\n\t\t\t$( this ).removeClass( 'error-tip' );\n\t\t\t$( this ).removeClass( 'warning-tip' );\n\t\t\tthis.hideErrorTip();\n\t\t\terror_string = '';\n\t\t};\n\n\t\tthis.setField = function( val ) {\n\t\t\tfield = val;\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.getLabel = function() {\n\n\t\t\tif ( !source_data || ( set_empty && source_data.length === 1 ) || ( set_any && source_data.length === 1 ) ) {\n\t\t\t\treturn select_value;\n\t\t\t}\n\t\t\t//if value is number convert to number type\n\t\t\tvar value = $( this ).children( 'option:selected' ).text();\n\n\t\t\treturn value;\n\t\t};\n\n\t\tthis.getValue = function() {\n\n\t\t\tif ( !source_data || ( set_empty && source_data.length === 1 ) || ( set_any && source_data.length === 1 ) ) {\n\t\t\t\treturn select_value;\n\t\t\t}\n\n\t\t\t//if value is number convert to number type\n\t\t\tvar value = $( this ).children( 'option:selected' ).attr( 'value' );\n\n\t\t\t//#2624 - Avoid parsing float value if we have a value larger than zero with a leading zero so that numeric string (eg province) ISO codes are not converted from '01' to 1\n\t\t\tif ( $.isNumeric( value ) && ( value === '0' || value.toString()[0] !== '0' ) ) {\n\t\t\t\tvalue = parseFloat( value );\n\t\t\t}\n\n\t\t\tif ( value === -1 || value === '-1' ) {\n\t\t\t\tvalue = -1;\n\t\t\t}\n\t\t\treturn value;\n\t\t};\n\n\t\tthis.getSelectedIndex = function() {\n\t\t\treturn this[0].selectedIndex;\n\t\t};\n\n\t\tthis.setSelectedIndex = function( set_index ) {\n\t\t\tif ( set_index < 0 ) {\n\t\t\t\tset_index = 0;\n\t\t\t}\n\t\t\tif ( set_index >= this[0].length ) {\n\t\t\t\tset_index = this[0].length - 1;\n\t\t\t}\n\t\t\tthis[0].selectedIndex = set_index;\n\t\t\tthis.setValue( this[0].value );\n\t\t}\n\t\t;\n\t\tthis.getLabel = function() {\n\t\t\t//if value is number convert to number type\n\t\t\tvar value = $( this ).children( 'option:selected' ).text();\n\t\t\treturn value;\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\t\t\tselect_value = val;\n\n\t\t\tif ( !source_data || source_data.length < 1 || ( set_empty && source_data.length === 1 ) || ( set_any && source_data.length === 1 ) ) {\n\t\t\t\tset_select_item_when_set_source_data = true;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//When no value == undefined or null or default false\n\t\t\tif ( !Global.isSet( val ) || val === false ) {\n\t\t\t\tif ( set_empty ) {\n\t\t\t\t\tval = TTUUID.zero_id;\n\t\t\t\t} else if ( set_any ) {\n\t\t\t\t\tval = TTUUID.not_exist_id;\n\t\t\t\t} else {\n\t\t\t\t\t//If no empty value, default to select first item\n\t\t\t\t\tif ( source_data && source_data.length > 0 ) {\n\t\t\t\t\t\tthis.setValue( source_data[0][valueKey] );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( $( this ).find( 'option' ) ).removeAttr( 'selected' );\n\n\t\t\t$( $( this ).find( 'option' ) ).filter( function() {\n\t\t\t\tif ( val === null || val === undefined ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn $( this ).attr( 'value' ) === val.toString();\n\t\t\t} ).prop( 'selected', true ).attr( 'selected', true );\n\t\t};\n\n\t\t/* jshint ignore:start */\n\t\tthis.setSourceData = function( val ) {\n\n\t\t\t$( this ).empty();\n\n\t\t\tif ( !Global.isSet( val ) || val.length < 1 ) {\n\t\t\t\tif ( set_empty ) {\n\t\t\t\t\tval = Global.addFirstItemToArray( val, 'empty', customFirstItemLabel );\n\t\t\t\t} else if ( set_any ) {\n\t\t\t\t\tval = Global.addFirstItemToArray( val, 'any', customFirstItemLabel );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( set_empty ) {\n\t\t\t\t\tif ( val && val.length > 0 && ( val[0].value != TTUUID.zero_id && val[0].value != 0 ) ) {\n\t\t\t\t\t\tval = Global.addFirstItemToArray( val, 'empty', customFirstItemLabel );\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( set_any ) {\n\t\t\t\t\tif ( val && val.length > 0 && ( val[0].value != TTUUID.not_exist_id && val[0].value != -1 ) ) {\n\t\t\t\t\t\tval = Global.addFirstItemToArray( val, 'any', customFirstItemLabel );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsource_data = val;\n\t\t\t//var option_array = [];\n\n\t\t\tif ( $( this )[0] ) {\n\t\t\t\tif ( $.isArray( val ) ) {\n\t\t\t\t\tvar len = val.length;\n\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\t$( this ).append( $( '<option value=\"' + val[i][valueKey] + '\"></option>' ).text( val[i][labelKey] ) );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor ( var j in val ) {\n\t\t\t\t\t\t$( this ).append( $( '<option value=\"' + j + '\"></option>' ).text( val[j] ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( set_select_item_when_set_source_data ) {\n\t\t\t\tthis.setValue( select_value );\n\t\t\t}\n\n\t\t};\n\t\t/* jshint ignore:end */\n\n\t\tthis.each( function() {\n\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tif ( o.set_empty ) {\n\t\t\t\tset_empty = o.set_empty;\n\t\t\t}\n\n\t\t\tif ( o.customFirstItemLabel ) {\n\t\t\t\tcustomFirstItemLabel = o.customFirstItemLabel;\n\t\t\t}\n\n\t\t\tif ( o.set_any ) {\n\t\t\t\tset_any = o.set_any;\n\t\t\t}\n\n\t\t\tif ( o.mass_edit_mode ) {\n\t\t\t\tmass_edit_mode = o.mass_edit_mode;\n\t\t\t}\n\n\t\t\tfield = o.field;\n\n\t\t\t$( this ).change( function() {\n\n\t\t\t\tif ( !enabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( check_box ) {\n\t\t\t\t\t$this.setCheckBox( true );\n\t\t\t\t}\n\n\t\t\t\t$this.trigger( 'formItemChange', [$this] );\n\t\t\t} );\n\n\t\t\t$( this ).click( function() {\n\t\t\t\tif ( !enabled ) {\n\t\t\t\t\tif ( !check_box ) {\n\t\t\t\t\t\tif ( LocalCacheData.current_open_sub_controller &&\n\t\t\t\t\t\t\tLocalCacheData.current_open_sub_controller.edit_view &&\n\t\t\t\t\t\t\tLocalCacheData.current_open_sub_controller.is_viewing ) {\n\t\t\t\t\t\t\terror_string = LocalCacheData.current_open_sub_controller.getViewModeErrorMessage();\n\t\t\t\t\t\t\t$this.showErrorTip( 10 );\n\t\t\t\t\t\t} else if ( LocalCacheData.current_open_primary_controller &&\n\t\t\t\t\t\t\tLocalCacheData.current_open_primary_controller.edit_view &&\n\t\t\t\t\t\t\tLocalCacheData.current_open_primary_controller.is_viewing ) {\n\t\t\t\t\t\t\terror_string = LocalCacheData.current_open_primary_controller.getViewModeErrorMessage();\n\t\t\t\t\t\t\t$this.showErrorTip( 10 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t$( this ).mouseover( function() {\n\n\t\t\t\tif ( enabled ) {\n\t\t\t\t\tif ( error_string && error_string.length > 0 ) {\n\t\t\t\t\t\t$this.showErrorTip( 20 );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\t$( this ).mouseout( function() {\n\t\t\t\t$this.hideErrorTip();\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TComboBox.defaults = {};\n\t$.fn.TComboBox.html_template = `<select class=\"t-select\"></select>`;\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTUxOS5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7O0FBRUE7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTixLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEtBQUs7O0FBRUw7QUFDQTtBQUNBLEtBQUs7O0FBRUwsSUFBSTs7QUFFSjs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLEVBQUUsR0FBRyxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L2dsb2JhbC93aWRnZXRzL2NvbWJvYm94L1RDb21ib0JveC5qcz9hZjM2Il0sInNvdXJjZXNDb250ZW50IjpbIiggZnVuY3Rpb24oICQgKSB7XG5cblx0JC5mbi5UQ29tYm9Cb3ggPSBmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0XHR2YXIgb3B0cyA9ICQuZXh0ZW5kKCB7fSwgJC5mbi5UQ29tYm9Cb3guZGVmYXVsdHMsIG9wdGlvbnMgKTtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHZhciBmaWVsZDtcblx0XHR2YXIgc291cmNlX2RhdGEgPSBudWxsO1xuXG5cdFx0dmFyIHNlbGVjdF92YWx1ZSA9IG51bGw7XG5cblx0XHR2YXIgc2V0X2VtcHR5ID0gZmFsc2U7XG5cblx0XHR2YXIgc2V0X2FueSA9IGZhbHNlO1xuXG5cdFx0dmFyIHNldF9zZWxlY3RfaXRlbV93aGVuX3NldF9zb3VyY2VfZGF0YSA9IGZhbHNlO1xuXG5cdFx0dmFyIGVycm9yX3N0cmluZyA9ICcnO1xuXG5cdFx0dmFyIGVycm9yX3RpcF9ib3g7XG5cblx0XHR2YXIgbWFzc19lZGl0X21vZGUgPSBmYWxzZTtcblxuXHRcdHZhciBjaGVja19ib3ggPSBudWxsO1xuXG5cdFx0dmFyIGVuYWJsZWQgPSB0cnVlO1xuXG5cdFx0dmFyIHZhbHVlS2V5ID0gJ3ZhbHVlJztcblxuXHRcdHZhciBsYWJlbEtleSA9ICdsYWJlbCc7XG5cblx0XHR2YXIgY3VzdG9tRmlyc3RJdGVtTGFiZWwgPSAnJztcblxuXHRcdHRoaXMuc2V0VmFsdWVLZXkgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0dmFsdWVLZXkgPSB2YWw7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0TGFiZWxLZXkgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0bGFiZWxLZXkgPSB2YWw7XG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RW5hYmxlZCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGVuYWJsZWQ7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0RW5hYmxlZCA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRlbmFibGVkID0gdmFsO1xuXG5cdFx0XHRpZiAoIHZhbCA9PT0gZmFsc2UgfHwgdmFsID09PSAnJyApIHtcblx0XHRcdFx0JHRoaXMuYXR0ciggJ2Rpc2FibGVkJywgJ3RydWUnICk7XG5cdFx0XHRcdCR0aGlzLmFkZENsYXNzKCAndC1zZWxlY3QtcmVhZG9ubHknICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQkdGhpcy5yZW1vdmVBdHRyKCAnZGlzYWJsZWQnICk7XG5cdFx0XHRcdCR0aGlzLnJlbW92ZUNsYXNzKCAndC1zZWxlY3QtcmVhZG9ubHknICk7XG5cdFx0XHR9XG5cblx0XHR9O1xuXG5cdFx0dGhpcy5zZXRDaGVja0JveCA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRpZiAoIGNoZWNrX2JveCApIHtcblx0XHRcdFx0Y2hlY2tfYm94LmNoaWxkcmVuKCkuZXEoIDAgKVswXS5jaGVja2VkID0gdmFsO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmlzQ2hlY2tlZCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBjaGVja19ib3ggKSB7XG5cdFx0XHRcdGlmICggY2hlY2tfYm94LmNoaWxkcmVuKCkuZXEoIDAgKVswXS5jaGVja2VkID09PSB0cnVlICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xuXG5cdFx0dGhpcy5zZXRNYXNzRWRpdE1vZGUgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0bWFzc19lZGl0X21vZGUgPSB2YWw7XG5cblx0XHRcdGlmICggbWFzc19lZGl0X21vZGUgKSB7XG5cdFx0XHRcdGNoZWNrX2JveCA9ICQoICcgPGRpdiBjbGFzcz1cIm1hc3MtZWRpdC1jaGVja2JveC13cmFwcGVyXCI+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwibWFzcy1lZGl0LWNoZWNrYm94XCI+PC9pbnB1dD4nICtcblx0XHRcdFx0XHQnPGxhYmVsIGZvcj1cImNoZWNrYm94LWlucHV0LTFcIiBjbGFzcz1cImlucHV0LWhlbHBlciBpbnB1dC1oZWxwZXItLWNoZWNrYm94XCI+PC9sYWJlbD48L2Rpdj4nICk7XG5cdFx0XHRcdGNoZWNrX2JveC5pbnNlcnRCZWZvcmUoICQoIHRoaXMgKSApO1xuXG5cdFx0XHRcdGNoZWNrX2JveC5jaGFuZ2UoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdCR0aGlzLnRyaWdnZXIoICdmb3JtSXRlbUNoYW5nZScsIFskdGhpc10gKTtcblx0XHRcdFx0fSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKCBjaGVja19ib3ggKSB7XG5cdFx0XHRcdFx0Y2hlY2tfYm94LnJlbW92ZSgpO1xuXHRcdFx0XHRcdGNoZWNrX2JveCA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLnNldEVycm9yU3R5bGUgPSBmdW5jdGlvbiggZXJyU3RyLCBzaG93LCBpc1dhcm5pbmcgKSB7XG5cdFx0XHRpZiAoIGlzV2FybmluZyApIHtcblx0XHRcdFx0JCggdGhpcyApLmFkZENsYXNzKCAnd2FybmluZy10aXAnICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQkKCB0aGlzICkuYWRkQ2xhc3MoICdlcnJvci10aXAnICk7XG5cdFx0XHR9XG5cdFx0XHRlcnJvcl9zdHJpbmcgPSBlcnJTdHI7XG5cblx0XHRcdGlmICggc2hvdyApIHtcblx0XHRcdFx0dGhpcy5zaG93RXJyb3JUaXAoKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5zaG93RXJyb3JUaXAgPSBmdW5jdGlvbiggc2VjICkge1xuXG5cdFx0XHRpZiAoICFHbG9iYWwuaXNTZXQoIHNlYyApICkge1xuXHRcdFx0XHRzZWMgPSAyO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICFlcnJvcl90aXBfYm94ICkge1xuXHRcdFx0XHRlcnJvcl90aXBfYm94ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIFdpZGdldE5hbWVzRGljLkVSUk9SX1RPT0xUSVAgKTtcblx0XHRcdFx0ZXJyb3JfdGlwX2JveCA9IGVycm9yX3RpcF9ib3guRXJyb3JUaXBCb3goKTtcblx0XHRcdH1cblx0XHRcdGlmICggJCggdGhpcyApLmhhc0NsYXNzKCAnd2FybmluZy10aXAnICkgKSB7XG5cdFx0XHRcdGVycm9yX3RpcF9ib3guc2hvdyggdGhpcywgZXJyb3Jfc3RyaW5nLCBzZWMsIHRydWUgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVycm9yX3RpcF9ib3guc2hvdyggdGhpcywgZXJyb3Jfc3RyaW5nLCBzZWMgKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5oaWRlRXJyb3JUaXAgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGVycm9yX3RpcF9ib3ggKSApIHtcblx0XHRcdFx0ZXJyb3JfdGlwX2JveC5yZW1vdmUoKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLmNsZWFyRXJyb3JTdHlsZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0JCggdGhpcyApLnJlbW92ZUNsYXNzKCAnZXJyb3ItdGlwJyApO1xuXHRcdFx0JCggdGhpcyApLnJlbW92ZUNsYXNzKCAnd2FybmluZy10aXAnICk7XG5cdFx0XHR0aGlzLmhpZGVFcnJvclRpcCgpO1xuXHRcdFx0ZXJyb3Jfc3RyaW5nID0gJyc7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0RmllbGQgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0ZmllbGQgPSB2YWw7XG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmllbGQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBmaWVsZDtcblx0XHR9O1xuXG5cdFx0dGhpcy5nZXRMYWJlbCA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRpZiAoICFzb3VyY2VfZGF0YSB8fCAoIHNldF9lbXB0eSAmJiBzb3VyY2VfZGF0YS5sZW5ndGggPT09IDEgKSB8fCAoIHNldF9hbnkgJiYgc291cmNlX2RhdGEubGVuZ3RoID09PSAxICkgKSB7XG5cdFx0XHRcdHJldHVybiBzZWxlY3RfdmFsdWU7XG5cdFx0XHR9XG5cdFx0XHQvL2lmIHZhbHVlIGlzIG51bWJlciBjb252ZXJ0IHRvIG51bWJlciB0eXBlXG5cdFx0XHR2YXIgdmFsdWUgPSAkKCB0aGlzICkuY2hpbGRyZW4oICdvcHRpb246c2VsZWN0ZWQnICkudGV4dCgpO1xuXG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0VmFsdWUgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0aWYgKCAhc291cmNlX2RhdGEgfHwgKCBzZXRfZW1wdHkgJiYgc291cmNlX2RhdGEubGVuZ3RoID09PSAxICkgfHwgKCBzZXRfYW55ICYmIHNvdXJjZV9kYXRhLmxlbmd0aCA9PT0gMSApICkge1xuXHRcdFx0XHRyZXR1cm4gc2VsZWN0X3ZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvL2lmIHZhbHVlIGlzIG51bWJlciBjb252ZXJ0IHRvIG51bWJlciB0eXBlXG5cdFx0XHR2YXIgdmFsdWUgPSAkKCB0aGlzICkuY2hpbGRyZW4oICdvcHRpb246c2VsZWN0ZWQnICkuYXR0ciggJ3ZhbHVlJyApO1xuXG5cdFx0XHQvLyMyNjI0IC0gQXZvaWQgcGFyc2luZyBmbG9hdCB2YWx1ZSBpZiB3ZSBoYXZlIGEgdmFsdWUgbGFyZ2VyIHRoYW4gemVybyB3aXRoIGEgbGVhZGluZyB6ZXJvIHNvIHRoYXQgbnVtZXJpYyBzdHJpbmcgKGVnIHByb3ZpbmNlKSBJU08gY29kZXMgYXJlIG5vdCBjb252ZXJ0ZWQgZnJvbSAnMDEnIHRvIDFcblx0XHRcdGlmICggJC5pc051bWVyaWMoIHZhbHVlICkgJiYgKCB2YWx1ZSA9PT0gJzAnIHx8IHZhbHVlLnRvU3RyaW5nKClbMF0gIT09ICcwJyApICkge1xuXHRcdFx0XHR2YWx1ZSA9IHBhcnNlRmxvYXQoIHZhbHVlICk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggdmFsdWUgPT09IC0xIHx8IHZhbHVlID09PSAnLTEnICkge1xuXHRcdFx0XHR2YWx1ZSA9IC0xO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH07XG5cblx0XHR0aGlzLmdldFNlbGVjdGVkSW5kZXggPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiB0aGlzWzBdLnNlbGVjdGVkSW5kZXg7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0U2VsZWN0ZWRJbmRleCA9IGZ1bmN0aW9uKCBzZXRfaW5kZXggKSB7XG5cdFx0XHRpZiAoIHNldF9pbmRleCA8IDAgKSB7XG5cdFx0XHRcdHNldF9pbmRleCA9IDA7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIHNldF9pbmRleCA+PSB0aGlzWzBdLmxlbmd0aCApIHtcblx0XHRcdFx0c2V0X2luZGV4ID0gdGhpc1swXS5sZW5ndGggLSAxO1xuXHRcdFx0fVxuXHRcdFx0dGhpc1swXS5zZWxlY3RlZEluZGV4ID0gc2V0X2luZGV4O1xuXHRcdFx0dGhpcy5zZXRWYWx1ZSggdGhpc1swXS52YWx1ZSApO1xuXHRcdH1cblx0XHQ7XG5cdFx0dGhpcy5nZXRMYWJlbCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0Ly9pZiB2YWx1ZSBpcyBudW1iZXIgY29udmVydCB0byBudW1iZXIgdHlwZVxuXHRcdFx0dmFyIHZhbHVlID0gJCggdGhpcyApLmNoaWxkcmVuKCAnb3B0aW9uOnNlbGVjdGVkJyApLnRleHQoKTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9O1xuXG5cdFx0dGhpcy5zZXRWYWx1ZSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRzZWxlY3RfdmFsdWUgPSB2YWw7XG5cblx0XHRcdGlmICggIXNvdXJjZV9kYXRhIHx8IHNvdXJjZV9kYXRhLmxlbmd0aCA8IDEgfHwgKCBzZXRfZW1wdHkgJiYgc291cmNlX2RhdGEubGVuZ3RoID09PSAxICkgfHwgKCBzZXRfYW55ICYmIHNvdXJjZV9kYXRhLmxlbmd0aCA9PT0gMSApICkge1xuXHRcdFx0XHRzZXRfc2VsZWN0X2l0ZW1fd2hlbl9zZXRfc291cmNlX2RhdGEgPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vV2hlbiBubyB2YWx1ZSA9PSB1bmRlZmluZWQgb3IgbnVsbCBvciBkZWZhdWx0IGZhbHNlXG5cdFx0XHRpZiAoICFHbG9iYWwuaXNTZXQoIHZhbCApIHx8IHZhbCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdGlmICggc2V0X2VtcHR5ICkge1xuXHRcdFx0XHRcdHZhbCA9IFRUVVVJRC56ZXJvX2lkO1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBzZXRfYW55ICkge1xuXHRcdFx0XHRcdHZhbCA9IFRUVVVJRC5ub3RfZXhpc3RfaWQ7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly9JZiBubyBlbXB0eSB2YWx1ZSwgZGVmYXVsdCB0byBzZWxlY3QgZmlyc3QgaXRlbVxuXHRcdFx0XHRcdGlmICggc291cmNlX2RhdGEgJiYgc291cmNlX2RhdGEubGVuZ3RoID4gMCApIHtcblx0XHRcdFx0XHRcdHRoaXMuc2V0VmFsdWUoIHNvdXJjZV9kYXRhWzBdW3ZhbHVlS2V5XSApO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCQoICQoIHRoaXMgKS5maW5kKCAnb3B0aW9uJyApICkucmVtb3ZlQXR0ciggJ3NlbGVjdGVkJyApO1xuXG5cdFx0XHQkKCAkKCB0aGlzICkuZmluZCggJ29wdGlvbicgKSApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gJCggdGhpcyApLmF0dHIoICd2YWx1ZScgKSA9PT0gdmFsLnRvU3RyaW5nKCk7XG5cdFx0XHR9ICkucHJvcCggJ3NlbGVjdGVkJywgdHJ1ZSApLmF0dHIoICdzZWxlY3RlZCcsIHRydWUgKTtcblx0XHR9O1xuXG5cdFx0LyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuXHRcdHRoaXMuc2V0U291cmNlRGF0YSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cblx0XHRcdCQoIHRoaXMgKS5lbXB0eSgpO1xuXG5cdFx0XHRpZiAoICFHbG9iYWwuaXNTZXQoIHZhbCApIHx8IHZhbC5sZW5ndGggPCAxICkge1xuXHRcdFx0XHRpZiAoIHNldF9lbXB0eSApIHtcblx0XHRcdFx0XHR2YWwgPSBHbG9iYWwuYWRkRmlyc3RJdGVtVG9BcnJheSggdmFsLCAnZW1wdHknLCBjdXN0b21GaXJzdEl0ZW1MYWJlbCApO1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBzZXRfYW55ICkge1xuXHRcdFx0XHRcdHZhbCA9IEdsb2JhbC5hZGRGaXJzdEl0ZW1Ub0FycmF5KCB2YWwsICdhbnknLCBjdXN0b21GaXJzdEl0ZW1MYWJlbCApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAoIHNldF9lbXB0eSApIHtcblx0XHRcdFx0XHRpZiAoIHZhbCAmJiB2YWwubGVuZ3RoID4gMCAmJiAoIHZhbFswXS52YWx1ZSAhPSBUVFVVSUQuemVyb19pZCAmJiB2YWxbMF0udmFsdWUgIT0gMCApICkge1xuXHRcdFx0XHRcdFx0dmFsID0gR2xvYmFsLmFkZEZpcnN0SXRlbVRvQXJyYXkoIHZhbCwgJ2VtcHR5JywgY3VzdG9tRmlyc3RJdGVtTGFiZWwgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0fSBlbHNlIGlmICggc2V0X2FueSApIHtcblx0XHRcdFx0XHRpZiAoIHZhbCAmJiB2YWwubGVuZ3RoID4gMCAmJiAoIHZhbFswXS52YWx1ZSAhPSBUVFVVSUQubm90X2V4aXN0X2lkICYmIHZhbFswXS52YWx1ZSAhPSAtMSApICkge1xuXHRcdFx0XHRcdFx0dmFsID0gR2xvYmFsLmFkZEZpcnN0SXRlbVRvQXJyYXkoIHZhbCwgJ2FueScsIGN1c3RvbUZpcnN0SXRlbUxhYmVsICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0c291cmNlX2RhdGEgPSB2YWw7XG5cdFx0XHQvL3ZhciBvcHRpb25fYXJyYXkgPSBbXTtcblxuXHRcdFx0aWYgKCAkKCB0aGlzIClbMF0gKSB7XG5cdFx0XHRcdGlmICggJC5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0XHR2YXIgbGVuID0gdmFsLmxlbmd0aDtcblx0XHRcdFx0XHRmb3IgKCB2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRcdCQoIHRoaXMgKS5hcHBlbmQoICQoICc8b3B0aW9uIHZhbHVlPVwiJyArIHZhbFtpXVt2YWx1ZUtleV0gKyAnXCI+PC9vcHRpb24+JyApLnRleHQoIHZhbFtpXVtsYWJlbEtleV0gKSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRmb3IgKCB2YXIgaiBpbiB2YWwgKSB7XG5cdFx0XHRcdFx0XHQkKCB0aGlzICkuYXBwZW5kKCAkKCAnPG9wdGlvbiB2YWx1ZT1cIicgKyBqICsgJ1wiPjwvb3B0aW9uPicgKS50ZXh0KCB2YWxbal0gKSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHNldF9zZWxlY3RfaXRlbV93aGVuX3NldF9zb3VyY2VfZGF0YSApIHtcblx0XHRcdFx0dGhpcy5zZXRWYWx1ZSggc2VsZWN0X3ZhbHVlICk7XG5cdFx0XHR9XG5cblx0XHR9O1xuXHRcdC8qIGpzaGludCBpZ25vcmU6ZW5kICovXG5cblx0XHR0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHR2YXIgbyA9ICQubWV0YSA/ICQuZXh0ZW5kKCB7fSwgb3B0cywgJCggdGhpcyApLmRhdGEoKSApIDogb3B0cztcblxuXHRcdFx0aWYgKCBvLnNldF9lbXB0eSApIHtcblx0XHRcdFx0c2V0X2VtcHR5ID0gby5zZXRfZW1wdHk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggby5jdXN0b21GaXJzdEl0ZW1MYWJlbCApIHtcblx0XHRcdFx0Y3VzdG9tRmlyc3RJdGVtTGFiZWwgPSBvLmN1c3RvbUZpcnN0SXRlbUxhYmVsO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIG8uc2V0X2FueSApIHtcblx0XHRcdFx0c2V0X2FueSA9IG8uc2V0X2FueTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBvLm1hc3NfZWRpdF9tb2RlICkge1xuXHRcdFx0XHRtYXNzX2VkaXRfbW9kZSA9IG8ubWFzc19lZGl0X21vZGU7XG5cdFx0XHR9XG5cblx0XHRcdGZpZWxkID0gby5maWVsZDtcblxuXHRcdFx0JCggdGhpcyApLmNoYW5nZSggZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0aWYgKCAhZW5hYmxlZCApIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIGNoZWNrX2JveCApIHtcblx0XHRcdFx0XHQkdGhpcy5zZXRDaGVja0JveCggdHJ1ZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHRoaXMudHJpZ2dlciggJ2Zvcm1JdGVtQ2hhbmdlJywgWyR0aGlzXSApO1xuXHRcdFx0fSApO1xuXG5cdFx0XHQkKCB0aGlzICkuY2xpY2soIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoICFlbmFibGVkICkge1xuXHRcdFx0XHRcdGlmICggIWNoZWNrX2JveCApIHtcblx0XHRcdFx0XHRcdGlmICggTG9jYWxDYWNoZURhdGEuY3VycmVudF9vcGVuX3N1Yl9jb250cm9sbGVyICYmXG5cdFx0XHRcdFx0XHRcdExvY2FsQ2FjaGVEYXRhLmN1cnJlbnRfb3Blbl9zdWJfY29udHJvbGxlci5lZGl0X3ZpZXcgJiZcblx0XHRcdFx0XHRcdFx0TG9jYWxDYWNoZURhdGEuY3VycmVudF9vcGVuX3N1Yl9jb250cm9sbGVyLmlzX3ZpZXdpbmcgKSB7XG5cdFx0XHRcdFx0XHRcdGVycm9yX3N0cmluZyA9IExvY2FsQ2FjaGVEYXRhLmN1cnJlbnRfb3Blbl9zdWJfY29udHJvbGxlci5nZXRWaWV3TW9kZUVycm9yTWVzc2FnZSgpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy5zaG93RXJyb3JUaXAoIDEwICk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBMb2NhbENhY2hlRGF0YS5jdXJyZW50X29wZW5fcHJpbWFyeV9jb250cm9sbGVyICYmXG5cdFx0XHRcdFx0XHRcdExvY2FsQ2FjaGVEYXRhLmN1cnJlbnRfb3Blbl9wcmltYXJ5X2NvbnRyb2xsZXIuZWRpdF92aWV3ICYmXG5cdFx0XHRcdFx0XHRcdExvY2FsQ2FjaGVEYXRhLmN1cnJlbnRfb3Blbl9wcmltYXJ5X2NvbnRyb2xsZXIuaXNfdmlld2luZyApIHtcblx0XHRcdFx0XHRcdFx0ZXJyb3Jfc3RyaW5nID0gTG9jYWxDYWNoZURhdGEuY3VycmVudF9vcGVuX3ByaW1hcnlfY29udHJvbGxlci5nZXRWaWV3TW9kZUVycm9yTWVzc2FnZSgpO1xuXHRcdFx0XHRcdFx0XHQkdGhpcy5zaG93RXJyb3JUaXAoIDEwICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cblx0XHRcdCQoIHRoaXMgKS5tb3VzZW92ZXIoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdGlmICggZW5hYmxlZCApIHtcblx0XHRcdFx0XHRpZiAoIGVycm9yX3N0cmluZyAmJiBlcnJvcl9zdHJpbmcubGVuZ3RoID4gMCApIHtcblx0XHRcdFx0XHRcdCR0aGlzLnNob3dFcnJvclRpcCggMjAgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0fSApO1xuXG5cdFx0XHQkKCB0aGlzICkubW91c2VvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQkdGhpcy5oaWRlRXJyb3JUaXAoKTtcblx0XHRcdH0gKTtcblxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH07XG5cblx0JC5mbi5UQ29tYm9Cb3guZGVmYXVsdHMgPSB7fTtcblx0JC5mbi5UQ29tYm9Cb3guaHRtbF90ZW1wbGF0ZSA9IGA8c2VsZWN0IGNsYXNzPVwidC1zZWxlY3RcIj48L3NlbGVjdD5gO1xuXG59ICkoIGpRdWVyeSApOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5519\n")}}]);