aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarvin Borner2018-07-15 22:25:10 +0200
committerMarvin Borner2018-07-15 22:25:10 +0200
commit11d1759b231009abafcbbc234561f500fb193289 (patch)
tree302301844d379d69f177e1eb1a31dfe976807c8e
parent8960bce379d025904361444b00d40970d9a94f48 (diff)
Some minor admin interface fixes
-rwxr-xr-xpublic/js/admin.js2
-rw-r--r--public/service-worker.js2
-rw-r--r--resources/assets/js/admin.js387
-rwxr-xr-xresources/views/admin/layouts/app.blade.php2
-rw-r--r--resources/views/admin/layouts/navbar.blade.php2
5 files changed, 5 insertions, 390 deletions
diff --git a/public/js/admin.js b/public/js/admin.js
index 027f5ce..ef35361 100755
--- a/public/js/admin.js
+++ b/public/js/admin.js
@@ -83,7 +83,7 @@ module.exports = __webpack_require__(47);
/***/ 47:
/***/ (function(module, exports, __webpack_require__) {
-eval("window.$ = window.jQuery = __webpack_require__(48);\n__webpack_require__(49);\n__webpack_require__(50);\n__webpack_require__(51);\n__webpack_require__(52);\n__webpack_require__(53);\n__webpack_require__(54);\nwindow.Chart = __webpack_require__(55);\n\n$(function () {\n 'use strict';\n /* ChartJS\n * -------\n * Charts\n */\n\n // sales example chart\n\n var salesChartCanvas = $('#salesChart').get(0).getContext('2d');\n var salesChart = new Chart(salesChartCanvas);\n var salesChartData = {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: [{\n label: 'Electronics',\n fillColor: 'rgb(210, 214, 222)',\n strokeColor: 'rgb(210, 214, 222)',\n pointColor: 'rgb(210, 214, 222)',\n pointStrokeColor: '#c1c7d1',\n pointHighlightFill: '#fff',\n pointHighlightStroke: 'rgb(220,220,220)',\n data: [65, 59, 80, 81, 56, 55, 40]\n }, {\n label: 'Digital Goods',\n fillColor: 'rgba(60,141,188,0.9)',\n strokeColor: 'rgba(60,141,188,0.8)',\n pointColor: '#3b8bba',\n pointStrokeColor: 'rgba(60,141,188,1)',\n pointHighlightFill: '#fff',\n pointHighlightStroke: 'rgba(60,141,188,1)',\n data: [28, 48, 40, 19, 86, 27, 90]\n }]\n };\n var salesChartOptions = {\n showScale: true,\n scaleShowGridLines: false,\n scaleGridLineColor: 'rgba(0,0,0,.05)',\n scaleGridLineWidth: 1,\n scaleShowHorizontalLines: true,\n scaleShowVerticalLines: true,\n bezierCurve: true,\n bezierCurveTension: 0.3,\n pointDot: false,\n pointDotRadius: 4,\n pointDotStrokeWidth: 1,\n pointHitDetectionRadius: 20,\n datasetStroke: true,\n datasetStrokeWidth: 2,\n datasetFill: true,\n legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<datasets.length; i++){%><li><span style=\\'background-color:<%=datasets[i].lineColor%>\\'></span><%=datasets[i].label%></li><%}%></ul>',\n maintainAspectRatio: true,\n responsive: true\n };\n salesChart.Line(salesChartData, salesChartOptions);\n\n // -------------\n // - PIE CHART -\n // -------------\n var pieChartCanvas = $('#pieChart').get(0).getContext('2d');\n var pieChart = new Chart(pieChartCanvas);\n var PieData = [{\n value: 700,\n color: '#f56954',\n highlight: '#f56954',\n label: 'Chrome'\n }, {\n value: 500,\n color: '#00a65a',\n highlight: '#00a65a',\n label: 'IE'\n }, {\n value: 400,\n color: '#f39c12',\n highlight: '#f39c12',\n label: 'FireFox'\n }, {\n value: 600,\n color: '#00c0ef',\n highlight: '#00c0ef',\n label: 'Safari'\n }, {\n value: 300,\n color: '#3c8dbc',\n highlight: '#3c8dbc',\n label: 'Opera'\n }, {\n value: 100,\n color: '#d2d6de',\n highlight: '#d2d6de',\n label: 'Navigator'\n }];\n var pieOptions = {\n segmentShowStroke: true,\n segmentStrokeColor: '#fff',\n segmentStrokeWidth: 1,\n percentageInnerCutout: 50,\n animationSteps: 100,\n animationEasing: 'easeOutBounce',\n animateRotate: true,\n animateScale: false,\n responsive: true,\n maintainAspectRatio: false,\n legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<segments.length; i++){%><li><span style=\\'background-color:<%=segments[i].fillColor%>\\'></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',\n tooltipTemplate: '<%=value %> <%=label%> users'\n };\n pieChart.Doughnut(PieData, pieOptions);\n\n /* jVector Maps\n * ------------\n * Create a world map with markers\n */\n $('#world-map-markers').vectorMap({\n map: 'world_mill_en',\n normalizeFunction: 'polynomial',\n hoverOpacity: 0.7,\n hoverColor: false,\n backgroundColor: 'transparent',\n regionStyle: {\n initial: {\n fill: 'rgba(210, 214, 222, 1)',\n 'fill-opacity': 1,\n stroke: 'none',\n 'stroke-width': 0,\n 'stroke-opacity': 1\n },\n hover: {\n 'fill-opacity': 0.7,\n cursor: 'pointer'\n },\n selected: {\n fill: 'yellow'\n },\n selectedHover: {}\n },\n markerStyle: {\n initial: {\n fill: '#00a65a',\n stroke: '#111'\n }\n },\n markers: [{\n latLng: [41.90, 12.45],\n name: 'Vatican City'\n }, {\n latLng: [43.73, 7.41],\n name: 'Monaco'\n }, {\n latLng: [-0.52, 166.93],\n name: 'Nauru'\n }, {\n latLng: [-8.51, 179.21],\n name: 'Tuvalu'\n }, {\n latLng: [43.93, 12.46],\n name: 'San Marino'\n }, {\n latLng: [47.14, 9.52],\n name: 'Liechtenstein'\n }, {\n latLng: [7.11, 171.06],\n name: 'Marshall Islands'\n }, {\n latLng: [17.3, -62.73],\n name: 'Saint Kitts and Nevis'\n }, {\n latLng: [3.2, 73.22],\n name: 'Maldives'\n }, {\n latLng: [35.88, 14.5],\n name: 'Malta'\n }, {\n latLng: [12.05, -61.75],\n name: 'Grenada'\n }, {\n latLng: [13.16, -61.23],\n name: 'Saint Vincent and the Grenadines'\n }, {\n latLng: [13.16, -59.55],\n name: 'Barbados'\n }, {\n latLng: [17.11, -61.85],\n name: 'Antigua and Barbuda'\n }, {\n latLng: [-4.61, 55.45],\n name: 'Seychelles'\n }, {\n latLng: [7.35, 134.46],\n name: 'Palau'\n }, {\n latLng: [42.5, 1.51],\n name: 'Andorra'\n }, {\n latLng: [14.01, -60.98],\n name: 'Saint Lucia'\n }, {\n latLng: [6.91, 158.18],\n name: 'Federated States of Micronesia'\n }, {\n latLng: [1.3, 103.8],\n name: 'Singapore'\n }, {\n latLng: [1.46, 173.03],\n name: 'Kiribati'\n }, {\n latLng: [-21.13, -175.2],\n name: 'Tonga'\n }, {\n latLng: [15.3, -61.38],\n name: 'Dominica'\n }, {\n latLng: [-20.2, 57.5],\n name: 'Mauritius'\n }, {\n latLng: [26.02, 50.55],\n name: 'Bahrain'\n }, {\n latLng: [0.33, 6.73],\n name: 'São Tomé and Príncipe'\n }]\n });\n});\n\n//---------------------------------------------------------END OF CHARTS------------------------------------------------------\n\n\n/**\n * AdminLTE Demo Menu\n * ------------------\n * You should not use this file in production.\n * This file is for demo purposes only.\n */\n$(function () {\n 'use strict';\n\n /**\n * Get access to plugins\n */\n\n $('[data-toggle=\"control-sidebar\"]').controlSidebar();\n $('[data-toggle=\"push-menu\"]').pushMenu();\n\n var $pushMenu = $('[data-toggle=\"push-menu\"]').data('lte.pushmenu');\n var $controlSidebar = $('[data-toggle=\"control-sidebar\"]').data('lte.controlsidebar');\n var $layout = $('body').data('lte.layout');\n\n /**\n * List of all the available skins\n *\n * @type Array\n */\n var mySkins = ['skin-blue', 'skin-black', 'skin-red', 'skin-yellow', 'skin-purple', 'skin-green', 'skin-blue-light', 'skin-black-light', 'skin-red-light', 'skin-yellow-light', 'skin-purple-light', 'skin-green-light'];\n\n /**\n * Get a prestored setting\n *\n * @param String name Name of of the setting\n * @returns String The value of the setting | null\n */\n function get(name) {\n if (typeof Storage !== 'undefined') {\n return localStorage.getItem(name);\n } else {\n window.alert('Please use a modern browser to properly view this template!');\n }\n }\n\n /**\n * Store a new settings in the browser\n *\n * @param String name Name of the setting\n * @param String val Value of the setting\n * @returns void\n */\n function store(name, val) {\n if (typeof Storage !== 'undefined') {\n localStorage.setItem(name, val);\n } else {\n window.alert('Please use a modern browser to properly view this template!');\n }\n }\n\n /**\n * Toggles layout classes\n *\n * @param String cls the layout class to toggle\n * @returns void\n */\n function changeLayout(cls) {\n $('body').toggleClass(cls);\n $layout.fixSidebar();\n if ($('body').hasClass('fixed') && cls == 'fixed') {\n $pushMenu.expandOnHover();\n $layout.activate();\n }\n $controlSidebar.fix();\n }\n\n /**\n * Replaces the old skin with the new skin\n * @param String cls the new skin class\n * @returns Boolean false to prevent link's default action\n */\n function changeSkin(cls) {\n $.each(mySkins, function (i) {\n $('body').removeClass(mySkins[i]);\n });\n\n $('body').addClass(cls);\n store('skin', cls);\n return false;\n }\n\n /**\n * Retrieve default settings and apply them to the template\n *\n * @returns void\n */\n function setup() {\n var tmp = get('skin');\n if (tmp && $.inArray(tmp, mySkins)) changeSkin(tmp);\n\n // Add the change skin listener\n $('[data-skin]').on('click', function (e) {\n if ($(this).hasClass('knob')) return;\n e.preventDefault();\n changeSkin($(this).data('skin'));\n });\n\n // Add the layout manager\n $('[data-layout]').on('click', function () {\n changeLayout($(this).data('layout'));\n });\n\n $('[data-controlsidebar]').on('click', function () {\n changeLayout($(this).data('controlsidebar'));\n var slide = !$controlSidebar.options.slide;\n\n $controlSidebar.options.slide = slide;\n if (!slide) $('.control-sidebar').removeClass('control-sidebar-open');\n });\n\n $('[data-sidebarskin=\"toggle\"]').on('click', function () {\n var $sidebar = $('.control-sidebar');\n if ($sidebar.hasClass('control-sidebar-dark')) {\n $sidebar.removeClass('control-sidebar-dark');\n $sidebar.addClass('control-sidebar-light');\n } else {\n $sidebar.removeClass('control-sidebar-light');\n $sidebar.addClass('control-sidebar-dark');\n }\n });\n\n $('[data-enable=\"expandOnHover\"]').on('click', function () {\n $(this).attr('disabled', true);\n $pushMenu.expandOnHover();\n if (!$('body').hasClass('sidebar-collapse')) $('[data-layout=\"sidebar-collapse\"]').click();\n });\n\n // Reset options\n if ($('body').hasClass('fixed')) {\n $('[data-layout=\"fixed\"]').attr('checked', 'checked');\n }\n if ($('body').hasClass('layout-boxed')) {\n $('[data-layout=\"layout-boxed\"]').attr('checked', 'checked');\n }\n if ($('body').hasClass('sidebar-collapse')) {\n $('[data-layout=\"sidebar-collapse\"]').attr('checked', 'checked');\n }\n }\n\n // Create the new tab\n var $tabPane = $('<div />', {\n 'id': 'control-sidebar-theme-demo-options-tab',\n 'class': 'tab-pane active'\n });\n\n // Create the tab button\n var $tabButton = $('<li />', {\n 'class': 'active'\n }).html('<a href=\\'#control-sidebar-theme-demo-options-tab\\' data-toggle=\\'tab\\'>' + '<i class=\"fa fa-wrench\"></i>' + '</a>');\n\n // Add the tab button to the right sidebar tabs\n $('[href=\"#control-sidebar-home-tab\"]').parent().before($tabButton);\n\n // Create the menu\n var $demoSettings = $('<div />');\n\n // Layout options\n $demoSettings.append('<h4 class=\"control-sidebar-heading\">' + 'Layout Options' + '</h4>'\n // Fixed layout\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-layout=\"fixed\"class=\"pull-right\"/> ' + 'Fixed layout' + '</label>' + '<p>Activate the fixed layout. You can\\'t use fixed and boxed layouts together</p>' + '</div>'\n // Boxed layout\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-layout=\"layout-boxed\" class=\"pull-right\"/> ' + 'Boxed Layout' + '</label>' + '<p>Activate the boxed layout</p>' + '</div>'\n // Sidebar Toggle\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-layout=\"sidebar-collapse\"class=\"pull-right\"/> ' + 'Toggle Sidebar' + '</label>' + '<p>Toggle the left sidebar\\'s state (open or collapse)</p>' + '</div>'\n // Sidebar mini expand on hover toggle\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-enable=\"expandOnHover\"class=\"pull-right\"/> ' + 'Sidebar Expand on Hover' + '</label>' + '<p>Let the sidebar mini expand on hover</p>' + '</div>'\n // Control Sidebar Toggle\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-controlsidebar=\"control-sidebar-open\"class=\"pull-right\"/> ' + 'Toggle Right Sidebar Slide' + '</label>' + '<p>Toggle between slide over content and push content effects</p>' + '</div>'\n // Control Sidebar Skin Toggle\n + '<div class=\"form-group\">' + '<label class=\"control-sidebar-subheading\">' + '<input type=\"checkbox\"data-sidebarskin=\"toggle\"class=\"pull-right\"/> ' + 'Toggle Right Sidebar Skin' + '</label>' + '<p>Toggle between dark and light skins for the right sidebar</p>' + '</div>');\n var $skinsList = $('<ul />', {\n 'class': 'list-unstyled clearfix'\n });\n\n // Dark sidebar skins\n var $skinBlue = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-blue\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px; background: #367fa9\"></span><span class=\"bg-light-blue\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222d32\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Blue</p>');\n $skinsList.append($skinBlue);\n var $skinBlack = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-black\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div style=\"box-shadow: 0 0 2px rgba(0,0,0,0.1)\" class=\"clearfix\"><span style=\"display:block; width: 20%; float: left; height: 7px; background: #fefefe\"></span><span style=\"display:block; width: 80%; float: left; height: 7px; background: #fefefe\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Black</p>');\n $skinsList.append($skinBlack);\n var $skinPurple = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-purple\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-purple-active\"></span><span class=\"bg-purple\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222d32\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Purple</p>');\n $skinsList.append($skinPurple);\n var $skinGreen = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-green\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-green-active\"></span><span class=\"bg-green\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222d32\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Green</p>');\n $skinsList.append($skinGreen);\n var $skinRed = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-red\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-red-active\"></span><span class=\"bg-red\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222d32\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Red</p>');\n $skinsList.append($skinRed);\n var $skinYellow = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-yellow\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-yellow-active\"></span><span class=\"bg-yellow\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #222d32\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\">Yellow</p>');\n $skinsList.append($skinYellow);\n\n // Light sidebar skins\n var $skinBlueLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-blue-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px; background: #367fa9\"></span><span class=\"bg-light-blue\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Blue Light</p>');\n $skinsList.append($skinBlueLight);\n var $skinBlackLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-black-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div style=\"box-shadow: 0 0 2px rgba(0,0,0,0.1)\" class=\"clearfix\"><span style=\"display:block; width: 20%; float: left; height: 7px; background: #fefefe\"></span><span style=\"display:block; width: 80%; float: left; height: 7px; background: #fefefe\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Black Light</p>');\n $skinsList.append($skinBlackLight);\n var $skinPurpleLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-purple-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-purple-active\"></span><span class=\"bg-purple\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Purple Light</p>');\n $skinsList.append($skinPurpleLight);\n var $skinGreenLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-green-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-green-active\"></span><span class=\"bg-green\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Green Light</p>');\n $skinsList.append($skinGreenLight);\n var $skinRedLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-red-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-red-active\"></span><span class=\"bg-red\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Red Light</p>');\n $skinsList.append($skinRedLight);\n var $skinYellowLight = $('<li />', {\n style: 'float:left; width: 33.33333%; padding: 5px;'\n }).append('<a href=\"javascript:void(0)\" data-skin=\"skin-yellow-light\" style=\"display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)\" class=\"clearfix full-opacity-hover\">' + '<div><span style=\"display:block; width: 20%; float: left; height: 7px;\" class=\"bg-yellow-active\"></span><span class=\"bg-yellow\" style=\"display:block; width: 80%; float: left; height: 7px;\"></span></div>' + '<div><span style=\"display:block; width: 20%; float: left; height: 20px; background: #f9fafc\"></span><span style=\"display:block; width: 80%; float: left; height: 20px; background: #f4f5f7\"></span></div>' + '</a>' + '<p class=\"text-center no-margin\" style=\"font-size: 12px\">Yellow Light</p>');\n $skinsList.append($skinYellowLight);\n\n $demoSettings.append('<h4 class=\"control-sidebar-heading\">Skins</h4>');\n $demoSettings.append($skinsList);\n\n $tabPane.append($demoSettings);\n $('#control-sidebar-home-tab').after($tabPane);\n\n setup();\n\n $('[data-toggle=\"tooltip\"]').tooltip();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2FkbWluLmpzPzI5ODYiXSwibmFtZXMiOlsid2luZG93IiwiJCIsImpRdWVyeSIsInJlcXVpcmUiLCJDaGFydCIsInNhbGVzQ2hhcnRDYW52YXMiLCJnZXQiLCJnZXRDb250ZXh0Iiwic2FsZXNDaGFydCIsInNhbGVzQ2hhcnREYXRhIiwibGFiZWxzIiwiZGF0YXNldHMiLCJsYWJlbCIsImZpbGxDb2xvciIsInN0cm9rZUNvbG9yIiwicG9pbnRDb2xvciIsInBvaW50U3Ryb2tlQ29sb3IiLCJwb2ludEhpZ2hsaWdodEZpbGwiLCJwb2ludEhpZ2hsaWdodFN0cm9rZSIsImRhdGEiLCJzYWxlc0NoYXJ0T3B0aW9ucyIsInNob3dTY2FsZSIsInNjYWxlU2hvd0dyaWRMaW5lcyIsInNjYWxlR3JpZExpbmVDb2xvciIsInNjYWxlR3JpZExpbmVXaWR0aCIsInNjYWxlU2hvd0hvcml6b250YWxMaW5lcyIsInNjYWxlU2hvd1ZlcnRpY2FsTGluZXMiLCJiZXppZXJDdXJ2ZSIsImJlemllckN1cnZlVGVuc2lvbiIsInBvaW50RG90IiwicG9pbnREb3RSYWRpdXMiLCJwb2ludERvdFN0cm9rZVdpZHRoIiwicG9pbnRIaXREZXRlY3Rpb25SYWRpdXMiLCJkYXRhc2V0U3Ryb2tlIiwiZGF0YXNldFN0cm9rZVdpZHRoIiwiZGF0YXNldEZpbGwiLCJsZWdlbmRUZW1wbGF0ZSIsIm1haW50YWluQXNwZWN0UmF0aW8iLCJyZXNwb25zaXZlIiwiTGluZSIsInBpZUNoYXJ0Q2FudmFzIiwicGllQ2hhcnQiLCJQaWVEYXRhIiwidmFsdWUiLCJjb2xvciIsImhpZ2hsaWdodCIsInBpZU9wdGlvbnMiLCJzZWdtZW50U2hvd1N0cm9rZSIsInNlZ21lbnRTdHJva2VDb2xvciIsInNlZ21lbnRTdHJva2VXaWR0aCIsInBlcmNlbnRhZ2VJbm5lckN1dG91dCIsImFuaW1hdGlvblN0ZXBzIiwiYW5pbWF0aW9uRWFzaW5nIiwiYW5pbWF0ZVJvdGF0ZSIsImFuaW1hdGVTY2FsZSIsInRvb2x0aXBUZW1wbGF0ZSIsIkRvdWdobnV0IiwidmVjdG9yTWFwIiwibWFwIiwibm9ybWFsaXplRnVuY3Rpb24iLCJob3Zlck9wYWNpdHkiLCJob3ZlckNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicmVnaW9uU3R5bGUiLCJpbml0aWFsIiwiZmlsbCIsInN0cm9rZSIsImhvdmVyIiwiY3Vyc29yIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEhvdmVyIiwibWFya2VyU3R5bGUiLCJtYXJrZXJzIiwibGF0TG5nIiwibmFtZSIsImNvbnRyb2xTaWRlYmFyIiwicHVzaE1lbnUiLCIkcHVzaE1lbnUiLCIkY29udHJvbFNpZGViYXIiLCIkbGF5b3V0IiwibXlTa2lucyIsIlN0b3JhZ2UiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiYWxlcnQiLCJzdG9yZSIsInZhbCIsInNldEl0ZW0iLCJjaGFuZ2VMYXlvdXQiLCJjbHMiLCJ0b2dnbGVDbGFzcyIsImZpeFNpZGViYXIiLCJoYXNDbGFzcyIsImV4cGFuZE9uSG92ZXIiLCJhY3RpdmF0ZSIsImZpeCIsImNoYW5nZVNraW4iLCJlYWNoIiwiaSIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJzZXR1cCIsInRtcCIsImluQXJyYXkiLCJvbiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInNsaWRlIiwib3B0aW9ucyIsIiRzaWRlYmFyIiwiYXR0ciIsImNsaWNrIiwiJHRhYlBhbmUiLCIkdGFiQnV0dG9uIiwiaHRtbCIsInBhcmVudCIsImJlZm9yZSIsIiRkZW1vU2V0dGluZ3MiLCJhcHBlbmQiLCIkc2tpbnNMaXN0IiwiJHNraW5CbHVlIiwic3R5bGUiLCIkc2tpbkJsYWNrIiwiJHNraW5QdXJwbGUiLCIkc2tpbkdyZWVuIiwiJHNraW5SZWQiLCIkc2tpblllbGxvdyIsIiRza2luQmx1ZUxpZ2h0IiwiJHNraW5CbGFja0xpZ2h0IiwiJHNraW5QdXJwbGVMaWdodCIsIiRza2luR3JlZW5MaWdodCIsIiRza2luUmVkTGln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RkksR0FHSixNQUhJLEdBSUosMkVBUEosQ0FESjtBQVNBQyxlQUFXRCxNQUFYLENBQWtCVyxnQkFBbEI7QUFDQSxRQUFJQyxrQkFDQWpJLEVBQUUsUUFBRixFQUFZO0FBQ1J3SCxlQUFPO0FBREMsS0FBWixFQUdDSCxNQUhELENBR1EsK0pBQ0osME1BREksR0FFSiwyTUFGSSxHQUdKLE1BSEksR0FJSiwwRUFQSixDQURKO0FBU0FDLGVBQVdELE1BQVgsQ0FBa0JZLGVBQWxCO0FBQ0EsUUFBSUMsZ0JBQ0FsSSxFQUFFLFFBQUYsRUFBWTtBQUNSd0gsZUFBTztBQURDLEtBQVosRUFHQ0gsTUFIRCxDQUdRLDZKQUNKLHNNQURJLEdBRUosMk1BRkksR0FHSixNQUhJLEdBSUosd0VBUEosQ0FESjtBQVNBQyxlQUFXRCxNQUFYLENBQWtCYSxhQUFsQjtBQUNBLFFBQUlDLG1CQUNBbkksRUFBRSxRQUFGLEVBQVk7QUFDUndILGVBQU87QUFEQyxLQUFaLEVBR0NILE1BSEQsQ0FHUSxnS0FDSiw0TUFESSxHQUVKLDJNQUZJLEdBR0osTUFISSxHQUlKLDJFQVBKLENBREo7QUFTQUMsZUFBV0QsTUFBWCxDQUFrQmMsZ0JBQWxCOztBQUVBZixrQkFBY0MsTUFBZCxDQUFxQixnREFBckI7QUFDQUQsa0JBQWNDLE1BQWQsQ0FBcUJDLFVBQXJCOztBQUVBUCxhQUFTTSxNQUFULENBQWdCRCxhQUFoQjtBQUNBcEgsTUFBRSwyQkFBRixFQUErQm9JLEtBQS9CLENBQXFDckIsUUFBckM7O0FBRUFYOztBQUVBcEcsTUFBRSx5QkFBRixFQUE2QnFJLE9BQTdCO0FBQ0gsQ0F4WEQiLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ3aW5kb3cuJCA9IHdpbmRvdy5qUXVlcnkgPSByZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9qcXVlcnkvZGlzdC9qcXVlcnkubWluLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvYm9vdHN0cmFwL2Rpc3QvanMvYm9vdHN0cmFwLm1pbi5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Zhc3RjbGljay9saWIvZmFzdGNsaWNrLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Rpc3QvanMvYWRtaW5sdGUubWluLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL3BsdWdpbnMvanZlY3Rvcm1hcC9qcXVlcnktanZlY3Rvcm1hcC0xLjIuMi5taW4uanNcIik7XG5yZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvcGx1Z2lucy9qdmVjdG9ybWFwL2pxdWVyeS1qdmVjdG9ybWFwLXdvcmxkLW1pbGwtZW4uanNcIik7XG5yZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9qcXVlcnktc2xpbXNjcm9sbC9qcXVlcnkuc2xpbXNjcm9sbC5taW4uanNcIik7XG53aW5kb3cuQ2hhcnQgPSByZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9jaGFydC5qcy9DaGFydC5qc1wiKTtcblxuXG4kKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG4gICAgLyogQ2hhcnRKU1xuICAgICAqIC0tLS0tLS1cbiAgICAgKiBDaGFydHNcbiAgICAgKi9cblxuICAgIC8vIHNhbGVzIGV4YW1wbGUgY2hhcnRcbiAgICB2YXIgc2FsZXNDaGFydENhbnZhcyA9ICQoJyNzYWxlc0NoYXJ0JykuZ2V0KDApLmdldENvbnRleHQoJzJkJyk7XG4gICAgdmFyIHNhbGVzQ2hhcnQgPSBuZXcgQ2hhcnQoc2FsZXNDaGFydENhbnZhcyk7XG4gICAgdmFyIHNhbGVzQ2hhcnREYXRhID0ge1xuICAgICAgICBsYWJlbHM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5J10sXG4gICAgICAgIGRhdGFzZXRzOiBbe1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnRWxlY3Ryb25pY3MnLFxuICAgICAgICAgICAgICAgIGZpbGxDb2xvcjogJ3JnYigyMTAsIDIxNCwgMjIyKScsXG4gICAgICAgICAgICAgICAgc3Ryb2tlQ29sb3I6ICdyZ2IoMjEwLCAyMTQsIDIyMiknLFxuICAgICAgICAgICAgICAgIHBvaW50Q29sb3I6ICdyZ2IoMjEwLCAyMTQsIDIyMiknLFxuICAgICAgICAgICAgICAgIHBvaW50U3Ryb2tlQ29sb3I6ICcjYzFjN2QxJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodEZpbGw6ICcjZmZmJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodFN0cm9rZTogJ3JnYigyMjAsMjIwLDIyMCknLFxuICAgICAgICAgICAgICAgIGRhdGE6IFs2NSwgNTksIDgwLCA4MSwgNTYsIDU1LCA0MF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdEaWdpdGFsIEdvb2RzJyxcbiAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZ2JhKDYwLDE0MSwxODgsMC45KScsXG4gICAgICAgICAgICAgICAgc3Ryb2tlQ29sb3I6ICdyZ2JhKDYwLDE0MSwxODgsMC44KScsXG4gICAgICAgICAgICAgICAgcG9pbnRDb2xvcjogJyMzYjhiYmEnLFxuICAgICAgICAgICAgICAgIHBvaW50U3Ryb2tlQ29sb3I6ICdyZ2JhKDYwLDE0MSwxODgsMSknLFxuICAgICAgICAgICAgICAgIHBvaW50SGlnaGxpZ2h0RmlsbDogJyNmZmYnLFxuICAgICAgICAgICAgICAgIHBvaW50SGlnaGxpZ2h0U3Ryb2tlOiAncmdiYSg2MCwxNDEsMTg4LDEpJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBbMjgsIDQ4LCA0MCwgMTksIDg2LCAyNywgOTBdXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xuICAgIHZhciBzYWxlc0NoYXJ0T3B0aW9ucyA9IHtcbiAgICAgICAgc2hvd1NjYWxlOiB0cnVlLFxuICAgICAgICBzY2FsZVNob3dHcmlkTGluZXM6IGZhbHNlLFxuICAgICAgICBzY2FsZUdyaWRMaW5lQ29sb3I6ICdyZ2JhKDAsMCwwLC4wNSknLFxuICAgICAgICBzY2FsZUdyaWRMaW5lV2lkdGg6IDEsXG4gICAgICAgIHNjYWxlU2hvd0hvcml6b250YWxMaW5lczogdHJ1ZSxcbiAgICAgICAgc2NhbGVTaG93VmVydGljYWxMaW5lczogdHJ1ZSxcbiAgICAgICAgYmV6aWVyQ3VydmU6IHRydWUsXG4gICAgICAgIGJlemllckN1cnZlVGVuc2lvbjogMC4zLFxuICAgICAgICBwb2ludERvdDogZmFsc2UsXG4gICAgICAgIHBvaW50RG90UmFkaXVzOiA0LFxuICAgICAgICBwb2ludERvdFN0cm9rZVdpZHRoOiAxLFxuICAgICAgICBwb2ludEhpdERldGVjdGlvblJhZGl1czogMjAsXG4gICAgICAgIGRhdGFzZXRTdHJva2U6IHRydWUsXG4gICAgICAgIGRhdGFzZXRTdHJva2VXaWR0aDogMixcbiAgICAgICAgZGF0YXNldEZpbGw6IHRydWUsXG4gICAgICAgIGxlZ2VuZFRlbXBsYXRlOiAnPHVsIGNsYXNzPVxcJzwlPW5hbWUudG9Mb3dlckNhc2UoKSU+LWxlZ2VuZFxcJz48JSBmb3IgKHZhciBpPTA7IGk8ZGF0YXNldHMubGVuZ3RoOyBpKyspeyU+PGxpPjxzcGFuIHN0eWxlPVxcJ2JhY2tncm91bmQtY29sb3I6PCU9ZGF0YXNldHNbaV0ubGluZUNvbG9yJT5cXCc+PC9zcGFuPjwlPWRhdGFzZXRzW2ldLmxhYmVsJT48L2xpPjwlfSU+PC91bD4nLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlOiB0cnVlXG4gICAgfTtcbiAgICBzYWxlc0NoYXJ0LkxpbmUoc2FsZXNDaGFydERhdGEsIHNhbGVzQ2hhcnRPcHRpb25zKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS1cbiAgICAvLyAtIFBJRSBDSEFSVCAtXG4gICAgLy8gLS0tLS0tLS0tLS0tLVxuICAgIHZhciBwaWVDaGFydENhbnZhcyA9ICQoJyNwaWVDaGFydCcpLmdldCgwKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBwaWVDaGFydCA9IG5ldyBDaGFydChwaWVDaGFydENhbnZhcyk7XG4gICAgdmFyIFBpZURhdGEgPSBbe1xuICAgICAgICAgICAgdmFsdWU6IDcwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1Njk1NCcsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjZjU2OTU0JyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ2hyb21lJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogNTAwLFxuICAgICAgICAgICAgY29sb3I6ICcjMDBhNjVhJyxcbiAgICAgICAgICAgIGhpZ2hsaWdodDogJyMwMGE2NWEnLFxuICAgICAgICAgICAgbGFiZWw6ICdJRSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDQwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnI2YzOWMxMicsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjZjM5YzEyJyxcbiAgICAgICAgICAgIGxhYmVsOiAnRmlyZUZveCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDYwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzAwYzBlZicsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjMDBjMGVmJyxcbiAgICAgICAgICAgIGxhYmVsOiAnU2FmYXJpJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogMzAwLFxuICAgICAgICAgICAgY29sb3I6ICcjM2M4ZGJjJyxcbiAgICAgICAgICAgIGhpZ2hsaWdodDogJyMzYzhkYmMnLFxuICAgICAgICAgICAgbGFiZWw6ICdPcGVyYSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDEwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnI2QyZDZkZScsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjZDJkNmRlJyxcbiAgICAgICAgICAgIGxhYmVsOiAnTmF2aWdhdG9yJ1xuICAgICAgICB9XG4gICAgXTtcbiAgICB2YXIgcGllT3B0aW9ucyA9IHtcbiAgICAgICAgc2VnbWVudFNob3dTdHJva2U6IHRydWUsXG4gICAgICAgIHNlZ21lbnRTdHJva2VDb2xvcjogJyNmZmYnLFxuICAgICAgICBzZWdtZW50U3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgIHBlcmNlbnRhZ2VJbm5lckN1dG91dDogNTAsXG4gICAgICAgIGFuaW1hdGlvblN0ZXBzOiAxMDAsXG4gICAgICAgIGFuaW1hdGlvbkVhc2luZzogJ2Vhc2VPdXRCb3VuY2UnLFxuICAgICAgICBhbmltYXRlUm90YXRlOiB0cnVlLFxuICAgICAgICBhbmltYXRlU2NhbGU6IGZhbHNlLFxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcbiAgICAgICAgbGVnZW5kVGVtcGxhdGU6ICc8dWwgY2xhc3M9XFwnPCU9bmFtZS50b0xvd2VyQ2FzZSgpJT4tbGVnZW5kXFwnPjwlIGZvciAodmFyIGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7IGkrKyl7JT48bGk+PHNwYW4gc3R5bGU9XFwnYmFja2dyb3VuZC1jb2xvcjo8JT1zZWdtZW50c1tpXS5maWxsQ29sb3IlPlxcJz48L3NwYW4+PCVpZihzZWdtZW50c1tpXS5sYWJlbCl7JT48JT1zZWdtZW50c1tpXS5sYWJlbCU+PCV9JT48L2xpPjwlfSU+PC91bD4nLFxuICAgICAgICB0b29sdGlwVGVtcGxhdGU6ICc8JT12YWx1ZSAlPiA8JT1sYWJlbCU+IHVzZXJzJ1xuICAgIH07XG4gICAgcGllQ2hhcnQuRG91Z2hudXQoUGllRGF0YSwgcGllT3B0aW9ucyk7XG5cblxuICAgIC8qIGpWZWN0b3IgTWFwc1xuICAgICAqIC0tLS0tLS0tLS0tLVxuICAgICAqIENyZWF0ZSBhIHdvcmxkIG1hcCB3aXRoIG1hcmtlcnNcbiAgICAgKi9cbiAgICAkKCcjd29ybGQtbWFwLW1hcmtlcnMnKS52ZWN0b3JNYXAoe1xuICAgICAgICBtYXA6ICd3b3JsZF9taWxsX2VuJyxcbiAgICAgICAgbm9ybWFsaXplRnVuY3Rpb246ICdwb2x5bm9taWFsJyxcbiAgICAgICAgaG92ZXJPcGFjaXR5OiAwLjcsXG4gICAgICAgIGhvdmVyQ29sb3I6IGZhbHNlLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIHJlZ2lvblN0eWxlOiB7XG4gICAgICAgICAgICBpbml0aWFsOiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJ3JnYmEoMjEwLCAyMTQsIDIyMiwgMSknLFxuICAgICAgICAgICAgICAgICdmaWxsLW9wYWNpdHknOiAxLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICdzdHJva2Utd2lkdGgnOiAwLFxuICAgICAgICAgICAgICAgICdzdHJva2Utb3BhY2l0eSc6IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBob3Zlcjoge1xuICAgICAgICAgICAgICAgICdmaWxsLW9wYWNpdHknOiAwLjcsXG4gICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3RlZDoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICd5ZWxsb3cnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0ZWRIb3Zlcjoge31cbiAgICAgICAgfSxcbiAgICAgICAgbWFya2VyU3R5bGU6IHtcbiAgICAgICAgICAgIGluaXRpYWw6IHtcbiAgICAgICAgICAgICAgICBmaWxsOiAnIzAwYTY1YScsXG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAnIzExMSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWFya2VyczogW3tcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0MS45MCwgMTIuNDVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdWYXRpY2FuIENpdHknXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzQzLjczLCA3LjQxXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTW9uYWNvJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstMC41MiwgMTY2LjkzXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTmF1cnUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWy04LjUxLCAxNzkuMjFdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdUdXZhbHUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzQzLjkzLCAxMi40Nl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhbiBNYXJpbm8nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzQ3LjE0LCA5LjUyXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTGllY2h0ZW5zdGVpbidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNy4xMSwgMTcxLjA2XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTWFyc2hhbGwgSXNsYW5kcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTcuMywgLTYyLjczXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFszLjIsIDczLjIyXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTWFsZGl2ZXMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzM1Ljg4LCAxNC41XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTWFsdGEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzEyLjA1LCAtNjEuNzVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdHcmVuYWRhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxMy4xNiwgLTYxLjIzXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzEzLjE2LCAtNTkuNTVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdCYXJiYWRvcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTcuMTEsIC02MS44NV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWy00LjYxLCA1NS40NV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NleWNoZWxsZXMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzcuMzUsIDEzNC40Nl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1BhbGF1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0Mi41LCAxLjUxXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQW5kb3JyYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTQuMDEsIC02MC45OF0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhaW50IEx1Y2lhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs2LjkxLCAxNTguMThdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdGZWRlcmF0ZWQgU3RhdGVzIG9mIE1pY3JvbmVzaWEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzEuMywgMTAzLjhdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTaW5nYXBvcmUnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzEuNDYsIDE3My4wM10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0tpcmliYXRpJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstMjEuMTMsIC0xNzUuMl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1RvbmdhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxNS4zLCAtNjEuMzhdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdEb21pbmljYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbLTIwLjIsIDU3LjVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdNYXVyaXRpdXMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzI2LjAyLCA1MC41NV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0JhaHJhaW4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzAuMzMsIDYuNzNdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTw6NvIFRvbcOpIGFuZCBQcsOtbmNpcGUnXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9KTtcbn0pO1xuXG5cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1FTkQgT0YgQ0hBUlRTLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLyoqXG4gKiBBZG1pbkxURSBEZW1vIE1lbnVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLVxuICogWW91IHNob3VsZCBub3QgdXNlIHRoaXMgZmlsZSBpbiBwcm9kdWN0aW9uLlxuICogVGhpcyBmaWxlIGlzIGZvciBkZW1vIHB1cnBvc2VzIG9ubHkuXG4gKi9cbiQoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKlxuICAgICAqIEdldCBhY2Nlc3MgdG8gcGx1Z2luc1xuICAgICAqL1xuXG4gICAgJCgnW2RhdGEtdG9nZ2xlPVwiY29udHJvbC1zaWRlYmFyXCJdJykuY29udHJvbFNpZGViYXIoKVxuICAgICQoJ1tkYXRhLXRvZ2dsZT1cInB1c2gtbWVudVwiXScpLnB1c2hNZW51KClcblxuICAgIHZhciAkcHVzaE1lbnUgPSAkKCdbZGF0YS10b2dnbGU9XCJwdXNoLW1lbnVcIl0nKS5kYXRhKCdsdGUucHVzaG1lbnUnKVxuICAgIHZhciAkY29udHJvbFNpZGViYXIgPSAkKCdbZGF0YS10b2dnbGU9XCJjb250cm9sLXNpZGViYXJcIl0nKS5kYXRhKCdsdGUuY29udHJvbHNpZGViYXInKVxuICAgIHZhciAkbGF5b3V0ID0gJCgnYm9keScpLmRhdGEoJ2x0ZS5sYXlvdXQnKVxuXG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBhbGwgdGhlIGF2YWlsYWJsZSBza2luc1xuICAgICAqXG4gICAgICogQHR5cGUgQXJyYXlcbiAgICAgKi9cbiAgICB2YXIgbXlTa2lucyA9IFtcbiAgICAgICAgJ3NraW4tYmx1ZScsXG4gICAgICAgICdza2luLWJsYWNrJyxcbiAgICAgICAgJ3NraW4tcmVkJyxcbiAgICAgICAgJ3NraW4teWVsbG93JyxcbiAgICAgICAgJ3NraW4tcHVycGxlJyxcbiAgICAgICAgJ3NraW4tZ3JlZW4nLFxuICAgICAgICAnc2tpbi1ibHVlLWxpZ2h0JyxcbiAgICAgICAgJ3NraW4tYmxhY2stbGlnaHQnLFxuICAgICAgICAnc2tpbi1yZWQtbGlnaHQnLFxuICAgICAgICAnc2tpbi15ZWxsb3ctbGlnaHQnLFxuICAgICAgICAnc2tpbi1wdXJwbGUtbGlnaHQnLFxuICAgICAgICAnc2tpbi1ncmVlbi1saWdodCdcbiAgICBdXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYSBwcmVzdG9yZWQgc2V0dGluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIFN0cmluZyBuYW1lIE5hbWUgb2Ygb2YgdGhlIHNldHRpbmdcbiAgICAgKiBAcmV0dXJucyBTdHJpbmcgVGhlIHZhbHVlIG9mIHRoZSBzZXR0aW5nIHwgbnVsbFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldChuYW1lKSB7XG4gICAgICAgIGlmICh0eXBlb2YgKFN0b3JhZ2UpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnQoJ1BsZWFzZSB1c2UgYSBtb2Rlcm4gYnJvd3NlciB0byBwcm9wZXJseSB2aWV3IHRoaXMgdGVtcGxhdGUhJylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlIGEgbmV3IHNldHRpbmdzIGluIHRoZSBicm93c2VyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gU3RyaW5nIG5hbWUgTmFtZSBvZiB0aGUgc2V0dGluZ1xuICAgICAqIEBwYXJhbSBTdHJpbmcgdmFsIFZhbHVlIG9mIHRoZSBzZXR0aW5nXG4gICAgICogQHJldHVybnMgdm9pZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHN0b3JlKG5hbWUsIHZhbCkge1xuICAgICAgICBpZiAodHlwZW9mIChTdG9yYWdlKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIHZhbClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydCgnUGxlYXNlIHVzZSBhIG1vZGVybiBicm93c2VyIHRvIHByb3Blcmx5IHZpZXcgdGhpcyB0ZW1wbGF0ZSEnKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyBsYXlvdXQgY2xhc3Nlc1xuICAgICAqXG4gICAgICogQHBhcmFtIFN0cmluZyBjbHMgdGhlIGxheW91dCBjbGFzcyB0byB0b2dnbGVcbiAgICAgKiBAcmV0dXJucyB2b2lkXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2hhbmdlTGF5b3V0KGNscykge1xuICAgICAgICAkKCdib2R5JykudG9nZ2xlQ2xhc3MoY2xzKVxuICAgICAgICAkbGF5b3V0LmZpeFNpZGViYXIoKVxuICAgICAgICBpZiAoJCgnYm9keScpLmhhc0NsYXNzKCdmaXhlZCcpICYmIGNscyA9PSAnZml4ZWQnKSB7XG4gICAgICAgICAgICAkcHVzaE1lbnUuZXhwYW5kT25Ib3ZlcigpXG4gICAgICAgICAgICAkbGF5b3V0LmFjdGl2YXRlKClcbiAgICAgICAgfVxuICAgICAgICAkY29udHJvbFNpZGViYXIuZml4KClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyB0aGUgb2xkIHNraW4gd2l0aCB0aGUgbmV3IHNraW5cbiAgICAgKiBAcGFyYW0gU3RyaW5nIGNscyB0aGUgbmV3IHNraW4gY2xhc3NcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIGZhbHNlIHRvIHByZXZlbnQgbGluaydzIGRlZmF1bHQgYWN0aW9uXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2hhbmdlU2tpbihjbHMpIHtcbiAgICAgICAgJC5lYWNoKG15U2tpbnMsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MobXlTa2luc1tpXSlcbiAgICAgICAgfSlcblxuICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoY2xzKVxuICAgICAgICBzdG9yZSgnc2tpbicsIGNscylcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgZGVmYXVsdCBzZXR0aW5ncyBhbmQgYXBwbHkgdGhlbSB0byB0aGUgdGVtcGxhdGVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXR1cCgpIHtcbiAgICAgICAgdmFyIHRtcCA9IGdldCgnc2tpbicpXG4gICAgICAgIGlmICh0bXAgJiYgJC5pbkFycmF5KHRtcCwgbXlTa2lucykpXG4gICAgICAgICAgICBjaGFuZ2VTa2luKHRtcClcblxuICAgICAgICAvLyBBZGQgdGhlIGNoYW5nZSBza2luIGxpc3RlbmVyXG4gICAgICAgICQoJ1tkYXRhLXNraW5dJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdrbm9iJykpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGNoYW5nZVNraW4oJCh0aGlzKS5kYXRhKCdza2luJykpXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gQWRkIHRoZSBsYXlvdXQgbWFuYWdlclxuICAgICAgICAkKCdbZGF0YS1sYXlvdXRdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2hhbmdlTGF5b3V0KCQodGhpcykuZGF0YSgnbGF5b3V0JykpXG4gICAgICAgIH0pXG5cbiAgICAgICAgJCgnW2RhdGEtY29udHJvbHNpZGViYXJdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY2hhbmdlTGF5b3V0KCQodGhpcykuZGF0YSgnY29udHJvbHNpZGViYXInKSlcbiAgICAgICAgICAgIHZhciBzbGlkZSA9ICEkY29udHJvbFNpZGViYXIub3B0aW9ucy5zbGlkZVxuXG4gICAgICAgICAgICAkY29udHJvbFNpZGViYXIub3B0aW9ucy5zbGlkZSA9IHNsaWRlXG4gICAgICAgICAgICBpZiAoIXNsaWRlKVxuICAgICAgICAgICAgICAgICQoJy5jb250cm9sLXNpZGViYXInKS5yZW1vdmVDbGFzcygnY29udHJvbC1zaWRlYmFyLW9wZW4nKVxuICAgICAgICB9KVxuXG4gICAgICAgICQoJ1tkYXRhLXNpZGViYXJza2luPVwidG9nZ2xlXCJdJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyICRzaWRlYmFyID0gJCgnLmNvbnRyb2wtc2lkZWJhcicpXG4gICAgICAgICAgICBpZiAoJHNpZGViYXIuaGFzQ2xhc3MoJ2NvbnRyb2wtc2lkZWJhci1kYXJrJykpIHtcbiAgICAgICAgICAgICAgICAkc2lkZWJhci5yZW1vdmVDbGFzcygnY29udHJvbC1zaWRlYmFyLWRhcmsnKVxuICAgICAgICAgICAgICAgICRzaWRlYmFyLmFkZENsYXNzKCdjb250cm9sLXNpZGViYXItbGlnaHQnKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkc2lkZWJhci5yZW1vdmVDbGFzcygnY29udHJvbC1zaWRlYmFyLWxpZ2h0JylcbiAgICAgICAgICAgICAgICAkc2lkZWJhci5hZGRDbGFzcygnY29udHJvbC1zaWRlYmFyLWRhcmsnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgICQoJ1tkYXRhLWVuYWJsZT1cImV4cGFuZE9uSG92ZXJcIl0nKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSlcbiAgICAgICAgICAgICRwdXNoTWVudS5leHBhbmRPbkhvdmVyKClcbiAgICAgICAgICAgIGlmICghJCgnYm9keScpLmhhc0NsYXNzKCdzaWRlYmFyLWNvbGxhcHNlJykpXG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtbGF5b3V0PVwic2lkZWJhci1jb2xsYXBzZVwiXScpLmNsaWNrKClcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAgUmVzZXQgb3B0aW9uc1xuICAgICAgICBpZiAoJCgnYm9keScpLmhhc0NsYXNzKCdmaXhlZCcpKSB7XG4gICAgICAgICAgICAkKCdbZGF0YS1sYXlvdXQ9XCJmaXhlZFwiXScpLmF0dHIoJ2NoZWNrZWQnLCAnY2hlY2tlZCcpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCQoJ2JvZHknKS5oYXNDbGFzcygnbGF5b3V0LWJveGVkJykpIHtcbiAgICAgICAgICAgICQoJ1tkYXRhLWxheW91dD1cImxheW91dC1ib3hlZFwiXScpLmF0dHIoJ2NoZWNrZWQnLCAnY2hlY2tlZCcpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCQoJ2JvZHknKS5oYXNDbGFzcygnc2lkZWJhci1jb2xsYXBzZScpKSB7XG4gICAgICAgICAgICAkKCdbZGF0YS1sYXlvdXQ9XCJzaWRlYmFyLWNvbGxhcHNlXCJdJykuYXR0cignY2hlY2tlZCcsICdjaGVja2VkJylcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBuZXcgdGFiXG4gICAgdmFyICR0YWJQYW5lID0gJCgnPGRpdiAvPicsIHtcbiAgICAgICAgJ2lkJzogJ2NvbnRyb2wtc2lkZWJhci10aGVtZS1kZW1vLW9wdGlvbnMtdGFiJyxcbiAgICAgICAgJ2NsYXNzJzogJ3RhYi1wYW5lIGFjdGl2ZSdcbiAgICB9KVxuXG4gICAgLy8gQ3JlYXRlIHRoZSB0YWIgYnV0dG9uXG4gICAgdmFyICR0YWJCdXR0b24gPSAkKCc8bGkgLz4nLCB7XG4gICAgICAgICAgICAnY2xhc3MnOiAnYWN0aXZlJ1xuICAgICAgICB9KVxuICAgICAgICAuaHRtbCgnPGEgaHJlZj1cXCcjY29udHJvbC1zaWRlYmFyLXRoZW1lLWRlbW8tb3B0aW9ucy10YWJcXCcgZGF0YS10b2dnbGU9XFwndGFiXFwnPicgK1xuICAgICAgICAgICAgJzxpIGNsYXNzPVwiZmEgZmEtd3JlbmNoXCI+PC9pPicgK1xuICAgICAgICAgICAgJzwvYT4nKVxuXG4gICAgLy8gQWRkIHRoZSB0YWIgYnV0dG9uIHRvIHRoZSByaWdodCBzaWRlYmFyIHRhYnNcbiAgICAkKCdbaHJlZj1cIiNjb250cm9sLXNpZGViYXItaG9tZS10YWJcIl0nKVxuICAgICAgICAucGFyZW50KClcbiAgICAgICAgLmJlZm9yZSgkdGFiQnV0dG9uKVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBtZW51XG4gICAgdmFyICRkZW1vU2V0dGluZ3MgPSAkKCc8ZGl2IC8+JylcblxuICAgIC8vIExheW91dCBvcHRpb25zXG4gICAgJGRlbW9TZXR0aW5ncy5hcHBlbmQoXG4gICAgICAgICc8aDQgY2xhc3M9XCJjb250cm9sLXNpZGViYXItaGVhZGluZ1wiPicgK1xuICAgICAgICAnTGF5b3V0IE9wdGlvbnMnICtcbiAgICAgICAgJzwvaDQ+J1xuICAgICAgICAvLyBGaXhlZCBsYXlvdXRcbiAgICAgICAgK1xuICAgICAgICAnPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj4nICtcbiAgICAgICAgJzxsYWJlbCBjbGFzcz1cImNvbnRyb2wtc2lkZWJhci1zdWJoZWFkaW5nXCI+JyArXG4gICAgICAgICc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJkYXRhLWxheW91dD1cImZpeGVkXCJjbGFzcz1cInB1bGwtcmlnaHRcIi8+ICcgK1xuICAgICAgICAnRml4ZWQgbGF5b3V0JyArXG4gICAgICAgICc8L2xhYmVsPicgK1xuICAgICAgICAnPHA+QWN0aXZhdGUgdGhlIGZpeGVkIGxheW91dC4gWW91IGNhblxcJ3QgdXNlIGZpeGVkIGFuZCBib3hlZCBsYXlvdXRzIHRvZ2V0aGVyPC9wPicgK1xuICAgICAgICAnPC9kaXY+J1xuICAgICAgICAvLyBCb3hlZCBsYXlvdXRcbiAgICAgICAgK1xuICAgICAgICAnPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj4nICtcbiAgICAgICAgJzxsYWJlbCBjbGFzcz1cImNvbnRyb2wtc2lkZWJhci1zdWJoZWFkaW5nXCI+JyArXG4gICAgICAgICc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJkYXRhLWxheW91dD1cImxheW91dC1ib3hlZFwiIGNsYXNzPVwicHVsbC1yaWdodFwiLz4gJyArXG4gICAgICAgICdCb3hlZCBMYXlvdXQnICtcbiAgICAgICAgJzwvbGFiZWw+JyArXG4gICAgICAgICc8cD5BY3RpdmF0ZSB0aGUgYm94ZWQgbGF5b3V0PC9wPicgK1xuICAgICAgICAnPC9kaXY+J1xuICAgICAgICAvLyBTaWRlYmFyIFRvZ2dsZVxuICAgICAgICArXG4gICAgICAgICc8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPicgK1xuICAgICAgICAnPGxhYmVsIGNsYXNzPVwiY29udHJvbC1zaWRlYmFyLXN1YmhlYWRpbmdcIj4nICtcbiAgICAgICAgJzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcImRhdGEtbGF5b3V0PVwic2lkZWJhci1jb2xsYXBzZVwiY2xhc3M9XCJwdWxsLXJpZ2h0XCIvPiAnICtcbiAgICAgICAgJ1RvZ2dsZSBTaWRlYmFyJyArXG4gICAgICAgICc8L2xhYmVsPicgK1xuICAgICAgICAnPHA+VG9nZ2xlIHRoZSBsZWZ0IHNpZGViYXJcXCdzIHN0YXRlIChvcGVuIG9yIGNvbGxhcHNlKTwvcD4nICtcbiAgICAgICAgJzwvZGl2PidcbiAgICAgICAgLy8gU2lkZWJhciBtaW5pIGV4cGFuZCBvbiBob3ZlciB0b2dnbGVcbiAgICAgICAgK1xuICAgICAgICAnPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj4nICtcbiAgICAgICAgJzxsYWJlbCBjbGFzcz1cImNvbnRyb2wtc2lkZWJhci1zdWJoZWFkaW5nXCI+JyArXG4gICAgICAgICc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJkYXRhLWVuYWJsZT1cImV4cGFuZE9uSG92ZXJcImNsYXNzPVwicHVsbC1yaWdodFwiLz4gJyArXG4gICAgICAgICdTaWRlYmFyIEV4cGFuZCBvbiBIb3ZlcicgK1xuICAgICAgICAnPC9sYWJlbD4nICtcbiAgICAgICAgJzxwPkxldCB0aGUgc2lkZWJhciBtaW5pIGV4cGFuZCBvbiBob3ZlcjwvcD4nICtcbiAgICAgICAgJzwvZGl2PidcbiAgICAgICAgLy8gQ29udHJvbCBTaWRlYmFyIFRvZ2dsZVxuICAgICAgICArXG4gICAgICAgICc8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPicgK1xuICAgICAgICAnPGxhYmVsIGNsYXNzPVwiY29udHJvbC1zaWRlYmFyLXN1YmhlYWRpbmdcIj4nICtcbiAgICAgICAgJzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcImRhdGEtY29udHJvbHNpZGViYXI9XCJjb250cm9sLXNpZGViYXItb3BlblwiY2xhc3M9XCJwdWxsLXJpZ2h0XCIvPiAnICtcbiAgICAgICAgJ1RvZ2dsZSBSaWdodCBTaWRlYmFyIFNsaWRlJyArXG4gICAgICAgICc8L2xhYmVsPicgK1xuICAgICAgICAnPHA+VG9nZ2xlIGJldHdlZW4gc2xpZGUgb3ZlciBjb250ZW50IGFuZCBwdXNoIGNvbnRlbnQgZWZmZWN0czwvcD4nICtcbiAgICAgICAgJzwvZGl2PidcbiAgICAgICAgLy8gQ29udHJvbCBTaWRlYmFyIFNraW4gVG9nZ2xlXG4gICAgICAgICtcbiAgICAgICAgJzxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+JyArXG4gICAgICAgICc8bGFiZWwgY2xhc3M9XCJjb250cm9sLXNpZGViYXItc3ViaGVhZGluZ1wiPicgK1xuICAgICAgICAnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiZGF0YS1zaWRlYmFyc2tpbj1cInRvZ2dsZVwiY2xhc3M9XCJwdWxsLXJpZ2h0XCIvPiAnICtcbiAgICAgICAgJ1RvZ2dsZSBSaWdodCBTaWRlYmFyIFNraW4nICtcbiAgICAgICAgJzwvbGFiZWw+JyArXG4gICAgICAgICc8cD5Ub2dnbGUgYmV0d2VlbiBkYXJrIGFuZCBsaWdodCBza2lucyBmb3IgdGhlIHJpZ2h0IHNpZGViYXI8L3A+JyArXG4gICAgICAgICc8L2Rpdj4nXG4gICAgKVxuICAgIHZhciAkc2tpbnNMaXN0ID0gJCgnPHVsIC8+Jywge1xuICAgICAgICAnY2xhc3MnOiAnbGlzdC11bnN0eWxlZCBjbGVhcmZpeCdcbiAgICB9KVxuXG4gICAgLy8gRGFyayBzaWRlYmFyIHNraW5zXG4gICAgdmFyICRza2luQmx1ZSA9XG4gICAgICAgICQoJzxsaSAvPicsIHtcbiAgICAgICAgICAgIHN0eWxlOiAnZmxvYXQ6bGVmdDsgd2lkdGg6IDMzLjMzMzMzJTsgcGFkZGluZzogNXB4OydcbiAgICAgICAgfSlcbiAgICAgICAgLmFwcGVuZCgnPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGRhdGEtc2tpbj1cInNraW4tYmx1ZVwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjMzY3ZmE5XCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwiYmctbGlnaHQtYmx1ZVwiIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogIzIyMmQzMlwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmNGY1ZjdcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPC9hPicgK1xuICAgICAgICAgICAgJzxwIGNsYXNzPVwidGV4dC1jZW50ZXIgbm8tbWFyZ2luXCI+Qmx1ZTwvcD4nKVxuICAgICRza2luc0xpc3QuYXBwZW5kKCRza2luQmx1ZSlcbiAgICB2YXIgJHNraW5CbGFjayA9XG4gICAgICAgICQoJzxsaSAvPicsIHtcbiAgICAgICAgICAgIHN0eWxlOiAnZmxvYXQ6bGVmdDsgd2lkdGg6IDMzLjMzMzMzJTsgcGFkZGluZzogNXB4OydcbiAgICAgICAgfSlcbiAgICAgICAgLmFwcGVuZCgnPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGRhdGEtc2tpbj1cInNraW4tYmxhY2tcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdiBzdHlsZT1cImJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLDAsMCwwLjEpXCIgY2xhc3M9XCJjbGVhcmZpeFwiPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjZmVmZWZlXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjZmVmZWZlXCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzxkaXY+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogMjAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjMjIyXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogI2Y0ZjVmN1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8L2E+JyArXG4gICAgICAgICAgICAnPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBuby1tYXJnaW5cIj5CbGFjazwvcD4nKVxuICAgICRza2luc0xpc3QuYXBwZW5kKCRza2luQmxhY2spXG4gICAgdmFyICRza2luUHVycGxlID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi1wdXJwbGVcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIiBjbGFzcz1cImJnLXB1cnBsZS1hY3RpdmVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJiZy1wdXJwbGVcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICMyMjJkMzJcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiPlB1cnBsZTwvcD4nKVxuICAgICRza2luc0xpc3QuYXBwZW5kKCRza2luUHVycGxlKVxuICAgIHZhciAkc2tpbkdyZWVuID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi1ncmVlblwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiIGNsYXNzPVwiYmctZ3JlZW4tYWN0aXZlXCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwiYmctZ3JlZW5cIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICMyMjJkMzJcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiPkdyZWVuPC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5HcmVlbilcbiAgICB2YXIgJHNraW5SZWQgPVxuICAgICAgICAkKCc8bGkgLz4nLCB7XG4gICAgICAgICAgICBzdHlsZTogJ2Zsb2F0OmxlZnQ7IHdpZHRoOiAzMy4zMzMzMyU7IHBhZGRpbmc6IDVweDsnXG4gICAgICAgIH0pXG4gICAgICAgIC5hcHBlbmQoJzxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBkYXRhLXNraW49XCJza2luLXJlZFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiIGNsYXNzPVwiYmctcmVkLWFjdGl2ZVwiPjwvc3Bhbj48c3BhbiBjbGFzcz1cImJnLXJlZFwiIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogIzIyMmQzMlwiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmNGY1ZjdcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPC9hPicgK1xuICAgICAgICAgICAgJzxwIGNsYXNzPVwidGV4dC1jZW50ZXIgbm8tbWFyZ2luXCI+UmVkPC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5SZWQpXG4gICAgdmFyICRza2luWWVsbG93ID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi15ZWxsb3dcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIiBjbGFzcz1cImJnLXllbGxvdy1hY3RpdmVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJiZy15ZWxsb3dcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICMyMjJkMzJcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiPlllbGxvdzwvcD4nKVxuICAgICRza2luc0xpc3QuYXBwZW5kKCRza2luWWVsbG93KVxuXG4gICAgLy8gTGlnaHQgc2lkZWJhciBza2luc1xuICAgIHZhciAkc2tpbkJsdWVMaWdodCA9XG4gICAgICAgICQoJzxsaSAvPicsIHtcbiAgICAgICAgICAgIHN0eWxlOiAnZmxvYXQ6bGVmdDsgd2lkdGg6IDMzLjMzMzMzJTsgcGFkZGluZzogNXB4OydcbiAgICAgICAgfSlcbiAgICAgICAgLmFwcGVuZCgnPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGRhdGEtc2tpbj1cInNraW4tYmx1ZS1saWdodFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjMzY3ZmE5XCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwiYmctbGlnaHQtYmx1ZVwiIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogI2Y5ZmFmY1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmNGY1ZjdcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPC9hPicgK1xuICAgICAgICAgICAgJzxwIGNsYXNzPVwidGV4dC1jZW50ZXIgbm8tbWFyZ2luXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHhcIj5CbHVlIExpZ2h0PC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5CbHVlTGlnaHQpXG4gICAgdmFyICRza2luQmxhY2tMaWdodCA9XG4gICAgICAgICQoJzxsaSAvPicsIHtcbiAgICAgICAgICAgIHN0eWxlOiAnZmxvYXQ6bGVmdDsgd2lkdGg6IDMzLjMzMzMzJTsgcGFkZGluZzogNXB4OydcbiAgICAgICAgfSlcbiAgICAgICAgLmFwcGVuZCgnPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGRhdGEtc2tpbj1cInNraW4tYmxhY2stbGlnaHRcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdiBzdHlsZT1cImJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLDAsMCwwLjEpXCIgY2xhc3M9XCJjbGVhcmZpeFwiPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjZmVmZWZlXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4OyBiYWNrZ3JvdW5kOiAjZmVmZWZlXCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzxkaXY+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogMjAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjlmYWZjXCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogI2Y0ZjVmN1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8L2E+JyArXG4gICAgICAgICAgICAnPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBuby1tYXJnaW5cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweFwiPkJsYWNrIExpZ2h0PC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5CbGFja0xpZ2h0KVxuICAgIHZhciAkc2tpblB1cnBsZUxpZ2h0ID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi1wdXJwbGUtbGlnaHRcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIiBjbGFzcz1cImJnLXB1cnBsZS1hY3RpdmVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJiZy1wdXJwbGVcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmOWZhZmNcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4XCI+UHVycGxlIExpZ2h0PC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5QdXJwbGVMaWdodClcbiAgICB2YXIgJHNraW5HcmVlbkxpZ2h0ID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi1ncmVlbi1saWdodFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiIGNsYXNzPVwiYmctZ3JlZW4tYWN0aXZlXCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwiYmctZ3JlZW5cIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmOWZhZmNcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4XCI+R3JlZW4gTGlnaHQ8L3A+JylcbiAgICAkc2tpbnNMaXN0LmFwcGVuZCgkc2tpbkdyZWVuTGlnaHQpXG4gICAgdmFyICRza2luUmVkTGlnaHQgPVxuICAgICAgICAkKCc8bGkgLz4nLCB7XG4gICAgICAgICAgICBzdHlsZTogJ2Zsb2F0OmxlZnQ7IHdpZHRoOiAzMy4zMzMzMyU7IHBhZGRpbmc6IDVweDsnXG4gICAgICAgIH0pXG4gICAgICAgIC5hcHBlbmQoJzxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBkYXRhLXNraW49XCJza2luLXJlZC1saWdodFwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLDAsMCwwLjQpXCIgY2xhc3M9XCJjbGVhcmZpeCBmdWxsLW9wYWNpdHktaG92ZXJcIj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiIGNsYXNzPVwiYmctcmVkLWFjdGl2ZVwiPjwvc3Bhbj48c3BhbiBjbGFzcz1cImJnLXJlZFwiIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDgwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogN3B4O1wiPjwvc3Bhbj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8ZGl2PjxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jazsgd2lkdGg6IDIwJTsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZDogI2Y5ZmFmY1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmNGY1ZjdcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPC9hPicgK1xuICAgICAgICAgICAgJzxwIGNsYXNzPVwidGV4dC1jZW50ZXIgbm8tbWFyZ2luXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHhcIj5SZWQgTGlnaHQ8L3A+JylcbiAgICAkc2tpbnNMaXN0LmFwcGVuZCgkc2tpblJlZExpZ2h0KVxuICAgIHZhciAkc2tpblllbGxvd0xpZ2h0ID1cbiAgICAgICAgJCgnPGxpIC8+Jywge1xuICAgICAgICAgICAgc3R5bGU6ICdmbG9hdDpsZWZ0OyB3aWR0aDogMzMuMzMzMzMlOyBwYWRkaW5nOiA1cHg7J1xuICAgICAgICB9KVxuICAgICAgICAuYXBwZW5kKCc8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgZGF0YS1za2luPVwic2tpbi15ZWxsb3ctbGlnaHRcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwwLDAsMC40KVwiIGNsYXNzPVwiY2xlYXJmaXggZnVsbC1vcGFjaXR5LWhvdmVyXCI+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIiBjbGFzcz1cImJnLXllbGxvdy1hY3RpdmVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJiZy15ZWxsb3dcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiA4MCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDdweDtcIj48L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdj48c3BhbiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7IHdpZHRoOiAyMCU7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIwcHg7IGJhY2tncm91bmQ6ICNmOWZhZmNcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJkaXNwbGF5OmJsb2NrOyB3aWR0aDogODAlOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kOiAjZjRmNWY3XCI+PC9zcGFuPjwvZGl2PicgK1xuICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICc8cCBjbGFzcz1cInRleHQtY2VudGVyIG5vLW1hcmdpblwiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4XCI+WWVsbG93IExpZ2h0PC9wPicpXG4gICAgJHNraW5zTGlzdC5hcHBlbmQoJHNraW5ZZWxsb3dMaWdodClcblxuICAgICRkZW1vU2V0dGluZ3MuYXBwZW5kKCc8aDQgY2xhc3M9XCJjb250cm9sLXNpZGViYXItaGVhZGluZ1wiPlNraW5zPC9oND4nKVxuICAgICRkZW1vU2V0dGluZ3MuYXBwZW5kKCRza2luc0xpc3QpXG5cbiAgICAkdGFiUGFuZS5hcHBlbmQoJGRlbW9TZXR0aW5ncylcbiAgICAkKCcjY29udHJvbC1zaWRlYmFyLWhvbWUtdGFiJykuYWZ0ZXIoJHRhYlBhbmUpXG5cbiAgICBzZXR1cCgpXG5cbiAgICAkKCdbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpXG59KVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9hc3NldHMvanMvYWRtaW4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n");
+eval("window.$ = window.jQuery = __webpack_require__(48);\n__webpack_require__(49);\n__webpack_require__(50);\n__webpack_require__(51);\n__webpack_require__(52);\n__webpack_require__(53);\n__webpack_require__(54);\nwindow.Chart = __webpack_require__(55);\n\n$(function () {\n 'use strict';\n /* ChartJS\n * -------\n * Charts\n */\n\n // sales example chart\n\n var salesChartCanvas = $('#salesChart').get(0).getContext('2d');\n var salesChart = new Chart(salesChartCanvas);\n var salesChartData = {\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n datasets: [{\n label: 'Electronics',\n fillColor: 'rgb(210, 214, 222)',\n strokeColor: 'rgb(210, 214, 222)',\n pointColor: 'rgb(210, 214, 222)',\n pointStrokeColor: '#c1c7d1',\n pointHighlightFill: '#fff',\n pointHighlightStroke: 'rgb(220,220,220)',\n data: [65, 59, 80, 81, 56, 55, 40]\n }, {\n label: 'Digital Goods',\n fillColor: 'rgba(60,141,188,0.9)',\n strokeColor: 'rgba(60,141,188,0.8)',\n pointColor: '#3b8bba',\n pointStrokeColor: 'rgba(60,141,188,1)',\n pointHighlightFill: '#fff',\n pointHighlightStroke: 'rgba(60,141,188,1)',\n data: [28, 48, 40, 19, 86, 27, 90]\n }]\n };\n var salesChartOptions = {\n showScale: true,\n scaleShowGridLines: false,\n scaleGridLineColor: 'rgba(0,0,0,.05)',\n scaleGridLineWidth: 1,\n scaleShowHorizontalLines: true,\n scaleShowVerticalLines: true,\n bezierCurve: true,\n bezierCurveTension: 0.3,\n pointDot: false,\n pointDotRadius: 4,\n pointDotStrokeWidth: 1,\n pointHitDetectionRadius: 20,\n datasetStroke: true,\n datasetStrokeWidth: 2,\n datasetFill: true,\n legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<datasets.length; i++){%><li><span style=\\'background-color:<%=datasets[i].lineColor%>\\'></span><%=datasets[i].label%></li><%}%></ul>',\n maintainAspectRatio: true,\n responsive: true\n };\n salesChart.Line(salesChartData, salesChartOptions);\n\n // -------------\n // - PIE CHART -\n // -------------\n var pieChartCanvas = $('#pieChart').get(0).getContext('2d');\n var pieChart = new Chart(pieChartCanvas);\n var PieData = [{\n value: 700,\n color: '#f56954',\n highlight: '#f56954',\n label: 'Chrome'\n }, {\n value: 500,\n color: '#00a65a',\n highlight: '#00a65a',\n label: 'IE'\n }, {\n value: 400,\n color: '#f39c12',\n highlight: '#f39c12',\n label: 'FireFox'\n }, {\n value: 600,\n color: '#00c0ef',\n highlight: '#00c0ef',\n label: 'Safari'\n }, {\n value: 300,\n color: '#3c8dbc',\n highlight: '#3c8dbc',\n label: 'Opera'\n }, {\n value: 100,\n color: '#d2d6de',\n highlight: '#d2d6de',\n label: 'Navigator'\n }];\n var pieOptions = {\n segmentShowStroke: true,\n segmentStrokeColor: '#fff',\n segmentStrokeWidth: 1,\n percentageInnerCutout: 50,\n animationSteps: 100,\n animationEasing: 'easeOutBounce',\n animateRotate: true,\n animateScale: false,\n responsive: true,\n maintainAspectRatio: false,\n legendTemplate: '<ul class=\\'<%=name.toLowerCase()%>-legend\\'><% for (var i=0; i<segments.length; i++){%><li><span style=\\'background-color:<%=segments[i].fillColor%>\\'></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>',\n tooltipTemplate: '<%=value %> <%=label%> users'\n };\n pieChart.Doughnut(PieData, pieOptions);\n\n /* jVector Maps\n * ------------\n * Create a world map with markers\n */\n $('#world-map-markers').vectorMap({\n map: 'world_mill_en',\n normalizeFunction: 'polynomial',\n hoverOpacity: 0.7,\n hoverColor: false,\n backgroundColor: 'transparent',\n regionStyle: {\n initial: {\n fill: 'rgba(210, 214, 222, 1)',\n 'fill-opacity': 1,\n stroke: 'none',\n 'stroke-width': 0,\n 'stroke-opacity': 1\n },\n hover: {\n 'fill-opacity': 0.7,\n cursor: 'pointer'\n },\n selected: {\n fill: 'yellow'\n },\n selectedHover: {}\n },\n markerStyle: {\n initial: {\n fill: '#00a65a',\n stroke: '#111'\n }\n },\n markers: [{\n latLng: [41.90, 12.45],\n name: 'Vatican City'\n }, {\n latLng: [43.73, 7.41],\n name: 'Monaco'\n }, {\n latLng: [-0.52, 166.93],\n name: 'Nauru'\n }, {\n latLng: [-8.51, 179.21],\n name: 'Tuvalu'\n }, {\n latLng: [43.93, 12.46],\n name: 'San Marino'\n }, {\n latLng: [47.14, 9.52],\n name: 'Liechtenstein'\n }, {\n latLng: [7.11, 171.06],\n name: 'Marshall Islands'\n }, {\n latLng: [17.3, -62.73],\n name: 'Saint Kitts and Nevis'\n }, {\n latLng: [3.2, 73.22],\n name: 'Maldives'\n }, {\n latLng: [35.88, 14.5],\n name: 'Malta'\n }, {\n latLng: [12.05, -61.75],\n name: 'Grenada'\n }, {\n latLng: [13.16, -61.23],\n name: 'Saint Vincent and the Grenadines'\n }, {\n latLng: [13.16, -59.55],\n name: 'Barbados'\n }, {\n latLng: [17.11, -61.85],\n name: 'Antigua and Barbuda'\n }, {\n latLng: [-4.61, 55.45],\n name: 'Seychelles'\n }, {\n latLng: [7.35, 134.46],\n name: 'Palau'\n }, {\n latLng: [42.5, 1.51],\n name: 'Andorra'\n }, {\n latLng: [14.01, -60.98],\n name: 'Saint Lucia'\n }, {\n latLng: [6.91, 158.18],\n name: 'Federated States of Micronesia'\n }, {\n latLng: [1.3, 103.8],\n name: 'Singapore'\n }, {\n latLng: [1.46, 173.03],\n name: 'Kiribati'\n }, {\n latLng: [-21.13, -175.2],\n name: 'Tonga'\n }, {\n latLng: [15.3, -61.38],\n name: 'Dominica'\n }, {\n latLng: [-20.2, 57.5],\n name: 'Mauritius'\n }, {\n latLng: [26.02, 50.55],\n name: 'Bahrain'\n }, {\n latLng: [0.33, 6.73],\n name: 'São Tomé and Príncipe'\n }]\n });\n});\n\n//---------------------------------------------------------END OF CHARTS------------------------------------------------------//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvYXNzZXRzL2pzL2FkbWluLmpzPzI5ODYiXSwibmFtZXMiOlsid2luZG93IiwiJCIsImpRdWVyeSIsInJlcXVpcmUiLCJDaGFydCIsInNhbGVzQ2hhcnRDYW52YXMiLCJnZXQiLCJnZXRDb250ZXh0Iiwic2FsZXNDaGFydCIsInNhbGVzQ2hhcnREYXRhIiwibGFiZWxzIiwiZGF0YXNldHMiLCJsYWJlbCIsImZpbGxDb2xvciIsInN0cm9rZUNvbG9yIiwicG9pbnRDb2xvciIsInBvaW50U3Ryb2tlQ29sb3IiLCJwb2ludEhpZ2hsaWdodEZpbGwiLCJwb2ludEhpZ2hsaWdodFN0cm9rZSIsImRhdGEiLCJzYWxlc0NoYXJ0T3B0aW9ucyIsInNob3dTY2FsZSIsInNjYWxlU2hvd0dyaWRMaW5lcyIsInNjYWxlR3JpZExpbmVDb2xvciIsInNjYWxlR3JpZExpbmVXaWR0aCIsInNjYWxlU2hvd0hvcml6b250YWxMaW5lcyIsInNjYWxlU2hvd1ZlcnRpY2FsTGluZXMiLCJiZXppZXJDdXJ2ZSIsImJlemllckN1cnZlVGVuc2lvbiIsInBvaW50RG90IiwicG9pbnREb3RSYWRpdXMiLCJwb2ludERvdFN0cm9rZVdpZHRoIiwicG9pbnRIaXREZXRlY3Rpb25SYWRpdXMiLCJkYXRhc2V0U3Ryb2tlIiwiZGF0YXNldFN0cm9rZVdpZHRoIiwiZGF0YXNldEZpbGwiLCJsZWdlbmRUZW1wbGF0ZSIsIm1haW50YWluQXNwZWN0UmF0aW8iLCJyZXNwb25zaXZlIiwiTGluZSIsInBpZUNoYXJ0Q2FudmFzIiwicGllQ2hhcnQiLCJQaWVEYXRhIiwidmFsdWUiLCJjb2xvciIsImhpZ2hsaWdodCIsInBpZU9wdGlvbnMiLCJzZWdtZW50U2hvd1N0cm9rZSIsInNlZ21lbnRTdHJva2VDb2xvciIsInNlZ21lbnRTdHJva2VXaWR0aCIsInBlcmNlbnRhZ2VJbm5lckN1dG91dCIsImFuaW1hdGlvblN0ZXBzIiwiYW5pbWF0aW9uRWFzaW5nIiwiYW5pbWF0ZVJvdGF0ZSIsImFuaW1hdGVTY2FsZSIsInRvb2x0aXBUZW1wbGF0ZSIsIkRvdWdobnV0IiwidmVjdG9yTWFwIiwibWFwIiwibm9ybWFsaXplRnVuY3Rpb24iLCJob3Zlck9wYWNpdHkiLCJob3ZlckNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicmVnaW9uU3R5bGUiLCJpbml0aWFsIiwiZmlsbCIsInN0cm9rZSIsImhvdmVyIiwiY3Vyc29yIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEhvdmVyIiwibWFya2VyU3R5bGUiLCJtYXJrZXJzIiwibGF0TG5nIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU9DLENBQVAsR0FBV0QsT0FBT0UsTUFBUCxHQUFnQixtQkFBQUMsQ0FBUSxFQUFSLENBQTNCO0FBQ0EsbUJBQUFBLENBQVEsRUFBUjtBQUNBLG1CQUFBQSxDQUFRLEVBQVI7QUFDQSxtQkFBQUEsQ0FBUSxFQUFSO0FBQ0EsbUJBQUFBLENBQVEsRUFBUjtBQUNBLG1CQUFBQSxDQUFRLEVBQVI7QUFDQSxtQkFBQUEsQ0FBUSxFQUFSO0FBQ0FILE9BQU9JLEtBQVAsR0FBZSxtQkFBQUQsQ0FBUSxFQUFSLENBQWY7O0FBR0FGLEVBQUUsWUFBWTtBQUNWO0FBQ0E7Ozs7O0FBS0E7O0FBQ0EsUUFBSUksbUJBQW1CSixFQUFFLGFBQUYsRUFBaUJLLEdBQWpCLENBQXFCLENBQXJCLEVBQXdCQyxVQUF4QixDQUFtQyxJQUFuQyxDQUF2QjtBQUNBLFFBQUlDLGFBQWEsSUFBSUosS0FBSixDQUFVQyxnQkFBVixDQUFqQjtBQUNBLFFBQUlJLGlCQUFpQjtBQUNqQkMsZ0JBQVEsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixPQUF4QixFQUFpQyxPQUFqQyxFQUEwQyxLQUExQyxFQUFpRCxNQUFqRCxFQUF5RCxNQUF6RCxDQURTO0FBRWpCQyxrQkFBVSxDQUFDO0FBQ0hDLG1CQUFPLGFBREo7QUFFSEMsdUJBQVcsb0JBRlI7QUFHSEMseUJBQWEsb0JBSFY7QUFJSEMsd0JBQVksb0JBSlQ7QUFLSEMsOEJBQWtC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Rkw7QUFDSUQsb0JBQVEsQ0FBQyxDQUFDLEtBQUYsRUFBUyxDQUFDLEtBQVYsQ0FEWjtBQUVJQyxrQkFBTTtBQUZWLFNBcEZLLEVBd0ZMO0FBQ0lELG9CQUFRLENBQUMsSUFBRCxFQUFPLENBQUMsS0FBUixDQURaO0FBRUlDLGtCQUFNO0FBRlYsU0F4RkssRUE0Rkw7QUFDSUQsb0JBQVEsQ0FBQyxDQUFDLElBQUYsRUFBUSxJQUFSLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQTVGSyxFQWdHTDtBQUNJRCxvQkFBUSxDQUFDLEtBQUQsRUFBUSxLQUFSLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQWhHSyxFQW9HTDtBQUNJRCxvQkFBUSxDQUFDLElBQUQsRUFBTyxJQUFQLENBRFo7QUFFSUMsa0JBQU07QUFGVixTQXBHSztBQTdCcUIsS0FBbEM7QUF1SUgsQ0E5UEQ7O0FBa1FBIiwiZmlsZSI6IjQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsid2luZG93LiQgPSB3aW5kb3cualF1ZXJ5ID0gcmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvanF1ZXJ5L2Rpc3QvanF1ZXJ5Lm1pbi5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9ib3dlcl9jb21wb25lbnRzL2Jvb3RzdHJhcC9kaXN0L2pzL2Jvb3RzdHJhcC5taW4uanNcIik7XG5yZXF1aXJlKFwiLi4vLi4vLi4vdmVuZG9yL2FsbWFzYWVlZDIwMTAvYWRtaW5sdGUvYm93ZXJfY29tcG9uZW50cy9mYXN0Y2xpY2svbGliL2Zhc3RjbGljay5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9kaXN0L2pzL2FkbWlubHRlLm1pbi5qc1wiKTtcbnJlcXVpcmUoXCIuLi8uLi8uLi92ZW5kb3IvYWxtYXNhZWVkMjAxMC9hZG1pbmx0ZS9wbHVnaW5zL2p2ZWN0b3JtYXAvanF1ZXJ5LWp2ZWN0b3JtYXAtMS4yLjIubWluLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL3BsdWdpbnMvanZlY3Rvcm1hcC9qcXVlcnktanZlY3Rvcm1hcC13b3JsZC1taWxsLWVuLmpzXCIpO1xucmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvanF1ZXJ5LXNsaW1zY3JvbGwvanF1ZXJ5LnNsaW1zY3JvbGwubWluLmpzXCIpO1xud2luZG93LkNoYXJ0ID0gcmVxdWlyZShcIi4uLy4uLy4uL3ZlbmRvci9hbG1hc2FlZWQyMDEwL2FkbWlubHRlL2Jvd2VyX2NvbXBvbmVudHMvY2hhcnQuanMvQ2hhcnQuanNcIik7XG5cblxuJChmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIC8qIENoYXJ0SlNcbiAgICAgKiAtLS0tLS0tXG4gICAgICogQ2hhcnRzXG4gICAgICovXG5cbiAgICAvLyBzYWxlcyBleGFtcGxlIGNoYXJ0XG4gICAgdmFyIHNhbGVzQ2hhcnRDYW52YXMgPSAkKCcjc2FsZXNDaGFydCcpLmdldCgwKS5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHZhciBzYWxlc0NoYXJ0ID0gbmV3IENoYXJ0KHNhbGVzQ2hhcnRDYW52YXMpO1xuICAgIHZhciBzYWxlc0NoYXJ0RGF0YSA9IHtcbiAgICAgICAgbGFiZWxzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseSddLFxuICAgICAgICBkYXRhc2V0czogW3tcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0VsZWN0cm9uaWNzJyxcbiAgICAgICAgICAgICAgICBmaWxsQ29sb3I6ICdyZ2IoMjEwLCAyMTQsIDIyMiknLFxuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiAncmdiKDIxMCwgMjE0LCAyMjIpJyxcbiAgICAgICAgICAgICAgICBwb2ludENvbG9yOiAncmdiKDIxMCwgMjE0LCAyMjIpJyxcbiAgICAgICAgICAgICAgICBwb2ludFN0cm9rZUNvbG9yOiAnI2MxYzdkMScsXG4gICAgICAgICAgICAgICAgcG9pbnRIaWdobGlnaHRGaWxsOiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgcG9pbnRIaWdobGlnaHRTdHJva2U6ICdyZ2IoMjIwLDIyMCwyMjApJyxcbiAgICAgICAgICAgICAgICBkYXRhOiBbNjUsIDU5LCA4MCwgODEsIDU2LCA1NSwgNDBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnRGlnaXRhbCBHb29kcycsXG4gICAgICAgICAgICAgICAgZmlsbENvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDAuOSknLFxuICAgICAgICAgICAgICAgIHN0cm9rZUNvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDAuOCknLFxuICAgICAgICAgICAgICAgIHBvaW50Q29sb3I6ICcjM2I4YmJhJyxcbiAgICAgICAgICAgICAgICBwb2ludFN0cm9rZUNvbG9yOiAncmdiYSg2MCwxNDEsMTg4LDEpJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodEZpbGw6ICcjZmZmJyxcbiAgICAgICAgICAgICAgICBwb2ludEhpZ2hsaWdodFN0cm9rZTogJ3JnYmEoNjAsMTQxLDE4OCwxKScsXG4gICAgICAgICAgICAgICAgZGF0YTogWzI4LCA0OCwgNDAsIDE5LCA4NiwgMjcsIDkwXVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfTtcbiAgICB2YXIgc2FsZXNDaGFydE9wdGlvbnMgPSB7XG4gICAgICAgIHNob3dTY2FsZTogdHJ1ZSxcbiAgICAgICAgc2NhbGVTaG93R3JpZExpbmVzOiBmYWxzZSxcbiAgICAgICAgc2NhbGVHcmlkTGluZUNvbG9yOiAncmdiYSgwLDAsMCwuMDUpJyxcbiAgICAgICAgc2NhbGVHcmlkTGluZVdpZHRoOiAxLFxuICAgICAgICBzY2FsZVNob3dIb3Jpem9udGFsTGluZXM6IHRydWUsXG4gICAgICAgIHNjYWxlU2hvd1ZlcnRpY2FsTGluZXM6IHRydWUsXG4gICAgICAgIGJlemllckN1cnZlOiB0cnVlLFxuICAgICAgICBiZXppZXJDdXJ2ZVRlbnNpb246IDAuMyxcbiAgICAgICAgcG9pbnREb3Q6IGZhbHNlLFxuICAgICAgICBwb2ludERvdFJhZGl1czogNCxcbiAgICAgICAgcG9pbnREb3RTdHJva2VXaWR0aDogMSxcbiAgICAgICAgcG9pbnRIaXREZXRlY3Rpb25SYWRpdXM6IDIwLFxuICAgICAgICBkYXRhc2V0U3Ryb2tlOiB0cnVlLFxuICAgICAgICBkYXRhc2V0U3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgIGRhdGFzZXRGaWxsOiB0cnVlLFxuICAgICAgICBsZWdlbmRUZW1wbGF0ZTogJzx1bCBjbGFzcz1cXCc8JT1uYW1lLnRvTG93ZXJDYXNlKCklPi1sZWdlbmRcXCc+PCUgZm9yICh2YXIgaT0wOyBpPGRhdGFzZXRzLmxlbmd0aDsgaSsrKXslPjxsaT48c3BhbiBzdHlsZT1cXCdiYWNrZ3JvdW5kLWNvbG9yOjwlPWRhdGFzZXRzW2ldLmxpbmVDb2xvciU+XFwnPjwvc3Bhbj48JT1kYXRhc2V0c1tpXS5sYWJlbCU+PC9saT48JX0lPjwvdWw+JyxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogdHJ1ZSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZVxuICAgIH07XG4gICAgc2FsZXNDaGFydC5MaW5lKHNhbGVzQ2hhcnREYXRhLCBzYWxlc0NoYXJ0T3B0aW9ucyk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tXG4gICAgLy8gLSBQSUUgQ0hBUlQgLVxuICAgIC8vIC0tLS0tLS0tLS0tLS1cbiAgICB2YXIgcGllQ2hhcnRDYW52YXMgPSAkKCcjcGllQ2hhcnQnKS5nZXQoMCkuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB2YXIgcGllQ2hhcnQgPSBuZXcgQ2hhcnQocGllQ2hhcnRDYW52YXMpO1xuICAgIHZhciBQaWVEYXRhID0gW3tcbiAgICAgICAgICAgIHZhbHVlOiA3MDAsXG4gICAgICAgICAgICBjb2xvcjogJyNmNTY5NTQnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2Y1Njk1NCcsXG4gICAgICAgICAgICBsYWJlbDogJ0Nocm9tZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDUwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzAwYTY1YScsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjMDBhNjVhJyxcbiAgICAgICAgICAgIGxhYmVsOiAnSUUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiA0MDAsXG4gICAgICAgICAgICBjb2xvcjogJyNmMzljMTInLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2YzOWMxMicsXG4gICAgICAgICAgICBsYWJlbDogJ0ZpcmVGb3gnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiA2MDAsXG4gICAgICAgICAgICBjb2xvcjogJyMwMGMwZWYnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnIzAwYzBlZicsXG4gICAgICAgICAgICBsYWJlbDogJ1NhZmFyaSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdmFsdWU6IDMwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzNjOGRiYycsXG4gICAgICAgICAgICBoaWdobGlnaHQ6ICcjM2M4ZGJjJyxcbiAgICAgICAgICAgIGxhYmVsOiAnT3BlcmEnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhbHVlOiAxMDAsXG4gICAgICAgICAgICBjb2xvcjogJyNkMmQ2ZGUnLFxuICAgICAgICAgICAgaGlnaGxpZ2h0OiAnI2QyZDZkZScsXG4gICAgICAgICAgICBsYWJlbDogJ05hdmlnYXRvcidcbiAgICAgICAgfVxuICAgIF07XG4gICAgdmFyIHBpZU9wdGlvbnMgPSB7XG4gICAgICAgIHNlZ21lbnRTaG93U3Ryb2tlOiB0cnVlLFxuICAgICAgICBzZWdtZW50U3Ryb2tlQ29sb3I6ICcjZmZmJyxcbiAgICAgICAgc2VnbWVudFN0cm9rZVdpZHRoOiAxLFxuICAgICAgICBwZXJjZW50YWdlSW5uZXJDdXRvdXQ6IDUwLFxuICAgICAgICBhbmltYXRpb25TdGVwczogMTAwLFxuICAgICAgICBhbmltYXRpb25FYXNpbmc6ICdlYXNlT3V0Qm91bmNlJyxcbiAgICAgICAgYW5pbWF0ZVJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgYW5pbWF0ZVNjYWxlOiBmYWxzZSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAgIGxlZ2VuZFRlbXBsYXRlOiAnPHVsIGNsYXNzPVxcJzwlPW5hbWUudG9Mb3dlckNhc2UoKSU+LWxlZ2VuZFxcJz48JSBmb3IgKHZhciBpPTA7IGk8c2VnbWVudHMubGVuZ3RoOyBpKyspeyU+PGxpPjxzcGFuIHN0eWxlPVxcJ2JhY2tncm91bmQtY29sb3I6PCU9c2VnbWVudHNbaV0uZmlsbENvbG9yJT5cXCc+PC9zcGFuPjwlaWYoc2VnbWVudHNbaV0ubGFiZWwpeyU+PCU9c2VnbWVudHNbaV0ubGFiZWwlPjwlfSU+PC9saT48JX0lPjwvdWw+JyxcbiAgICAgICAgdG9vbHRpcFRlbXBsYXRlOiAnPCU9dmFsdWUgJT4gPCU9bGFiZWwlPiB1c2VycydcbiAgICB9O1xuICAgIHBpZUNoYXJ0LkRvdWdobnV0KFBpZURhdGEsIHBpZU9wdGlvbnMpO1xuXG5cbiAgICAvKiBqVmVjdG9yIE1hcHNcbiAgICAgKiAtLS0tLS0tLS0tLS1cbiAgICAgKiBDcmVhdGUgYSB3b3JsZCBtYXAgd2l0aCBtYXJrZXJzXG4gICAgICovXG4gICAgJCgnI3dvcmxkLW1hcC1tYXJrZXJzJykudmVjdG9yTWFwKHtcbiAgICAgICAgbWFwOiAnd29ybGRfbWlsbF9lbicsXG4gICAgICAgIG5vcm1hbGl6ZUZ1bmN0aW9uOiAncG9seW5vbWlhbCcsXG4gICAgICAgIGhvdmVyT3BhY2l0eTogMC43LFxuICAgICAgICBob3ZlckNvbG9yOiBmYWxzZSxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICByZWdpb25TdHlsZToge1xuICAgICAgICAgICAgaW5pdGlhbDoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICdyZ2JhKDIxMCwgMjE0LCAyMjIsIDEpJyxcbiAgICAgICAgICAgICAgICAnZmlsbC1vcGFjaXR5JzogMSxcbiAgICAgICAgICAgICAgICBzdHJva2U6ICdub25lJyxcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLXdpZHRoJzogMCxcbiAgICAgICAgICAgICAgICAnc3Ryb2tlLW9wYWNpdHknOiAxXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICAgICAgICAnZmlsbC1vcGFjaXR5JzogMC43LFxuICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0ZWQ6IHtcbiAgICAgICAgICAgICAgICBmaWxsOiAneWVsbG93J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlbGVjdGVkSG92ZXI6IHt9XG4gICAgICAgIH0sXG4gICAgICAgIG1hcmtlclN0eWxlOiB7XG4gICAgICAgICAgICBpbml0aWFsOiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJyMwMGE2NWEnLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogJyMxMTEnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1hcmtlcnM6IFt7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNDEuOTAsIDEyLjQ1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnVmF0aWNhbiBDaXR5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0My43MywgNy40MV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01vbmFjbydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbLTAuNTIsIDE2Ni45M10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ05hdXJ1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstOC41MSwgMTc5LjIxXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnVHV2YWx1J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0My45MywgMTIuNDZdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTYW4gTWFyaW5vJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs0Ny4xNCwgOS41Ml0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0xpZWNodGVuc3RlaW4nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzcuMTEsIDE3MS4wNl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hcnNoYWxsIElzbGFuZHMnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE3LjMsIC02Mi43M10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhaW50IEtpdHRzIGFuZCBOZXZpcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMy4yLCA3My4yMl0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hbGRpdmVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFszNS44OCwgMTQuNV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ01hbHRhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxMi4wNSwgLTYxLjc1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnR3JlbmFkYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTMuMTYsIC02MS4yM10sXG4gICAgICAgICAgICAgICAgbmFtZTogJ1NhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxMy4xNiwgLTU5LjU1XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQmFyYmFkb3MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE3LjExLCAtNjEuODVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdBbnRpZ3VhIGFuZCBCYXJidWRhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFstNC42MSwgNTUuNDVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXljaGVsbGVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFs3LjM1LCAxMzQuNDZdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdQYWxhdSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNDIuNSwgMS41MV0sXG4gICAgICAgICAgICAgICAgbmFtZTogJ0FuZG9ycmEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWzE0LjAxLCAtNjAuOThdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdTYWludCBMdWNpYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbNi45MSwgMTU4LjE4XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRmVkZXJhdGVkIFN0YXRlcyBvZiBNaWNyb25lc2lhJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxLjMsIDEwMy44XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2luZ2Fwb3JlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsxLjQ2LCAxNzMuMDNdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdLaXJpYmF0aSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbLTIxLjEzLCAtMTc1LjJdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdUb25nYSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGF0TG5nOiBbMTUuMywgLTYxLjM4XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnRG9taW5pY2EnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhdExuZzogWy0yMC4yLCA1Ny41XSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnTWF1cml0aXVzJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFsyNi4wMiwgNTAuNTVdLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdCYWhyYWluJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXRMbmc6IFswLjMzLCA2LjczXSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlJ1xuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSk7XG59KTtcblxuXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5EIE9GIENIQVJUUy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9hc3NldHMvanMvYWRtaW4uanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///47\n");
/***/ }),
diff --git a/public/service-worker.js b/public/service-worker.js
index 28f2bc6..b95fbce 100644
--- a/public/service-worker.js
+++ b/public/service-worker.js
@@ -1 +1 @@
-"use strict";var precacheConfig=[["0bd0898fc9d907f4b31b968c6e2efa7f.js","0bd0898fc9d907f4b31b968c6e2efa7f"],["3fc17c73a369921b5d2a49b8e752592b.js","3fc17c73a369921b5d2a49b8e752592b"],["becf15e26adbe45cab6f048bbbbabf01.js","becf15e26adbe45cab6f048bbbbabf01"],["css/admin.css","bc0158da6ff8698f0590f8bb1e065e79"],["css/app.css","231941c5dccb58c9bb31e18613337d0a"],["fonts/vendor/Ionicons/ionicons.eot","2c2ae068be3b089e0a5b59abb1831550"],["fonts/vendor/Ionicons/ionicons.svg","621bd386841f74e0053cb8e67f8a0604"],["fonts/vendor/Ionicons/ionicons.ttf","24712f6c47821394fba7942fbb52c3b2"],["fonts/vendor/Ionicons/ionicons.woff","05acfdb568b3df49ad31355b19495d4a"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.eot","f4769f9bdb7466be65088239c12046d1"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.svg","89889688147bd7575d6327160d64e760"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.ttf","e18bbf611f2a2e43afc071aa2f4e1512"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.woff","fa2772327f55d8198301fdb8bcfc8158"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.woff2","448c34a56d699c29117adc64c43affeb"],["fonts/vendor/font-awesome/fontawesome-webfont.eot","674f50d287a8c48dc19ba404d20fe713"],["fonts/vendor/font-awesome/fontawesome-webfont.svg","912ec66d7572ff821749319396470bde"],["fonts/vendor/font-awesome/fontawesome-webfont.ttf","b06871f281fee6b241d60582ae9369b9"],["fonts/vendor/font-awesome/fontawesome-webfont.woff","fee66e712a8a08eef5805a46892932ad"],["fonts/vendor/font-awesome/fontawesome-webfont.woff2","af7ae505a9eed503f8b8e6982036873e"],["fonts/vendor/ionicons/dist/ionicons.eot","3c1e04901e63bef6c26cbe06c067ca2c"],["fonts/vendor/ionicons/dist/ionicons.svg","91433571f154776a1d46c2a287de05d7"],["fonts/vendor/ionicons/dist/ionicons.ttf","b2e0fc821c6886fb3940f85a3320003e"],["fonts/vendor/ionicons/dist/ionicons.woff","a21b9e1aad96623ef91bca7ecea7b169"],["fonts/vendor/ionicons/dist/ionicons.woff2","43d5c718339efeb1177aff722d72669d"],["js/admin.js","85e4f02afbbaf25fc3c9255ab8cfa63d"],["js/app.js","5769f628a89c0d8ff9b0515043c4542b"],["js/initial_key_gen.js","7b474bb47ec94d95b7a6d86d9a339d87"],["js/service-worker-ext.js","c28a117247a6ecf72b77c9b1b28a3d09"],["service-worker.js","83165d0f1e814509f491bc554746fd83"]],cacheName="sw-precache-v3-BEAM-Messenger-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var o=new URL(e);return r&&o.pathname.match(r)||(o.search+=(o.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),o.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),o=createCacheKey(r,hashParamName,n,!1);return[r.toString(),o]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).toolbox=e()}}(function(){return function e(t,n,r){function o(a,c){if(!n[a]){if(!t[a]){var i="function"==typeof require&&require;if(!c&&i)return i(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var f=n[a]={exports:{}};t[a][0].call(f.exports,function(e){var n=t[a][1][e];return o(n||e)},f,f.exports,e,t,n,r)}return n[a].exports}for(var s="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){function r(e,t){((t=t||{}).debug||i.debug)&&console.log("[sw-toolbox] "+e)}function o(e){var t;return e&&e.cache&&(t=e.cache.name),t=t||i.cache.name,caches.open(t)}function s(e,t,n){var o=e.url,s=n.maxAgeSeconds,a=n.maxEntries,c=n.name,i=Date.now();return r("Updating LRU order for "+o+". Max entries is "+a+", max age is "+s),u.getDb(c).then(function(e){return u.setTimestampForUrl(e,o,i)}).then(function(e){return u.expireEntries(e,a,s,i)}).then(function(e){r("Successfully updated IDB.");var n=e.map(function(e){return t.delete(e)});return Promise.all(n).then(function(){r("Done with cache cleanup.")})}).catch(function(e){r(e)})}function a(e){var t=Array.isArray(e);if(t&&e.forEach(function(e){"string"==typeof e||e instanceof Request||(t=!1)}),!t)throw new TypeError("The precache method expects either an array of strings and/or Requests or a Promise that resolves to an array of strings and/or Requests.");return e}var c,i=e("./options"),u=e("./idb-cache-expiration");t.exports={debug:r,fetchAndCache:function(e,t){var n=(t=t||{}).successResponses||i.successResponses;return fetch(e.clone()).then(function(r){return"GET"===e.method&&n.test(r.status)&&o(t).then(function(n){n.put(e,r).then(function(){var r=t.cache||i.cache;(r.maxEntries||r.maxAgeSeconds)&&r.name&&function(e,t,n){var r=s.bind(null,e,t,n);c=c?c.then(r):r()}(e,n,r)})}),r.clone()})},openCache:o,renameCache:function(e,t,n){return r("Renaming cache: ["+e+"] to ["+t+"]",n),caches.delete(t).then(function(){return Promise.all([caches.open(e),caches.open(t)]).then(function(t){var n=t[0],r=t[1];return n.keys().then(function(e){return Promise.all(e.map(function(e){return n.match(e).then(function(t){return r.put(e,t)})}))}).then(function(){return caches.delete(e)})})})},cache:function(e,t){return o(t).then(function(t){return t.add(e)})},uncache:function(e,t){return o(t).then(function(t){return t.delete(e)})},precache:function(e){e instanceof Promise||a(e),i.preCacheItems=i.preCacheItems.concat(e)},validatePrecacheInput:a,isResponseFresh:function(e,t,n){if(!e)return!1;if(t){var r=e.headers.get("date");if(r&&new Date(r).getTime()+1e3*t<n)return!1}return!0}}},{"./idb-cache-expiration":2,"./options":4}],2:[function(e,t,n){var r="sw-toolbox-",o=1,s="store",a="url",c="timestamp",i={};t.exports={getDb:function(e){return e in i||(i[e]=function(e){return new Promise(function(t,n){var i=indexedDB.open(r+e,o);i.onupgradeneeded=function(){i.result.createObjectStore(s,{keyPath:a}).createIndex(c,c,{unique:!1})},i.onsuccess=function(){t(i.result)},i.onerror=function(){n(i.error)}})}(e)),i[e]},setTimestampForUrl:function(e,t,n){return new Promise(function(r,o){var a=e.transaction(s,"readwrite");a.objectStore(s).put({url:t,timestamp:n}),a.oncomplete=function(){r(e)},a.onabort=function(){o(a.error)}})},expireEntries:function(e,t,n,r){return function(e,t,n){return t?new Promise(function(r,o){var i=1e3*t,u=[],f=e.transaction(s,"readwrite"),h=f.objectStore(s);h.index(c).openCursor().onsuccess=function(e){var t=e.target.result;if(t&&n-i>t.value[c]){var r=t.value[a];u.push(r),h.delete(r),t.continue()}},f.oncomplete=function(){r(u)},f.onabort=o}):Promise.resolve([])}(e,n,r).then(function(n){return function(e,t){return t?new Promise(function(n,r){var o=[],i=e.transaction(s,"readwrite"),u=i.objectStore(s),f=u.index(c),h=f.count();f.count().onsuccess=function(){var e=h.result;e>t&&(f.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var s=r.value[a];o.push(s),u.delete(s),e-o.length>t&&r.continue()}})},i.oncomplete=function(){n(o)},i.onabort=r}):Promise.resolve([])}(e,t).then(function(e){return n.concat(e)})})}}},{}],3:[function(e,t,n){function r(e){return e.reduce(function(e,t){return e.concat(t)},[])}e("serviceworker-cache-polyfill");var o=e("./helpers"),s=e("./router"),a=e("./options");t.exports={fetchListener:function(e){var t=s.match(e.request);t?e.respondWith(t(e.request)):s.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(s.default(e.request))},activateListener:function(e){o.debug("activate event fired");var t=a.cache.name+"$$$inactive$$$";e.waitUntil(o.renameCache(t,a.cache.name))},installListener:function(e){var t=a.cache.name+"$$$inactive$$$";o.debug("install event fired"),o.debug("creating cache ["+t+"]"),e.waitUntil(o.openCache({cache:{name:t}}).then(function(e){return Promise.all(a.preCacheItems).then(r).then(o.validatePrecacheInput).then(function(t){return o.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){var r=new URL("./",self.location).pathname,o=e("path-to-regexp"),s=function(e,t,n,s){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=r+t),this.keys=[],this.regexp=o(t,this.keys)),this.method=e,this.options=s,this.handler=n};s.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=s},{"path-to-regexp":15}],6:[function(e,t,n){var r=e("./route"),o=e("./helpers"),s=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){new RegExp(r.value[0]).test(t)&&o.push(r.value[1]),r=n.next()}return o},a=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){a.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),a.prototype.add=function(e,t,n,s){var a;s=s||{},t instanceof RegExp?a=RegExp:a=(a=s.origin||self.location.origin)instanceof RegExp?a.source:function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(a),e=e.toLowerCase();var c=new r(e,t,n,s);this.routes.has(a)||this.routes.set(a,new Map);var i=this.routes.get(a);i.has(e)||i.set(e,new Map);var u=i.get(e),f=c.regexp||c.fullUrlRegExp;u.has(f.source)&&o.debug('"'+t+'" resolves to same regex as existing route.'),u.set(f.source,c)},a.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,s(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},a.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r<t.length;r++){var o=t[r],a=o&&o.get(e.toLowerCase());if(a){var c=s(a,n);if(c.length>0)return c[0].makeHandler(n)}}return null},a.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new a},{"./helpers":1,"./route":5}],7:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache first ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(t){var s=n.cache||r.cache,a=Date.now();return o.isResponseFresh(t,s.maxAgeSeconds,a)?t:o.fetchAndCache(e,n)})})}},{"../helpers":1,"../options":4}],8:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache only ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||r.cache,s=Date.now();if(o.isResponseFresh(e,t.maxAgeSeconds,s))return e})})}},{"../helpers":1,"../options":4}],9:[function(e,t,n){var r=e("../helpers"),o=e("./cacheOnly");t.exports=function(e,t,n){return r.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(s,a){var c=!1,i=[],u=function(e){i.push(e.toString()),c?a(new Error('Both cache and network failed: "'+i.join('", "')+'"')):c=!0},f=function(e){e instanceof Response?s(e):u("No result returned")};r.fetchAndCache(e.clone(),n).then(f,u),o(e,t,n).then(f,u)})}},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){var s=(n=n||{}).successResponses||r.successResponses,a=n.networkTimeoutSeconds||r.networkTimeoutSeconds;return o.debug("Strategy: network first ["+e.url+"]",n),o.openCache(n).then(function(t){var c,i,u=[];if(a){var f=new Promise(function(s){c=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||r.cache,a=Date.now(),c=t.maxAgeSeconds;o.isResponseFresh(e,c,a)&&s(e)})},1e3*a)});u.push(f)}var h=o.fetchAndCache(e,n).then(function(e){if(c&&clearTimeout(c),s.test(e.status))return e;throw o.debug("Response was an HTTP error: "+e.statusText,n),i=e,new Error("Bad response")}).catch(function(r){return o.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(i)return i;throw r})});return u.push(h),Promise.race(u)})}},{"../helpers":1,"../options":4}],12:[function(e,t,n){var r=e("../helpers");t.exports=function(e,t,n){return r.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}},{"../helpers":1}],13:[function(e,t,n){var r=e("./options"),o=e("./router"),s=e("./helpers"),a=e("./strategies"),c=e("./listeners");s.debug("Service Worker Toolbox is loading"),self.addEventListener("install",c.installListener),self.addEventListener("activate",c.activateListener),self.addEventListener("fetch",c.fetchListener),t.exports={networkOnly:a.networkOnly,networkFirst:a.networkFirst,cacheOnly:a.cacheOnly,cacheFirst:a.cacheFirst,fastest:a.fastest,router:o,options:r,cache:s.cache,uncache:s.uncache,precache:s.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],o=0,s=0,a="",u=t&&t.delimiter||"/";null!=(n=d.exec(e));){var f=n[0],h=n[1],l=n.index;if(a+=e.slice(s,l),s=l+f.length,h)a+=h[1];else{var p=e[s],m=n[2],g=n[3],b=n[4],v=n[5],w=n[6],x=n[7];a&&(r.push(a),a="");var y=null!=m&&null!=p&&p!==m,E="+"===w||"*"===w,R="?"===w||"*"===w,C=n[2]||u,k=b||v;r.push({name:g||o++,prefix:m||"",delimiter:C,optional:R,repeat:E,partial:y,asterisk:!!x,pattern:k?i(k):x?".*":"[^"+c(C)+"]+?"})}}return s<e.length&&(a+=e.substr(s)),a&&r.push(a),r}function o(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function a(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var a="",c=n||{},i=(r||{}).pretty?o:encodeURIComponent,u=0;u<e.length;u++){var f=e[u];if("string"!=typeof f){var h,l=c[f.name];if(null==l){if(f.optional){f.partial&&(a+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(p(l)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var d=0;d<l.length;d++){if(h=i(l[d]),!t[u].test(h))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+JSON.stringify(h)+"`");a+=(0===d?f.prefix:f.delimiter)+h}}else{if(h=f.asterisk?s(l):i(l),!t[u].test(h))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+h+'"');a+=f.prefix+h}}else a+=f}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function i(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function h(e,t,n){p(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,s="",a=0;a<e.length;a++){var i=e[a];if("string"==typeof i)s+=c(i);else{var h=c(i.prefix),l="(?:"+i.pattern+")";t.push(i),i.repeat&&(l+="(?:"+h+l+")*"),s+=l=i.optional?i.partial?h+"("+l+")?":"(?:"+h+"("+l+"))?":h+"("+l+")"}}var d=c(n.delimiter||"/"),m=s.slice(-d.length)===d;return r||(s=(m?s.slice(0,-d.length):s)+"(?:"+d+"(?=$))?"),s+=o?"$":r&&m?"":"(?="+d+"|$)",u(new RegExp("^"+s,f(n)),t)}function l(e,t,n){return p(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):p(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(l(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return h(r(e,n),t,n)}(e,t,n)}var p=e("isarray");t.exports=l,t.exports.parse=r,t.exports.compile=function(e,t){return a(r(e,t))},t.exports.tokensToFunction=a,t.exports.tokensToRegExp=h;var d=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},{isarray:14}],16:[function(e,t,n){!function(){var e=Cache.prototype.addAll,t=navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);if(t)var n=t[1],r=parseInt(t[2]);e&&(!t||"Firefox"===n&&r>=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}),toolbox.router.get(/^https:\/\/fonts\.googleapis\.com\//,toolbox.cacheFirst,{}),toolbox.router.get(/^https:\/\/fonts\.gstatic\.com\//,toolbox.cacheFirst,{}),toolbox.router.get(/^https:\/\/cdn\.socket\.io\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/socket.io\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/_debugbar\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/browser-sync\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/avatar\//,toolbox.cacheFirst,{}),importScripts("/js/service-worker-ext.js"); \ No newline at end of file
+"use strict";var precacheConfig=[["0bd0898fc9d907f4b31b968c6e2efa7f.js","0bd0898fc9d907f4b31b968c6e2efa7f"],["3fc17c73a369921b5d2a49b8e752592b.js","3fc17c73a369921b5d2a49b8e752592b"],["becf15e26adbe45cab6f048bbbbabf01.js","becf15e26adbe45cab6f048bbbbabf01"],["css/admin.css","bc0158da6ff8698f0590f8bb1e065e79"],["css/app.css","231941c5dccb58c9bb31e18613337d0a"],["fonts/vendor/Ionicons/ionicons.eot","2c2ae068be3b089e0a5b59abb1831550"],["fonts/vendor/Ionicons/ionicons.svg","621bd386841f74e0053cb8e67f8a0604"],["fonts/vendor/Ionicons/ionicons.ttf","24712f6c47821394fba7942fbb52c3b2"],["fonts/vendor/Ionicons/ionicons.woff","05acfdb568b3df49ad31355b19495d4a"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.eot","f4769f9bdb7466be65088239c12046d1"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.svg","89889688147bd7575d6327160d64e760"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.ttf","e18bbf611f2a2e43afc071aa2f4e1512"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.woff","fa2772327f55d8198301fdb8bcfc8158"],["fonts/vendor/bootstrap/dist/glyphicons-halflings-regular.woff2","448c34a56d699c29117adc64c43affeb"],["fonts/vendor/font-awesome/fontawesome-webfont.eot","674f50d287a8c48dc19ba404d20fe713"],["fonts/vendor/font-awesome/fontawesome-webfont.svg","912ec66d7572ff821749319396470bde"],["fonts/vendor/font-awesome/fontawesome-webfont.ttf","b06871f281fee6b241d60582ae9369b9"],["fonts/vendor/font-awesome/fontawesome-webfont.woff","fee66e712a8a08eef5805a46892932ad"],["fonts/vendor/font-awesome/fontawesome-webfont.woff2","af7ae505a9eed503f8b8e6982036873e"],["fonts/vendor/ionicons/dist/ionicons.eot","3c1e04901e63bef6c26cbe06c067ca2c"],["fonts/vendor/ionicons/dist/ionicons.svg","91433571f154776a1d46c2a287de05d7"],["fonts/vendor/ionicons/dist/ionicons.ttf","b2e0fc821c6886fb3940f85a3320003e"],["fonts/vendor/ionicons/dist/ionicons.woff","a21b9e1aad96623ef91bca7ecea7b169"],["fonts/vendor/ionicons/dist/ionicons.woff2","43d5c718339efeb1177aff722d72669d"],["js/admin.js","d656e7c1fc1d989c60105a14d02f7b25"],["js/app.js","5769f628a89c0d8ff9b0515043c4542b"],["js/initial_key_gen.js","7b474bb47ec94d95b7a6d86d9a339d87"],["js/service-worker-ext.js","c28a117247a6ecf72b77c9b1b28a3d09"],["service-worker.js","b2317fdb150af08bfdf8b6d8eb3195b3"]],cacheName="sw-precache-v3-BEAM-Messenger-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(e){return e.redirected?("body"in e?Promise.resolve(e.body):e.blob()).then(function(t){return new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText})}):Promise.resolve(e)},createCacheKey=function(e,t,n,r){var o=new URL(e);return r&&o.pathname.match(r)||(o.search+=(o.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),o.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,t){var n=new URL(e);return n.hash="",n.search=n.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),n.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),o=createCacheKey(r,hashParamName,n,!1);return[r.toString(),o]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(n){if(!t.has(n)){var r=new Request(n,{credentials:"same-origin"});return fetch(r).then(function(t){if(!t.ok)throw new Error("Request for "+n+" returned a response with status "+t.status);return cleanResponse(t).then(function(t){return e.put(n,t)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(n){return Promise.all(n.map(function(n){if(!t.has(n.url))return e.delete(n)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,n=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);(t=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,"index.html"),t=urlsToCacheKeys.has(n));!t&&"navigate"===e.request.mode&&isPathWhitelisted([],e.request.url)&&(n=new URL("/",self.location).toString(),t=urlsToCacheKeys.has(n)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).toolbox=e()}}(function(){return function e(t,n,r){function o(a,c){if(!n[a]){if(!t[a]){var i="function"==typeof require&&require;if(!c&&i)return i(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var f=n[a]={exports:{}};t[a][0].call(f.exports,function(e){var n=t[a][1][e];return o(n||e)},f,f.exports,e,t,n,r)}return n[a].exports}for(var s="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){function r(e,t){((t=t||{}).debug||i.debug)&&console.log("[sw-toolbox] "+e)}function o(e){var t;return e&&e.cache&&(t=e.cache.name),t=t||i.cache.name,caches.open(t)}function s(e,t,n){var o=e.url,s=n.maxAgeSeconds,a=n.maxEntries,c=n.name,i=Date.now();return r("Updating LRU order for "+o+". Max entries is "+a+", max age is "+s),u.getDb(c).then(function(e){return u.setTimestampForUrl(e,o,i)}).then(function(e){return u.expireEntries(e,a,s,i)}).then(function(e){r("Successfully updated IDB.");var n=e.map(function(e){return t.delete(e)});return Promise.all(n).then(function(){r("Done with cache cleanup.")})}).catch(function(e){r(e)})}function a(e){var t=Array.isArray(e);if(t&&e.forEach(function(e){"string"==typeof e||e instanceof Request||(t=!1)}),!t)throw new TypeError("The precache method expects either an array of strings and/or Requests or a Promise that resolves to an array of strings and/or Requests.");return e}var c,i=e("./options"),u=e("./idb-cache-expiration");t.exports={debug:r,fetchAndCache:function(e,t){var n=(t=t||{}).successResponses||i.successResponses;return fetch(e.clone()).then(function(r){return"GET"===e.method&&n.test(r.status)&&o(t).then(function(n){n.put(e,r).then(function(){var r=t.cache||i.cache;(r.maxEntries||r.maxAgeSeconds)&&r.name&&function(e,t,n){var r=s.bind(null,e,t,n);c=c?c.then(r):r()}(e,n,r)})}),r.clone()})},openCache:o,renameCache:function(e,t,n){return r("Renaming cache: ["+e+"] to ["+t+"]",n),caches.delete(t).then(function(){return Promise.all([caches.open(e),caches.open(t)]).then(function(t){var n=t[0],r=t[1];return n.keys().then(function(e){return Promise.all(e.map(function(e){return n.match(e).then(function(t){return r.put(e,t)})}))}).then(function(){return caches.delete(e)})})})},cache:function(e,t){return o(t).then(function(t){return t.add(e)})},uncache:function(e,t){return o(t).then(function(t){return t.delete(e)})},precache:function(e){e instanceof Promise||a(e),i.preCacheItems=i.preCacheItems.concat(e)},validatePrecacheInput:a,isResponseFresh:function(e,t,n){if(!e)return!1;if(t){var r=e.headers.get("date");if(r&&new Date(r).getTime()+1e3*t<n)return!1}return!0}}},{"./idb-cache-expiration":2,"./options":4}],2:[function(e,t,n){var r="sw-toolbox-",o=1,s="store",a="url",c="timestamp",i={};t.exports={getDb:function(e){return e in i||(i[e]=function(e){return new Promise(function(t,n){var i=indexedDB.open(r+e,o);i.onupgradeneeded=function(){i.result.createObjectStore(s,{keyPath:a}).createIndex(c,c,{unique:!1})},i.onsuccess=function(){t(i.result)},i.onerror=function(){n(i.error)}})}(e)),i[e]},setTimestampForUrl:function(e,t,n){return new Promise(function(r,o){var a=e.transaction(s,"readwrite");a.objectStore(s).put({url:t,timestamp:n}),a.oncomplete=function(){r(e)},a.onabort=function(){o(a.error)}})},expireEntries:function(e,t,n,r){return function(e,t,n){return t?new Promise(function(r,o){var i=1e3*t,u=[],f=e.transaction(s,"readwrite"),h=f.objectStore(s);h.index(c).openCursor().onsuccess=function(e){var t=e.target.result;if(t&&n-i>t.value[c]){var r=t.value[a];u.push(r),h.delete(r),t.continue()}},f.oncomplete=function(){r(u)},f.onabort=o}):Promise.resolve([])}(e,n,r).then(function(n){return function(e,t){return t?new Promise(function(n,r){var o=[],i=e.transaction(s,"readwrite"),u=i.objectStore(s),f=u.index(c),h=f.count();f.count().onsuccess=function(){var e=h.result;e>t&&(f.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var s=r.value[a];o.push(s),u.delete(s),e-o.length>t&&r.continue()}})},i.oncomplete=function(){n(o)},i.onabort=r}):Promise.resolve([])}(e,t).then(function(e){return n.concat(e)})})}}},{}],3:[function(e,t,n){function r(e){return e.reduce(function(e,t){return e.concat(t)},[])}e("serviceworker-cache-polyfill");var o=e("./helpers"),s=e("./router"),a=e("./options");t.exports={fetchListener:function(e){var t=s.match(e.request);t?e.respondWith(t(e.request)):s.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(s.default(e.request))},activateListener:function(e){o.debug("activate event fired");var t=a.cache.name+"$$$inactive$$$";e.waitUntil(o.renameCache(t,a.cache.name))},installListener:function(e){var t=a.cache.name+"$$$inactive$$$";o.debug("install event fired"),o.debug("creating cache ["+t+"]"),e.waitUntil(o.openCache({cache:{name:t}}).then(function(e){return Promise.all(a.preCacheItems).then(r).then(o.validatePrecacheInput).then(function(t){return o.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){var r=new URL("./",self.location).pathname,o=e("path-to-regexp"),s=function(e,t,n,s){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=r+t),this.keys=[],this.regexp=o(t,this.keys)),this.method=e,this.options=s,this.handler=n};s.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=s},{"path-to-regexp":15}],6:[function(e,t,n){var r=e("./route"),o=e("./helpers"),s=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){new RegExp(r.value[0]).test(t)&&o.push(r.value[1]),r=n.next()}return o},a=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){a.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),a.prototype.add=function(e,t,n,s){var a;s=s||{},t instanceof RegExp?a=RegExp:a=(a=s.origin||self.location.origin)instanceof RegExp?a.source:function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}(a),e=e.toLowerCase();var c=new r(e,t,n,s);this.routes.has(a)||this.routes.set(a,new Map);var i=this.routes.get(a);i.has(e)||i.set(e,new Map);var u=i.get(e),f=c.regexp||c.fullUrlRegExp;u.has(f.source)&&o.debug('"'+t+'" resolves to same regex as existing route.'),u.set(f.source,c)},a.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,s(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},a.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r<t.length;r++){var o=t[r],a=o&&o.get(e.toLowerCase());if(a){var c=s(a,n);if(c.length>0)return c[0].makeHandler(n)}}return null},a.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new a},{"./helpers":1,"./route":5}],7:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache first ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(t){var s=n.cache||r.cache,a=Date.now();return o.isResponseFresh(t,s.maxAgeSeconds,a)?t:o.fetchAndCache(e,n)})})}},{"../helpers":1,"../options":4}],8:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){return n=n||{},o.debug("Strategy: cache only ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||r.cache,s=Date.now();if(o.isResponseFresh(e,t.maxAgeSeconds,s))return e})})}},{"../helpers":1,"../options":4}],9:[function(e,t,n){var r=e("../helpers"),o=e("./cacheOnly");t.exports=function(e,t,n){return r.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(s,a){var c=!1,i=[],u=function(e){i.push(e.toString()),c?a(new Error('Both cache and network failed: "'+i.join('", "')+'"')):c=!0},f=function(e){e instanceof Response?s(e):u("No result returned")};r.fetchAndCache(e.clone(),n).then(f,u),o(e,t,n).then(f,u)})}},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){var r=e("../options"),o=e("../helpers");t.exports=function(e,t,n){var s=(n=n||{}).successResponses||r.successResponses,a=n.networkTimeoutSeconds||r.networkTimeoutSeconds;return o.debug("Strategy: network first ["+e.url+"]",n),o.openCache(n).then(function(t){var c,i,u=[];if(a){var f=new Promise(function(s){c=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||r.cache,a=Date.now(),c=t.maxAgeSeconds;o.isResponseFresh(e,c,a)&&s(e)})},1e3*a)});u.push(f)}var h=o.fetchAndCache(e,n).then(function(e){if(c&&clearTimeout(c),s.test(e.status))return e;throw o.debug("Response was an HTTP error: "+e.statusText,n),i=e,new Error("Bad response")}).catch(function(r){return o.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(i)return i;throw r})});return u.push(h),Promise.race(u)})}},{"../helpers":1,"../options":4}],12:[function(e,t,n){var r=e("../helpers");t.exports=function(e,t,n){return r.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}},{"../helpers":1}],13:[function(e,t,n){var r=e("./options"),o=e("./router"),s=e("./helpers"),a=e("./strategies"),c=e("./listeners");s.debug("Service Worker Toolbox is loading"),self.addEventListener("install",c.installListener),self.addEventListener("activate",c.activateListener),self.addEventListener("fetch",c.fetchListener),t.exports={networkOnly:a.networkOnly,networkFirst:a.networkFirst,cacheOnly:a.cacheOnly,cacheFirst:a.cacheFirst,fastest:a.fastest,router:o,options:r,cache:s.cache,uncache:s.uncache,precache:s.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],o=0,s=0,a="",u=t&&t.delimiter||"/";null!=(n=d.exec(e));){var f=n[0],h=n[1],l=n.index;if(a+=e.slice(s,l),s=l+f.length,h)a+=h[1];else{var p=e[s],m=n[2],g=n[3],b=n[4],v=n[5],w=n[6],x=n[7];a&&(r.push(a),a="");var y=null!=m&&null!=p&&p!==m,E="+"===w||"*"===w,R="?"===w||"*"===w,C=n[2]||u,k=b||v;r.push({name:g||o++,prefix:m||"",delimiter:C,optional:R,repeat:E,partial:y,asterisk:!!x,pattern:k?i(k):x?".*":"[^"+c(C)+"]+?"})}}return s<e.length&&(a+=e.substr(s)),a&&r.push(a),r}function o(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function a(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var a="",c=n||{},i=(r||{}).pretty?o:encodeURIComponent,u=0;u<e.length;u++){var f=e[u];if("string"!=typeof f){var h,l=c[f.name];if(null==l){if(f.optional){f.partial&&(a+=f.prefix);continue}throw new TypeError('Expected "'+f.name+'" to be defined')}if(p(l)){if(!f.repeat)throw new TypeError('Expected "'+f.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(f.optional)continue;throw new TypeError('Expected "'+f.name+'" to not be empty')}for(var d=0;d<l.length;d++){if(h=i(l[d]),!t[u].test(h))throw new TypeError('Expected all "'+f.name+'" to match "'+f.pattern+'", but received `'+JSON.stringify(h)+"`");a+=(0===d?f.prefix:f.delimiter)+h}}else{if(h=f.asterisk?s(l):i(l),!t[u].test(h))throw new TypeError('Expected "'+f.name+'" to match "'+f.pattern+'", but received "'+h+'"');a+=f.prefix+h}}else a+=f}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function i(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function f(e){return e.sensitive?"":"i"}function h(e,t,n){p(t)||(n=t||n,t=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,s="",a=0;a<e.length;a++){var i=e[a];if("string"==typeof i)s+=c(i);else{var h=c(i.prefix),l="(?:"+i.pattern+")";t.push(i),i.repeat&&(l+="(?:"+h+l+")*"),s+=l=i.optional?i.partial?h+"("+l+")?":"(?:"+h+"("+l+"))?":h+"("+l+")"}}var d=c(n.delimiter||"/"),m=s.slice(-d.length)===d;return r||(s=(m?s.slice(0,-d.length):s)+"(?:"+d+"(?=$))?"),s+=o?"$":r&&m?"":"(?="+d+"|$)",u(new RegExp("^"+s,f(n)),t)}function l(e,t,n){return p(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):p(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(l(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",f(n)),t)}(e,t,n):function(e,t,n){return h(r(e,n),t,n)}(e,t,n)}var p=e("isarray");t.exports=l,t.exports.parse=r,t.exports.compile=function(e,t){return a(r(e,t))},t.exports.tokensToFunction=a,t.exports.tokensToRegExp=h;var d=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},{isarray:14}],16:[function(e,t,n){!function(){var e=Cache.prototype.addAll,t=navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);if(t)var n=t[1],r=parseInt(t[2]);e&&(!t||"Firefox"===n&&r>=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}),toolbox.router.get(/^https:\/\/fonts\.googleapis\.com\//,toolbox.cacheFirst,{}),toolbox.router.get(/^https:\/\/fonts\.gstatic\.com\//,toolbox.cacheFirst,{}),toolbox.router.get(/^https:\/\/cdn\.socket\.io\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/socket.io\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/_debugbar\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/browser-sync\//,toolbox.cacheFirst,{}),toolbox.router.get(/\/avatar\//,toolbox.cacheFirst,{}),importScripts("/js/service-worker-ext.js"); \ No newline at end of file
diff --git a/resources/assets/js/admin.js b/resources/assets/js/admin.js
index 508e2c6..95038f5 100644
--- a/resources/assets/js/admin.js
+++ b/resources/assets/js/admin.js
@@ -266,389 +266,4 @@ $(function () {
-//---------------------------------------------------------END OF CHARTS------------------------------------------------------
-
-
-/**
- * AdminLTE Demo Menu
- * ------------------
- * You should not use this file in production.
- * This file is for demo purposes only.
- */
-$(function () {
- 'use strict';
-
- /**
- * Get access to plugins
- */
-
- $('[data-toggle="control-sidebar"]').controlSidebar()
- $('[data-toggle="push-menu"]').pushMenu()
-
- var $pushMenu = $('[data-toggle="push-menu"]').data('lte.pushmenu')
- var $controlSidebar = $('[data-toggle="control-sidebar"]').data('lte.controlsidebar')
- var $layout = $('body').data('lte.layout')
-
- /**
- * List of all the available skins
- *
- * @type Array
- */
- var mySkins = [
- 'skin-blue',
- 'skin-black',
- 'skin-red',
- 'skin-yellow',
- 'skin-purple',
- 'skin-green',
- 'skin-blue-light',
- 'skin-black-light',
- 'skin-red-light',
- 'skin-yellow-light',
- 'skin-purple-light',
- 'skin-green-light'
- ]
-
- /**
- * Get a prestored setting
- *
- * @param String name Name of of the setting
- * @returns String The value of the setting | null
- */
- function get(name) {
- if (typeof (Storage) !== 'undefined') {
- return localStorage.getItem(name)
- } else {
- window.alert('Please use a modern browser to properly view this template!')
- }
- }
-
- /**
- * Store a new settings in the browser
- *
- * @param String name Name of the setting
- * @param String val Value of the setting
- * @returns void
- */
- function store(name, val) {
- if (typeof (Storage) !== 'undefined') {
- localStorage.setItem(name, val)
- } else {
- window.alert('Please use a modern browser to properly view this template!')
- }
- }
-
- /**
- * Toggles layout classes
- *
- * @param String cls the layout class to toggle
- * @returns void
- */
- function changeLayout(cls) {
- $('body').toggleClass(cls)
- $layout.fixSidebar()
- if ($('body').hasClass('fixed') && cls == 'fixed') {
- $pushMenu.expandOnHover()
- $layout.activate()
- }
- $controlSidebar.fix()
- }
-
- /**
- * Replaces the old skin with the new skin
- * @param String cls the new skin class
- * @returns Boolean false to prevent link's default action
- */
- function changeSkin(cls) {
- $.each(mySkins, function (i) {
- $('body').removeClass(mySkins[i])
- })
-
- $('body').addClass(cls)
- store('skin', cls)
- return false
- }
-
- /**
- * Retrieve default settings and apply them to the template
- *
- * @returns void
- */
- function setup() {
- var tmp = get('skin')
- if (tmp && $.inArray(tmp, mySkins))
- changeSkin(tmp)
-
- // Add the change skin listener
- $('[data-skin]').on('click', function (e) {
- if ($(this).hasClass('knob'))
- return
- e.preventDefault()
- changeSkin($(this).data('skin'))
- })
-
- // Add the layout manager
- $('[data-layout]').on('click', function () {
- changeLayout($(this).data('layout'))
- })
-
- $('[data-controlsidebar]').on('click', function () {
- changeLayout($(this).data('controlsidebar'))
- var slide = !$controlSidebar.options.slide
-
- $controlSidebar.options.slide = slide
- if (!slide)
- $('.control-sidebar').removeClass('control-sidebar-open')
- })
-
- $('[data-sidebarskin="toggle"]').on('click', function () {
- var $sidebar = $('.control-sidebar')
- if ($sidebar.hasClass('control-sidebar-dark')) {
- $sidebar.removeClass('control-sidebar-dark')
- $sidebar.addClass('control-sidebar-light')
- } else {
- $sidebar.removeClass('control-sidebar-light')
- $sidebar.addClass('control-sidebar-dark')
- }
- })
-
- $('[data-enable="expandOnHover"]').on('click', function () {
- $(this).attr('disabled', true)
- $pushMenu.expandOnHover()
- if (!$('body').hasClass('sidebar-collapse'))
- $('[data-layout="sidebar-collapse"]').click()
- })
-
- // Reset options
- if ($('body').hasClass('fixed')) {
- $('[data-layout="fixed"]').attr('checked', 'checked')
- }
- if ($('body').hasClass('layout-boxed')) {
- $('[data-layout="layout-boxed"]').attr('checked', 'checked')
- }
- if ($('body').hasClass('sidebar-collapse')) {
- $('[data-layout="sidebar-collapse"]').attr('checked', 'checked')
- }
-
- }
-
- // Create the new tab
- var $tabPane = $('<div />', {
- 'id': 'control-sidebar-theme-demo-options-tab',
- 'class': 'tab-pane active'
- })
-
- // Create the tab button
- var $tabButton = $('<li />', {
- 'class': 'active'
- })
- .html('<a href=\'#control-sidebar-theme-demo-options-tab\' data-toggle=\'tab\'>' +
- '<i class="fa fa-wrench"></i>' +
- '</a>')
-
- // Add the tab button to the right sidebar tabs
- $('[href="#control-sidebar-home-tab"]')
- .parent()
- .before($tabButton)
-
- // Create the menu
- var $demoSettings = $('<div />')
-
- // Layout options
- $demoSettings.append(
- '<h4 class="control-sidebar-heading">' +
- 'Layout Options' +
- '</h4>'
- // Fixed layout
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-layout="fixed"class="pull-right"/> ' +
- 'Fixed layout' +
- '</label>' +
- '<p>Activate the fixed layout. You can\'t use fixed and boxed layouts together</p>' +
- '</div>'
- // Boxed layout
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-layout="layout-boxed" class="pull-right"/> ' +
- 'Boxed Layout' +
- '</label>' +
- '<p>Activate the boxed layout</p>' +
- '</div>'
- // Sidebar Toggle
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-layout="sidebar-collapse"class="pull-right"/> ' +
- 'Toggle Sidebar' +
- '</label>' +
- '<p>Toggle the left sidebar\'s state (open or collapse)</p>' +
- '</div>'
- // Sidebar mini expand on hover toggle
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-enable="expandOnHover"class="pull-right"/> ' +
- 'Sidebar Expand on Hover' +
- '</label>' +
- '<p>Let the sidebar mini expand on hover</p>' +
- '</div>'
- // Control Sidebar Toggle
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-controlsidebar="control-sidebar-open"class="pull-right"/> ' +
- 'Toggle Right Sidebar Slide' +
- '</label>' +
- '<p>Toggle between slide over content and push content effects</p>' +
- '</div>'
- // Control Sidebar Skin Toggle
- +
- '<div class="form-group">' +
- '<label class="control-sidebar-subheading">' +
- '<input type="checkbox"data-sidebarskin="toggle"class="pull-right"/> ' +
- 'Toggle Right Sidebar Skin' +
- '</label>' +
- '<p>Toggle between dark and light skins for the right sidebar</p>' +
- '</div>'
- )
- var $skinsList = $('<ul />', {
- 'class': 'list-unstyled clearfix'
- })
-
- // Dark sidebar skins
- var $skinBlue =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-blue" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px; background: #367fa9"></span><span class="bg-light-blue" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222d32"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Blue</p>')
- $skinsList.append($skinBlue)
- var $skinBlack =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-black" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div style="box-shadow: 0 0 2px rgba(0,0,0,0.1)" class="clearfix"><span style="display:block; width: 20%; float: left; height: 7px; background: #fefefe"></span><span style="display:block; width: 80%; float: left; height: 7px; background: #fefefe"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Black</p>')
- $skinsList.append($skinBlack)
- var $skinPurple =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-purple" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-purple-active"></span><span class="bg-purple" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222d32"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Purple</p>')
- $skinsList.append($skinPurple)
- var $skinGreen =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-green" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-green-active"></span><span class="bg-green" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222d32"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Green</p>')
- $skinsList.append($skinGreen)
- var $skinRed =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-red" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-red-active"></span><span class="bg-red" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222d32"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Red</p>')
- $skinsList.append($skinRed)
- var $skinYellow =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-yellow" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-yellow-active"></span><span class="bg-yellow" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #222d32"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin">Yellow</p>')
- $skinsList.append($skinYellow)
-
- // Light sidebar skins
- var $skinBlueLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-blue-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px; background: #367fa9"></span><span class="bg-light-blue" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Blue Light</p>')
- $skinsList.append($skinBlueLight)
- var $skinBlackLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-black-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div style="box-shadow: 0 0 2px rgba(0,0,0,0.1)" class="clearfix"><span style="display:block; width: 20%; float: left; height: 7px; background: #fefefe"></span><span style="display:block; width: 80%; float: left; height: 7px; background: #fefefe"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Black Light</p>')
- $skinsList.append($skinBlackLight)
- var $skinPurpleLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-purple-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-purple-active"></span><span class="bg-purple" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Purple Light</p>')
- $skinsList.append($skinPurpleLight)
- var $skinGreenLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-green-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-green-active"></span><span class="bg-green" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Green Light</p>')
- $skinsList.append($skinGreenLight)
- var $skinRedLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-red-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-red-active"></span><span class="bg-red" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Red Light</p>')
- $skinsList.append($skinRedLight)
- var $skinYellowLight =
- $('<li />', {
- style: 'float:left; width: 33.33333%; padding: 5px;'
- })
- .append('<a href="javascript:void(0)" data-skin="skin-yellow-light" style="display: block; box-shadow: 0 0 3px rgba(0,0,0,0.4)" class="clearfix full-opacity-hover">' +
- '<div><span style="display:block; width: 20%; float: left; height: 7px;" class="bg-yellow-active"></span><span class="bg-yellow" style="display:block; width: 80%; float: left; height: 7px;"></span></div>' +
- '<div><span style="display:block; width: 20%; float: left; height: 20px; background: #f9fafc"></span><span style="display:block; width: 80%; float: left; height: 20px; background: #f4f5f7"></span></div>' +
- '</a>' +
- '<p class="text-center no-margin" style="font-size: 12px">Yellow Light</p>')
- $skinsList.append($skinYellowLight)
-
- $demoSettings.append('<h4 class="control-sidebar-heading">Skins</h4>')
- $demoSettings.append($skinsList)
-
- $tabPane.append($demoSettings)
- $('#control-sidebar-home-tab').after($tabPane)
-
- setup()
-
- $('[data-toggle="tooltip"]').tooltip()
-}) \ No newline at end of file
+//---------------------------------------------------------END OF CHARTS------------------------------------------------------ \ No newline at end of file
diff --git a/resources/views/admin/layouts/app.blade.php b/resources/views/admin/layouts/app.blade.php
index e1d4632..2f7e48d 100755
--- a/resources/views/admin/layouts/app.blade.php
+++ b/resources/views/admin/layouts/app.blade.php
@@ -15,7 +15,7 @@
<![endif]-->
</head>
-<body class="hold-transition skin-blue sidebar-mini">
+<body class="hold-transition skin-blue sidebar-mini fixed sidebar-collapse">
<div class="wrapper">
@include('admin.layouts.navbar');
diff --git a/resources/views/admin/layouts/navbar.blade.php b/resources/views/admin/layouts/navbar.blade.php
index 149241a..e021129 100644
--- a/resources/views/admin/layouts/navbar.blade.php
+++ b/resources/views/admin/layouts/navbar.blade.php
@@ -1,7 +1,7 @@
<header class="main-header">
<a href="/" class="logo">
- <span class="logo-mini"><b>BEAM</b></span>
+ <span class="logo-mini"><b>B</b>M</span>
<span class="logo-lg"><b>BEAM</b>-Messenger</span>
</a>