TimeTrex/interface/html5/dist/help-AboutViewController.bundle.js

1 line
78 KiB
JavaScript

(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["help-AboutViewController","filebrowser-TImageAdvBrowser","filebrowser-TImageBrowser"],{8243:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TImageAdvBrowser = function( options ) {\n\n\t\tGlobal.addCss( 'global/widgets/filebrowser/TImageBrowser.css' );\n\t\tvar opts = $.extend( {}, $.fn.TImageAdvBrowser.defaults, options );\n\n\t\tvar $this = this;\n\t\tvar field;\n\t\tvar name = 'filedata';\n\n\t\tvar accept_filter = '';\n\n\t\tvar default_width = 177;\n\t\tvar default_height = 42;\n\n\t\tvar callBack = null;\n\n\t\tvar enabled = true;\n\n\t\tvar image;\n\n\t\tvar result_form_data;\n\n\t\tthis.setEnable = function( val ) {\n\t\t\tenabled = val;\n\n\t\t\tvar btn = this.children().eq( 1 );\n\t\t\tif ( !val ) {\n\t\t\t\tbtn.hide();\n\t\t\t} else {\n\t\t\t\tbtn.show();\n\t\t\t}\n\n\t\t};\n\n\t\tthis.clearErrorStyle = function() {\n\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.getValue = function() {\n\t\t\treturn result_form_data;\n\t\t};\n\n\t\tthis.setImage = function( val ) {\n\t\t\tif ( !val ) {\n\t\t\t\timage.attr( 'src', '' );\n\t\t\t\timage.hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar d = new Date();\n\t\t\timage.hide();\n\t\t\timage.attr( 'src', val + '&t=' + d.getTime() + '&X-CSRF-Token=' + getCookie( 'CSRF-Token' ) );\n\t\t\timage.css( 'height', 'auto' );\n\t\t\timage.css( 'width', 'auto' );\n\n\t\t};\n\n\t\tthis.onImageLoad = function( image ) {\n\n\t\t\tvar image_height = $( image ).height() > 0 ? $( image ).height() : image.naturalHeight;\n\t\t\tvar image_width = $( image ).width() > 0 ? $( image ).width() : image.naturalWidth;\n\n\t\t\tif ( image_height > default_height ) {\n\t\t\t\t$( image ).css( 'height', default_height );\n\n\t\t\t}\n\n\t\t\tif ( image_width > default_width ) {\n\t\t\t\t$( image ).css( 'width', default_width );\n\t\t\t\t$( image ).css( 'height', 'auto' );\n\t\t\t}\n\n\t\t\t$this.trigger( 'setSize' );\n\n\t\t\tif ( image_height < 5 ) {\n\t\t\t\t$( image ).hide();\n\t\t\t} else {\n\t\t\t\t$( image ).show();\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\n\t\t\tif ( !val ) {\n\t\t\t\tval = '';\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setEnableDelete = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\tif ( !val ) {\n\t\t\t\timage.removeAttr( 'enable-delete' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\timage.attr( 'enable-delete', 1 );\n\t\t\t}\n\t\t};\n\n\t\tthis.each( function() {\n\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tfield = o.field;\n\n\t\t\tvar $$this = this;\n\n\t\t\t$( this ).find( '#upload_image' ).text( $.i18n._( 'Upload Image' ) );\n\n\t\t\tif ( o.callBack ) {\n\t\t\t\tcallBack = o.callBack;\n\t\t\t}\n\n\t\t\tif ( o.show_browser === false ) {\n\t\t\t\t$( this ).children().eq( 1 ).hide();\n\t\t\t}\n\n\t\t\tif ( o.default_width > 0 ) {\n\t\t\t\tdefault_width = o.default_width;\n\t\t\t}\n\n\t\t\tif ( o.default_height > 0 ) {\n\t\t\t\tdefault_height = o.default_height;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.name ) ) {\n\t\t\t\tname = o.name;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( accept_filter ) ) {\n\t\t\t\taccept_filter = o.accept_filter;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.deleteImageHandler ) ) {\n\t\t\t\t$this.find( '.file-browser' ).on( 'deleteClick', function() {\n\t\t\t\t\to.deleteImageHandler();\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tvar browser = $( this ).children().eq( 1 );\n\t\t\tbrowser.bind( 'click', function() {\n\t\t\t\tIndexViewController.openWizard( 'UserPhotoWizard', null, function( form_data ) {\n\n\t\t\t\t\tif ( callBack ) {\n\t\t\t\t\t\tcallBack( form_data );\n\t\t\t\t\t}\n\n\t\t\t\t\tresult_form_data = form_data;\n\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\timage = $( this ).children().eq( 0 );\n\t\t\timage.on( 'load', function() {\n\t\t\t\t$this.onImageLoad( this );\n\t\t\t} );\n\n\t\t\timage.hide();\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TImageAdvBrowser.defaults = {};\n\t$.fn.TImageAdvBrowser.html_template = `\n\t<div class=\"file-browser\">\n\t\t<img class=\"image\">\n\t\t<button id=\"upload_image\" class=\"t-button file-browser-btn\" style=\"display: block\"></button>\n\t</div>\n\t`;\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODI0My5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7O0FBRUE7O0FBRUE7QUFDQSx5QkFBeUI7O0FBRXpCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxNQUFNO0FBQ04sS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMOztBQUVBLElBQUk7O0FBRUo7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsRUFBRSxHQUFHLE1BQU0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbnRlcmZhY2UvaHRtbDUvZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlQWR2QnJvd3Nlci5qcz8xYzBiIl0sInNvdXJjZXNDb250ZW50IjpbIiggZnVuY3Rpb24oICQgKSB7XG5cblx0JC5mbi5USW1hZ2VBZHZCcm93c2VyID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cblx0XHRHbG9iYWwuYWRkQ3NzKCAnZ2xvYmFsL3dpZGdldHMvZmlsZWJyb3dzZXIvVEltYWdlQnJvd3Nlci5jc3MnICk7XG5cdFx0dmFyIG9wdHMgPSAkLmV4dGVuZCgge30sICQuZm4uVEltYWdlQWR2QnJvd3Nlci5kZWZhdWx0cywgb3B0aW9ucyApO1xuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR2YXIgZmllbGQ7XG5cdFx0dmFyIG5hbWUgPSAnZmlsZWRhdGEnO1xuXG5cdFx0dmFyIGFjY2VwdF9maWx0ZXIgPSAnJztcblxuXHRcdHZhciBkZWZhdWx0X3dpZHRoID0gMTc3O1xuXHRcdHZhciBkZWZhdWx0X2hlaWdodCA9IDQyO1xuXG5cdFx0dmFyIGNhbGxCYWNrID0gbnVsbDtcblxuXHRcdHZhciBlbmFibGVkID0gdHJ1ZTtcblxuXHRcdHZhciBpbWFnZTtcblxuXHRcdHZhciByZXN1bHRfZm9ybV9kYXRhO1xuXG5cdFx0dGhpcy5zZXRFbmFibGUgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0ZW5hYmxlZCA9IHZhbDtcblxuXHRcdFx0dmFyIGJ0biA9IHRoaXMuY2hpbGRyZW4oKS5lcSggMSApO1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRidG4uaGlkZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnRuLnNob3coKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLmNsZWFyRXJyb3JTdHlsZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmllbGQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBmaWVsZDtcblx0XHR9O1xuXG5cdFx0dGhpcy5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHJlc3VsdF9mb3JtX2RhdGE7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0SW1hZ2UgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRpbWFnZS5hdHRyKCAnc3JjJywgJycgKTtcblx0XHRcdFx0aW1hZ2UuaGlkZSgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBkID0gbmV3IERhdGUoKTtcblx0XHRcdGltYWdlLmhpZGUoKTtcblx0XHRcdGltYWdlLmF0dHIoICdzcmMnLCB2YWwgKyAnJnQ9JyArIGQuZ2V0VGltZSgpICsgJyZYLUNTUkYtVG9rZW49JyArIGdldENvb2tpZSggJ0NTUkYtVG9rZW4nICkgKTtcblx0XHRcdGltYWdlLmNzcyggJ2hlaWdodCcsICdhdXRvJyApO1xuXHRcdFx0aW1hZ2UuY3NzKCAnd2lkdGgnLCAnYXV0bycgKTtcblxuXHRcdH07XG5cblx0XHR0aGlzLm9uSW1hZ2VMb2FkID0gZnVuY3Rpb24oIGltYWdlICkge1xuXG5cdFx0XHR2YXIgaW1hZ2VfaGVpZ2h0ID0gJCggaW1hZ2UgKS5oZWlnaHQoKSA+IDAgPyAkKCBpbWFnZSApLmhlaWdodCgpIDogaW1hZ2UubmF0dXJhbEhlaWdodDtcblx0XHRcdHZhciBpbWFnZV93aWR0aCA9ICQoIGltYWdlICkud2lkdGgoKSA+IDAgPyAkKCBpbWFnZSApLndpZHRoKCkgOiBpbWFnZS5uYXR1cmFsV2lkdGg7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0ID4gZGVmYXVsdF9oZWlnaHQgKSB7XG5cdFx0XHRcdCQoIGltYWdlICkuY3NzKCAnaGVpZ2h0JywgZGVmYXVsdF9oZWlnaHQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGltYWdlX3dpZHRoID4gZGVmYXVsdF93aWR0aCApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICd3aWR0aCcsIGRlZmF1bHRfd2lkdGggKTtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICdoZWlnaHQnLCAnYXV0bycgKTtcblx0XHRcdH1cblxuXHRcdFx0JHRoaXMudHJpZ2dlciggJ3NldFNpemUnICk7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0IDwgNSApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5oaWRlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQkKCBpbWFnZSApLnNob3coKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLnNldFZhbHVlID0gZnVuY3Rpb24oIHZhbCApIHtcblxuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHR2YWwgPSAnJztcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLnNldEVuYWJsZURlbGV0ZSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHR2YXIgaW1hZ2UgPSAkdGhpcy5maW5kKCAnLmltYWdlJyApO1xuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRpbWFnZS5yZW1vdmVBdHRyKCAnZW5hYmxlLWRlbGV0ZScgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW1hZ2UuYXR0ciggJ2VuYWJsZS1kZWxldGUnLCAxICk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdHZhciBvID0gJC5tZXRhID8gJC5leHRlbmQoIHt9LCBvcHRzLCAkKCB0aGlzICkuZGF0YSgpICkgOiBvcHRzO1xuXG5cdFx0XHRmaWVsZCA9IG8uZmllbGQ7XG5cblx0XHRcdHZhciAkJHRoaXMgPSB0aGlzO1xuXG5cdFx0XHQkKCB0aGlzICkuZmluZCggJyN1cGxvYWRfaW1hZ2UnICkudGV4dCggJC5pMThuLl8oICdVcGxvYWQgSW1hZ2UnICkgKTtcblxuXHRcdFx0aWYgKCBvLmNhbGxCYWNrICkge1xuXHRcdFx0XHRjYWxsQmFjayA9IG8uY2FsbEJhY2s7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggby5zaG93X2Jyb3dzZXIgPT09IGZhbHNlICkge1xuXHRcdFx0XHQkKCB0aGlzICkuY2hpbGRyZW4oKS5lcSggMSApLmhpZGUoKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBvLmRlZmF1bHRfd2lkdGggPiAwICkge1xuXHRcdFx0XHRkZWZhdWx0X3dpZHRoID0gby5kZWZhdWx0X3dpZHRoO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIG8uZGVmYXVsdF9oZWlnaHQgPiAwICkge1xuXHRcdFx0XHRkZWZhdWx0X2hlaWdodCA9IG8uZGVmYXVsdF9oZWlnaHQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCBvLm5hbWUgKSApIHtcblx0XHRcdFx0bmFtZSA9IG8ubmFtZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIGFjY2VwdF9maWx0ZXIgKSApIHtcblx0XHRcdFx0YWNjZXB0X2ZpbHRlciA9IG8uYWNjZXB0X2ZpbHRlcjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBHbG9iYWwuaXNTZXQoIG8uZGVsZXRlSW1hZ2VIYW5kbGVyICkgKSB7XG5cdFx0XHRcdCR0aGlzLmZpbmQoICcuZmlsZS1icm93c2VyJyApLm9uKCAnZGVsZXRlQ2xpY2snLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRvLmRlbGV0ZUltYWdlSGFuZGxlcigpO1xuXHRcdFx0XHR9ICk7XG5cblx0XHRcdH1cblxuXHRcdFx0dmFyIGJyb3dzZXIgPSAkKCB0aGlzICkuY2hpbGRyZW4oKS5lcSggMSApO1xuXHRcdFx0YnJvd3Nlci5iaW5kKCAnY2xpY2snLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0SW5kZXhWaWV3Q29udHJvbGxlci5vcGVuV2l6YXJkKCAnVXNlclBob3RvV2l6YXJkJywgbnVsbCwgZnVuY3Rpb24oIGZvcm1fZGF0YSApIHtcblxuXHRcdFx0XHRcdGlmICggY2FsbEJhY2sgKSB7XG5cdFx0XHRcdFx0XHRjYWxsQmFjayggZm9ybV9kYXRhICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmVzdWx0X2Zvcm1fZGF0YSA9IGZvcm1fZGF0YTtcblxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9ICk7XG5cblx0XHRcdGltYWdlID0gJCggdGhpcyApLmNoaWxkcmVuKCkuZXEoIDAgKTtcblx0XHRcdGltYWdlLm9uKCAnbG9hZCcsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQkdGhpcy5vbkltYWdlTG9hZCggdGhpcyApO1xuXHRcdFx0fSApO1xuXG5cdFx0XHRpbWFnZS5oaWRlKCk7XG5cblx0XHR9ICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9O1xuXG5cdCQuZm4uVEltYWdlQWR2QnJvd3Nlci5kZWZhdWx0cyA9IHt9O1xuXHQkLmZuLlRJbWFnZUFkdkJyb3dzZXIuaHRtbF90ZW1wbGF0ZSA9IGBcblx0PGRpdiBjbGFzcz1cImZpbGUtYnJvd3NlclwiPlxuXHRcdDxpbWcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdDxidXR0b24gaWQ9XCJ1cGxvYWRfaW1hZ2VcIiBjbGFzcz1cInQtYnV0dG9uIGZpbGUtYnJvd3Nlci1idG5cIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrXCI+PC9idXR0b24+XG5cdDwvZGl2PlxuXHRgO1xuXG59ICkoIGpRdWVyeSApOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8243\n")},8326:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TImageBrowser = function( options ) {\n\t\tGlobal.addCss( 'global/widgets/filebrowser/TImageBrowser.css' );\n\t\tvar opts = $.extend( {}, $.fn.TImageBrowser.defaults, options );\n\n\t\tvar $this = this;\n\t\tvar field;\n\t\tvar id = 'file_browser';\n\t\tvar name = 'filedata';\n\t\tvar browser;\n\n\t\tvar accept_filter = '';\n\n\t\tvar default_width = 177;\n\t\tvar default_height = 42;\n\t\tvar enabled = true;\n\n\t\tthis.setEnabled = function( val ) {\n\t\t\tenabled = val;\n\n\t\t\tvar btn = this.find( '.browser-form input' );\n\n\t\t\tif ( !val ) {\n\t\t\t\tbtn.attr( 'disabled', true );\n\t\t\t\tbtn.removeClass( 'disable-element' ).addClass( 'disable-element' );\n\t\t\t} else {\n\t\t\t\tbtn.removeAttr( 'disabled' );\n\t\t\t\tbtn.removeClass( 'disable-element' );\n\t\t\t}\n\n\t\t};\n\n\t\tthis.clearErrorStyle = function() {\n\n\t\t};\n\n\t\tthis.getFileName = function() {\n\n\t\t\treturn browser.val();\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.setEnableDelete = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\tif ( !val ) {\n\t\t\t\timage.removeAttr( 'enable-delete' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\timage.attr( 'enable-delete', 1 );\n\t\t\t}\n\t\t};\n\n\t\tthis.getValue = function() {\n\t\t\tvar form_data;\n\t\t\tif ( browser && browser.val() ) {\n\n\t\t\t\tif ( typeof FormData == 'undefined' ) {\n\t\t\t\t\tform_data = $this.find( '.browser-form' );\n\t\t\t\t} else {\n\t\t\t\t\tform_data = new FormData( $( $this.find( '.browser-form' ) )[0] );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tform_data = null;\n\t\t\t}\n\n\t\t\treturn form_data;\n\t\t};\n\n\t\tthis.getImageSrc = function() {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\treturn image.attr( 'src' );\n\t\t};\n\n\t\tthis.setImage = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\n\t\t\tif ( !val ) {\n\t\t\t\timage.attr( 'src', '' );\n\t\t\t\timage.hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar d = new Date();\n\t\t\timage.hide();\n\t\t\timage.attr( 'src', val + '&t=' + d.getTime() );\n\t\t\timage.css( 'height', 'auto' );\n\t\t\timage.css( 'width', 'auto' );\n\n\t\t};\n\n\t\tvar onImageLoad = function( image ) {\n\n\t\t\tvar image_height = $( image ).height() > 0 ? $( image ).height() : image.naturalHeight;\n\t\t\tvar image_width = $( image ).width() > 0 ? $( image ).width() : image.naturalWidth;\n\n\t\t\tif ( image_height > default_height ) {\n\t\t\t\t$( image ).css( 'height', default_height );\n\n\t\t\t}\n\n\t\t\tif ( image_width > default_width ) {\n\t\t\t\t$( image ).css( 'width', default_width );\n\t\t\t\t$( image ).css( 'height', 'auto' );\n\t\t\t}\n\n\t\t\t$this.trigger( 'setSize' );\n\n\t\t\tif ( image_height < 5 ) {\n\t\t\t\t$( image ).hide();\n\t\t\t} else {\n\t\t\t\t$( image ).show();\n\t\t\t}\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\n\t\t\tif ( !val ) {\n\t\t\t\tval = '';\n\t\t\t}\n\n\t\t};\n\n\t\tthis.each( function() {\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tfield = o.field;\n\n\t\t\t// var $this = this;\n\n\t\t\tif ( o.default_width > 0 ) {\n\t\t\t\tdefault_width = o.default_width;\n\t\t\t}\n\n\t\t\tif ( o.default_height > 0 ) {\n\t\t\t\tdefault_height = o.default_height;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.name ) ) {\n\t\t\t\tname = o.name;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( accept_filter ) ) {\n\t\t\t\taccept_filter = o.accept_filter;\n\t\t\t}\n\n\t\t\tbrowser = $( this ).find( '.browser' );\n\t\t\tvar image = $( this ).find( '.image' );\n\t\t\timage.hide();\n\t\t\timage.on( 'load', function() {\n\t\t\t\tonImageLoad( this );\n\n\t\t\t} );\n\n\t\t\tif ( accept_filter ) {\n\t\t\t\tbrowser.attr( 'accept', accept_filter );\n\t\t\t} else {\n\t\t\t\taccept_filter = 'image/*';\n\t\t\t\tbrowser.attr( 'accept', 'image/*' );\n\t\t\t}\n\n\t\t\tbrowser.attr( 'id', id );\n\t\t\tbrowser.attr( 'name', name );\n\n\t\t\tif ( Global.isSet( o.changeHandler ) ) {\n\n\t\t\t\t$this.bind( 'imageChange', o.changeHandler );\n\t\t\t}\n\t\t\tif ( Global.isSet( o.deleteImageHandler ) ) {\n\t\t\t\tthis.find( '.file-browser' ).on( 'deleteClick', function() {\n\t\t\t\t\to.deleteImageHandler();\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tbrowser.bind( 'change', function() {\n\t\t\t\timage.hide();\n\n\t\t\t\tif ( typeof FileReader != 'undefined' ) {\n\n\t\t\t\t\tvar files = !!this.files ? this.files : [];\n\n\t\t\t\t\t// If no files were selected, or no FileReader support, return\n\t\t\t\t\tif ( !files.length || !window.FileReader ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( accept_filter === 'image/*' ) {\n\t\t\t\t\t\t// Create a new instance of the FileReader\n\t\t\t\t\t\tvar reader = new FileReader();\n\n\t\t\t\t\t\t// Read the local file as a DataURL\n\t\t\t\t\t\treader.readAsDataURL( files[0] );\n\n\t\t\t\t\t\t// When loaded, set image data as background of div\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = this.result;\n\t\t\t\t\t\t\timage.attr( 'src', url );\n\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t$this.trigger( 'imageChange', [$this] );\n\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TImageBrowser.defaults = {};\n\t$.fn.TImageBrowser.html_template = `\n\t<div class=\"file-browser\">\n\t\t<img class=\"image\">\n\t\t<form enctype=\"multipart/form-data\" class=\"browser-form\">\n\t\t\t<input name=\"filedata\" class=\"browser\" type=\"file\"/>\n\t\t</form>\n\t</div>\n\t`;\n\n} )( jQuery );//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODMyNi5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7O0FBRUE7QUFDQTtBQUNBLHlCQUF5Qjs7QUFFekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsS0FBSzs7QUFFTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSxLQUFLOztBQUVMLElBQUk7O0FBRUo7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLEVBQUUsR0FBRyxNQUFNIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUJyb3dzZXIuanM/MjAyOSJdLCJzb3VyY2VzQ29udGVudCI6WyIoIGZ1bmN0aW9uKCAkICkge1xuXG5cdCQuZm4uVEltYWdlQnJvd3NlciA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXHRcdEdsb2JhbC5hZGRDc3MoICdnbG9iYWwvd2lkZ2V0cy9maWxlYnJvd3Nlci9USW1hZ2VCcm93c2VyLmNzcycgKTtcblx0XHR2YXIgb3B0cyA9ICQuZXh0ZW5kKCB7fSwgJC5mbi5USW1hZ2VCcm93c2VyLmRlZmF1bHRzLCBvcHRpb25zICk7XG5cblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHZhciBmaWVsZDtcblx0XHR2YXIgaWQgPSAnZmlsZV9icm93c2VyJztcblx0XHR2YXIgbmFtZSA9ICdmaWxlZGF0YSc7XG5cdFx0dmFyIGJyb3dzZXI7XG5cblx0XHR2YXIgYWNjZXB0X2ZpbHRlciA9ICcnO1xuXG5cdFx0dmFyIGRlZmF1bHRfd2lkdGggPSAxNzc7XG5cdFx0dmFyIGRlZmF1bHRfaGVpZ2h0ID0gNDI7XG5cdFx0dmFyIGVuYWJsZWQgPSB0cnVlO1xuXG5cdFx0dGhpcy5zZXRFbmFibGVkID0gZnVuY3Rpb24oIHZhbCApIHtcblx0XHRcdGVuYWJsZWQgPSB2YWw7XG5cblx0XHRcdHZhciBidG4gPSB0aGlzLmZpbmQoICcuYnJvd3Nlci1mb3JtIGlucHV0JyApO1xuXG5cdFx0XHRpZiAoICF2YWwgKSB7XG5cdFx0XHRcdGJ0bi5hdHRyKCAnZGlzYWJsZWQnLCB0cnVlICk7XG5cdFx0XHRcdGJ0bi5yZW1vdmVDbGFzcyggJ2Rpc2FibGUtZWxlbWVudCcgKS5hZGRDbGFzcyggJ2Rpc2FibGUtZWxlbWVudCcgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGJ0bi5yZW1vdmVBdHRyKCAnZGlzYWJsZWQnICk7XG5cdFx0XHRcdGJ0bi5yZW1vdmVDbGFzcyggJ2Rpc2FibGUtZWxlbWVudCcgKTtcblx0XHRcdH1cblxuXHRcdH07XG5cblx0XHR0aGlzLmNsZWFyRXJyb3JTdHlsZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmlsZU5hbWUgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0cmV0dXJuIGJyb3dzZXIudmFsKCk7XG5cdFx0fTtcblxuXHRcdHRoaXMuZ2V0RmllbGQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBmaWVsZDtcblx0XHR9O1xuXG5cdFx0dGhpcy5zZXRFbmFibGVEZWxldGUgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0dmFyIGltYWdlID0gJHRoaXMuZmluZCggJy5pbWFnZScgKTtcblx0XHRcdGlmICggIXZhbCApIHtcblx0XHRcdFx0aW1hZ2UucmVtb3ZlQXR0ciggJ2VuYWJsZS1kZWxldGUnICk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGltYWdlLmF0dHIoICdlbmFibGUtZGVsZXRlJywgMSApO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmdldFZhbHVlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZm9ybV9kYXRhO1xuXHRcdFx0aWYgKCBicm93c2VyICYmIGJyb3dzZXIudmFsKCkgKSB7XG5cblx0XHRcdFx0aWYgKCB0eXBlb2YgRm9ybURhdGEgPT0gJ3VuZGVmaW5lZCcgKSB7XG5cdFx0XHRcdFx0Zm9ybV9kYXRhID0gJHRoaXMuZmluZCggJy5icm93c2VyLWZvcm0nICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Zm9ybV9kYXRhID0gbmV3IEZvcm1EYXRhKCAkKCAkdGhpcy5maW5kKCAnLmJyb3dzZXItZm9ybScgKSApWzBdICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRmb3JtX2RhdGEgPSBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZm9ybV9kYXRhO1xuXHRcdH07XG5cblx0XHR0aGlzLmdldEltYWdlU3JjID0gZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgaW1hZ2UgPSAkdGhpcy5maW5kKCAnLmltYWdlJyApO1xuXHRcdFx0cmV0dXJuIGltYWdlLmF0dHIoICdzcmMnICk7XG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0SW1hZ2UgPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0dmFyIGltYWdlID0gJHRoaXMuZmluZCggJy5pbWFnZScgKTtcblxuXHRcdFx0aWYgKCAhdmFsICkge1xuXHRcdFx0XHRpbWFnZS5hdHRyKCAnc3JjJywgJycgKTtcblx0XHRcdFx0aW1hZ2UuaGlkZSgpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHZhciBkID0gbmV3IERhdGUoKTtcblx0XHRcdGltYWdlLmhpZGUoKTtcblx0XHRcdGltYWdlLmF0dHIoICdzcmMnLCB2YWwgKyAnJnQ9JyArIGQuZ2V0VGltZSgpICk7XG5cdFx0XHRpbWFnZS5jc3MoICdoZWlnaHQnLCAnYXV0bycgKTtcblx0XHRcdGltYWdlLmNzcyggJ3dpZHRoJywgJ2F1dG8nICk7XG5cblx0XHR9O1xuXG5cdFx0dmFyIG9uSW1hZ2VMb2FkID0gZnVuY3Rpb24oIGltYWdlICkge1xuXG5cdFx0XHR2YXIgaW1hZ2VfaGVpZ2h0ID0gJCggaW1hZ2UgKS5oZWlnaHQoKSA+IDAgPyAkKCBpbWFnZSApLmhlaWdodCgpIDogaW1hZ2UubmF0dXJhbEhlaWdodDtcblx0XHRcdHZhciBpbWFnZV93aWR0aCA9ICQoIGltYWdlICkud2lkdGgoKSA+IDAgPyAkKCBpbWFnZSApLndpZHRoKCkgOiBpbWFnZS5uYXR1cmFsV2lkdGg7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0ID4gZGVmYXVsdF9oZWlnaHQgKSB7XG5cdFx0XHRcdCQoIGltYWdlICkuY3NzKCAnaGVpZ2h0JywgZGVmYXVsdF9oZWlnaHQgKTtcblxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGltYWdlX3dpZHRoID4gZGVmYXVsdF93aWR0aCApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICd3aWR0aCcsIGRlZmF1bHRfd2lkdGggKTtcblx0XHRcdFx0JCggaW1hZ2UgKS5jc3MoICdoZWlnaHQnLCAnYXV0bycgKTtcblx0XHRcdH1cblxuXHRcdFx0JHRoaXMudHJpZ2dlciggJ3NldFNpemUnICk7XG5cblx0XHRcdGlmICggaW1hZ2VfaGVpZ2h0IDwgNSApIHtcblx0XHRcdFx0JCggaW1hZ2UgKS5oaWRlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQkKCBpbWFnZSApLnNob3coKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5zZXRWYWx1ZSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cblx0XHRcdGlmICggIXZhbCApIHtcblx0XHRcdFx0dmFsID0gJyc7XG5cdFx0XHR9XG5cblx0XHR9O1xuXG5cdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvID0gJC5tZXRhID8gJC5leHRlbmQoIHt9LCBvcHRzLCAkKCB0aGlzICkuZGF0YSgpICkgOiBvcHRzO1xuXG5cdFx0XHRmaWVsZCA9IG8uZmllbGQ7XG5cblx0XHRcdC8vIHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHRcdGlmICggby5kZWZhdWx0X3dpZHRoID4gMCApIHtcblx0XHRcdFx0ZGVmYXVsdF93aWR0aCA9IG8uZGVmYXVsdF93aWR0aDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBvLmRlZmF1bHRfaGVpZ2h0ID4gMCApIHtcblx0XHRcdFx0ZGVmYXVsdF9oZWlnaHQgPSBvLmRlZmF1bHRfaGVpZ2h0O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggby5uYW1lICkgKSB7XG5cdFx0XHRcdG5hbWUgPSBvLm5hbWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCBhY2NlcHRfZmlsdGVyICkgKSB7XG5cdFx0XHRcdGFjY2VwdF9maWx0ZXIgPSBvLmFjY2VwdF9maWx0ZXI7XG5cdFx0XHR9XG5cblx0XHRcdGJyb3dzZXIgPSAkKCB0aGlzICkuZmluZCggJy5icm93c2VyJyApO1xuXHRcdFx0dmFyIGltYWdlID0gJCggdGhpcyApLmZpbmQoICcuaW1hZ2UnICk7XG5cdFx0XHRpbWFnZS5oaWRlKCk7XG5cdFx0XHRpbWFnZS5vbiggJ2xvYWQnLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0b25JbWFnZUxvYWQoIHRoaXMgKTtcblxuXHRcdFx0fSApO1xuXG5cdFx0XHRpZiAoIGFjY2VwdF9maWx0ZXIgKSB7XG5cdFx0XHRcdGJyb3dzZXIuYXR0ciggJ2FjY2VwdCcsIGFjY2VwdF9maWx0ZXIgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFjY2VwdF9maWx0ZXIgPSAnaW1hZ2UvKic7XG5cdFx0XHRcdGJyb3dzZXIuYXR0ciggJ2FjY2VwdCcsICdpbWFnZS8qJyApO1xuXHRcdFx0fVxuXG5cdFx0XHRicm93c2VyLmF0dHIoICdpZCcsIGlkICk7XG5cdFx0XHRicm93c2VyLmF0dHIoICduYW1lJywgbmFtZSApO1xuXG5cdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggby5jaGFuZ2VIYW5kbGVyICkgKSB7XG5cblx0XHRcdFx0JHRoaXMuYmluZCggJ2ltYWdlQ2hhbmdlJywgby5jaGFuZ2VIYW5kbGVyICk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggby5kZWxldGVJbWFnZUhhbmRsZXIgKSApIHtcblx0XHRcdFx0dGhpcy5maW5kKCAnLmZpbGUtYnJvd3NlcicgKS5vbiggJ2RlbGV0ZUNsaWNrJywgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0by5kZWxldGVJbWFnZUhhbmRsZXIoKTtcblx0XHRcdFx0fSApO1xuXG5cdFx0XHR9XG5cblx0XHRcdGJyb3dzZXIuYmluZCggJ2NoYW5nZScsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpbWFnZS5oaWRlKCk7XG5cblx0XHRcdFx0aWYgKCB0eXBlb2YgRmlsZVJlYWRlciAhPSAndW5kZWZpbmVkJyApIHtcblxuXHRcdFx0XHRcdHZhciBmaWxlcyA9ICEhdGhpcy5maWxlcyA/IHRoaXMuZmlsZXMgOiBbXTtcblxuXHRcdFx0XHRcdC8vIElmIG5vIGZpbGVzIHdlcmUgc2VsZWN0ZWQsIG9yIG5vIEZpbGVSZWFkZXIgc3VwcG9ydCwgcmV0dXJuXG5cdFx0XHRcdFx0aWYgKCAhZmlsZXMubGVuZ3RoIHx8ICF3aW5kb3cuRmlsZVJlYWRlciApIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoIGFjY2VwdF9maWx0ZXIgPT09ICdpbWFnZS8qJyApIHtcblx0XHRcdFx0XHRcdC8vIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRmlsZVJlYWRlclxuXHRcdFx0XHRcdFx0dmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cblx0XHRcdFx0XHRcdC8vIFJlYWQgdGhlIGxvY2FsIGZpbGUgYXMgYSBEYXRhVVJMXG5cdFx0XHRcdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTCggZmlsZXNbMF0gKTtcblxuXHRcdFx0XHRcdFx0Ly8gV2hlbiBsb2FkZWQsIHNldCBpbWFnZSBkYXRhIGFzIGJhY2tncm91bmQgb2YgZGl2XG5cdFx0XHRcdFx0XHRyZWFkZXIub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHZhciB1cmwgPSB0aGlzLnJlc3VsdDtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYXR0ciggJ3NyYycsIHVybCApO1xuXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHRoaXMudHJpZ2dlciggJ2ltYWdlQ2hhbmdlJywgWyR0aGlzXSApO1xuXG5cdFx0XHR9ICk7XG5cblx0XHR9ICk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9O1xuXG5cdCQuZm4uVEltYWdlQnJvd3Nlci5kZWZhdWx0cyA9IHt9O1xuXHQkLmZuLlRJbWFnZUJyb3dzZXIuaHRtbF90ZW1wbGF0ZSA9IGBcblx0PGRpdiBjbGFzcz1cImZpbGUtYnJvd3NlclwiPlxuXHRcdDxpbWcgY2xhc3M9XCJpbWFnZVwiPlxuXHRcdDxmb3JtIGVuY3R5cGU9XCJtdWx0aXBhcnQvZm9ybS1kYXRhXCIgY2xhc3M9XCJicm93c2VyLWZvcm1cIj5cblx0XHRcdDxpbnB1dCBuYW1lPVwiZmlsZWRhdGFcIiBjbGFzcz1cImJyb3dzZXJcIiB0eXBlPVwiZmlsZVwiLz5cblx0XHQ8L2Zvcm0+XG5cdDwvZGl2PlxuXHRgO1xuXG59ICkoIGpRdWVyeSApOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8326\n")},78:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AboutViewController\": () => (/* binding */ AboutViewController)\n/* harmony export */ });\n/* harmony import */ var _global_widgets_filebrowser_TImageBrowser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8326);\n/* harmony import */ var _global_widgets_filebrowser_TImageBrowser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_global_widgets_filebrowser_TImageBrowser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8243);\n/* harmony import */ var _global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_global_widgets_filebrowser_TImageAdvBrowser__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _global_TTUUID__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4936);\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\n\n\n\n\nclass AboutViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tdate_api: null,\n\t\t\temployeeActive: []\n\t\t} );\n\n\t\tsuper( options );\n\t}\n\n\tinit( options ) {\n\n\t\t//this._super('initialize', options );\n\t\tthis.viewId = 'About';\n\t\tthis.script_name = 'AboutView';\n\t\tthis.context_menu_name = $.i18n._( 'About' );\n\t\tthis.api = TTAPI.APIAbout;\n\t\tthis.date_api = TTAPI.APITTDate;\n\n\t\tthis.render();\n\n\t\tthis.initData();\n\t}\n\n\tgetCustomContextMenuModel() {\n\t\tvar context_menu_model = {\n\t\t\texclude: ['default'],\n\t\t\tinclude: [\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Check For Updates' ),\n\t\t\t\t\tid: 'check_updates',\n\t\t\t\t\tvue_icon: 'tticon tticon-refresh_black_24dp',\n\t\t\t\t\tgroup: 'editor',\n\t\t\t\t\t},\n\t\t\t\t'cancel',\n\t\t\t\t{\n\t\t\t\t\tlabel: '', //Empty label. vue_icon is displayed instead of text.\n\t\t\t\t\tid: 'diagnostic_header',\n\t\t\t\t\taction_group: 'diagnostic',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group_header: true,\n\t\t\t\t\tvue_icon: 'tticon tticon-more_vert_black_24dp'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Diagnostics: Enable' ),\n\t\t\t\t\tid: 'diagnostics_enable',\n\t\t\t\t\taction_group: 'diagnostic',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\tpermission_result: this.diagnosticPermissionValidate()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Diagnostics: Disable' ),\n\t\t\t\t\tid: 'diagnostics_disable',\n\t\t\t\t\taction_group: 'diagnostic',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\tpermission_result: this.diagnosticPermissionValidate()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Diagnostics: Upload' ),\n\t\t\t\t\tid: 'diagnostics_upload',\n\t\t\t\t\taction_group: 'diagnostic',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\tpermission_result: this.diagnosticPermissionValidate()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Diagnostics: Test Connection' ),\n\t\t\t\t\tid: 'diagnostics_test_connection',\n\t\t\t\t\taction_group: 'diagnostic',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\tpermission_result: this.diagnosticPermissionValidate()\n\t\t\t\t}\n\n\t\t\t]\n\t\t};\n\n\t\treturn context_menu_model;\n\t}\n\n\tonCustomContextClick( id ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'check_updates':\n\t\t\t\tthis.onCheckClick();\n\t\t\t\tbreak;\n\t\t\tcase 'diagnostics_enable':\n\t\t\t\tthis.onToggleDiagnosticClick( true );\n\t\t\t\tbreak;\n\t\t\tcase 'diagnostics_disable':\n\t\t\t\tthis.onToggleDiagnosticClick( false );\n\t\t\t\tbreak;\n\t\t\tcase 'diagnostics_upload':\n\t\t\t\tthis.onUploadDiagnosticClick();\n\t\t\t\tbreak;\n\t\t\tcase 'diagnostics_test_connection':\n\t\t\t\tthis.onTestConnectionDiagnosticClick();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonCheckClick() {\n\t\tvar $this = this;\n\t\tthis.api['isNewVersionAvailable']( {\n\t\t\tonResult: function( result ) {\n\t\t\t\t$this.current_edit_record = result.getResult();\n\n\t\t\t\t$this.initEditView();\n\t\t\t}\n\t\t} );\n\t}\n\n\tonToggleDiagnosticClick( toggle ) {\n\t\tvar $this = this;\n\t\tthis.api.setSystemDiagnostic( toggle, {\n\t\t\tonResult: function( result ) {\n\t\t\t\tvar message = '';\n\t\t\t\tif ( toggle ) {\n\t\t\t\t\tmessage = $.i18n._( 'Diagnostic mode is now enabled.' );\n\t\t\t\t} else {\n\t\t\t\t\tmessage = $.i18n._( 'Diagnostic mode is now disabled.' );\n\t\t\t\t}\n\t\t\t\tTAlertManager.showAlert( message, $.i18n._( 'Diagnostics Mode' ) );\n\t\t\t}\n\t\t} );\n\t}\n\n\tonUploadDiagnosticClick() {\n\t\tthis.api.uploadSystemDiagnostic( {\n\t\t\tonResult: function( result ) {\n\t\t\t}\n\t\t} );\n\t}\n\n\tonTestConnectionDiagnosticClick() {\n\t\tthis.api.testConnectionDiagnostic( {\n\t\t\tonResult: function( result ) {\n\t\t\t\tvar message = '';\n\t\t\t\tif ( result.getResult() === true ) {\n\t\t\t\t\tmessage = $.i18n._( 'Connection test successful!' );\n\t\t\t\t} else {\n\t\t\t\t\tmessage = result.getResult();\n\t\t\t\t}\n\n\t\t\t\tTAlertManager.showAlert( message, $.i18n._( 'Diagnostics Connection Test' ) );\n\t\t\t}\n\t\t} );\n\t}\n\n\tgetAboutData( callBack ) {\n\t\tvar $this = this;\n\t\t$this.api['getAboutData']( {\n\t\t\tonResult: function( result ) {\n\t\t\t\tvar result_data = result.getResult();\n\t\t\t\tif ( Global.isSet( result_data ) ) {\n\t\t\t\t\tcallBack( result_data );\n\t\t\t\t}\n\n\t\t\t}\n\t\t} );\n\t}\n\n\tdiagnosticPermissionValidate() {\n\t\tif ( PermissionManager.validate( 'user', 'edit' ) && APIGlobal.pre_login_data.primary_company_id === LocalCacheData.getLoginUser().company_id ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\topenEditView() {\n\t\tvar $this = this;\n\n\t\tif ( $this.edit_only_mode ) {\n\n\t\t\tthis.buildContextMenu();\n\t\t\tif ( !$this.edit_view ) {\n\t\t\t\t$this.initEditViewUI( 'About', 'AboutEditView.html' );\n\t\t\t}\n\n\t\t\t$this.getAboutData( function( result ) {\n\t\t\t\t// Waiting for the TTAPI.API returns data to set the current edit record.\n\t\t\t\t$this.current_edit_record = result;\n\n\t\t\t\t$this.initEditView();\n\n\t\t\t} );\n\n\t\t}\n\t}\n\n\tsetUIWidgetFieldsToCurrentEditRecord() {\n\t}\n\n\tsetCurrentEditRecordData() {\n\t\t//Set current edit record data to all widgets\n\t\tif ( !Global.isSet( this.current_edit_record['license_data'] ) ) {\n\t\t\tthis.current_edit_record['license_data'] = {};\n\t\t}\n\n\t\tfor ( var i in this.edit_view_form_item_dic ) {\n\t\t\tthis.detachElement( i );\n\t\t}\n\n\t\tfor ( var key in this.current_edit_record ) {\n\t\t\tif ( !this.current_edit_record.hasOwnProperty( key ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar widget = this.edit_view_ui_dic[key];\n\n\t\t\tswitch ( key ) {\n\t\t\t\tcase 'new_version':\n\t\t\t\t\tif ( this.current_edit_record[key] === true ) {\n\n\t\t\t\t\t\tthis.attachElement( 'notice' );\n\n\t\t\t\t\t\tvar html = '<br><b>' + $.i18n._( 'NOTICE' ) + ':' + '</b> ' + $.i18n._( 'There is a new version of' ) + ' ';\n\t\t\t\t\t\thtml += '<b>' + $.i18n._( this.current_edit_record['application_name'] ) + '</b> ' + $.i18n._( 'available' ) + '.';\n\t\t\t\t\t\thtml += '<br>' + $.i18n._( 'This version may contain tax table updates necessary for accurate payroll calculation, we recommend that you upgrade as soon as possible.' ) + '<br>';\n\t\t\t\t\t\thtml += '' + $.i18n._( 'The latest version can be downloaded from' ) + ':' + ' <a href=\\'https://' + this.current_edit_record['organization_url'] + '/?upgrade=1\\' target=\\'_blank\\'>';\n\t\t\t\t\t\thtml += '<b>' + this.current_edit_record['organization_url'] + '</b></a><br><br>';\n\n\t\t\t\t\t\t$( this.edit_view_form_item_dic['notice'].find( '.tblDataWarning' ) ).html( html );\n\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'registration_key':\n\t\t\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\t\t\tif ( this.current_edit_record[key] === '' || Global.isFalseOrNull( this.current_edit_record[key] ) ) {\n\t\t\t\t\t\t\twidget.setValue( $.i18n._( 'N/A' ) );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'hardware_id':\n\t\t\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\t\t\tif ( this.current_edit_record[key] === '' || Global.isFalseOrNull( this.current_edit_record[key] ) ) {\n\t\t\t\t\t\t\twidget.setValue( $.i18n._( 'N/A' ) );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'cron': //popular case\n\t\t\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\t\t\tif ( this.current_edit_record[key]['last_run_date'] !== '' ) {\n\t\t\t\t\t\t\twidget.setValue( this.current_edit_record[key]['last_run_date'] );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidget.setValue( $.i18n._( 'Never' ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'license_data':\n\t\t\t\t\tif ( Global.isSet( this.current_edit_record[key] ) ) {\n\n\t\t\t\t\t\tthis.attachElement( 'license_info' );\n\t\t\t\t\t\tthis.attachElement( 'license_browser' );\n\n\t\t\t\t\t\tvar separated_box = $( this.edit_view_form_item_dic['license_info'].find( '.separated-box' ) );\n\n\t\t\t\t\t\tif ( this.current_edit_record[key]['message'] ) {\n\t\t\t\t\t\t\tseparated_box.css( {\n\t\t\t\t\t\t\t\t'font-weight': 'bold',\n\t\t\t\t\t\t\t\t'background-color': 'red',\n\t\t\t\t\t\t\t\t'height': 'auto',\n\t\t\t\t\t\t\t\t'color': '#000000'\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tseparated_box.html( $.i18n._( 'License Information' ) + '<br>' + $.i18n._( 'WARNING' ) + ': ' + this.current_edit_record[key]['message'] );\n\t\t\t\t\t\t\t$( separated_box.find( 'span' ) ).removeClass( 'label' ).css( {\n\t\t\t\t\t\t\t\t'font-size': 'normal',\n\t\t\t\t\t\t\t\t'font-weight': 'bold'\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tseparated_box.html( '<span class=\"label\">' + $.i18n._( 'License Information' ) + '</span>' );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( this.current_edit_record[key]['organization_name'] ) {\n\t\t\t\t\t\t\tfor ( var k in this.current_edit_record[key] ) {\n\t\t\t\t\t\t\t\tswitch ( k ) {\n\t\t\t\t\t\t\t\t\tcase 'major_version':\n\t\t\t\t\t\t\t\t\tcase 'minor_version':\n\t\t\t\t\t\t\t\t\t\tthis.attachElement( '_version' );\n\t\t\t\t\t\t\t\t\t\tthis.edit_view_ui_dic['_version'].setValue( this.current_edit_record[key]['major_version'] + '.' + this.current_edit_record[key]['minor_version'] + '.X' );\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tif ( Global.isSet( this.edit_view_ui_dic[k] ) && Global.isSet( this.edit_view_form_item_dic[k] ) ) {\n\t\t\t\t\t\t\t\t\t\t\tthis.attachElement( k );\n\t\t\t\t\t\t\t\t\t\t\tthis.edit_view_ui_dic[k].setValue( this.current_edit_record[key][k] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'user_counts':\n\t\t\t\t\tif ( this.current_edit_record[key].length > 0 ) {\n\t\t\t\t\t\tthis.attachElement( 'user_active_inactive' );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'schema_version_group_A':\n\t\t\t\tcase 'schema_version_group_B':\n\t\t\t\tcase 'schema_version_group_C':\n\t\t\t\tcase 'schema_version_group_D':\n\t\t\t\t\tif ( Global.isSet( widget ) && this.current_edit_record[key] ) {\n\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif ( Global.isSet( widget ) ) {\n\t\t\t\t\t\twidget.setValue( this.current_edit_record[key] );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( widget ) && this.current_edit_record[key] == false ) {\n\t\t\t\twidget.parents( '.edit-view-form-item-div' ).detach();\n\t\t\t}\n\n\t\t}\n\n\t\tthis.collectUIDataToCurrentEditRecord();\n\t\tthis.setEditViewDataDone();\n\t}\n\n\tsetEditViewDataDone() {\n\t\tsuper.setEditViewDataDone();\n\t\tthis.setActiveEmployees();\n\t}\n\n\tsetActiveEmployees() {\n\n\t\tif ( this.employeeActive.length > 0 ) {\n\t\t\tfor ( var i in this.employeeActive ) {\n\t\t\t\tvar field = this.employeeActive[i].getField();\n\t\t\t\tif ( Global.isSet( this.edit_view_form_item_dic[field] ) ) {\n\t\t\t\t\tthis.edit_view_form_item_dic[field].remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.employeeActive = [];\n\n\t\t}\n\n\t\tif ( Global.isSet( this.current_edit_record['user_counts'] ) && this.current_edit_record['user_counts'].length > 0 ) {\n\t\t\tvar tab_about = this.edit_view_tab.find( '#tab_about' );\n\t\t\tvar tab_about_column1 = tab_about.find( '.first-column' );\n\n\t\t\tfor ( var key in this.current_edit_record['user_counts'] ) {\n\n\t\t\t\tvar item = this.current_edit_record['user_counts'][key];\n\n\t\t\t\tvar form_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\t\t\tform_item_input.TText( { field: 'active_' + key } );\n\t\t\t\tform_item_input.setValue( item['max_active_users'] + ' / ' + item['max_inactive_users'] );\n\n\t\t\t\tthis.addEditFieldToColumn( $.i18n._( item['label'] ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t\t\tthis.employeeActive.push( form_item_input );\n\n\t\t\t\tthis.edit_view_ui_dic['active_' + key].css( 'opacity', 1 );\n\t\t\t}\n\n\t\t\tthis.editFieldResize( 0 );\n\t\t}\n\t}\n\n\tbuildEditViewUI() {\n\t\tvar $this = this;\n\t\tsuper.buildEditViewUI();\n\n\t\tvar tab_model = {\n\t\t\t'tab_about': {\n\t\t\t\t'label': $.i18n._( 'About' )\n\t\t\t},\n\t\t};\n\t\tthis.setTabModel( tab_model );\n\n\t\t//Tab 0 start\n\n\t\tvar tab_about = this.edit_view_tab.find( '#tab_about' );\n\n\t\tvar tab_about_column1 = tab_about.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_about_column1 );\n\n\t\tvar form_item_input = $( '<div class=\\'tblDataWarning\\'></div>' );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_about_column1, '', null, true, false, 'notice' );\n\n\t\t// separate box\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.SEPARATED_BOX );\n\t\tform_item_input.SeparatedBox( { label: $.i18n._( 'System Information' ) } );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_about_column1 );\n\n\t\t// Product Edition\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'product_edition' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Product Edition' ), form_item_input, tab_about_column1 );\n\n\t\t// Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'system_version' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Version' ), form_item_input, tab_about_column1 );\n\n\t\t// Operating System\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( {\n\t\t\tfield: 'operating_system'\n\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Operating System' ), form_item_input, tab_about_column1 );\n\n\t\t// PHP Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( {\n\t\t\tfield: 'php_version'\n\t\t} );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'PHP Version' ), form_item_input, tab_about_column1 );\n\n\t\t// Tax Engine Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'tax_engine_version' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Tax Engine Version' ), form_item_input, tab_about_column1 );\n\n\t\t// Tax Data Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'tax_data_version' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Tax Data Version' ), form_item_input, tab_about_column1 );\n\n\t\t// Registration Key\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'registration_key' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Registration Key' ), form_item_input, tab_about_column1 );\n\n\t\t// Hardware ID\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'hardware_id' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Hardware ID' ), form_item_input, tab_about_column1 );\n\n\t\t// Maintenance Jobs Last Ran\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'cron' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Maintenance Jobs Last Ran' ), form_item_input, tab_about_column1 );\n\n\t\t// separate box\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.SEPARATED_BOX );\n\t\tform_item_input.SeparatedBox( { label: $.i18n._( 'License Information' ) } );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_about_column1, '', null, true, false, 'license_info' );\n\n\t\tif ( LocalCacheData.productEditionId > 10 && APIGlobal.pre_login_data.primary_company_id == LocalCacheData.getCurrentCompany().id ) {\n\t\t\t// Upload License\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.IMAGE_BROWSER );\n\t\t\tthis.file_browser = form_item_input.TImageBrowser( {\n\t\t\t\tfield: 'license_browser',\n\t\t\t\tid: 'license_browser',\n\t\t\t\tname: 'filedata',\n\t\t\t\taccept_filter: '*',\n\t\t\t\tchangeHandler: function( a ) {\n\t\t\t\t\t$this.uploadLicense( this );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Upload License' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Product\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'product_name' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Product' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Company\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'organization_name' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Company' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: '_version' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Version' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Active Employee Licenses\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'active_employee_licenses' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Active Employee Licenses' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Issue Date\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'issue_date' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Issue Date' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Expire Date\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'expire_date_display' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Expire Date' ), form_item_input, tab_about_column1, '', null, true );\n\n\t\t// Schema Version\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.SEPARATED_BOX );\n\t\tform_item_input.SeparatedBox( { label: $.i18n._( 'Schema Version' ) } );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_about_column1 );\n\n\t\t// Group A\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'schema_version_group_A' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Group A' ), form_item_input, tab_about_column1 );\n\n\t\t// Group B\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'schema_version_group_B' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Group B' ), form_item_input, tab_about_column1 );\n\n\t\t// Group C\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'schema_version_group_C' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Group C' ), form_item_input, tab_about_column1 );\n\n\t\t// Group D\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT );\n\t\tform_item_input.TText( { field: 'schema_version_group_D' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Group D' ), form_item_input, tab_about_column1 );\n\n\t\t// Separated Box\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.SEPARATED_BOX );\n\t\tform_item_input.SeparatedBox( { label: $.i18n._( 'Employees (Active / InActive)' ) } );\n\t\tthis.addEditFieldToColumn( null, form_item_input, tab_about_column1, '', null, true, false, 'user_active_inactive' );\n\t}\n\n\tuploadLicense( obj ) {\n\t\tvar $this = this;\n\t\tvar file = this.edit_view_ui_dic['license_browser'].getValue();\n\t\t$this.api.uploadFile( file, 'object_type=license&object_id=', {\n\t\t\tonResult: function( res ) {\n\t\t\t\t//file upload returns a \"TRUE\" string on success\n\t\t\t\tif ( res == 'TRUE' ) {\n\t\t\t\t\t//$this.openEditView();\n\n\t\t\t\t\tProgressBar.showProgressBar();\n\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t}, 3000 );\n\t\t\t\t} else {\n\t\t\t\t\t//TAlertManager.showAlert( $.i18n._( 'Invalid license file' ) )\n\t\t\t\t\tTAlertManager.showAlert( res );\n\t\t\t\t\t$( '#file_browser' ).val( '' ); //Clear the file name from beside the \"Choose File\" button.\n\t\t\t\t}\n\n\t\t\t}\n\t\t} );\n\t}\n\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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IjpbIndlYnBhY2s6Ly8vLi9pbnRlcmZhY2UvaHRtbDUvdmlld3MvaGVscC9BYm91dFZpZXdDb250cm9sbGVyLmpzP2I0NGUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAL2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUJyb3dzZXInO1xuaW1wb3J0ICdAL2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUFkdkJyb3dzZXInO1xuaW1wb3J0IHsgVFRVVUlEIH0gZnJvbSAnQC9nbG9iYWwvVFRVVUlEJztcblxuZXhwb3J0IGNsYXNzIEFib3V0Vmlld0NvbnRyb2xsZXIgZXh0ZW5kcyBCYXNlVmlld0NvbnRyb2xsZXIge1xuXHRjb25zdHJ1Y3Rvciggb3B0aW9ucyA9IHt9ICkge1xuXHRcdF8uZGVmYXVsdHMoIG9wdGlvbnMsIHtcblx0XHRcdGRhdGVfYXBpOiBudWxsLFxuXHRcdFx0ZW1wbG95ZWVBY3RpdmU6IFtdXG5cdFx0fSApO1xuXG5cdFx0c3VwZXIoIG9wdGlvbnMgKTtcblx0fVxuXG5cdGluaXQoIG9wdGlvbnMgKSB7XG5cblx0XHQvL3RoaXMuX3N1cGVyKCdpbml0aWFsaXplJywgb3B0aW9ucyApO1xuXHRcdHRoaXMudmlld0lkID0gJ0Fib3V0Jztcblx0XHR0aGlzLnNjcmlwdF9uYW1lID0gJ0Fib3V0Vmlldyc7XG5cdFx0dGhpcy5jb250ZXh0X21lbnVfbmFtZSA9ICQuaTE4bi5fKCAnQWJvdXQnICk7XG5cdFx0dGhpcy5hcGkgPSBUVEFQSS5BUElBYm91dDtcblx0XHR0aGlzLmRhdGVfYXBpID0gVFRBUEkuQVBJVFREYXRlO1xuXG5cdFx0dGhpcy5yZW5kZXIoKTtcblxuXHRcdHRoaXMuaW5pdERhdGEoKTtcblx0fVxuXG5cdGdldEN1c3RvbUNvbnRleHRNZW51TW9kZWwoKSB7XG5cdFx0dmFyIGNvbnRleHRfbWVudV9tb2RlbCA9IHtcblx0XHRcdGV4Y2x1ZGU6IFsnZGVmYXVsdCddLFxuXHRcdFx0aW5jbHVkZTogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnQ2hlY2sgRm9yIFVwZGF0ZXMnICksXG5cdFx0XHRcdFx0aWQ6ICdjaGVja191cGRhdGVzJyxcblx0XHRcdFx0XHR2dWVfaWNvbjogJ3R0aWNvbiB0dGljb24tcmVmcmVzaF9ibGFja18yNGRwJyxcblx0XHRcdFx0XHRncm91cDogJ2VkaXRvcicsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0J2NhbmNlbCcsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJycsIC8vRW1wdHkgbGFiZWwuIHZ1ZV9pY29uIGlzIGRpc3BsYXllZCBpbnN0ZWFkIG9mIHRleHQuXG5cdFx0XHRcdFx0aWQ6ICdkaWFnbm9zdGljX2hlYWRlcicsXG5cdFx0XHRcdFx0YWN0aW9uX2dyb3VwOiAnZGlhZ25vc3RpYycsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXBfaGVhZGVyOiB0cnVlLFxuXHRcdFx0XHRcdHZ1ZV9pY29uOiAndHRpY29uIHR0aWNvbi1tb3JlX3ZlcnRfYmxhY2tfMjRkcCdcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0RpYWdub3N0aWNzOiBFbmFibGUnICksXG5cdFx0XHRcdFx0aWQ6ICdkaWFnbm9zdGljc19lbmFibGUnLFxuXHRcdFx0XHRcdGFjdGlvbl9ncm91cDogJ2RpYWdub3N0aWMnLFxuXHRcdFx0XHRcdG1lbnVfYWxpZ246ICdyaWdodCcsXG5cdFx0XHRcdFx0cGVybWlzc2lvbl9yZXN1bHQ6IHRoaXMuZGlhZ25vc3RpY1Blcm1pc3Npb25WYWxpZGF0ZSgpXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdEaWFnbm9zdGljczogRGlzYWJsZScgKSxcblx0XHRcdFx0XHRpZDogJ2RpYWdub3N0aWNzX2Rpc2FibGUnLFxuXHRcdFx0XHRcdGFjdGlvbl9ncm91cDogJ2RpYWdub3N0aWMnLFxuXHRcdFx0XHRcdG1lbnVfYWxpZ246ICdyaWdodCcsXG5cdFx0XHRcdFx0cGVybWlzc2lvbl9yZXN1bHQ6IHRoaXMuZGlhZ25vc3RpY1Blcm1pc3Npb25WYWxpZGF0ZSgpXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdEaWFnbm9zdGljczogVXBsb2FkJyApLFxuXHRcdFx0XHRcdGlkOiAnZGlhZ25vc3RpY3NfdXBsb2FkJyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdkaWFnbm9zdGljJyxcblx0XHRcdFx0XHRtZW51X2FsaWduOiAncmlnaHQnLFxuXHRcdFx0XHRcdHBlcm1pc3Npb25fcmVzdWx0OiB0aGlzLmRpYWdub3N0aWNQZXJtaXNzaW9uVmFsaWRhdGUoKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnRGlhZ25vc3RpY3M6IFRlc3QgQ29ubmVjdGlvbicgKSxcblx0XHRcdFx0XHRpZDogJ2RpYWdub3N0aWNzX3Rlc3RfY29ubmVjdGlvbicsXG5cdFx0XHRcdFx0YWN0aW9uX2dyb3VwOiAnZGlhZ25vc3RpYycsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRwZXJtaXNzaW9uX3Jlc3VsdDogdGhpcy5kaWFnbm9zdGljUGVybWlzc2lvblZhbGlkYXRlKClcblx0XHRcdFx0fVxuXG5cdFx0XHRdXG5cdFx0fTtcblxuXHRcdHJldHVybiBjb250ZXh0X21lbnVfbW9kZWw7XG5cdH1cblxuXHRvbkN1c3RvbUNvbnRleHRDbGljayggaWQgKSB7XG5cdFx0c3dpdGNoICggaWQgKSB7XG5cdFx0XHRjYXNlICdjaGVja191cGRhdGVzJzpcblx0XHRcdFx0dGhpcy5vbkNoZWNrQ2xpY2soKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdkaWFnbm9zdGljc19lbmFibGUnOlxuXHRcdFx0XHR0aGlzLm9uVG9nZ2xlRGlhZ25vc3RpY0NsaWNrKCB0cnVlICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnZGlhZ25vc3RpY3NfZGlzYWJsZSc6XG5cdFx0XHRcdHRoaXMub25Ub2dnbGVEaWFnbm9zdGljQ2xpY2soIGZhbHNlICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnZGlhZ25vc3RpY3NfdXBsb2FkJzpcblx0XHRcdFx0dGhpcy5vblVwbG9hZERpYWdub3N0aWNDbGljaygpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2RpYWdub3N0aWNzX3Rlc3RfY29ubmVjdGlvbic6XG5cdFx0XHRcdHRoaXMub25UZXN0Q29ubmVjdGlvbkRpYWdub3N0aWNDbGljaygpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRvbkNoZWNrQ2xpY2soKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR0aGlzLmFwaVsnaXNOZXdWZXJzaW9uQXZhaWxhYmxlJ10oIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHQkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkID0gcmVzdWx0LmdldFJlc3VsdCgpO1xuXG5cdFx0XHRcdCR0aGlzLmluaXRFZGl0VmlldygpO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdG9uVG9nZ2xlRGlhZ25vc3RpY0NsaWNrKCB0b2dnbGUgKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR0aGlzLmFwaS5zZXRTeXN0ZW1EaWFnbm9zdGljKCB0b2dnbGUsIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHR2YXIgbWVzc2FnZSA9ICcnO1xuXHRcdFx0XHRpZiAoIHRvZ2dsZSApIHtcblx0XHRcdFx0XHRtZXNzYWdlID0gJC5pMThuLl8oICdEaWFnbm9zdGljIG1vZGUgaXMgbm93IGVuYWJsZWQuJyApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG1lc3NhZ2UgPSAkLmkxOG4uXyggJ0RpYWdub3N0aWMgbW9kZSBpcyBub3cgZGlzYWJsZWQuJyApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFRBbGVydE1hbmFnZXIuc2hvd0FsZXJ0KCBtZXNzYWdlLCAkLmkxOG4uXyggJ0RpYWdub3N0aWNzIE1vZGUnICkgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRvblVwbG9hZERpYWdub3N0aWNDbGljaygpIHtcblx0XHR0aGlzLmFwaS51cGxvYWRTeXN0ZW1EaWFnbm9zdGljKCB7XG5cdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlc3VsdCApIHtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRvblRlc3RDb25uZWN0aW9uRGlhZ25vc3RpY0NsaWNrKCkge1xuXHRcdHRoaXMuYXBpLnRlc3RDb25uZWN0aW9uRGlhZ25vc3RpYygge1xuXHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXN1bHQgKSB7XG5cdFx0XHRcdHZhciBtZXNzYWdlID0gJyc7XG5cdFx0XHRcdGlmICggcmVzdWx0LmdldFJlc3VsdCgpID09PSB0cnVlICkge1xuXHRcdFx0XHRcdG1lc3NhZ2UgPSAkLmkxOG4uXyggJ0Nvbm5lY3Rpb24gdGVzdCBzdWNjZXNzZnVsIScgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRtZXNzYWdlID0gcmVzdWx0LmdldFJlc3VsdCgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0VEFsZXJ0TWFuYWdlci5zaG93QWxlcnQoIG1lc3NhZ2UsICQuaTE4bi5fKCAnRGlhZ25vc3RpY3MgQ29ubmVjdGlvbiBUZXN0JyApICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0Z2V0QWJvdXREYXRhKCBjYWxsQmFjayApIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdCR0aGlzLmFwaVsnZ2V0QWJvdXREYXRhJ10oIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0X2RhdGEgPSByZXN1bHQuZ2V0UmVzdWx0KCk7XG5cdFx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCByZXN1bHRfZGF0YSApICkge1xuXHRcdFx0XHRcdGNhbGxCYWNrKCByZXN1bHRfZGF0YSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRkaWFnbm9zdGljUGVybWlzc2lvblZhbGlkYXRlKCkge1xuXHRcdGlmICggUGVybWlzc2lvbk1hbmFnZXIudmFsaWRhdGUoICd1c2VyJywgJ2VkaXQnICkgJiYgQVBJR2xvYmFsLnByZV9sb2dpbl9kYXRhLnByaW1hcnlfY29tcGFueV9pZCA9PT0gTG9jYWxDYWNoZURhdGEuZ2V0TG9naW5Vc2VyKCkuY29tcGFueV9pZCApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRvcGVuRWRpdFZpZXcoKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblxuXHRcdGlmICggJHRoaXMuZWRpdF9vbmx5X21vZGUgKSB7XG5cblx0XHRcdHRoaXMuYnVpbGRDb250ZXh0TWVudSgpO1xuXHRcdFx0aWYgKCAhJHRoaXMuZWRpdF92aWV3ICkge1xuXHRcdFx0XHQkdGhpcy5pbml0RWRpdFZpZXdVSSggJ0Fib3V0JywgJ0Fib3V0RWRpdFZpZXcuaHRtbCcgKTtcblx0XHRcdH1cblxuXHRcdFx0JHRoaXMuZ2V0QWJvdXREYXRhKCBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHQvLyBXYWl0aW5nIGZvciB0aGUgVFRBUEkuQVBJIHJldHVybnMgZGF0YSB0byBzZXQgdGhlIGN1cnJlbnQgZWRpdCByZWNvcmQuXG5cdFx0XHRcdCR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQgPSByZXN1bHQ7XG5cblx0XHRcdFx0JHRoaXMuaW5pdEVkaXRWaWV3KCk7XG5cblx0XHRcdH0gKTtcblxuXHRcdH1cblx0fVxuXG5cdHNldFVJV2lkZ2V0RmllbGRzVG9DdXJyZW50RWRpdFJlY29yZCgpIHtcblx0fVxuXG5cdHNldEN1cnJlbnRFZGl0UmVjb3JkRGF0YSgpIHtcblx0XHQvL1NldCBjdXJyZW50IGVkaXQgcmVjb3JkIGRhdGEgdG8gYWxsIHdpZGdldHNcblx0XHRpZiAoICFHbG9iYWwuaXNTZXQoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsnbGljZW5zZV9kYXRhJ10gKSApIHtcblx0XHRcdHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsnbGljZW5zZV9kYXRhJ10gPSB7fTtcblx0XHR9XG5cblx0XHRmb3IgKCB2YXIgaSBpbiB0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljICkge1xuXHRcdFx0dGhpcy5kZXRhY2hFbGVtZW50KCBpICk7XG5cdFx0fVxuXG5cdFx0Zm9yICggdmFyIGtleSBpbiB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQgKSB7XG5cdFx0XHRpZiAoICF0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQuaGFzT3duUHJvcGVydHkoIGtleSApICkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0dmFyIHdpZGdldCA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1trZXldO1xuXG5cdFx0XHRzd2l0Y2ggKCBrZXkgKSB7XG5cdFx0XHRcdGNhc2UgJ25ld192ZXJzaW9uJzpcblx0XHRcdFx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldID09PSB0cnVlICkge1xuXG5cdFx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoICdub3RpY2UnICk7XG5cblx0XHRcdFx0XHRcdHZhciBodG1sID0gJzxicj48Yj4nICsgJC5pMThuLl8oICdOT1RJQ0UnICkgKyAnOicgKyAnPC9iPiAnICsgJC5pMThuLl8oICdUaGVyZSBpcyBhIG5ldyB2ZXJzaW9uIG9mJyApICsgJyAnO1xuXHRcdFx0XHRcdFx0aHRtbCArPSAnPGI+JyArICQuaTE4bi5fKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ2FwcGxpY2F0aW9uX25hbWUnXSApICsgJzwvYj4gJyArICQuaTE4bi5fKCAnYXZhaWxhYmxlJyApICsgJy4nO1xuXHRcdFx0XHRcdFx0aHRtbCArPSAnPGJyPicgKyAkLmkxOG4uXyggJ1RoaXMgdmVyc2lvbiBtYXkgY29udGFpbiB0YXggdGFibGUgdXBkYXRlcyBuZWNlc3NhcnkgZm9yIGFjY3VyYXRlIHBheXJvbGwgY2FsY3VsYXRpb24sIHdlIHJlY29tbWVuZCB0aGF0IHlvdSB1cGdyYWRlIGFzIHNvb24gYXMgcG9zc2libGUuJyApICsgJzxicj4nO1xuXHRcdFx0XHRcdFx0aHRtbCArPSAnJyArICQuaTE4bi5fKCAnVGhlIGxhdGVzdCB2ZXJzaW9uIGNhbiBiZSBkb3dubG9hZGVkIGZyb20nICkgKyAnOicgKyAnIDxhIGhyZWY9XFwnaHR0cHM6Ly8nICsgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWydvcmdhbml6YXRpb25fdXJsJ10gKyAnLz91cGdyYWRlPTFcXCcgdGFyZ2V0PVxcJ19ibGFua1xcJz4nO1xuXHRcdFx0XHRcdFx0aHRtbCArPSAnPGI+JyArIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFsnb3JnYW5pemF0aW9uX3VybCddICsgJzwvYj48L2E+PGJyPjxicj4nO1xuXG5cdFx0XHRcdFx0XHQkKCB0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljWydub3RpY2UnXS5maW5kKCAnLnRibERhdGFXYXJuaW5nJyApICkuaHRtbCggaHRtbCApO1xuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdyZWdpc3RyYXRpb25fa2V5Jzpcblx0XHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggd2lkZ2V0ICkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldID09PSAnJyB8fCBHbG9iYWwuaXNGYWxzZU9yTnVsbCggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKSApIHtcblx0XHRcdFx0XHRcdFx0d2lkZ2V0LnNldFZhbHVlKCAkLmkxOG4uXyggJ04vQScgKSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0d2lkZ2V0LnNldFZhbHVlKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnaGFyZHdhcmVfaWQnOlxuXHRcdFx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCB3aWRnZXQgKSApIHtcblx0XHRcdFx0XHRcdGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gPT09ICcnIHx8IEdsb2JhbC5pc0ZhbHNlT3JOdWxsKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSApICkge1xuXHRcdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoICQuaTE4bi5fKCAnTi9BJyApICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdjcm9uJzogLy9wb3B1bGFyIGNhc2Vcblx0XHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggd2lkZ2V0ICkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldWydsYXN0X3J1bl9kYXRlJ10gIT09ICcnICkge1xuXHRcdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldWydsYXN0X3J1bl9kYXRlJ10gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHdpZGdldC5zZXRWYWx1ZSggJC5pMThuLl8oICdOZXZlcicgKSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnbGljZW5zZV9kYXRhJzpcblx0XHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKSApIHtcblxuXHRcdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnbGljZW5zZV9pbmZvJyApO1xuXHRcdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAnbGljZW5zZV9icm93c2VyJyApO1xuXG5cdFx0XHRcdFx0XHR2YXIgc2VwYXJhdGVkX2JveCA9ICQoIHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNbJ2xpY2Vuc2VfaW5mbyddLmZpbmQoICcuc2VwYXJhdGVkLWJveCcgKSApO1xuXG5cdFx0XHRcdFx0XHRpZiAoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldWydtZXNzYWdlJ10gKSB7XG5cdFx0XHRcdFx0XHRcdHNlcGFyYXRlZF9ib3guY3NzKCB7XG5cdFx0XHRcdFx0XHRcdFx0J2ZvbnQtd2VpZ2h0JzogJ2JvbGQnLFxuXHRcdFx0XHRcdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJ3JlZCcsXG5cdFx0XHRcdFx0XHRcdFx0J2hlaWdodCc6ICdhdXRvJyxcblx0XHRcdFx0XHRcdFx0XHQnY29sb3InOiAnIzAwMDAwMCdcblx0XHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0XHRzZXBhcmF0ZWRfYm94Lmh0bWwoICQuaTE4bi5fKCAnTGljZW5zZSBJbmZvcm1hdGlvbicgKSArICc8YnI+JyArICQuaTE4bi5fKCAnV0FSTklORycgKSArICc6ICcgKyB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XVsnbWVzc2FnZSddICk7XG5cdFx0XHRcdFx0XHRcdCQoIHNlcGFyYXRlZF9ib3guZmluZCggJ3NwYW4nICkgKS5yZW1vdmVDbGFzcyggJ2xhYmVsJyApLmNzcygge1xuXHRcdFx0XHRcdFx0XHRcdCdmb250LXNpemUnOiAnbm9ybWFsJyxcblx0XHRcdFx0XHRcdFx0XHQnZm9udC13ZWlnaHQnOiAnYm9sZCdcblx0XHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0c2VwYXJhdGVkX2JveC5odG1sKCAnPHNwYW4gY2xhc3M9XCJsYWJlbFwiPicgKyAkLmkxOG4uXyggJ0xpY2Vuc2UgSW5mb3JtYXRpb24nICkgKyAnPC9zcGFuPicgKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XVsnb3JnYW5pemF0aW9uX25hbWUnXSApIHtcblx0XHRcdFx0XHRcdFx0Zm9yICggdmFyIGsgaW4gdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0c3dpdGNoICggayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNhc2UgJ21ham9yX3ZlcnNpb24nOlxuXHRcdFx0XHRcdFx0XHRcdFx0Y2FzZSAnbWlub3JfdmVyc2lvbic6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuYXR0YWNoRWxlbWVudCggJ192ZXJzaW9uJyApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ192ZXJzaW9uJ10uc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldWydtYWpvcl92ZXJzaW9uJ10gKyAnLicgKyB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XVsnbWlub3JfdmVyc2lvbiddICsgJy5YJyApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCB0aGlzLmVkaXRfdmlld191aV9kaWNba10gKSAmJiBHbG9iYWwuaXNTZXQoIHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNba10gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmF0dGFjaEVsZW1lbnQoIGsgKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNba10uc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldW2tdICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICd1c2VyX2NvdW50cyc6XG5cdFx0XHRcdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XS5sZW5ndGggPiAwICkge1xuXHRcdFx0XHRcdFx0dGhpcy5hdHRhY2hFbGVtZW50KCAndXNlcl9hY3RpdmVfaW5hY3RpdmUnICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICdzY2hlbWFfdmVyc2lvbl9ncm91cF9BJzpcblx0XHRcdFx0Y2FzZSAnc2NoZW1hX3ZlcnNpb25fZ3JvdXBfQic6XG5cdFx0XHRcdGNhc2UgJ3NjaGVtYV92ZXJzaW9uX2dyb3VwX0MnOlxuXHRcdFx0XHRjYXNlICdzY2hlbWFfdmVyc2lvbl9ncm91cF9EJzpcblx0XHRcdFx0XHRpZiAoIEdsb2JhbC5pc1NldCggd2lkZ2V0ICkgJiYgdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKSB7XG5cdFx0XHRcdFx0XHR3aWRnZXQuc2V0VmFsdWUoIHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCB3aWRnZXQgKSApIHtcblx0XHRcdFx0XHRcdHdpZGdldC5zZXRWYWx1ZSggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkW2tleV0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCB3aWRnZXQgKSAmJiB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRba2V5XSA9PSBmYWxzZSApIHtcblx0XHRcdFx0d2lkZ2V0LnBhcmVudHMoICcuZWRpdC12aWV3LWZvcm0taXRlbS1kaXYnICkuZGV0YWNoKCk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHR0aGlzLmNvbGxlY3RVSURhdGFUb0N1cnJlbnRFZGl0UmVjb3JkKCk7XG5cdFx0dGhpcy5zZXRFZGl0Vmlld0RhdGFEb25lKCk7XG5cdH1cblxuXHRzZXRFZGl0Vmlld0RhdGFEb25lKCkge1xuXHRcdHN1cGVyLnNldEVkaXRWaWV3RGF0YURvbmUoKTtcblx0XHR0aGlzLnNldEFjdGl2ZUVtcGxveWVlcygpO1xuXHR9XG5cblx0c2V0QWN0aXZlRW1wbG95ZWVzKCkge1xuXG5cdFx0aWYgKCB0aGlzLmVtcGxveWVlQWN0aXZlLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRmb3IgKCB2YXIgaSBpbiB0aGlzLmVtcGxveWVlQWN0aXZlICkge1xuXHRcdFx0XHR2YXIgZmllbGQgPSB0aGlzLmVtcGxveWVlQWN0aXZlW2ldLmdldEZpZWxkKCk7XG5cdFx0XHRcdGlmICggR2xvYmFsLmlzU2V0KCB0aGlzLmVkaXRfdmlld19mb3JtX2l0ZW1fZGljW2ZpZWxkXSApICkge1xuXHRcdFx0XHRcdHRoaXMuZWRpdF92aWV3X2Zvcm1faXRlbV9kaWNbZmllbGRdLnJlbW92ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZW1wbG95ZWVBY3RpdmUgPSBbXTtcblxuXHRcdH1cblxuXHRcdGlmICggR2xvYmFsLmlzU2V0KCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3VzZXJfY291bnRzJ10gKSAmJiB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3VzZXJfY291bnRzJ10ubGVuZ3RoID4gMCApIHtcblx0XHRcdHZhciB0YWJfYWJvdXQgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfYWJvdXQnICk7XG5cdFx0XHR2YXIgdGFiX2Fib3V0X2NvbHVtbjEgPSB0YWJfYWJvdXQuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHRcdGZvciAoIHZhciBrZXkgaW4gdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd1c2VyX2NvdW50cyddICkge1xuXG5cdFx0XHRcdHZhciBpdGVtID0gdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd1c2VyX2NvdW50cyddW2tleV07XG5cblx0XHRcdFx0dmFyIGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdFx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdhY3RpdmVfJyArIGtleSB9ICk7XG5cdFx0XHRcdGZvcm1faXRlbV9pbnB1dC5zZXRWYWx1ZSggaXRlbVsnbWF4X2FjdGl2ZV91c2VycyddICsgJyAvICcgKyBpdGVtWydtYXhfaW5hY3RpdmVfdXNlcnMnXSApO1xuXG5cdFx0XHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCBpdGVtWydsYWJlbCddICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHRcdFx0dGhpcy5lbXBsb3llZUFjdGl2ZS5wdXNoKCBmb3JtX2l0ZW1faW5wdXQgKTtcblxuXHRcdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ2FjdGl2ZV8nICsga2V5XS5jc3MoICdvcGFjaXR5JywgMSApO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmVkaXRGaWVsZFJlc2l6ZSggMCApO1xuXHRcdH1cblx0fVxuXG5cdGJ1aWxkRWRpdFZpZXdVSSgpIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHN1cGVyLmJ1aWxkRWRpdFZpZXdVSSgpO1xuXG5cdFx0dmFyIHRhYl9tb2RlbCA9IHtcblx0XHRcdCd0YWJfYWJvdXQnOiB7XG5cdFx0XHRcdCdsYWJlbCc6ICQuaTE4bi5fKCAnQWJvdXQnIClcblx0XHRcdH0sXG5cdFx0fTtcblx0XHR0aGlzLnNldFRhYk1vZGVsKCB0YWJfbW9kZWwgKTtcblxuXHRcdC8vVGFiIDAgc3RhcnRcblxuXHRcdHZhciB0YWJfYWJvdXQgPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfYWJvdXQnICk7XG5cblx0XHR2YXIgdGFiX2Fib3V0X2NvbHVtbjEgPSB0YWJfYWJvdXQuZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdLnB1c2goIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHR2YXIgZm9ybV9pdGVtX2lucHV0ID0gJCggJzxkaXYgY2xhc3M9XFwndGJsRGF0YVdhcm5pbmdcXCc+PC9kaXY+JyApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oIG51bGwsIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlLCBmYWxzZSwgJ25vdGljZScgKTtcblxuXHRcdC8vIHNlcGFyYXRlIGJveFxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuU0VQQVJBVEVEX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5TZXBhcmF0ZWRCb3goIHsgbGFiZWw6ICQuaTE4bi5fKCAnU3lzdGVtIEluZm9ybWF0aW9uJyApIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCBudWxsLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBQcm9kdWN0IEVkaXRpb25cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdwcm9kdWN0X2VkaXRpb24nIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1Byb2R1Y3QgRWRpdGlvbicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSApO1xuXG5cdFx0Ly8gVmVyc2lvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dCggeyBmaWVsZDogJ3N5c3RlbV92ZXJzaW9uJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdWZXJzaW9uJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBPcGVyYXRpbmcgU3lzdGVtXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7XG5cdFx0XHRmaWVsZDogJ29wZXJhdGluZ19zeXN0ZW0nXG5cblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdPcGVyYXRpbmcgU3lzdGVtJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBQSFAgVmVyc2lvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dCgge1xuXHRcdFx0ZmllbGQ6ICdwaHBfdmVyc2lvbidcblx0XHR9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdQSFAgVmVyc2lvbicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSApO1xuXG5cdFx0Ly8gVGF4IEVuZ2luZSBWZXJzaW9uXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAndGF4X2VuZ2luZV92ZXJzaW9uJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdUYXggRW5naW5lIFZlcnNpb24nICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEgKTtcblxuXHRcdC8vIFRheCBEYXRhIFZlcnNpb25cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICd0YXhfZGF0YV92ZXJzaW9uJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdUYXggRGF0YSBWZXJzaW9uJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBSZWdpc3RyYXRpb24gS2V5XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAncmVnaXN0cmF0aW9uX2tleScgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnUmVnaXN0cmF0aW9uIEtleScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSApO1xuXG5cdFx0Ly8gSGFyZHdhcmUgSURcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdoYXJkd2FyZV9pZCcgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnSGFyZHdhcmUgSUQnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEgKTtcblxuXHRcdC8vIE1haW50ZW5hbmNlIEpvYnMgTGFzdCBSYW5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdjcm9uJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdNYWludGVuYW5jZSBKb2JzIExhc3QgUmFuJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBzZXBhcmF0ZSBib3hcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlNFUEFSQVRFRF9CT1ggKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuU2VwYXJhdGVkQm94KCB7IGxhYmVsOiAkLmkxOG4uXyggJ0xpY2Vuc2UgSW5mb3JtYXRpb24nICkgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oIG51bGwsIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlLCBmYWxzZSwgJ2xpY2Vuc2VfaW5mbycgKTtcblxuXHRcdGlmICggTG9jYWxDYWNoZURhdGEucHJvZHVjdEVkaXRpb25JZCA+IDEwICYmIEFQSUdsb2JhbC5wcmVfbG9naW5fZGF0YS5wcmltYXJ5X2NvbXBhbnlfaWQgPT0gTG9jYWxDYWNoZURhdGEuZ2V0Q3VycmVudENvbXBhbnkoKS5pZCApIHtcblx0XHRcdC8vIFVwbG9hZCBMaWNlbnNlXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLklNQUdFX0JST1dTRVIgKTtcblx0XHRcdHRoaXMuZmlsZV9icm93c2VyID0gZm9ybV9pdGVtX2lucHV0LlRJbWFnZUJyb3dzZXIoIHtcblx0XHRcdFx0ZmllbGQ6ICdsaWNlbnNlX2Jyb3dzZXInLFxuXHRcdFx0XHRpZDogJ2xpY2Vuc2VfYnJvd3NlcicsXG5cdFx0XHRcdG5hbWU6ICdmaWxlZGF0YScsXG5cdFx0XHRcdGFjY2VwdF9maWx0ZXI6ICcqJyxcblx0XHRcdFx0Y2hhbmdlSGFuZGxlcjogZnVuY3Rpb24oIGEgKSB7XG5cdFx0XHRcdFx0JHRoaXMudXBsb2FkTGljZW5zZSggdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnVXBsb2FkIExpY2Vuc2UnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBQcm9kdWN0XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAncHJvZHVjdF9uYW1lJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdQcm9kdWN0JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gQ29tcGFueVxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dCggeyBmaWVsZDogJ29yZ2FuaXphdGlvbl9uYW1lJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDb21wYW55JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gVmVyc2lvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dCggeyBmaWVsZDogJ192ZXJzaW9uJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdWZXJzaW9uJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xLCAnJywgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0Ly8gQWN0aXZlIEVtcGxveWVlIExpY2Vuc2VzXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAnYWN0aXZlX2VtcGxveWVlX2xpY2Vuc2VzJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdBY3RpdmUgRW1wbG95ZWUgTGljZW5zZXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBJc3N1ZSBEYXRlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAnaXNzdWVfZGF0ZScgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnSXNzdWUgRGF0ZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSwgJycsIG51bGwsIHRydWUgKTtcblxuXHRcdC8vIEV4cGlyZSBEYXRlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAnZXhwaXJlX2RhdGVfZGlzcGxheScgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnRXhwaXJlIERhdGUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEsICcnLCBudWxsLCB0cnVlICk7XG5cblx0XHQvLyBTY2hlbWEgVmVyc2lvblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuU0VQQVJBVEVEX0JPWCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5TZXBhcmF0ZWRCb3goIHsgbGFiZWw6ICQuaTE4bi5fKCAnU2NoZW1hIFZlcnNpb24nICkgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oIG51bGwsIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEgKTtcblxuXHRcdC8vIEdyb3VwIEFcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdzY2hlbWFfdmVyc2lvbl9ncm91cF9BJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdHcm91cCBBJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBHcm91cCBCXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0KCB7IGZpZWxkOiAnc2NoZW1hX3ZlcnNpb25fZ3JvdXBfQicgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnR3JvdXAgQicgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSApO1xuXG5cdFx0Ly8gR3JvdXAgQ1xuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVCApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dCggeyBmaWVsZDogJ3NjaGVtYV92ZXJzaW9uX2dyb3VwX0MnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0dyb3VwIEMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2Fib3V0X2NvbHVtbjEgKTtcblxuXHRcdC8vIEdyb3VwIERcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFQgKTtcblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHQoIHsgZmllbGQ6ICdzY2hlbWFfdmVyc2lvbl9ncm91cF9EJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdHcm91cCBEJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9hYm91dF9jb2x1bW4xICk7XG5cblx0XHQvLyBTZXBhcmF0ZWQgQm94XG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5TRVBBUkFURURfQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlNlcGFyYXRlZEJveCggeyBsYWJlbDogJC5pMThuLl8oICdFbXBsb3llZXMgKEFjdGl2ZSAvIEluQWN0aXZlKScgKSB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggbnVsbCwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYWJvdXRfY29sdW1uMSwgJycsIG51bGwsIHRydWUsIGZhbHNlLCAndXNlcl9hY3RpdmVfaW5hY3RpdmUnICk7XG5cdH1cblxuXHR1cGxvYWRMaWNlbnNlKCBvYmogKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR2YXIgZmlsZSA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1snbGljZW5zZV9icm93c2VyJ10uZ2V0VmFsdWUoKTtcblx0XHQkdGhpcy5hcGkudXBsb2FkRmlsZSggZmlsZSwgJ29iamVjdF90eXBlPWxpY2Vuc2Umb2JqZWN0X2lkPScsIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzICkge1xuXHRcdFx0XHQvL2ZpbGUgdXBsb2FkIHJldHVybnMgYSBcIlRSVUVcIiBzdHJpbmcgb24gc3VjY2Vzc1xuXHRcdFx0XHRpZiAoIHJlcyA9PSAnVFJVRScgKSB7XG5cdFx0XHRcdFx0Ly8kdGhpcy5vcGVuRWRpdFZpZXcoKTtcblxuXHRcdFx0XHRcdFByb2dyZXNzQmFyLnNob3dQcm9ncmVzc0JhcigpO1xuXHRcdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdFx0XHR9LCAzMDAwICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly9UQWxlcnRNYW5hZ2VyLnNob3dBbGVydCggJC5pMThuLl8oICdJbnZhbGlkIGxpY2Vuc2UgZmlsZScgKSApXG5cdFx0XHRcdFx0VEFsZXJ0TWFuYWdlci5zaG93QWxlcnQoIHJlcyApO1xuXHRcdFx0XHRcdCQoICcjZmlsZV9icm93c2VyJyApLnZhbCggJycgKTsgLy9DbGVhciB0aGUgZmlsZSBuYW1lIGZyb20gYmVzaWRlIHRoZSBcIkNob29zZSBGaWxlXCIgYnV0dG9uLlxuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///78\n")}}]);