UNPKG

@bund-x/core

Version:

Master Components Core Library

2 lines 37.3 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=exports.UserIcon=void 0;var _react=_interopRequireDefault(require("react"));var _Avatar=_interopRequireDefault(require("@material-ui/core/Avatar"));var _uuid=require("uuid");var _core=require("@material-ui/core");var _Alert=_interopRequireDefault(require("@material-ui/lab/Alert"));var _lab=require("@material-ui/lab");var _Edit=_interopRequireDefault(require("@material-ui/icons/Edit"));var _clsx=_interopRequireDefault(require("clsx"));var _reactRouterDom=require("react-router-dom");var _CancelOutlined=_interopRequireDefault(require("@material-ui/icons/CancelOutlined"));var _Dialog=_interopRequireDefault(require("@material-ui/core/Dialog"));var _DialogActions=_interopRequireDefault(require("@material-ui/core/DialogActions"));var _DialogContent=_interopRequireDefault(require("@material-ui/core/DialogContent"));var _DialogContentText=_interopRequireDefault(require("@material-ui/core/DialogContentText"));var _DialogTitle=_interopRequireDefault(require("@material-ui/core/DialogTitle"));var _reactFlashMessage=_interopRequireDefault(require("react-flash-message"));var _styles=require("../../../styles");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj};}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}var UserIcon=function UserIcon(_ref){var profileImage=_ref.profileImage,profileWebpImage=_ref.profileWebpImage,online=_ref.online,userName=_ref.userName,rootIcon=_ref.rootIcon,editProfile=_ref.editProfile,onlineBadge=_ref.onlineBadge,offlineBadge=_ref.offlineBadge,userNameClass=_ref.userNameClass,fullName=_ref.fullName;var _React$useState=_react["default"].useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=_react["default"].useState({code:''}),_React$useState4=_slicedToArray(_React$useState3,2),state=_React$useState4[0],setState=_React$useState4[1];function Alert(props){return _react["default"].createElement(_Alert["default"],_extends({elevation:6,variant:"filled"},props));}var handleClickOpen=function handleClickOpen(){setOpen(true);};var handleClose=function handleClose(){setOpen(false);};var handleSubmit=function handleSubmit(e){e.preventDefault();var token=localStorage['BUND-X-AUTH-TOKEN'];var _data={username:userName};var headers={'Content-Type':'application/json','X-Requested-With':'XMLHttpRequest',Authorization:"Bearer ".concat(token)};var requestOptions={method:'DELETE',headers:headers,body:JSON.stringify(_data)};fetch("/api/v1/user/delete/".concat(userName),requestOptions).then(function(r){return r.json(setState({code:r.status})).then(function(result){if(state.code===200){console.log('====================================');console.log(result);console.log('====================================');}else if(state.code===202){console.log('====================================');console.log(result);console.log('====================================');}console.log('====================================');console.log(result.errors,result.message);console.log('====================================');});});setTimeout(location.reload.bind(location),8000);};if(online===true){return _react["default"].createElement("div",{className:rootIcon,style:{display:'grid'}},state.code===200&&_react["default"].createElement(_reactFlashMessage["default"],{duration:8000},_react["default"].createElement(_core.Snackbar,{open:true,autoHideDuration:8000},_react["default"].createElement(Alert,{severity:"success"},_react["default"].createElement(_lab.AlertTitle,null,"Success"),"User ",_react["default"].createElement("strong",null,"@",userName)," have been deleted successfully."))),profileWebpImage===undefined?null:_react["default"].createElement("div",null,_react["default"].createElement(_reactRouterDom.Link,{to:"/admin/user/@".concat(userName)},_react["default"].createElement(_styles.StyledOnlineBadge,{overlap:"circular",anchorOrigin:{vertical:'bottom',horizontal:'right'},variant:"dot",className:onlineBadge},_react["default"].createElement(_Avatar["default"],{key:(0,_uuid.v4)(),alt:profileWebpImage,imgProps:{style:{width:'512px',height:'100%'}},src:'/imgs/staff/'+profileWebpImage})),_react["default"].createElement("div",{className:(0,_clsx["default"])(userNameClass,'text-color')},fullName)),_react["default"].createElement(_core.Button,{size:"small",style:{padding:'0 !important',margin:0,minWidth:0,border:'none'},className:(0,_clsx["default"])(editProfile,'link-style'),startIcon:_react["default"].createElement(_Edit["default"],{style:{padding:0,margin:0},fontSize:"small"}),variant:"outlined"},_react["default"].createElement(_reactRouterDom.Link,{"aria-label":"edit-online-user",className:"link-style",to:"/admin/user/@".concat(userName,"/edit")},"Edit")),_react["default"].createElement(_core.Button,{className:"link-style",onClick:handleClickOpen,"aria-label":"edit-online-user-data",style:{minWidth:'fit-content',"float":'right',marginRight:0,top:'-21px',right:'-75px',outline:'none',padding:0}},_react["default"].createElement(_CancelOutlined["default"],{style:{fontSize:'small',color:'red'}})),_react["default"].createElement(_Dialog["default"],{open:open,onClose:handleClose,"aria-labelledby":"online-user-delete-alert",className:"text-color","aria-describedby":"online-user-delete-alert-dialog"},_react["default"].createElement(_DialogTitle["default"],{className:"text-color card-body-color",id:"online-user-delete-alert"},'Are you sure?'),_react["default"].createElement(_DialogContent["default"],{className:"text-color card-body-color"},_react["default"].createElement(_DialogContentText["default"],{className:"text-color card-body-color",id:"online-user-delete-alert-dialog"},"This action connot be undone, are you sure you want to delete this user ?")),_react["default"].createElement(_DialogActions["default"],{className:"text-color card-body-color"},_react["default"].createElement(_core.Button,{style:{outline:'none',color:'currentColor'},className:"text-color card-body-color","aria-label":"cancel-online-user-delete",onClick:handleClose},"Cancel"),_react["default"].createElement("form",{onSubmit:handleSubmit,noValidate:true},_react["default"].createElement(_core.Button,{style:{outline:'none',color:'red'},className:"text-color card-body-color",type:"submit","aria-label":"confirm-online-user-delete",onClick:handleClose,autoFocus:true},"Delete"))))));}else{return _react["default"].createElement("div",{className:rootIcon,style:{display:'grid'}},state.code===200&&_react["default"].createElement(_reactFlashMessage["default"],{duration:8000},_react["default"].createElement(_core.Snackbar,{open:true,autoHideDuration:8000},_react["default"].createElement(Alert,{severity:"success"},_react["default"].createElement(_lab.AlertTitle,null,"Success"),"User ",_react["default"].createElement("strong",null,"@",userName)," have been deleted successfully."))),profileWebpImage===undefined?null:_react["default"].createElement("div",null,_react["default"].createElement(_styles.StyledOfflineBadge,{overlap:"circular",anchorOrigin:{vertical:'bottom',horizontal:'right'},variant:"dot",className:offlineBadge},_react["default"].createElement(_Avatar["default"],{key:(0,_uuid.v4)(),alt:profileWebpImage,imgProps:{style:{width:'512px',height:'100%'}},src:'/imgs/staff/'+profileWebpImage})),_react["default"].createElement("div",{className:(0,_clsx["default"])(userNameClass,'text-color')},fullName),_react["default"].createElement(_core.Button,{size:"small","aria-label":"edit-offline-user-data",style:{padding:'0 !important',margin:0,minWidth:0,border:'none'},className:(0,_clsx["default"])(editProfile,'link-style'),startIcon:_react["default"].createElement(_Edit["default"],{style:{padding:0,margin:0},fontSize:"small"}),variant:"outlined"},_react["default"].createElement(_reactRouterDom.Link,{"aria-label":"edit-offline-user",className:"link-style",to:"/admin/user/@".concat(userName,"/edit")},"Edit")),_react["default"].createElement(_core.Button,{className:"link-style",onClick:handleClickOpen,"aria-label":"user-delete",style:{minWidth:'fit-content',"float":'right',marginRight:0,top:'-21px',right:'-75px',outline:'none',padding:0}},_react["default"].createElement(_CancelOutlined["default"],{style:{fontSize:'small',color:'red'}})),_react["default"].createElement(_Dialog["default"],{open:open,onClose:handleClose,"aria-labelledby":"offline-user-delete-alert",className:"text-color","aria-describedby":"offline-user-delete-alert-dialog-description"},_react["default"].createElement(_DialogTitle["default"],{className:"text-color card-body-color",id:"offline-user-delete-alert"},'Are you sure?'),_react["default"].createElement(_DialogContent["default"],{className:"text-color card-body-color"},_react["default"].createElement(_DialogContentText["default"],{className:"text-color card-body-color",id:"offline-user-delete-alert-dialog-description"},"This action connot be undone, are you sure you want to delete this user ?")),_react["default"].createElement(_DialogActions["default"],{className:"text-color card-body-color"},_react["default"].createElement(_core.Button,{style:{outline:'none',color:'currentColor'},onClick:handleClose,"aria-label":"cancel-offline-user-delete",className:"text-color card-body-color"},"Cancel"),_react["default"].createElement("form",{onSubmit:handleSubmit,noValidate:true},_react["default"].createElement(_core.Button,{style:{outline:'none',color:'red'},className:"text-color card-body-color","aria-label":"confirm-offline-user-delete",type:"submit",onClick:handleClose,autoFocus:true},"Delete"))))));}};exports.UserIcon=UserIcon;UserIcon.displayName='ui';var _default=UserIcon;exports["default"]=_default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Qcm9maWxlL1Byb2ZpbGVDb21wb25lbnRzL1VzZXJJY29uL1VzZXJJY29uLmpzIl0sIm5hbWVzIjpbIlVzZXJJY29uIiwicHJvZmlsZUltYWdlIiwicHJvZmlsZVdlYnBJbWFnZSIsIm9ubGluZSIsInVzZXJOYW1lIiwicm9vdEljb24iLCJlZGl0UHJvZmlsZSIsIm9ubGluZUJhZGdlIiwib2ZmbGluZUJhZGdlIiwidXNlck5hbWVDbGFzcyIsImZ1bGxOYW1lIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIm9wZW4iLCJzZXRPcGVuIiwiY29kZSIsInN0YXRlIiwic2V0U3RhdGUiLCJBbGVydCIsInByb3BzIiwiaGFuZGxlQ2xpY2tPcGVuIiwiaGFuZGxlQ2xvc2UiLCJoYW5kbGVTdWJtaXQiLCJlIiwicHJldmVudERlZmF1bHQiLCJ0b2tlbiIsImxvY2FsU3RvcmFnZSIsIl9kYXRhIiwidXNlcm5hbWUiLCJoZWFkZXJzIiwiQXV0aG9yaXphdGlvbiIsInJlcXVlc3RPcHRpb25zIiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJmZXRjaCIsInRoZW4iLCJyIiwianNvbiIsInN0YXR1cyIsInJlc3VsdCIsImNvbnNvbGUiLCJsb2ciLCJlcnJvcnMiLCJtZXNzYWdlIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwicmVsb2FkIiwiYmluZCIsImRpc3BsYXkiLCJ1bmRlZmluZWQiLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0IiwicGFkZGluZyIsIm1hcmdpbiIsIm1pbldpZHRoIiwiYm9yZGVyIiwibWFyZ2luUmlnaHQiLCJ0b3AiLCJyaWdodCIsIm91dGxpbmUiLCJmb250U2l6ZSIsImNvbG9yIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJpSEFBQSxvREFDQSx3RUFDQSwwQkFDQSx1Q0FDQSxxRUFDQSxxQ0FDQSxxRUFDQSxrREFDQSxnREFDQSx5RkFDQSx3RUFDQSxzRkFD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Q0UsZ0NBQUMsWUFBRCxFQUNFLEtBQUssQ0FBRSxDQUFFMEMsT0FBTyxDQUFFLE1BQVgsQ0FBbUJFLEtBQUssQ0FBRSxLQUExQixDQURULENBRUUsU0FBUyxDQUFDLDRCQUZaLENBR0UsYUFBVyw2QkFIYixDQUlFLElBQUksQ0FBQyxRQUpQLENBS0UsT0FBTyxDQUFFN0MsV0FMWCxDQU1FLFNBQVMsS0FOWCxXQURGLENBUkYsQ0FuQkYsQ0FoRUYsQ0FiSixDQURGLENBMEhELENBQ0YsQ0E1VE0sQywwQkE4VFByQixRQUFRLENBQUNtRSxXQUFULENBQXVCLElBQXZCLEMsYUFFZW5FLFEiLCJzb3VyY2VSb290IjoiY29yZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBBdmF0YXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQXZhdGFyJ1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyBCdXR0b24sIFNuYWNrYmFyIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnXG5pbXBvcnQgTXVpQWxlcnQgZnJvbSAnQG1hdGVyaWFsLXVpL2xhYi9BbGVydCdcbmltcG9ydCB7IEFsZXJ0VGl0bGUgfSBmcm9tICdAbWF0ZXJpYWwtdWkvbGFiJ1xuaW1wb3J0IEVkaXRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9FZGl0J1xuaW1wb3J0IGNsc3ggZnJvbSAnY2xzeCdcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJ1xuaW1wb3J0IENhbmNlbE91dGxpbmVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQ2FuY2VsT3V0bGluZWQnXG5pbXBvcnQgRGlhbG9nIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZydcbmltcG9ydCBEaWFsb2dBY3Rpb25zIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ0FjdGlvbnMnXG5pbXBvcnQgRGlhbG9nQ29udGVudCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2dDb250ZW50J1xuaW1wb3J0IERpYWxvZ0NvbnRlbnRUZXh0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ0NvbnRlbnRUZXh0J1xuaW1wb3J0IERpYWxvZ1RpdGxlIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ1RpdGxlJ1xuaW1wb3J0IEZsYXNoTWFzc2FnZSBmcm9tICdyZWFjdC1mbGFzaC1tZXNzYWdlJ1xuaW1wb3J0IHsgU3R5bGVkT25saW5lQmFkZ2UsIFN0eWxlZE9mZmxpbmVCYWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcydcblxuZXhwb3J0IGNvbnN0IFVzZXJJY29uID0gKHtcbiAgcHJvZmlsZUltYWdlLFxuICBwcm9maWxlV2VicEltYWdlLFxuICBvbmxpbmUsXG4gIHVzZXJOYW1lLFxuICByb290SWNvbixcbiAgZWRpdFByb2ZpbGUsXG4gIG9ubGluZUJhZGdlLFxuICBvZmZsaW5lQmFkZ2UsXG4gIHVzZXJOYW1lQ2xhc3MsXG4gIGZ1bGxOYW1lXG59KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlXSA9IFJlYWN0LnVzZVN0YXRlKHsgY29kZTogJycgfSlcblxuICBmdW5jdGlvbiBBbGVydChwcm9wcykge1xuICAgIHJldHVybiA8TXVpQWxlcnQgZWxldmF0aW9uPXs2fSB2YXJpYW50PVwiZmlsbGVkXCIgey4uLnByb3BzfSAvPlxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tPcGVuID0gKCkgPT4ge1xuICAgIHNldE9wZW4odHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIHNldE9wZW4oZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgY29uc3QgdG9rZW4gPSBsb2NhbFN0b3JhZ2VbJ0JVTkQtWC1BVVRILVRPS0VOJ11cbiAgICBjb25zdCBfZGF0YSA9IHtcbiAgICAgIHVzZXJuYW1lOiB1c2VyTmFtZVxuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdYLVJlcXVlc3RlZC1XaXRoJzogJ1hNTEh0dHBSZXF1ZXN0JyxcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gXG4gICAgfVxuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShfZGF0YSlcbiAgICB9XG4gICAgZmV0Y2goYC9hcGkvdjEvdXNlci9kZWxldGUvJHt1c2VyTmFtZX1gLCByZXF1ZXN0T3B0aW9ucykudGhlbigocikgPT5cbiAgICAgIHIuanNvbihzZXRTdGF0ZSh7IGNvZGU6IHIuc3RhdHVzIH0pKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHN0YXRlLmNvZGUgPT09IDIwMCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKVxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdClcbiAgICAgICAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JylcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5jb2RlID09PSAyMDIpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JylcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpXG4gICAgICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScpXG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScpXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdC5lcnJvcnMsIHJlc3VsdC5tZXNzYWdlKVxuICAgICAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JylcbiAgICAgIH0pXG4gICAgKVxuICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgIHNldFRpbWVvdXQobG9jYXRpb24ucmVsb2FkLmJpbmQobG9jYXRpb24pLCA4MDAwKVxuICB9XG5cbiAgaWYgKG9ubGluZSA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17cm9vdEljb259IHN0eWxlPXt7IGRpc3BsYXk6ICdncmlkJyB9fT5cbiAgICAgICAge3N0YXRlLmNvZGUgPT09IDIwMCAmJiAoXG4gICAgICAgICAgPEZsYXNoTWFzc2FnZSBkdXJhdGlvbj17ODAwMH0+XG4gICAgICAgICAgICA8U25hY2tiYXIgb3BlbiBhdXRvSGlkZUR1cmF0aW9uPXs4MDAwfT5cbiAgICAgICAgICAgICAgPEFsZXJ0IHNldmVyaXR5PVwic3VjY2Vzc1wiPlxuICAgICAgICAgICAgICAgIDxBbGVydFRpdGxlPlN1Y2Nlc3M8L0FsZXJ0VGl0bGU+XG4gICAgICAgICAgICAgICAgVXNlciA8c3Ryb25nPkB7dXNlck5hbWV9PC9zdHJvbmc+IGhhdmUgYmVlbiBkZWxldGVkXG4gICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5LlxuICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgPC9TbmFja2Jhcj5cbiAgICAgICAgICA8L0ZsYXNoTWFzc2FnZT5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb2ZpbGVXZWJwSW1hZ2UgPT09IHVuZGVmaW5lZCA/IG51bGwgOiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxMaW5rIHRvPXtgL2FkbWluL3VzZXIvQCR7dXNlck5hbWV9YH0+XG4gICAgICAgICAgICAgIDxTdHlsZWRPbmxpbmVCYWRnZVxuICAgICAgICAgICAgICAgIG92ZXJsYXA9XCJjaXJjdWxhclwiXG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7XG4gICAgICAgICAgICAgICAgICB2ZXJ0aWNhbDogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgICBob3Jpem9udGFsOiAncmlnaHQnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwiZG90XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e29ubGluZUJhZGdlfT5cbiAgICAgICAgICAgICAgICA8QXZhdGFyXG4gICAgICAgICAgICAgICAgICBrZXk9e3V1aWQoKX1cbiAgICAgICAgICAgICAgICAgIGFsdD17cHJvZmlsZVdlYnBJbWFnZX1cbiAgICAgICAgICAgICAgICAgIGltZ1Byb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MTJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHNyYz17Jy9pbWdzL3N0YWZmLycgKyBwcm9maWxlV2VicEltYWdlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkT25saW5lQmFkZ2U+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHN4KHVzZXJOYW1lQ2xhc3MsICd0ZXh0LWNvbG9yJyl9PlxuICAgICAgICAgICAgICAgIHtmdWxsTmFtZX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChlZGl0UHJvZmlsZSwgJ2xpbmstc3R5bGUnKX1cbiAgICAgICAgICAgICAgc3RhcnRJY29uPXtcbiAgICAgICAgICAgICAgICA8RWRpdEljb24gc3R5bGU9e3sgcGFkZGluZzogMCwgbWFyZ2luOiAwIH19IGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiPlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJlZGl0LW9ubGluZS11c2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXN0eWxlXCJcbiAgICAgICAgICAgICAgICB0bz17YC9hZG1pbi91c2VyL0Ake3VzZXJOYW1lfS9lZGl0YH0+XG4gICAgICAgICAgICAgICAgRWRpdFxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIHsvKiA8Zm9ybSBhY3Rpb249eycuLi9kZWxldGUvdGhpcy9jaGlsZC9wcm9jZXNzLyd9IG1ldGhvZD1cIlBPU1RcIj4gKi99XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstc3R5bGVcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja09wZW59XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJlZGl0LW9ubGluZS11c2VyLWRhdGFcIlxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgICAgICAgICAgICAgIGZsb2F0OiAncmlnaHQnLFxuICAgICAgICAgICAgICAgIC8vIG1hcmdpblRvcDogJy0yNXB4JyxcbiAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMCxcbiAgICAgICAgICAgICAgICB0b3A6ICctMjFweCcsXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICctNzVweCcsXG4gICAgICAgICAgICAgICAgb3V0bGluZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgIDxDYW5jZWxPdXRsaW5lZEljb25cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ3JlZCdcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8RGlhbG9nXG4gICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJvbmxpbmUtdXNlci1kZWxldGUtYWxlcnRcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm9ubGluZS11c2VyLWRlbGV0ZS1hbGVydC1kaWFsb2dcIj5cbiAgICAgICAgICAgICAgPERpYWxvZ1RpdGxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1jb2xvciBjYXJkLWJvZHktY29sb3JcIlxuICAgICAgICAgICAgICAgIGlkPVwib25saW5lLXVzZXItZGVsZXRlLWFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgeydBcmUgeW91IHN1cmU/J31cbiAgICAgICAgICAgICAgPC9EaWFsb2dUaXRsZT5cbiAgICAgICAgICAgICAgPERpYWxvZ0NvbnRlbnQgY2xhc3NOYW1lPVwidGV4dC1jb2xvciBjYXJkLWJvZHktY29sb3JcIj5cbiAgICAgICAgICAgICAgICA8RGlhbG9nQ29udGVudFRleHRcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwib25saW5lLXVzZXItZGVsZXRlLWFsZXJ0LWRpYWxvZ1wiPlxuICAgICAgICAgICAgICAgICAgVGhpcyBhY3Rpb24gY29ubm90IGJlIHVuZG9uZSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZVxuICAgICAgICAgICAgICAgICAgdGhpcyB1c2VyID9cbiAgICAgICAgICAgICAgICA8L0RpYWxvZ0NvbnRlbnRUZXh0PlxuICAgICAgICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgICAgIDxEaWFsb2dBY3Rpb25zIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCI+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgb3V0bGluZTogJ25vbmUnLCBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjYW5jZWwtb25saW5lLXVzZXItZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfT5cbiAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IG5vVmFsaWRhdGU+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG91dGxpbmU6ICdub25lJywgY29sb3I6ICdyZWQnIH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjb25maXJtLW9ubGluZS11c2VyLWRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM+XG4gICAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICA8L0RpYWxvZ0FjdGlvbnM+XG4gICAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICAgIHsvKiA8L2Zvcm0+ICovfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17cm9vdEljb259IHN0eWxlPXt7IGRpc3BsYXk6ICdncmlkJyB9fT5cbiAgICAgICAge3N0YXRlLmNvZGUgPT09IDIwMCAmJiAoXG4gICAgICAgICAgPEZsYXNoTWFzc2FnZSBkdXJhdGlvbj17ODAwMH0+XG4gICAgICAgICAgICA8U25hY2tiYXIgb3BlbiBhdXRvSGlkZUR1cmF0aW9uPXs4MDAwfT5cbiAgICAgICAgICAgICAgPEFsZXJ0IHNldmVyaXR5PVwic3VjY2Vzc1wiPlxuICAgICAgICAgICAgICAgIDxBbGVydFRpdGxlPlN1Y2Nlc3M8L0FsZXJ0VGl0bGU+XG4gICAgICAgICAgICAgICAgVXNlciA8c3Ryb25nPkB7dXNlck5hbWV9PC9zdHJvbmc+IGhhdmUgYmVlbiBkZWxldGVkXG4gICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5LlxuICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgPC9TbmFja2Jhcj5cbiAgICAgICAgICA8L0ZsYXNoTWFzc2FnZT5cbiAgICAgICAgKX1cbiAgICAgICAge3Byb2ZpbGVXZWJwSW1hZ2UgPT09IHVuZGVmaW5lZCA/IG51bGwgOiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxTdHlsZWRPZmZsaW5lQmFkZ2VcbiAgICAgICAgICAgICAgb3ZlcmxhcD1cImNpcmN1bGFyXCJcbiAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7XG4gICAgICAgICAgICAgICAgdmVydGljYWw6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIGhvcml6b250YWw6ICdyaWdodCdcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdmFyaWFudD1cImRvdFwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17b2ZmbGluZUJhZGdlfT5cbiAgICAgICAgICAgICAgPEF2YXRhclxuICAgICAgICAgICAgICAgIGtleT17dXVpZCgpfVxuICAgICAgICAgICAgICAgIGFsdD17cHJvZmlsZVdlYnBJbWFnZX1cbiAgICAgICAgICAgICAgICBpbWdQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc1MTJweCcsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBzcmM9eycvaW1ncy9zdGFmZi8nICsgcHJvZmlsZVdlYnBJbWFnZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU3R5bGVkT2ZmbGluZUJhZGdlPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Nsc3godXNlck5hbWVDbGFzcywgJ3RleHQtY29sb3InKX0+e2Z1bGxOYW1lfTwvZGl2PlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZWRpdC1vZmZsaW5lLXVzZXItZGF0YVwiXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgIG1pbldpZHRoOiAwLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzeChlZGl0UHJvZmlsZSwgJ2xpbmstc3R5bGUnKX1cbiAgICAgICAgICAgICAgc3RhcnRJY29uPXtcbiAgICAgICAgICAgICAgICA8RWRpdEljb24gc3R5bGU9e3sgcGFkZGluZzogMCwgbWFyZ2luOiAwIH19IGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiPlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJlZGl0LW9mZmxpbmUtdXNlclwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay1zdHlsZVwiXG4gICAgICAgICAgICAgICAgdG89e2AvYWRtaW4vdXNlci9AJHt1c2VyTmFtZX0vZWRpdGB9PlxuICAgICAgICAgICAgICAgIEVkaXRcbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstc3R5bGVcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja09wZW59XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ1c2VyLWRlbGV0ZVwiXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6ICdmaXQtY29udGVudCcsXG4gICAgICAgICAgICAgICAgZmxvYXQ6ICdyaWdodCcsXG4gICAgICAgICAgICAgICAgLy8gbWFyZ2luVG9wOiAnLTI1cHgnLFxuICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgIHRvcDogJy0yMXB4JyxcbiAgICAgICAgICAgICAgICByaWdodDogJy03NXB4JyxcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgPENhbmNlbE91dGxpbmVkSWNvblxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBmb250U2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmVkJ1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDxEaWFsb2dcbiAgICAgICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm9mZmxpbmUtdXNlci1kZWxldGUtYWxlcnRcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNvbG9yXCJcbiAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm9mZmxpbmUtdXNlci1kZWxldGUtYWxlcnQtZGlhbG9nLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxEaWFsb2dUaXRsZVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCJcbiAgICAgICAgICAgICAgICBpZD1cIm9mZmxpbmUtdXNlci1kZWxldGUtYWxlcnRcIj5cbiAgICAgICAgICAgICAgICB7J0FyZSB5b3Ugc3VyZT8nfVxuICAgICAgICAgICAgICA8L0RpYWxvZ1RpdGxlPlxuICAgICAgICAgICAgICA8RGlhbG9nQ29udGVudCBjbGFzc05hbWU9XCJ0ZXh0LWNvbG9yIGNhcmQtYm9keS1jb2xvclwiPlxuICAgICAgICAgICAgICAgIDxEaWFsb2dDb250ZW50VGV4dFxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1jb2xvciBjYXJkLWJvZHktY29sb3JcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJvZmZsaW5lLXVzZXItZGVsZXRlLWFsZXJ0LWRpYWxvZy1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgVGhpcyBhY3Rpb24gY29ubm90IGJlIHVuZG9uZSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZVxuICAgICAgICAgICAgICAgICAgdGhpcyB1c2VyID9cbiAgICAgICAgICAgICAgICA8L0RpYWxvZ0NvbnRlbnRUZXh0PlxuICAgICAgICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgICAgIDxEaWFsb2dBY3Rpb25zIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCI+XG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgb3V0bGluZTogJ25vbmUnLCBjb2xvcjogJ2N1cnJlbnRDb2xvcicgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImNhbmNlbC1vZmZsaW5lLXVzZXItZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtY29sb3IgY2FyZC1ib2R5LWNvbG9yXCI+XG4gICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBub1ZhbGlkYXRlPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBvdXRsaW5lOiAnbm9uZScsIGNvbG9yOiAncmVkJyB9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNvbG9yIGNhcmQtYm9keS1jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjb25maXJtLW9mZmxpbmUtdXNlci1kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz5cbiAgICAgICAgICAgICAgICAgICAgRGVsZXRlXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDwvRGlhbG9nQWN0aW9ucz5cbiAgICAgICAgICAgIDwvRGlhbG9nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG59XG5cblVzZXJJY29uLmRpc3BsYXlOYW1lID0gJ3VpJ1xuXG5leHBvcnQgZGVmYXVsdCBVc2VySWNvblxuIl19