From 42e196906d281852805e6550bd50e2ce93e1b19a Mon Sep 17 00:00:00 2001 From: Maksym Dudnik Date: Fri, 19 May 2023 10:28:24 +0300 Subject: [PATCH] mark2 gateway dashboard --- .../json/system/widget_bundles/cards.json | 19 + .../widget_bundles/gateway_widgets.json | 136 +++++-- ui-ngx/src/app/modules/common/modules-map.ts | 6 + .../widget/lib/action-buttons.component.html | 30 ++ .../widget/lib/action-buttons.component.scss | 33 ++ .../widget/lib/action-buttons.component.ts | 61 +++ ...ion-buttons-widget-settings.component.html | 43 ++ ...ction-buttons-widget-settings.component.ts | 62 +++ .../gateway-logs-settings.component.html | 26 ++ .../gateway-logs-settings.component.ts | 54 +++ ...ateway-service-rpc-settings.component.html | 22 + .../gateway-service-rpc-settings.component.ts | 52 +++ .../lib/settings/widget-settings.module.ts | 25 +- .../widget/widget-components.module.ts | 7 +- .../gateway-configuration.component.html | 191 +++++++-- .../gateway-configuration.component.scss | 41 ++ .../device/gateway-configuration.component.ts | 257 ++++++++---- .../device/gateway-connectors.component.html | 246 ++++++----- .../device/gateway-connectors.component.scss | 33 +- .../device/gateway-connectors.component.ts | 384 +++++++++++++----- .../device/gateway-logs.component.html | 57 +++ .../device/gateway-logs.component.scss | 55 +++ .../device/gateway-logs.component.ts | 250 ++++++++++++ .../device/gateway-service-rpc.component.html | 49 +++ .../device/gateway-service-rpc.component.scss | 48 +++ .../device/gateway-service-rpc.component.ts | 125 ++++++ .../device/gateway-statistics.component.html | 43 ++ .../device/gateway-statistics.component.scss | 41 ++ .../device/gateway-statistics.component.ts | 150 +++++++ .../gateway-remote-configuration-dialog.html | 2 +- .../components/file-input.component.html | 13 +- .../components/file-input.component.scss | 4 + .../shared/components/file-input.component.ts | 3 + ui-ngx/src/app/shared/shared.module.ts | 9 + .../assets/locale/locale.constant-en_US.json | 51 ++- 35 files changed, 2253 insertions(+), 375 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.ts create mode 100644 ui-ngx/src/app/shared/components/device/gateway-logs.component.html create mode 100644 ui-ngx/src/app/shared/components/device/gateway-logs.component.scss create mode 100644 ui-ngx/src/app/shared/components/device/gateway-logs.component.ts create mode 100644 ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.html create mode 100644 ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.scss create mode 100644 ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.ts create mode 100644 ui-ngx/src/app/shared/components/device/gateway-statistics.component.html create mode 100644 ui-ngx/src/app/shared/components/device/gateway-statistics.component.scss create mode 100644 ui-ngx/src/app/shared/components/device/gateway-statistics.component.ts diff --git a/application/src/main/data/json/system/widget_bundles/cards.json b/application/src/main/data/json/system/widget_bundles/cards.json index 4930219741..ef746b58da 100644 --- a/application/src/main/data/json/system/widget_bundles/cards.json +++ b/application/src/main/data/json/system/widget_bundles/cards.json @@ -217,6 +217,25 @@ "settingsDirective": "tb-dashboard-state-widget-settings", "defaultConfig": "{\"datasources\":[{\"type\":\"static\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"syncParentStateParams\":true,\"defaultAutofillLayout\":true,\"defaultMargin\":0,\"defaultBackgroundColor\":\"#fff\"},\"title\":\"Dashboard state widget\",\"dropShadow\":true,\"enableFullscreen\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"noDataDisplayMessage\":\"\",\"showLegend\":false}" } + }, + { + "alias": "action_buttons", + "name": "Action buttons", + "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCACtAfwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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", + "description": "Allow to create buttons from custom actions", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n margin: 5px;\n padding: 8px;\n}\n\n.tbDatasource-title {\n font-size: 1.200rem;\n font-weight: 500;\n padding-bottom: 10px;\n}\n\n.tbDatasource-table {\n width: 100%;\n box-shadow: 0 0 10px #ccc;\n border-collapse: collapse;\n white-space: nowrap;\n font-size: 1.000rem;\n color: #757575;\n}\n\n.tbDatasource-table td {\n position: relative;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 0px 18px;\n box-sizing: border-box;\n}", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n}\n\nself.actionSources = function() {\n return {\n 'actionButtonClick': {\n name: 'widget-action.action-button-click',\n multiple: true\n }\n };\n}\n\nself.typeParameters = function() {\n return {\n dataKeysOptional: true,\n datasourcesOptional: true\n };\n}\n\nself.onDestroy = function() {\n}\n\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-action-buttons-widget-settings", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"buttonsType\":\"raised\",\"buttonsClass\":\"primary\"},\"title\":\"Action buttons\",\"actions\":{\"actionButtonClick\":[{\"name\":\"Button 1\",\"icon\":\"more_horiz\",\"useShowWidgetActionFunction\":null,\"showWidgetActionFunction\":\"return true;\",\"type\":\"custom\",\"customFunction\":\"\",\"openInSeparateDialog\":false,\"openInPopover\":false,\"id\":\"2ab2fe43-a4e0-7ef6-8a37-381e663ccf74\"},{\"name\":\"Button 2\",\"icon\":\"more_horiz\",\"useShowWidgetActionFunction\":null,\"showWidgetActionFunction\":\"return true;\",\"type\":\"custom\",\"customFunction\":null,\"openInSeparateDialog\":false,\"openInPopover\":false,\"id\":\"243e775d-d78c-f05c-ec3f-db0d20c49416\"}]},\"showTitleIcon\":false,\"dropShadow\":true,\"enableFullscreen\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false}" + } } ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_bundles/gateway_widgets.json b/application/src/main/data/json/system/widget_bundles/gateway_widgets.json index bd6e15ed3d..365576dde0 100644 --- a/application/src/main/data/json/system/widget_bundles/gateway_widgets.json +++ b/application/src/main/data/json/system/widget_bundles/gateway_widgets.json @@ -8,6 +8,25 @@ "name": "Gateway widgets" }, "widgetTypes": [ + { + "alias": "attributes_card", + "name": "Gateway events", + "image": "data:image/png;base64,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", + "description": "Allows to browse events from the gateway.", + "descriptor": { + "type": "latest", + "sizeX": 7.5, + "sizeY": 8, + "resources": [], + "templateHtml": "", + "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n margin: 5px;\n padding: 8px;\n}\n\n.tbDatasource-title {\n font-size: 1.200rem;\n font-weight: 500;\n padding-bottom: 10px;\n}\n\n.tbDatasource-table {\n width: 100%;\n box-shadow: 0 0 10px #ccc;\n border-collapse: collapse;\n white-space: nowrap;\n font-size: 1.000rem;\n color: #757575;\n}\n\n.tbDatasource-table td {\n position: relative;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 0px 18px;\n box-sizing: border-box;\n}", + "controllerScript": "let types;\nlet eventsReg = \"eventsReg\";\n\nself.onInit = function() {\n \n self.ctx.datasourceTitleCells = [];\n self.ctx.valueCells = [];\n self.ctx.labelCells = [];\n\n if (self.ctx.datasources.length && self.ctx.datasources[0].type === 'entity') {\n getDatasourceKeys(self.ctx.datasources[0]);\n } else {\n processDatasources(self.ctx.datasources);\n }\n}\n\nself.onDataUpdated = function() {\n for (var i = 0; i < self.ctx.valueCells.length; i++) {\n var cellData = self.ctx.data[i];\n if (cellData && cellData.data && cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var textValue;\n //toDo -> + IsNumber\n \n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (cellData.dataKey.decimals || cellData.dataKey.decimals === 0) {\n decimals = cellData.dataKey.decimals;\n }\n if (cellData.dataKey.units) {\n units = cellData.dataKey.units;\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, false);\n }\n else {\n txtValue = value;\n }\n self.ctx.valueCells[i].html(txtValue);\n }\n }\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n}\n\nself.onResize = function() {\n var datasourceTitleFontSize = self.ctx.height/8;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n datasourceTitleFontSize = self.ctx.width/12;\n }\n datasourceTitleFontSize = Math.min(datasourceTitleFontSize, 20);\n for (var i = 0; i < self.ctx.datasourceTitleCells.length; i++) {\n self.ctx.datasourceTitleCells[i].css('font-size', datasourceTitleFontSize+'px');\n }\n var valueFontSize = self.ctx.height/9;\n var labelFontSize = self.ctx.height/9;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n valueFontSize = self.ctx.width/15;\n labelFontSize = self.ctx.width/15;\n }\n valueFontSize = Math.min(valueFontSize, 18);\n labelFontSize = Math.min(labelFontSize, 18);\n\n for (i = 0; i < self.ctx.valueCells; i++) {\n self.ctx.valueCells[i].css('font-size', valueFontSize+'px');\n self.ctx.valueCells[i].css('height', valueFontSize*2.5+'px');\n self.ctx.valueCells[i].css('padding', '0px ' + valueFontSize + 'px');\n self.ctx.labelCells[i].css('font-size', labelFontSize+'px');\n self.ctx.labelCells[i].css('height', labelFontSize*2.5+'px');\n self.ctx.labelCells[i].css('padding', '0px ' + labelFontSize + 'px');\n } \n}\n\nfunction processDatasources(datasources) {\n var i = 0;\n var tbDatasource = datasources[i];\n var datasourceId = 'tbDatasource' + i;\n self.ctx.$container.append(\n \"
\"\n );\n\n var datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n\n datasourceContainer.append(\n \"
\" +\n tbDatasource.name + \"
\"\n );\n \n var datasourceTitleCell = $('.tbDatasource-title', datasourceContainer);\n self.ctx.datasourceTitleCells.push(datasourceTitleCell);\n \n var tableId = 'table' + i;\n datasourceContainer.append(\n \"
\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n\n for (var a = 0; a < tbDatasource.dataKeys.length; a++) {\n var dataKey = tbDatasource.dataKeys[a];\n var labelCellId = 'labelCell' + a;\n var cellId = 'cell' + a;\n table.append(\"\" + dataKey.label +\n \"\");\n var labelCell = $('#' + labelCellId, table);\n self.ctx.labelCells.push(labelCell);\n var valueCell = $('#' + cellId, table);\n self.ctx.valueCells.push(valueCell);\n }\n self.onResize();\n}\n\nfunction getDatasourceKeys (datasource) {\n let entityService = self.ctx.$scope.$injector.get(self.ctx.servicesMap.get('entityService'));\n if (datasource.entityId && datasource.entityType) {\n entityService.getEntityKeys({entityType: datasource.entityType, id: datasource.entityId}, '', 'timeseries').subscribe(\n function(data){\n if (data.length) {\n subscribeForKeys (datasource, data);\n }\n });\n }\n}\n\nfunction subscribeForKeys (datasource, data) {\n let eventsRegVals = self.ctx.settings[eventsReg];\n if (eventsRegVals && eventsRegVals.length > 0) {\n var dataKeys = [];\n data.sort();\n data.forEach(dataValue => {eventsRegVals.forEach(event => {\n if (dataValue.toLowerCase().includes(event.toLowerCase())) {\n var dataKey = {\n type: 'timeseries',\n name: dataValue,\n label: dataValue,\n settings: {},\n _hash: Math.random()\n };\n dataKeys.push(dataKey);\n }\n })});\n\n if (dataKeys.length) {\n updateSubscription (datasource, dataKeys);\n }\n }\n}\n\nfunction updateSubscription (datasource, dataKeys) {\n var datasources = [\n {\n type: 'entity',\n name: datasource.aliasName,\n aliasName: datasource.aliasName,\n entityAliasId: datasource.entityAliasId,\n dataKeys: dataKeys\n }\n ];\n \n var subscriptionOptions = {\n datasources: datasources,\n useDashboardTimewindow: false,\n type: 'latest',\n callbacks: {\n onDataUpdated: (subscription) => {\n self.ctx.data = subscription.data;\n self.onDataUpdated();\n }\n }\n };\n \n processDatasources(datasources);\n self.ctx.subscriptionApi.createSubscription(subscriptionOptions, true).subscribe(\n (subscription) => {\n self.ctx.defaultSubscription = subscription;\n }\n );\n}\n\nself.onDestroy = function() {\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\t\n dataKeysOptional: true,\n singleEntity: true\n };\n}\n\n", + "settingsSchema": "", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-gateway-events-widget-settings", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Function Math.round\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.826503672916844,\"funcBody\":\"return Math.round(1000*Math.sin(time/5000));\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"eventsTitle\":\"Gateway Events Form\",\"eventsReg\":[]},\"title\":\"Gateway events\",\"showTitleIcon\":false,\"titleIcon\":\"more_horiz\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"showLegend\":false,\"actions\":{}}" + } + }, { "alias": "gateway_configuration", "name": "Gateway Configuration", @@ -28,22 +47,21 @@ } }, { - "alias": "attributes_card", - "name": "Gateway events", - "image": "data:image/png;base64,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", - "description": "Allows to browse events from the gateway.", + "alias": "gateway_configuration2", + "name": "Gateway configuration", + "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAQEBAQEBAQEBAQGBgUGBggHBwcHCAwJCQkJCQwTDA4MDA4MExEUEA8QFBEeFxUVFx4iHRsdIiolJSo0MjRERFwBBAQEBAQEBAQEBAYGBQYGCAcHBwcIDAkJCQkJDBMMDgwMDgwTERQQDxAUER4XFRUXHiIdGx0iKiUlKjQyNEREXP/CABEIA2cGdAMBIgACEQEDEQH/xAAdAAEAAwEBAQEBAQAAAAAAAAAAAwQFBgIBBwgJ/9oACAEBAAAAAP7vvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdJh4/aYu0B+Z/pPtyUXZBjRbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3Sfg0nBwa+fuKmN/S3Ac3P+ZbX6J+d9Hp4eHv4vUYf67+jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpOF5vL1bPR8D0uVx/9G/h/TxQzbn8q/u82nz3U5PrftdiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpAAIfNgVbQAAAAqWvvz6AAAAI6tz0AAAAArweY7F0AAAAQRXIfHvxZAAAABRj0gAAZukAA4flY7FbQufpYAAAA/L+Xz37pp/QAAAHKcBqwV/n39kAAAAHCcdpfPn64AAAAON4K3t4lr5Z7PfAAAAMPgsPbpfrdwAAzdIABDFBcqTLYAAAA56flui6EAAAAR1orcHMdTcAAAAEEE0tS8AAAAIIPkkNmLzbkAAAAFFZpaQAAzdIAAAAAAAD4PoAAAAAAAAAAAAAAAAAAAAAAAABm3/QAAAAA/HAAAAAHcdNJ9AAAAAAAAAAAAAAAAAAAAAAfPWbpAAAAAB8AAAAAH0AAAAAAAAAAAAAAAAAAAAAAM3SefgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv36Zuk8ewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIpTN0kUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE5m6SKVU8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNN9IJzN0kUrPh56x6t42hBO864AAAAAAAAAAAAAAAAAAAAAAAAAAAAALloQTmbpIpWfDz+JoaVD0yuh1pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXLQgnM3SRSs+HPsx+1hUl9KdhBeqI9DI1wAAAAAAAAAAAAAAAAAAAAAAAAAAALloQTmbpIpWfD+dWuP7jkbfzpOTk738y02/lcXe62bkv24AAAAAAAAAAAAAAAAAAAAAAAAAAAC5aEE5m6SKVnw1cLQ1eT0Ieg5av1eTBf8Audmbd/Ez+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAuWhBOZukilZ8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXLQgnM3SRSsysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvREE5m6SKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCczdJFKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilUIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtW/pBOZukilZ8OXS+RHqhq74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFy0IJzN0kUrPhyYc7ezr1Px0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5aEE5m6SKVnw8xu0Nkxdoxtln4+7zfXmRrhjbObpcfNo1fvRAx9jlOrxffnZMrVyb1bRc7qZlnYfOR6K6Y+wcrrUde2Mf3q0si3sgMjXAAAAAAAAAAAAAAALloQTmbpIpWfDw+HU567s8j1fOZH6xwX7Jk0ecscH01Da57O7fnMf9Z4H9O1eZ5vXp4fO6W1Uxtbf5rvuoh4L7j1N7E86Ulbpuxy+eyGFsbv510ePo5+14/V/f5xJrfnUlbuOR7Xkv2K7+R9F+e9Ry1hF0fIdnlfpHVgAAAAAAAAAAAAAAXLQgnM3SRSs+FnZOp8LkEFexrZ9/Ozb96jcip6UEFexJpc9qZWzDBZgmQVLNPo2fmbPyGu0cvze0Gfm6Hy5Rs1Z5adK7q/Y8K/7kpaNGtLss+hozUT5g6kGnpewAAAAAAAAAAAAAALloQTmbpIpWfCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFy0IJzN0kUrPhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5LloQTmbpIpWfCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzaW/ctCCczdJFK5ykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnuiCczdJFKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgnM3SRSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQTmbpIpXG0s7f5GfO/XbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilcDV4j9Y/L9bR/S5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCczdJFKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilK/sAAYP8+5oANr+iNUAAAAAAAAAAAAAAAAAAAAAAAAAACCczdJFKp0VeSR49xSvHsP4D/J2tkuj88808wftH+gwAAAAAAAAAAAAAAAAAAAAAAAAAAEE5m6SKVnVmdm+5Yfull/Pljxvn+W1R+0d/76T8Q/U9a7yN3+S2l/q39AAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilRZQB8r+5q9g/j3+bQJ+soc31/IP6l/skAAAAAAAAAAAAAAAAAAAAAAAAAACCczdJFKefEgABFweKA+nzoe6+gAAAAAAAAAAAAAAAAAAAAAAAAAAQTmbpIpR8Affn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJzN0kUp55LwB41t8j9gD56PP0AfPR49AAefX0j9gPnoj9gD56AAAAAAAAAAAAAAAAABBOZukilPzjowCjL1tGmAC/bgzAAaFqrngAEmqyfAA1JqNMAGpMAAAAAAAAAAAAAAAAAEE5m6SKVztG4/F7subqdL17n/0TFM35D7eo5tI2s6spRefkT1avJNbJjUK9+CKH29efGx6aTNMVLFJZurOjimT6h9vvq1aWdEAAAAAAAAAAAAAAAAAIJzN0kUqnxW65eadn6+oxO/yY1fz7+PnieVJrUabxD9PUU8ixpZ1Z4j8fXz35fPU/1sMcq/JYIL0y3fyY1Z9ePaX2t3wAAAAAAAAAAAAAAAAAgnM3SRSnNYXz4+vJN19/5RAD5f8ASjF7APVz18o/AAPNmyr1fQHiW880QB4lvAAAAAAAAAAAAAAAAAAgnM3SRSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQTmbpIpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJzN0kUqpH6AAAAAAAAAAAAAAAfLE1aMAAAAAAAAAAAAAAAS2BBOZukilZ8NN5+ffNS9dAAAAAAAAAAAAAA0/dWnhw6Pn7mWNeYAAAAAAAAAAAAAC5aEE5m6SKVnw4Gbm7VKDoNmQAAAAAAAAAAAAADT916OJnxT52nqaHsAAAAAAAAAAAAAC5aEE5m6SKVnw1486f1qAAAAAAAAAAAAAAfn+70en6gooUwAAAAAAAAAAAAAALloQTmbpIpWfDwH5b0G9d/RgAAAAAAAAAAAAAI5Gn6gouI4eXewP2sAAAAAAAAAAAAAAuWhBOZukilZ8OPkXL2R1gAAAAAAAAAAAAAA0/UFGlT5rz0XOfoIAAAAAAAAAAAAABctCCczdJFKz4QAAAAAAAAAAAAAABp+69EAAAAAAAAAAAAAAAXrAgnM3SRSsyp6AAAAAAAAAAAAAAAfL1/OqAAAAAAAAAAAAAAAC3oiCczdJFKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgnM3SRSqEAAAAAAAAAAAaMtCAAAABfmqVQAAAAAAAAAAAAAABauCCczdJFKz4cul8khrze58yexTu74AAAAAAADQmz4ee6EAAAGn6go8jFq1mlBRuUrm+AAAAAAAAAAAAAL1gQTmbpIpWfDkw52tUnkxr80njxugAAAAAAAGhNnwgAAANP1BRzM6zJidBFW+zbIAAAAAAAAAAAAAXLQgnM3SRSs+Hl9jQAAAAAAAAAAaE2fCy9QAAB+d9D0en6go4MHSgAAAAAAAAAAAAAAXLQgnM3SRSs+HkYO1AAAAAAAAAAaE2fD+XchFsbv6gAAA0/UFHB97YAAAAAAAAAAAAAAFy0IJzN0kUrPhy9L0AAAAAAAAAA0Js+HNjoa/jRAAAafqCjBOAAAAAAAAAAAAAAAuWhBOZukilc5SAAAAAAAAAADf0OdpAAAANnWw8wAAAAAAAAAAAAAAAae6IJzN0kUoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE5m6SKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCczdJFKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBOZukilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgnM3S+Y8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPVjUM3SeY/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeJfpm6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzdIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABm6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADN0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOd4EDvuiZukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfyD/J4H9Yf179zdIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk8/GX8Tqu3/j/+Uf07pUfE8N/Vv9gfc3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxuYxtT1JvdB/IH8o9X+kZknA8z/Vv9gfc3SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP5A/lAD+r/6++5ukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcf+WgfqXYMzTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAECAwQF/9oACAECEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbvMAAAAAAAAAAAAAAAADWQAAAAAAAAAAAAAAA0AAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqBQAAAAAAAAAAAAAAZAagFigAAAAAAAAAAAAAZAaAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAEAagoAAAAAAAAAAAAAAGQGoFQFECxYpAssVAUAAAAAAAZAaAAAAAAAAAAAAAAABkBoAAAAAAAAAAAAAAAGQFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWwYyAAAAAAAAAAAAAAAD6lxDb5YAAAAAAAAAAAAAAAPT1Ic/MAAAAAAAAAAAAAAKEAAAAAAAAAAAAAAAAb3ozzyAAAAAAAAAAAAAAABvdJygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAAAAIoAAAAAAAZAahQAAAAAAIoAAAAAAAZAaSgAAAAAAIqKAAAAAABkBQAAAAAAASgAAAAAABAAAAAAAAAAAAAAAAAABVAAAAAigAigAAAAAABkBoAAAAAlAAigAAAAAABkBoAAAAAligCKAAAAAAAGQFAAAAAJQAIoAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9XQ8mAAAAAAAAAAAAAAAA1uY+hJ18HIAAAAAAAAAAAAAAAA9XQ8mAAAAAAAAAAAAAAAAAD//EABsBAQADAQEBAQAAAAAAAAAAAAABAgMEBQYH/9oACAEDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcWXoWAAAAAAAAAAAAAAAADOm4AAAAAAAAAAAAAAAcgAA6LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAKgAAAAAAAAAAAAAAAmQMgQAAAAAAAAAAAAAADSwGQAIAAAAAAAAAAAAABpYDKAAAAAAAAAAAAAAAA0sAAAAAAAAAAAAAAAAAAVgAAAAAAAAAAAAAAALSBkEAAAAAAAAAAAAAAAaWAyAJgACJAAiQiQQAAAAAAANLAZQAAAAAAAAAAAAAAAGlgMoAAAAAAAAAAAAAAADSwFYAAAAAAAAAAAAAAAC0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLjB29gAAAAAAAAAAAAAAAR+Rx3TNuGv63IAAAAAAAAAAAAAAAfJ+YaVn0fqwAAAAAAAAAAAAABjBOwAAAAAAAAAAAAAAADix42nR1dIAAAAAAAAAAAAAAAHLy5S07tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOAAAAAAABNqAAAAAAABewGQQAAAAAACb5yQAAAAAABpYDIQAAAAAABN85IAAAAAAA0sBSAAAAAAABNqAAAAAAABeQAAAAAAAAAAAAAAAAADKJBAAAAGucAAm9AQAAAAAAGsgZAQAAAA1zgAJXzAAAAAAADSwGSAAAAANcxABN8wAAAAAAA0sBWAAAAAFogAEzUAAAAAAALSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+R80+x7wAAAAAAAAAAAAAAA4uee/8AOGvkfontAAAAAAAAAAAAAAAAHyPnH2HeAAAAAAAAAAAAAAAAAf/EADcQAAAFBAAEBAQFBAMBAQEAAAACAwQFAQYUFgcQERUSIDNwEyMkMhcYIUBgCDAxQyJBUDdRNf/aAAgBAQABCACDNTtbZSvudBGp2VqX3PgjU7K1L7nwRqdlal53Bc8BaLA0tcdpcRrIvr4xbUE1cUPb9Yysz55XjJwwg5isDKIrouEU10OV5XpDWPGoSMxF3cvJvoNt5mNxQ0jKzMEzt2bWnWbh049tII1OytS87mQSk+Pdhx0q/uS0XHFu10JG95iSXkb2fxN/IOb2tPgndMjxFuGZbXZDcNI9KT4j14cX5lfiDMLcTomdbx8/LU4TPLnl7Jlp5HiEeyTNbruiQtS3uGoupw5j7TuJ0y4PQUItwdt5srPravbHDqwOHcdSc4ecSLdtBRmleL/hPcV/n4psFLppwNm3SrqShuL1p28VmleN02BdPFVVOenM/wDpxJSTmZdPiNxXYksak2x4VfiFcFvXDPwl82C1bcO7TIy4x8R3FI++boYcJn71u5aXDwsuuxC0j4q5bxf8XzK8I7hkro4cWtNy3tjBGp2VqXne9gtLxrEyKMPwtmtkhbqvh7wZf5N0t4OR4UHfcPrVs0lw8NZCYXt+4WMFaz5nDSsbcbXgdHNOFT3hrS4eGEdOWTBWghCcMpyLu+Mvu4bCjIO7eLl18T4JUhFk1EVfwdn41FxCWvJ8Kbfd2fB2rG25w7fsLg2u7mXCrD4Z3Bw+Etw0pJseG7MPLMo64gRd9C6TxkIheNnWw64YvJm0OHqCUPwqkGUndk1Lp8MY5Xha34YSTThLchpmzp2eRsN7HcQ3t8RLDhDGEseXsiUiOGcsSfiJ687fsLsB7/UNw/tPRbRh7V9soI1OytS+58EanZWpfc+CNTsrUvufBGp2VqX3PgjU7K1L/fcu2zNBRy8ZvWb9sR4w8lX7MkijFqfvE3jRR0uyTFP0/wA//n71ZdFskdddtKxTtmrItynKoUpi/wDgOnjNggdy+rKxVGHdKspmHkUFnMdHT8DLKGRi6ysUm+JGn/eOXTZkgo5eJykWozpJJCrltRerWrN42kGqD1mZwgRdNsdo9aPUjqsv3zWUi3i6zRm5mIxois4X/ZQRqdlal/v3djkmrN7o7nFmDG+zxS60+yg7l6yclMW8re7SPWXnmUBdNa3GZVhjRDaEeLyE7Zr53+8jHTdtxMvPIuqSO5mL1O7k5Z/KupU87NyModjbi5od5R/Exj0n7u927F1DJIvpH4DyOv5k96pqOouHWYOpWdlLDI8JOPVLii3bMj5ytRKUXRfXI+nX7lP95c2MS6LR7nIvE14C9kW6GU4nLsXkYCIm5VnZTleH1fVnWyF/wX95ejZo6ShCqymG/tu8Elrxk1meelEtkETXy0kFCPJR7A2kGdGclcdgy1UpJ+5Qj2Tt8dxWPimMdaz1OQgGDgn7u6M7W56sYqWBxeHmuuY9s3ibzTRlJCXt9vfTRgsrPMoG5qCPa1Ys0Wtf78EanZWpf77hs3eInbO2sdGsG1WbBGGhm7ZVk2M1afGWc0ThYVu3XZNncbGv8c71GPYN6t6tv3kladrTLrNl3FvQLvBM6vKyFbsWT6Hta312UYwfUpSlOn7xZFFwkdBdrFxbBudowVg4RVq3ZK4jb46LkGhojJM9DmzaO51KVdHjYxR8nJqfvHTRo+bqNXxIqLSZ0j0lGjNdX46ySKaCREUDxMSd6WTP+8ctmrxBRq8TjItBiaNQXhYRcqBVTx7A6rVYy8NDOmabBwvHx61WlVlIyMVarMVFomKcsyRzhJFJBIiKH7xCLimjld2zUiopVRwserZp8RwqVGGhm7ZVk2/YQRqdlal/9Tp19m4I1OytSgyhymqUZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScGdH6V6eLj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/FsKXkVitufxzeHpSjg9KdBknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScJnMf7x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am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq5xJ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AXzHXy1t/wDd1/s/vv8A1rb/AO7r/Z/ff+tbf/d15AX3/rW3/wB3XkDfP+vbP/d15A3z96vWzG6VUVmysEqaT/LjJloPSgAgq2JL7yqSJ1U2otCqkqqqkZmS5IzJdZGS61Vdar5tS9GKwqdFNb0prelNb0prelNb0prelNb0prelNb0prelYSv4r5ualRf2dNDvSmt6U1vSmt6U1vSmt6U1vSmt6U1vSmt6VhOvzpWCToprelNb0prelNb0prelNb0prelNb0prelNb0prelNb0prelBjHSq0uVTo8+r99N/Cmt6U1vSmt6U1vSmt6U1vSmt6UO9KVETp8+pejFYVOimt6U1vSmt6U1vSmt6U1vSmt6U1vSmt6UO9KVETp/xb0o5+KepzqTv1S8/W5+dfvI6Uc/FPU51J36pefrc/Ov3kdKOfinqc6k79UvP1ufnXz6sU5upzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3Uuscfxz5lxqzTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFOb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qb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41LZkNo4oKbLguIioiZTI5wuvzXaGw+GjpNuvgBjkUVMiq9VX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NT48lG9DT5B0HNHSzjOiq4zjzXOJHcVtDQHngAsKqpnBLzaqv1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV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", + "description": "Allows to create or edit gateway configuration.", "descriptor": { "type": "latest", - "sizeX": 7.5, + "sizeX": 11, "sizeY": 8, "resources": [], - "templateHtml": "", - "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n margin: 5px;\n padding: 8px;\n}\n\n.tbDatasource-title {\n font-size: 1.200rem;\n font-weight: 500;\n padding-bottom: 10px;\n}\n\n.tbDatasource-table {\n width: 100%;\n box-shadow: 0 0 10px #ccc;\n border-collapse: collapse;\n white-space: nowrap;\n font-size: 1.000rem;\n color: #757575;\n}\n\n.tbDatasource-table td {\n position: relative;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 0px 18px;\n box-sizing: border-box;\n}", - "controllerScript": "let types;\nlet eventsReg = \"eventsReg\";\n\nself.onInit = function() {\n \n self.ctx.datasourceTitleCells = [];\n self.ctx.valueCells = [];\n self.ctx.labelCells = [];\n\n if (self.ctx.datasources.length && self.ctx.datasources[0].type === 'entity') {\n getDatasourceKeys(self.ctx.datasources[0]);\n } else {\n processDatasources(self.ctx.datasources);\n }\n}\n\nself.onDataUpdated = function() {\n for (var i = 0; i < self.ctx.valueCells.length; i++) {\n var cellData = self.ctx.data[i];\n if (cellData && cellData.data && cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var textValue;\n //toDo -> + IsNumber\n \n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (cellData.dataKey.decimals || cellData.dataKey.decimals === 0) {\n decimals = cellData.dataKey.decimals;\n }\n if (cellData.dataKey.units) {\n units = cellData.dataKey.units;\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, false);\n }\n else {\n txtValue = value;\n }\n self.ctx.valueCells[i].html(txtValue);\n }\n }\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n}\n\nself.onResize = function() {\n var datasourceTitleFontSize = self.ctx.height/8;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n datasourceTitleFontSize = self.ctx.width/12;\n }\n datasourceTitleFontSize = Math.min(datasourceTitleFontSize, 20);\n for (var i = 0; i < self.ctx.datasourceTitleCells.length; i++) {\n self.ctx.datasourceTitleCells[i].css('font-size', datasourceTitleFontSize+'px');\n }\n var valueFontSize = self.ctx.height/9;\n var labelFontSize = self.ctx.height/9;\n if (self.ctx.width/self.ctx.height <= 1.5) {\n valueFontSize = self.ctx.width/15;\n labelFontSize = self.ctx.width/15;\n }\n valueFontSize = Math.min(valueFontSize, 18);\n labelFontSize = Math.min(labelFontSize, 18);\n\n for (i = 0; i < self.ctx.valueCells; i++) {\n self.ctx.valueCells[i].css('font-size', valueFontSize+'px');\n self.ctx.valueCells[i].css('height', valueFontSize*2.5+'px');\n self.ctx.valueCells[i].css('padding', '0px ' + valueFontSize + 'px');\n self.ctx.labelCells[i].css('font-size', labelFontSize+'px');\n self.ctx.labelCells[i].css('height', labelFontSize*2.5+'px');\n self.ctx.labelCells[i].css('padding', '0px ' + labelFontSize + 'px');\n } \n}\n\nfunction processDatasources(datasources) {\n var i = 0;\n var tbDatasource = datasources[i];\n var datasourceId = 'tbDatasource' + i;\n self.ctx.$container.append(\n \"
\"\n );\n\n var datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n\n datasourceContainer.append(\n \"
\" +\n tbDatasource.name + \"
\"\n );\n \n var datasourceTitleCell = $('.tbDatasource-title', datasourceContainer);\n self.ctx.datasourceTitleCells.push(datasourceTitleCell);\n \n var tableId = 'table' + i;\n datasourceContainer.append(\n \"
\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n\n for (var a = 0; a < tbDatasource.dataKeys.length; a++) {\n var dataKey = tbDatasource.dataKeys[a];\n var labelCellId = 'labelCell' + a;\n var cellId = 'cell' + a;\n table.append(\"\" + dataKey.label +\n \"\");\n var labelCell = $('#' + labelCellId, table);\n self.ctx.labelCells.push(labelCell);\n var valueCell = $('#' + cellId, table);\n self.ctx.valueCells.push(valueCell);\n }\n self.onResize();\n}\n\nfunction getDatasourceKeys (datasource) {\n let entityService = self.ctx.$scope.$injector.get(self.ctx.servicesMap.get('entityService'));\n if (datasource.entityId && datasource.entityType) {\n entityService.getEntityKeys({entityType: datasource.entityType, id: datasource.entityId}, '', 'timeseries').subscribe(\n function(data){\n if (data.length) {\n subscribeForKeys (datasource, data);\n }\n });\n }\n}\n\nfunction subscribeForKeys (datasource, data) {\n let eventsRegVals = self.ctx.settings[eventsReg];\n if (eventsRegVals && eventsRegVals.length > 0) {\n var dataKeys = [];\n data.sort();\n data.forEach(dataValue => {eventsRegVals.forEach(event => {\n if (dataValue.toLowerCase().includes(event.toLowerCase())) {\n var dataKey = {\n type: 'timeseries',\n name: dataValue,\n label: dataValue,\n settings: {},\n _hash: Math.random()\n };\n dataKeys.push(dataKey);\n }\n })});\n\n if (dataKeys.length) {\n updateSubscription (datasource, dataKeys);\n }\n }\n}\n\nfunction updateSubscription (datasource, dataKeys) {\n var datasources = [\n {\n type: 'entity',\n name: datasource.aliasName,\n aliasName: datasource.aliasName,\n entityAliasId: datasource.entityAliasId,\n dataKeys: dataKeys\n }\n ];\n \n var subscriptionOptions = {\n datasources: datasources,\n useDashboardTimewindow: false,\n type: 'latest',\n callbacks: {\n onDataUpdated: (subscription) => {\n self.ctx.data = subscription.data;\n self.onDataUpdated();\n }\n }\n };\n \n processDatasources(datasources);\n self.ctx.subscriptionApi.createSubscription(subscriptionOptions, true).subscribe(\n (subscription) => {\n self.ctx.defaultSubscription = subscription;\n }\n );\n}\n\nself.onDestroy = function() {\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\t\n dataKeysOptional: true,\n singleEntity: true\n };\n}\n\n", - "settingsSchema": "", + "templateHtml": "", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n if (self.ctx.datasources && self.ctx.datasources.length) {\n self.ctx.$scope.entityId = self.ctx.datasources[0].entity.id;\n }\n};\n\nself.typeParameters = function() {\n return {\n dataKeysOptional: true,\n singleEntity: true\n };\n}", + "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", - "settingsDirective": "tb-gateway-events-widget-settings", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Function Math.round\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.826503672916844,\"funcBody\":\"return Math.round(1000*Math.sin(time/5000));\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"eventsTitle\":\"Gateway Events Form\",\"eventsReg\":[]},\"title\":\"Gateway events\",\"showTitleIcon\":false,\"titleIcon\":\"more_horiz\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":true,\"widgetStyle\":{},\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"useDashboardTimewindow\":true,\"displayTimewindow\":true,\"showLegend\":false,\"actions\":{}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Gateway configuration\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":false,\"enableDataExport\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":500},\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false}" } }, { @@ -66,39 +84,103 @@ } }, { - "alias": "gateway_configuration2", - "name": "Gateway configuration", - "image": "data:image/jpeg;base64,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ii3bMj5ytRKUXRfXI+nX7lP95c2MS6LR7nIvE14C9kW6GU4nLsXkYCIm5VnZTleH1fVnWyF/wX95ejZo6ShCqymG/tu8Elrxk1meelEtkETXy0kFCPJR7A2kGdGclcdgy1UpJ+5Qj2Tt8dxWPimMdaz1OQgGDgn7u6M7W56sYqWBxeHmuuY9s3ibzTRlJCXt9vfTRgsrPMoG5qCPa1Ys0Wtf78EanZWpf77hs3eInbO2sdGsG1WbBGGhm7ZVk2M1afGWc0ThYVu3XZNncbGv8c71GPYN6t6tv3kladrTLrNl3FvQLvBM6vKyFbsWT6Hta312UYwfUpSlOn7xZFFwkdBdrFxbBudowVg4RVq3ZK4jb46LkGhojJM9DmzaO51KVdHjYxR8nJqfvHTRo+bqNXxIqLSZ0j0lGjNdX46ySKaCREUDxMSd6WTP+8ctmrxBRq8TjItBiaNQXhYRcqBVTx7A6rVYy8NDOmabBwvHx61WlVlIyMVarMVFomKcsyRzhJFJBIiKH7xCLimjld2zUiopVRwserZp8RwqVGGhm7ZVk2/YQRqdlal/9Tp19m4I1OytSgyhymqUZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScGdH6V6eLj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/Hj4/jx8fx4+P48fH8ePj+PHx/FsKXkVitufxzeHpSjg9KdBknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScZJxknGScJnMf7xBGp2VqX+C/59ioI1OytS8/HXrXw9VR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVQdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUdVR1VHVUU+LUUP1/SvOCNTsrUvI9ehahsf5FK+5DipaLo0JzgjU7K1LyP9pg3r9OnT3IXp81tXyQRqdlal5H+0wb1+nTpzWWOQ9SlzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAzHAbOD1PWhvIvT5ravkgjU7K1LyP8AaYN6/Tp05uPWU5PpaTQkDtGPf4iiLNc5ZxhVxJtzs37R+mdVoxuRu5RePHPe4voy6bLB+PwBSbikkW65izLUz57HkhpdGaaVdIe2jH16eVenzW1fJBGp2VqXkf7TBvX6dOnNx6ynJ21liyTl2weWxIYicc0kYJ2+LKoiHjjsSujrUh3yJGSqDCHdN3jV4u3hXKKkEYzm3JY7BJim1YOkJFdY6aKSXiol7aMfXp5V6fNbV8kEanZWpeR/tMG9fp06c3HrKcnMtFM3bNg8dOmzJus7eOH7Fo2K8dO3jRg2WeP2rps+bovGXJ8/ZRjVZ9JIOEHSCTlsqomimossmqmskmskwloqVovWLUdtkVm7ZartrR0RlWRlYuISIvK0r1p1o0kGEhRerBKQYLu3LBB3LRUeuzavwhcMA6kVodr7UsfXp5V6fNbV8kEanZWpeR/tMG9fp06c3HrKcrxhuhnM0LYew75u9h1rfjZN3PoWdJOXLO8GjphGwj+KiJHxy0q7ul09vo8dGzFxt39kvpBddveTLrD25Iw8U+So/m3FwzxL+w4BOi1sQqRlo9KBfJx8nc84Q83w6l4dhKvZXiQyM6mYB+pHsnS9nScS2XSZuLGfIWtJz751w/YP9kvFyvdkCrhqyTq3ZKOcpSUYs0aUt1hbkBdvtSx9enlXp81tXyQRqdlal5H+0wb1+nTpzcespycMmzpRoq4iLVZw73MRaQzZnLS0wkctDlMQz6y4t5jkQrbzKprhMC2uwLrHRZIi6SqCjyzY124QVSl7HYyrmScFZNE2DJoxRkbbYPk1fhN7Uj2ykAqVWFaqziE/VOHb1ik4h9qjPvPd6POHcA/huxu62617lLyyNYxso3YIOmlnxzR4s4MjYDBMzNFb2pY+vTyr0+a2r5II1OytS8j/AGmDev06dObj1lPcBj6/lXp81tXyQRqdlal5H+0wb1+nTpzdwUe6WO5X1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLDOIZMFTLNfIvT5ravkgjU7K1LyP9pg3r9OnT3IXp81tXyQRqdlal5H+0wb1+nTp7kL0+a2r5II1OytS8j/aYN6/Tp05uTVqqb3AaV/5mpWnkXp81tXyQRqdlal5H+0wb1+nTpzcespyTcLGmXbWqk98NwbqhPHcOUCJybySLPRDFBK5PE3ylFp98jVIgQuE6pFjnPdK67WqkcdzM99RQL7asfXp5V6fNbV8kEanZWpeR/tMG9fp06c3HrKcnEVVZ7V+ipAtlF/iGQh3iUoiZNWPQWfIP1ErcappfBqpGIKrfHqrbrJZH4JqW6h8J2Q/tsx9enlXp81tXyQRqdlal5H+0wb1+nTpzcespylLqZxT+jFZs9bPKuaNoeYJNEduG/Ms8wWjTyjPmwmE3khJxavKWk0IeNeSjqRutnGyJGCrZ61eUcGbIXizVTjXFeZ5pqnOt7fr5WEwm8kJOLVEVKIS7UzxsHdzrtrmXhBH3dHvCOKu5qYJEIN60VuRAlwEtxBO5GZ3cEyN5lphNtMtIhyI64Hrq6Zy23YmZosORr0jZyNlitKskZgrmadxDbnIS7aNdRDRcMpls+k5mKRdKLItl1W8VKNZmPbSTLlO3IhBGSIdrJMXyiiTUlxNjrTtawUx32PSkqcq16UrUW7e0JdEG8noqNfIycexkm/OSmE4t3GIuuba749w+WZndzLBnEKTazW4SqSEfEO2Luj9og7L5IuXTkVpJoeQl20a6iGi4kX6EWwdyLqPudi9IejmTmCMHUYwS/sTUuSEbJPnNK9adafxxj69PKvT5ravkgjU7K1LyP9pg3r9OnTm49ZTld0XHrGaOyQs8rSKXiWa6sa34aWe2Wh6kaseKMTWHTpAHuKPirfhbGIna7pm2i4aM4ZyNImRtuEnrovqsvBMGrNtwfuFBFtNyastLnkT1S4hRBiWm2jYmXtZwaXXnkCN6wV89dNuGprrimCx2LpJvPravKRjGRTQSjuEqbaUazEs/vV4aeSWQl5Gz6XKzeS13XIwcRtXuwWxWRteCi46A4SzrO5XDQ6zy4I2RtuEnrovqsvBMGjNtwfuFBFvNya0tLnkT1S4hRFSWm3jYmYtZwax//wCIsI1xcCrt6SWTTTW4kzCSqjdrETbekCSU75c/D+QEdBwqXFG8JFO0ft4OCKbTkhVGcrJQEU7jeLU04u+sdKyp2bmGaoXOz4RUnnVuw7S1L9fo3K3fzd4zLJ29q+Ja/DdV9cLaNQmbiuJ3H168TLiqHLifJJtUWlyMoh1GKrzMBKLQTszU7Xqa0eJyqp7Rt5CX4dppGonGws/CpEQbQE5c0bZMfG2o0d8Kn0NV4za2FOtXM66kWVOMbqJsuMdsLkYqtHKSTiAu+PNYBWTJzcUM3q4n+8Ub0u+Ph3Mfmydsy60c8Th1mjJpI8KLiTkmjKMhFOD6bOWw5ZtcJE3TPWHXElpaUBE2TGvIJzAsSmtWymF5t3uA9ieHsK5hSEmbStBm+pZtsmlOIkYZ2tKzhuHjJ8uk9bcKJFN9ekezezss+dRjrJgmDxhELzK7ap5y6Y6Gj3rpZrPTDmWimbZ++/8Ao8eICKYTJOEbKSkcmKtJ9ERkjFvI+2OILI6EOyty800rej28O3gLIuOMmFXba7riUio+NtRo74VP4aYXnW6CRoFdsk/ZKtJBJRKHlqOYWMeklb4ayAl4CLUtW9LgBo1C2budIWvZTKSq6smaQjm8ZHzMdNrTTeMbTM3cbriGoweKXq8RM2ip66WSF3UOspaXD6OZQTBdpat+MJORY98bWOm+sh2ze2tErsP42x9enlXp81tXyQRqdlal5H+0wb1+nTpzcespzbREUycvHbOLtxBpFuoB+zhYeOIdOPi4OFhCrEhWcHCxzp0+j6QUJTM6UaNaKuF6Ei40ibBEisDBrySMysxiVUpiTm3zWAg2D5zKMhLRiExGvIt1SnSlKBtDRDNV8uzhYAkaxbRrt1Awb582lHp2rZVdB0pJQUJMmbml6smZlyujEjI5JBm2SWtu3XDtd+vRo1oq4WoSLjSJsESKwMGvJIzKzGJVSmJObfNYCDYPnMoyiotCIamaNge3Uq3KS5038bHSzU7GVmIPMSi1I0rNoVws8ojFxjfDxzQUIaTpNGrGRpknqBnsHCSKzNxIIxka2o0o2NFxh0HjU8lBQkzRvSXdQx3szGPXC8BBO5FCXdMLcSY3BMXHXkpExS0ghKrIwVG8tLuC1ZMqnaKmpHsCkeELGRETCt6tYdvblvtHZ37Va3LecPVZJwRo1SWcuE0IKNh0ZA9uRlvsmEN2ZeNiYqGa0ZQ/IsTFkkTy5GEFguJpEPYeIkWNIyQThIZFKjdErVsVwo7KwgoSKWduIwkewTZVjU3sDByLVsxkE4mLRKQiWEy+I6WDuChH7BKKfyUCV/2dgSRgYOYVary3JVJJdI6K7y2IheBXt5k0ZVqVq7kUYuMbVaVb9vYfBdNw1t6AZMFIplVq2q4I8qjBQjeRXmG8VEKNH0tLPW9uW80dnfteUjFRcuiRtLSUMovJREwwPGRp27hoerRrVyR7VtAwjN+5lGhICCTkzzSa0BBOJJGZXdwEFIOyP39y2mpNlj02cbbMWxt9C3F5K2m68MnbkVIwULMNkmcukkkgmRJH+NsfXp5V6fNbV8kEanZWpeR/tMG9fp06c3HrKe4DH16eVenzW1fJBGp2VqXkf7TBvX6dOnNx6ynt9RZEyx29Ax9enlXp81tXyQRqdlal5H+0wb1+nTpzcesp7eyDh4T4LWPgEVU0XC1Qx9enlXp81tXyQRqdlal5H+0wb1+nTpzkJqHZvFWzzZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hFS0U/cnSY+RenzW1fJBGp2VqXkf7TBvX6dOnuQvT5ravkgjU7K1LyP9pg3r9OnT3IXp81tXyQRqdlal5H+0wb1+nTp7kL0+a2r5II1OytS8j/aYN6/Tp05oS8h+Ij2DrO3pJR8s+iYFfiSo5WRJarq4ZJ3YJ7nhYbiVIsoa3j3fXiNcdVSsmc1xvt+PpGHYRsk3mI2PlGft6vT5ravkgjU7K1LyP9pg3r9OnTnM2lcbm563Tbb+xp126VkWN2W67tRRIlnwcKshZMbbkhc1jOnsPw+sR1MW5cklf86aHpw1PErRzmz0EzIoIIn9vV6fNbV8kEanZWpeR/tMG9fp06f+J+v/AH7Rr0+a2r5II1OytS8j/aYN6/Tp08hnZC16F7mO5juY7mO5juY7mO5juY7mO5juY7mO5juY7mJm5ou3o9eUmZP+p6HQWMSI/NOcfmnOPzTnH5pzj805x+ac4/NOcfmnOPzTnH5pzj805x+ac4if6nIByqmnMw8zFz0e3lIf2jXp81tXyQRqdlal5H+0wb1+nTpzdqVp0TpyXcot6loqkqmuSiiXJRQiRPGoDrFIqilXkc/gp183GC9nV2XU8ak5P4SUi2kW+f8AK17Zf3ZJ1io6Jtp/MRU/MNeUVGVlnWLTycEr7e2pdjGMP7Rr0+a2r5II1OytS8j/AGmDev06dObstSrnpzdorKuW1UzoL/CbUMo0OdNb4pmyhPj0QVbFUSc1SOguZ31DkihnLSqdEFfB0beClauU2hkymquVqRsch0FitSUI4Z0NzfIrN3zxu55XCwRuK1LBowkbitw8bL1XkJtq7ljfHJcNukdQy7zhrKQkfB3qlNvrigDLOq3F3Hoi2f3Qxl6to+Kf3IS7IhdJaFe3I+O+tviGo05Qzdw7l4pq0p/intGvT5ravkgjU7K1LyP9pg3r9OnTm7S+N/zJ/j+yYtDlMUxGjchVC0RQSQoaiYTaoJKVVLz428MHjKReXlB+ds4XZuUHbV9xBu+QVYKuZ27J+5SNUpgSV93ZLRp4h/y4FcJ3qz9ne1xe0a9Pmtq+SCNTsrUvI/2mDev06dPIZMh/uxURiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxiNxjI9aiW4VcPZtQ60h+BPCkfgTwpH4E8KR+BPCkfgTwpH4E8KR+BPCv8A6rwJ4V/9fgRwqH4E8KR+BPCoV4EcK/8AqF4aWHb501Yvp/8AntGvT5ravkgjU7K1LyP9pg3r9OnT+7+vt2vT5ravkgjU7K1LyP8AaYN6/Tp08hzkTIY6hr8tSh6lR3y3hvlvDfLeG+W8N8t4b5bw3y3hvkCIy6bfmFcaP5mXSL+lctuMtuMtuMtuMtuMtuMtuMtuMtuMtuCrom6ULzOqmT9DZbcZbcZbcZbcZbcZbcZbcZbcZbcZbcEWTN+lOZlkifobLbjLbjLbjLbjLbjLbjLbjLbjLbjLbjLbjLbjLbgrhCv+aVoanWnIxil/WuQj/wB5bcZbcZbcZbcZbcZbcZbcZbcFVTP+heZl0i/pXLbjLbjLbjLbjLbjLbjLbjLbjLbjLbgqqZ/0L/LF6fNbV8kEanZWpeR/tMG9fp06c69KA3S7FVHj3+y/jmcmhRu8gJJ2Rw4gZX9Q5WrU1Uy/3GbkxDUTqHK3w6ULSv6/3Gy1T/KOHK1S/LJ/fTUMmahilNQ5aGoY1CFqaqihlK9a/wBmn6Bsv4y1LUOVq1NVMv8Abp+gbL+MtS1/la9Pmtq+SCNTsrUvI/2mDev06dOd3PVY21blkUI5mnHx7FgjyuVeSby07Juz3/KqTrhnHtLvuXArPP1b1eJuImdeyF23RAxBpGWtGck5pGRpJ8n1fgXPZbgorXrWtealDOHp25qLOOpEEDP3ByGVRVeuC1XOSkgqZyYhSrvFkKrUQcO6oop0QdLuFy0LypXpWleTulaLmLXk9OcpECFOarOhyJ1duS1qjWj5VOniXPIuSVoQOXDw6Mj4F366J6IlQWXWXXpXkjWtFU+gWrWqqnXlJE6tVlKKJHSWZFQarGXQKoYi7hRQxipvF6/AUPSQclTKdQ79dCi9FivXBqUIKneVdMynbuV1E26SFZBydNRVIhvEQp+bStfg1KHfWiXTyI1VKqlVVqu8+GilUjxwqo3ISkmoX4tTHeuG9Fvjs3Cq3xSq8mdK1cELyrXrWtebypjPEiBVyq3VbtSUdOWxHiipHjpQySRavnNUEVaVdmKqv4Ku3Ja1Rq0WUWIpRXkzpWrghf5YvT5ravkgjU7K1LyP9pg3r9OnTm/ZpSDJ4xWtxdQ8WgydcpCzbblXarx6rakCtJUlTa5C9pewdTW5CmUYKmQsi1mzZ40JFQzCFRURYcmqfdLsaqI/9dAqTwHMXms2QXrQyp2bY5SFNVqgah6Vq1QqVQtcVD4vxwRo3TOY5MBr4CEBUUyHMcnJInjUKXk8T8Kni5qJEWJUipWbYqZ06EaIELQpTNG5yHTMq1RWNQ58dGpVigzJuahKVImQhjmJyap1UWLydJ1TWNTmomRUhklFWyK/g+JVqalClRo0QopRapGjch6nLVk2NQpambImqYxsNv8ADqmKNEKUS6GZNjEImMRDocopShS0pTk2L8JGnV0X4qVenMjJsRSihasW1S1KCt0SVJUlGDdOhqpNmHgMsZZJBNClaJ8mhf8An4+SpPAcxeazVFc5VD1Zt6/dVo3NVbqRqgnUlS1YtalKQVaN6+MEaIELQpSJkS8fg5NC/wDPx/yxenzW1fJBGp2VqXkf7TBvX6dOnkmYEzpxSTiju7qbVNRx3O4RWUn6f57pP9Oo7ncI7ncIrKT9P81lZ+n+e6z9evRNtdcp8k8bHNYpqmyZ/wCAqiVUvWpmitOnTCdDCdDCdDCdDCdDCdDCdDCdDCdDCdCjRWv+UkCpF5HIU9OhlGRy16FxlhhOhhOhhOhhOhhOhhOhhOhhOhhOgmyVPXpVNMqZehQoQihelTs1S/bhOhhOhhOhhOhhOhhOhhOhhOhhOhhOhhOhhOhhOhRqvXr1Sa+CviU5LNaHqYyWKuMJ0MJ0MJ0MJ0MJ0MJ0MJ0MZYEZnr95CFIXpQKolVL1qZorTp0wnQwnQwnQwnQwnQwnQwnQwnQwnQxlgRmev3kIUhelP5WvT5ravkgjU7K1LyP9pg3r9OnT3IXp81tXyQRqdlal5H+0wb1+nTp7kL0+a2r5II1OytS8j/aYN6/Tp05rLHKepS0dLl/xmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBmOBV0ubp1bqfEobxhdY5DUKXMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcBBYylalP5F6fNbV8kEanZWpeR/tMG9fp06c3HrKciPCnfLMaVkGNHVGVaSUeZzh0UkEUnxmSiElHuaJ1QUloxIpDqrzjZsSXOrHvkZJmg9b/xWO/3cn1a1X5SkjJtnTNnFupxVkgtk0lo2r3twfTEbHKFSerS8a3XSbKr3QxRo/wCjy4GLaMXlE2y5XSCTgn8VY06r+VenzW1fJBGp2VqXkf7TBvX6dOnNx6ynJYr5tLrPEVomQVUUZ0YK/DlmkKSbhncis8M37I/UaP3BXdtO0lEKNI+LqgvK5CaSaJKJpfxWO/3cpD1i8pCGbSb9iu9kYFw5Ukat2tuKt5EyykojIKy/Ri/tyTXIk2RWh3ijiRrRmw+EaQquQhEyFTT/AIqx9enlXp81tXyQRqdlal5H+0wb1+nTpzcespyq7alclZmbyDF20zmsjc9tQ7do8lo2fgploq/iIuchZtNVWG/it63lJ2eVJ1S2JiTnYwklIiO/3CokPWLzUcoJKoIKrOW7b4OR/GmPr08q9Pmtq+SCNTsrUvI/2mDev06dObj1lOTv/wClRos457RttCiiqkomfhCaGunuD6PtOOuCaaNo69rHdR/8VVRSXTOivyjv9wqJD1i80lqPromZWtT3FJsLBuSSuy7ZaIdyrxshHvfxRdvAe7pZtNxR6fxdj69PKvT5ravkgjU7K1LyP9pg3r9OnTm49ZTkpCNVZxCfMtZEG5tBWyXaFsMEFrbWJMw7CeYKx0hEWk3jZDuzv+MR3+4VEh6xeS7Myztk6pCRFIiPq0Ohw9jm60d4JLh3GyNZZOq0AgpONJ8iXDqNSOzKT+LsfXp5V6fNbV8kEanZWpeR/tMG9fp06c3HrKfx+O/3cpD1i/x+P9Y3lXp81tXyQRqdlal5H+0wb1+nTpzdwUe6WO5X1uKGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGtxQYxzWO+Lih7EMX6hVnGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLGsxY1mLDOIZMFTLNfIvT5ravkgjU7K1LyP8AaYN6/Tp09yF6fNbV8kEanZWpeR/tMG9fp06e5C9Pmtq+SCNTsrUvI/2mDev06dObk1aqm/gTatPhVqYOTVqqb92zNXwqCodV/wCZaU/jzSv/ADNStPIvT5ravkgjU7K1LyP9pg3r9OnTm49ZTkm4WNMu2tVJ74bg3VCeO4coETlZztrpBqV5caTKSQYrOLlphOTomn1U3CyVO/q1eN0aSMs4aPEWLR5eMe1MiHM4vRF4onSd6ufCEpt68kogqUK6l3B3xZT/ANJr6XJx6ynKVfy7Z9HoMP3Ed/uFRIesXlcbtyk9jW6RbmWawsa/e1mzKq0oyYTtVnL5mHNzJtmabsMJFZ0u5auk5g51j1Fbmqk3O5dPJyjQitSrT0h4mySBXMx346B/4lH+sYU8i9Pmtq+SCNTsrUvI/wBpg3r9OnTm49ZTk4iqrPav0VIFsov8QyEO8SlETJycQnKkOkspbbU7k69DwDE/exWFamyxWFeml2qhJCJcvpZq7TpBN0zonbKwzVVuu2N2Nvk/GDaAQauWjgv/AKbX0uTj1lP3cd/uFRIesXk+jMxw2dEra7KhW1ECwaSZk6oEhWia9HBHtq9Y52i1YxpWaq7gxIdJNY5yktxn4Kprkt9ClD/GWhWyplVKfxNj69PKvT5ravkgjU7K1LyP9pg3r9OnTm49ZTlL3SjGPixjWJlGc1HM5Vh/7zX0uTj1lOcPLN5tgnItf2l9o3yiiSQs+12lwNYwlblEd/uFRIesXlMzL6KMhRnbVyUuRKQU/jjH16eVenzW1fJBGp2VqXkf7TBvX6dOnNx6ynKdcoP1nFvtOHapVrMgzp/+819Lk49ZTlLsoeXvxVjdDE8UtZdlRNYlJypalyO2hSoS9mT9yLWEmxjpWfhUf2kd/uFRIesXlc8z2GEfSJbciOxwrCNr/G2Pr08q9Pmtq+SCNTsrUvI/2mDev06dObj1lOUpBws2REkyQhSFKQn/ALzX0uTj1lOUjDxEwVAks4gYN2w7U6kre+JGO46ARjWKMclE0jIeIhG9WkN+0jv9wqJD1i8l2jZ18HJ/jjH16eVenzW1fJBGp2VqXkf7TBvX6dOnOQmodm8VbPNkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeEU+Zvm512AkJqHZvFWzzZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8IiRjpHIwaiVlopg4Ii+2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8Nkt4bJbw2S3hslvDZLeGyW8IqWin7k6THyL0+a2r5II1OytS8j/aYN6/Tp09yF6fNbV8kEanZWpeR/tMG9fp06e5C9Pmtq+SCNTsrUvI/2mDev06dPchenzW1fJBGp2VqXkf7TBvX6dOnuQvT5ravkgjU7K1Lyr+tAeWax3VF5tUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhBtUINqhAS6oPrTxN3ab9QiqHOCNTsrUvNRJM3+cZEYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMRIYiQxEhiJDESGIkMdIFIUn284I1OytS+58EanZWpfc+CNTsrUvufBGp2VqX3PgjU7K1L7nwRqdlal9z4I1OytS+58EanZWpfc+CNTsrUvufBGp2VqX3PgjU7K1L7nwRqdlal9z4I1OytS+58EanZWpfc+CNTsrUvufBGp2VqX3PgjU7K1L7nwRqdlal9z4I1OytS+58EanZWpfc+CNTsrUvufBGp2VqX3EuO6oC02NH9wfjtwuH478Lh+O/C4fjvwuH478Lh+O/C4fjvwuFt3VAXYzrIW/ygjU7K1L7if1QHN47MJ/Y/peOf4l5k5wRqdlal9vL2n1rZtmUmW8UxveMkmqklD8SySM0tCObe4kupRS3zy0JfL+Tq1fO7f4sMbkfpRqXDZ46e2LbTl4P6oPXs3lwuhLZnZeRa3BN2JEPbigoMi3BcycnHxxWHBhw8OwTUvyyXFkSDFqoP6X/AF7z5wRqdlal9vJ+FZXFDv4Z+xtGbM8Tc3FDcNn8U6hjrsLAIzb2S2VgrJkIsqEa7tyz5aBTTj1LVg9at+JgeX9UHr2byta4I2CVfkmG3Ggke6gk41/xUTUk7Gfw5eLzk9zXLMPLpnGE6+QcRo/pf9e8+cEanZWpfcT+qAtaq2af+x/S+WvxryNzgjU7K1L7iXdZkNeTErGZ/LzZQ/LzZQ/LzZQ/LzZQ/LzZQ/LzZQ/LzZQtGzIazWJmMP15QdekO1JT3O//xABUEAABAwMABQcJBAYHBgQGAwECAQMEAAUREiGUodETMUFRldLTBhAUICJSkZKzMnCxsiMzYXGBpBVAQlNgcqIHFjBik+MkUILUJUNVVmO0RFTDwf/aAAgBAQAJPwDWWXURP3OEn3n86k79UvvP51J36pfefzqTv1S892jwIQro8q8WMl7oImsi6kSvKOPOcZHSda0TZeFOvk3kAseaZ6Olwmtwo36Mz033Psh7CLj96/8AA8sobM8TUDBEccBsupxwBUAX9608DrToCYGCoQkJJlFRU5084ynVkSAixYsNlX5Ml8+ZtoOkq8kr7EYuNucmk/Mio0MUhXCMSEyug6vV60zlLla+S9MZ5Mx5Llk0g9okQVynVVjn2s25b8dGZ7aNuELRaKOCnuHziv3a86k79UvOCOwYdhnTorTn2PS0NB08e8NeSPlLb/KLTmQLfcXGGmYUtsQUjyWnpON6vdryt8ubhItDjnIJ5PMNRbRbXGg0uSk8saekL761ebpGl3SdamnmoUomGRN8VIngAeZ73SqZ5aO2+JZEmS3/ACd0HrzIIiVsCN53GB99UpfKuIVhmRrjZ5d0H0W5SYbOHDZfJnU7zKlXE/8AcwGo9mkNC6qNJNmxvS0dIfs5HUNeXFwtj19vjz0WQDJ3GSkd9/QZiwmyLAEY/Z92pvlm3abr5PypOPKh5s5jb7ZIPKxnWiIhGr9cQ8q/97jskyaEg/S/RIZK+Tyuoun7TdEXpEa1yXGi+0WmDS4WorJs3K2E9P0kQuWcfzyhuLXlG4MS9XdbW1dReblOx4wZccRoxTGn/ZGvK283+zeUNunPD/TDySpMaTEwWkLqCK6C5r/aX5TtTrNNursKO3LT0dUjPqiA/poRvJ1ZKrxdYzt1uEFlwIkpWW2ldaVxXmhH7D3UdXm5SLaz5ITXHGpMoz5d1hxMOupzG7/zV/tDv0CerV0ODboTwDb2I7CkAiTSiuTX38otXqfi5sPrPT0hzEpUh6X6b+81+9V2mJFh+RkeTFZR80bZeJCVXGxzgT/alf7UboD8uwJ+nmh6ZGgohanBYzl19feJclVx8u37f5QPux5h+VCtejycMq4LsQEJTaJPdryivzq244RoD88jGT6Q0uqT/eIH9j3auz7t5n+WUqzRpss1kLGF+VySEnKf3afZSvLe/X63eUNyW2z414eSToOkCkLsfAirePdr/aL5S26PZ74/6ExAl6GgTbCGiZNDLkk/uxwlPq9OkRVR91URFcNslDSXH3Zc6k79UvPc5VnvtqcJ23XOJgnGVLUQqJ6jAuka8v5flHPs/KrbwGCxb2WVeHQJSFnOmtf7Qp9q8n789IkzbWzDYczIfTBKD5+2IdaJXlM5Fn2AojsC6tRU1PRNQmTBEvwzXlhJtnlfbYaxFvDMRowkgWs0djLgMKVeU0y/SLjynpD8lsGW0QwQFFllvAgH7KvRq5IkHKS5rH9sX9NDAtBD16CJirg9AKyrDdts1lsVJl+HqA9AtSpX+0CRe58S2yYT6PwGo4GBrlFaFhURrRph5bSENqFHkOMm0MiaqYedAXEFcCKIOaBCbMVAhXmUS1Klf7ULnaPJWQbunaRhMPm0D32wjyT9tsKfkWxLI40/aZrC5kRpDX/zMlqLSz7deVz/AJR3tmIcOG6cRqEzFYPnQGms5MukqvumlzO4Ek70XHJ+mOKf6rTXOjn3qvfJ/wC6cyLJ0/Rs+l+jt8no40/0dXHHodokW1YfI50+WNC5TlM9GObFeXPlJGSc9OFjyNSyryz0p9edmSYEoxjq+u2Pyl8m47BRpzTISUad5FG3AJo8IaV5bSbtPv1kC1vvSIbbagSZ/SCjRCOh1BVwckR24IxFmttoyakJaQuCCqaDha/2my7u/wCT0wnY7TltZZYVhQUNDDSoun/+Qq8p3o0S5Mthc7UUYHAkmyCgBI6q6TdXN2U1Lukm5Ny2W/R3I7zrvKtqHtH7Ta15dSvKR2z6a2pk4bMNtgzTR5Q+SzyjmOYquvLf7zXB2Z+o0PRtNpGtH7S6e6p/pvoIGHpHJcjp6ZqX2NI8fdlzqTv1S+8/nUnfql95/OpO/VL7z+dSd+qX3n86k79Uv+PIbYYbTJOOmgAP71XCVMYkxzzousOI4C46iHKeq/iU6wb4NoK62wJBUtLmTCr/AF2U0cpgAN1kTRXGxP7KkKa0QsavMv8AXnAaaBFUzMkERTrVVq6RHoTaKpvtPgTQ4TXk0VUREokIFRFRUXKKi/8AkMpmMwONJ19xGwHPWpYSrpDSBjPpXLhyGM4zymdGrtClMtZ5RyO+DoAie8oqqJV9t8t0R0lCNJbdJE/cCrV0iDPJNIIqvgjyp/kVc/12Q2wwGs3HTQAH96rhKuMU4OUxIF4FZXXj7eceaQ0j6Byqt6SaehzaWjz4/bTyOsPJpAaIqZTmqQ2L7gkYNEaIZiHOoiutcZp5HQB1xkiRFRENpdEk141oqf1+6RH5LK/pWWnwNxvo9oUXKVMbRpqQEZxQy4oPGSCgEgZVCyqf1PnUnfql/wAfQ/o30x/T5b9T6Rya8lp53Zq0RbfPaWIbzsWby7RI77PKr+jQWzEUyWpavQCHJQzjpHuzk+UyZu4I1dNttUEk+ylXCW+jFpgzGjlPK6TJyXDBwxIkLAog6WOir2CB6DHej8hd3J8lpw3NbvKG22oCScyVdp5vM22RON2TdihB9r7ZOABm4SdAfZotJ9/yXdcdNETJEZt5X+uyG29K12rGmSD/AHteVUu1JZbZHk2puPK5AHFNsjV4x5nkU00MLlK8oZtldg+SsSfEjxpXogm++2ZOul7+gSIOF1JV4muMseTDUyVHh3JYU0TUUzMyeBkInuGVPOui/FZdFx0NAyQwRckKakVer+uXIYKlNjqy860rrPLiWkAuj7hKmNapUKOzdGLW26/JtMl0Y0gEE9DIoqaB+8PSlX+ZAtzFhGUwbU4wN53OCUnVVSJG/dVaus+OD9mlyn0jOqz6STLrSARilT3/AEeTfnre4Ei4qpGLekBAMNA0BBFH2TzpV5QzAuR+U4QjgpKUGwZB/RFtGf8ALrVedauMaKUW+JE5ORdTaBI+micn6JySiZODrElLP9dRpYGJmij6ojXpmgnJ5VdSFjOKssSHIZuUBXW401ZEd51wgXKLoCgZ6cJVti2qXGsJseiRnVe9IbcRSR5XNBvKCqYxirTbYEe3AxJGU1JV6S8KNYQNHkg0NLPta1rkvTP6Ve9L/wD7fpXpHsaOPb0ubR/ZWf65dGYUoJ6Ow1lMq7FdeEF9h3mTCpzZVNdQmoc6NOirMO2zHfRX3PZwY6KjhcL7Q1cpQOWq0tyRN26lGbFT0tE0RBMpJrjWji4p+Qkh3ydB7R9KdQFNSwuA0tHHTirlIdI4kp6RHCecSU/oFhHAeXGnyfuKqItT57iPWqSQuPyDbI1DQxpNtloZXPtYTBVd5UeLM8pLlGkShfIHEbaU1baFznBFxjUteUrlxb9PlgopLKHIkNtIuGUkj9o2v3ppU/Ke1GGnL0OVyBqKoShlCVMY0k5/65n030CRyOPf0FxXovpay46N+j4RzkOTXl9JR16PvZ6alSuUXynite3KceUR5VrBIjqkmlr56uEqQkVuA8y7KfJ02Ek6nF5Q9JUEd1XoAbVqGcb0a6uT5LBm7gjV0221QST7KVKkSNBF/SyXFccLSXOtV/qHOpO/VL/jx232XEwTboIYEn7UXKVAjR4yp+pZZBtv5RREq0QmorhaRstxwFsiznJCiYVc1DZR95sWnHNAdM2xVVQCLnVEyuEq0QmozxaTrLcdsG3OnJCKIhLVvjSFYXLJPNA4oFjCqKki4/hUCO0rDKssq20Iq20vOAqmMDq5k/rvk1bJknRQFdkw2nj0R5k0jFVqxwHihIiRVcjNmrCJzI3lPYxjoq4xGWUYJgkftrMt1tD1Ecdw1RWjJFxnXVniTWYDYNxvS2QfVvkxQUVNNFwtJq/rjQOtGiiYGKEJJ1Ki1bIsaMedNphgG2y0tS5EURKs0E4zCorTBR21baVPcFUwK/uqM0r7TZNNO6CaYASpkRXnQVwmUq0Q/SiIXCfVgOUUx5iUsZymamRzaCSElBCC0Ekia1gDkgVyTYr0YzVsilOBNEJKsgrwp1IeM/12IzIYcTBtvNo4C/vEspVsiBDRUX0cGARrKLlF0UTGUWobBvckbPKk2inyR6yDPur0pTQttNigAAJoiIjzIiVa4azxTCSlYBXkT9hqmU/rsZqQw4mDbeBDFf3iuUq2RWoRCoLHBkEZUV50UETGurNBPkG1aZ04za8m3jGgOrUipzolQI6uRhUI7itDpNIqYVAX+ymOhKtEJ2I2WkDDkcCbBU90FRUSoMZxYp6TCk0K8kSav0fu460q2xTivGRuskyCtmRLklUVTCqq89WuI5CBEQY5sAbQoPNgFRUpoG2gRBAARBERToRExhE/rtriMSHly660wAOOf5iRMrVriE6+raumrAKTitLkFJce0orzZqKyhvigOlyY6TgpqRDX+1jOrNWiE1FcLSNluOAtkWc5IUTCrn+o86k79UvvP51J36pVGcJOhUUERfmVKiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO/M33qiO5x7zfeqL5F/wA7UbyL/najeRf87UbyL/najeRf87UbyL/najeRf87UbyL/AJ2o3kX/ADtRvIv+dqN5F/ztRvIv+dqN5F/ztRvIv+dqN5F/ztRvIv8AnajeRf8AO1G8i/52o3kX/O1G8i/52o3kX/O1G8i/52o3kX/O1G8i/wCdqN5F/wA7UbyL/najeRf87UbyL/najeRf87UbyL/najeRf87UbyL/AJ2otu9P5cuT/opT5HkdFMZ5cs6ec1FeTPPrDvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvVEd+ZvvUybePexr/AHYXzc6k79UvvP51J36pecc02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa02tNrTa03vpML6nOpO/VLz86ke5VT7yOZRLP8ADHqc6k79UvP1ufnX7yOlHPxT1OdSd+qXn63Pzr59WKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCteEynq9KOfinqc6k79UvP1ufnX1bU1JZZji+8ayVbdwSqmGw0FQl9npJKmIISWhebyK6gL+0XuD0ZXVmjca9AFDfddbIGkEk0soa4Rae5QQNQNMKhCSa8EK4VFwtN+jRW5ZRmCNHOVeIV0fsKCLnPMg5qaC+mEQx9HKqajqX4dPVU8FNdLRERNVNQXBIGEXSIelEyqVMDkn2+UbMUUkUPfXGcCmdarqpuQT0ZgHjVGS0CE8qmiXMq6qbMBQyBdJOkVx92vUvq9KOfinqc6k79UvP1ufnX1QiKD0RtnSedMSAgUlygiC6X2utKfbOMFubijpvOMFygZyRcki6Yr7qrhKNoWpSRTAuUMSRyOqLolop9lcc6Lmm0F58xI//Euyc4HRTJO4WljnIjTpMgQMiQCF9T6URVQkQupaNnKFNcdEM4EpJiSIGUTKJo89G1/4I5ROYVdaPZxo6qdYUfRH2ST0h1jBuEpIuWxyY4XWK4SkZKO9DYZL2l00NrS6FTCiulTQhpKiropjOEx+Cfdr1L6vSjn4p6nOpO/VLz9bn519W5xGJkpVSMw68AOvY5+TFVyVSGmI7IKbrzxoDYCPOpEuEREqYwzGJQRHnHBAFVxUQMEuEySrq66lMxozQqbjzxi22Ap0kRYREqS1IjuihtvMmjjZivSJDlFTzzGIkRpNJx+Q4LTYJ1kR4RKfbeYdFDbcbJDAxLmIVTKKi04INAKmZmuBEU51VV6EpwTaMUMDBciQlzKip0LVyizEYdVp70Z4HeTcTnEtBVwSdS1JaB5/SRlszRDcUEyWgi61wnVUlpJRNK6LOmnKK2KoKkg8+iirrWrlFhNG4LQHJeBkSMuYUU1TWvVXMtTY8lGXiYdVlwXOTdDUQEo5wSdKVNjuS4yAr7AOCTjSOfZ0xTKjpdGaucSNIlmoRmnngbN406G0JUUl/d5r5AeuTWtyG3JbOQGPebRVJPuq6l9XpRz8U9TnUnfql5+tz86+rPEI7oQ2ZEX0ZHH5Bx3tNhuO5pjyZmZYXKFUv0u4SEefn6bLoNPkfsOcibgoLrTeoMgqolCp2nyRdSS08ZIXpfK59CQkznLI50s85IlOzIsmFKYeF2ba5LTSPMOaYapAtI8GR16C1dCcbZkS+QNqK7yJSJDy+kSiRvlEYZQl5NtTXr115TFBZszbLsRkIjDiGXo3KkLquCqq2S+7gv21ellxvKFhxXoaRmgajGkf0gVYUE5TowqGRU/KiSYE1t5py4WuU0HLN5xlqSjCuB/lWrm4YibzMIhju8ipSX1V2Qeghiy2657DOmvMOpavnoEK0NPQ24ox2nQkH6Kjpm+pop49vAoCjWUE7XGBcc+tpKu3Lx24kKPI9DgmJ+hxyJY8bkmldN194s6Wgn2RX2at8q7NuO3HQZh8kDpfoMLqkmyiaPSirmvJ65Wgg8nZYiM4opE5mQ3rH0Z56vKJkZkCNJCRNmQhcbcYeT9KqtgbSCWB1Ki4SpT6T5DTMaM08y7otR2G9JlgndFG+XIP0hBnS10fJW27zb0+4RL7Iy7dIc0vnZ/LThRbpeLRAuLzmghGy7KN/QTBalVoUEavQo3/AEe3DuGlERx6UAHpIkfRMEadcNeokq5El5lo+/Lc5N0WxNMNkMd0xQHEj6gXQVcKmuvJtr0CHMiBBv1tdRQWRp4aceD2XWTdVcFjSFc61+6rqX1elHPxT1OdSd+qXn63Pzr6rSGUZ3lmcqvsnoqOlj9xLU2Y8INuMxWHiDkorbpoZg1oCJLkkT7aktG6si4jHF4SVNAfRxUR0cIi9OvK1nBIqLhcc9SJUJhuKEN1iKQCEiK2ukLTmmJkg5XnBRKnHv8A4yAhI1p7CI1yPsatWqnZH/wJMRckPt5ZVj9L7OvUvRisqDgqBYVRXRLqVMKlSZURgWY7D0WMoCzIZjEpNAekJEggvuKOaut0ghcmeSnsQngbbk4DQQy0hIhPGrIKOemiJW47LbAKf2lFtEFM4xr1U49DlFLGaMuMoq8EgQ5NDTlUMVwPs4JFTFPySctJyTaIzRVdOUio4burWqqudWKceSU1BdhCKKmhybpiarjCrpZGnn57IoKGcs9Jx3BaX6RQ0c/DC1NmIPpPpiwkMPRlk8nySPfZ086OrGlo9OKWU5F/pZy650xQ+WdeV4gyg/qy0lFU92pUlmVcIDMIyaIE5IGNNQNrIrg05StOT6ITbjZvFkicaTCGeMIpdNSpUhggkg1CfIFjMDMLTe0EEUJdNffUsdFXm7ybXDdaejWt98CitEyuW9aAjpoKplEM1T7qupfV6Uc/FPU51J36pefrc/Ov3h+6vq9KOfinqc6k79UvP1ufnXzrNRw8Z5OfKaHIpjULZiKfwSjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFo7h2nN8WjuHac3xaO4dpzfFopakQqKo9MkPphVzzOmSZ1c/q9KOfinqc6k79UvP1ufnX7yOlHPxT1OdSd+qXn63Pzr95HSjn4p6nOpO/VLz9bn51+8NdWjnH7fV6Uc/FPU51J36pefrc/Ovqn+hCIw4I4TURGaKu6oJ+hDLCGUnTTU8WB+xz6GV0VWrefoj0t6K3I5RNZs6WkqiuvGRVEp0WYRMPyZBoqaZIyopoYIC1e10YWreYMuw3JkVdNFJ1ttM4JP7BKi5qzETxQ3Jhhy4ew22qJjPvrmra4KpDbmMgJiRONOakz0CXXrxUaK481c48J9PSNNrDqjrAwRc6iqMP9GckqG5/+QtadHRhf2fdt1L6vSjn4p6nOpO/VLz9bn519W5SozhMi0YsoyokIKpJ+sA/eqRIVlZAySjaQ8krw4VC+zpc6ZxnGa024LMt6UgK8JgpOoX2RQEJMqWdaqiUpco0w8wg59hRdUVXPy1KkuNDGcjMiZBhltxMKgYHq97NG5peiHE1KmNA1Rc832tVOv49DbiZRUygNFpIutPtZqfLNx+UxKJ0lb0xcY0UHRwCDj2UymPu36l9XpRz8U9TnUnfql5+tz86+rCmOiIslJksiCsxRkGrbau6RCS6Re4hY51p1HOQeJl1URcC4OMoirz4z0UwQw25BsMPEv69GvZMxT3ELKIvT6iSJccXyj4jsGbmmDvIngMZwJIuV9RpWJkIhJQJc8ow7lW3Rx0FhUXqVMecHCZjNK6Ytoimoj1ZVKhTHAT0f0iU2IchG9JPQaRzSJCXTL3ELHTTqGLDxsuEnMhh9pMrjOKhvpGuVzWBAdHRXlsARI8qZTDZaC6PSqeo276U9CcmieE5NG2jEFRVznOS9ZpWJkIhJQJc8ow7lW3Rx0FhUXqVMeYHBbGQ+xhxERdKO4rRcyrqyOrzW9n0GLakuUyaclRNsFIxRAaRstP7Gv2kqLLtzjXo68jMENMwlFosmKMk5+sVNSfaTpSmCkSpUgI0WOCoJOun+1eYRRFIl6ESoEyTKRgJEl1kQ5GK25pICuqZAq6SiqIgIS1EmNPXVuQbIvM8mTfo6IRI6JqhCq51euyrfpbJnFez7Drjes2v2Gg+0nWmfNbGWAhRY0tiQ3JV1XmnzMPbBWw5Mk0OZFLzQJU2RJdVpmNERvlDURUyXLpNgiCKZXK0/pLIiBMAFFUJGSXCKXu5XUmaYI0iMicmRn2G3HNYNJ1mo+0vUmPUB0juMkozKgiKgmjZO+1lebAL5gdR62kwLxGiaBK+Gmmhhc/FEpjl3gbIga0tDTJEygoq5xmlVWXhzgkwQEPskJJ0EKphU6/PAmSzJp6QYxRBeSjs403TVww1DlNQ5JehKfRw222nDREX2ReTSD+Kprxz02QwbSC+ky1X2FdEdNwBRMqugONJatsyE27gmglo2LhtqmRPDZngSRenC9aeoTqsRHJDT7TgoLzZx86QqmcdGUoTFmVHbfBDTBILgoSaWOnX6jSpGmurHSTn2W3y+wBJ1HrRF6/Uiyo7I+k8jMfQBjv8Aoa6L2hglJNBffFM9FOF6EEdJGloLpECplMCuFyXQlQH41wlW07grSqBi2AGIKBEi/byXQmKYfZR0dLk5DRNOj/mAsKnqskxMgyFaeZJc+yvtA4KpjIGOtKB0juMkozKgiKgmjZO+1lebAL5tLkI7ROnoJpEqD1InOtR5NvlBLCGcSUgK8LzgIYp+hJwVyK6WpVwlMFImTnlBtoV0dFsNbjpL0ACfFcJ/wWSKGjwBJdFf1AH7PKEnSKLjS6k1/wCHupfV6Uc/FPU51J36pefrc/OvqwidvLzjcaGnKug0RiqmJSAAkF0GdZ4NFx0VbRZArVOk29/0nlX3lYLQM5AaA6DhmWlqUs0DrrEtq1xgabkejtvG4iKgPu4XRaNft9dSrd5PQmGIyINnlOTItvN5pUMxw2yoL0mIimKscKBeV8n3ZjCWaUr8GTo5QXjbUAUH1L5veWnw9PucM0d5IuUK6CTOXfTNRcqie8WMLqq3w4qn5SoLyRmgbyrV20AQtD3RTCVACVyVtgckjuVRo0BxUME5hcToNNaU3i73Q22rhNUlJ+WDsJxxReNdZohDlEWoNgZvEfyicaS8S7y4zNjC3Jw2wjPoyoIG3hEb08HnNEQ6fk9cPSFD3W3WlBcY14VVxTEOW7czfCNfbdJNJM/LZGv9IMmKL0e8WCq1wppkeHklzThoAe8Kgy9pL8KRM+guZRFzUQnL1INqNFVHXUayGTR15oCQHBY1mOmi4Xmq2DGD+gJsy2ujKV550G8gpyB0B0HSJc6lKsIyNzgo3j3UhuYqDYUucG5m3Fus+8uRZNtbDCsaDaRjQG159R4OubytchyB0Ps4TAT8f+gE+arJZpzMKBFWAlyursBYbRAulIYEGHtelzuIqKmKlsypn+5MjlpDDnKNOnyjWTAsJpIVRuSuj78Vl6UhLyrrLrDmWjLpb90eZKgwUlM+UrMVLtPuat3QHAlA0bEZkWV/QqmpAUxyNQAlclbYHJI7lUaNAcVDBOYXE6DTWlNYu90Npq4TVJSflg7CccUXjXWaIQ5RFqDYGbxH8onGkvEu8uszIwtycNsI16MqCBN4RG9PB5zREOn5PXD0hQ91t5pQXm14VVxTEOW7dDfCNfbdJNJM/LZGv9IMmKL0e8WCr/6rdP8A9xyrTBixQJfRXY045Djo5X9YBMNIGrqIqBDbPyaiAYkmUUSkO5SrVy4NzfRIozJryNvTRZM1UnnUeIWo7aKLYiiihKtNcnHfttzfAFJD0ZCI2HOmpdSlhatMMZqWaA6kgWAR1DeJ4TLTxnJoKIVf/TLn9NKhWCPeB8oVB+8SLy6E4dGVorEVn0bCIQewLWniovKXGDdZL8OQRKpxXWozZCbP92XWo1aoNzkw7IzKcG9XD0ODGB1Sw8zosvKr2R1njVSJPF+xy3HkcNXAfXkW/t/3g/5qif8AirFd5I2l4jMjgg0oGAR1Vf0YZL7I1ZrPcmI1qiOwwul0cg+ji4hK5IZEGHvbQudzKKNTGZd0C62pPSYzvKtvESKBmB4TTEgVaah3ZmLcmBclBJONeLUaICIzGQhVCBftYEh0s9Nf/b9s+s/Vrgu2sv18lycbb7f+RlGTQ/4mlA9yENCkIcd51l4FFFTLZsEBoqouMIuurIy2LkqFFll6ToORikgno7DLWiqG20K4JdNNeVRK/XnOvXK/+gNEP9CJVuFAuUR9u4jplicLcZHBSV/fYX3806UOwR/LNmE8LZq2EeA6jZE2Kp9htSLC9SLTLbMcPJs5TkSIiejtTsqjJCCahccHOUTno2FnzpZPPvA7l6WSwnNNx7XkyQtSkWsalMtP/wC9z7PJmaIfKOXRDEMe8ormiUJjbMBQNCUVBOQwRZRCVMDVv8n7VAk2p0no9tu5zTmqhArckgNhnKjlUJznXNXRqFGPyuNpgn9P0Z4iMDKM6oaxbdNVFVqzs2t+I5HJ+HAk+kW4FdDUsf2G9BSRPaHRSrVBW0aOVl+nH6TpY5kY5HRxnp5SoTsl1hFbjtsPusOPG8qCjCq0Q6QOFhCEsivTVuZUZNwkRnZgSP0pz2mldPLCimiyIjotrp5wiaqjMyOUS9PPg8CGPpAvOlnBdIrUWNBhq1JRAaAWm1efiafMmrSNakcrGe/2g2xtTjuqnMjAkgmC5SoqQ9HyeYmsRow4AZZcsKuACakMtFM9dSQZnToDjmIrmn/SDeiKk7JXBaZD0OEuaAvQJFtkw722CKuG9NxGZWE6WlXBf8tWxi5vO2X0huFcZXotsMWmm0In/wBG6pmOl7CaK0bT0dPLKTGEI0o32UYacfEGm3sAptiiYq0tegQosaTCi6+QiPOsERuMB9ls1Uc5GrbbbxFk+TQyvRbtPOIxIl4DSNcMv8q4ArlEWpUR5+NINYiw5hTG2lal5YaF4gBTJtcBzUxbLuMG1sm/AmyTiSbeKaZekwnFEw0z69WtPtULjvKwm3WBlmoGWQRR5UkQsF7y4WrdEhytNURqJLOWCh0Lpm0yuV6sVbnTQW/S7l+nc5Lk3XUwy2BkrbXpDiZdUETIouahNRXYvlTbIc5tl/0hnU4DqaDii2qpkh5xSv8A7ZnfXbphH4q2W6EbJqvJufq/ZMeYx6xXVQNJbWvLE4BsvyzisBCI88gTwi4rTSkujqSolntkByNAJu12m4nKSM4TmCcwrLHJcomNQ1DGOU3yemPPgCriRIYcbRtx333PaXJLrWnBLysnXGC1JkieZcpxw8S2X9eSAE0sguoMUirK/wB0FcwP9806fI6uvWtGws+dKJ594HcvSyWG5puPa8mSFqUi1jVshTX1PBhMmnDAQxzoQMv5XPRio4G2+0oPNZ0gVCTCpnVmrT6SCLMSH6fPdHlPRhQZUk33keMjxhtpF6EXXigUWnfJVl+KJ/aFH39I/wCOoc1HUbvF8oJZxpoGQvx1SSI4ZNFyCL0oPPUIIxS/JeZJNlr7L8thwUbcP3nPa+0utah2CGcpSWdOavLr826ITJKYOtFGb03BP2sKXsYpqHcfTL84yxe4ck2rpyrrhp6NKZMcm039lUQtXu01DurLN4ZAprUk414tjmQBI7IGODb6dESHSRemrdAfmWmKArOu9yWGUBxWOUA4AAy6qLr+1kclSMvx2vJqJMgtSy/RK8RL6Q+KLq5QMD7XONMQ59omXSeDrM6eceNKRDcJgHXkbeU0Lnwqe3Q2tiAPpSMwbfOKa1CbWMmm0pG01oa8kgY1ItBa7lLGwo+5ZLw4bTD+RbzIA0BweVbXrFcZoZIxuTMAGS7yzg8majjlP7Ypj2S6U/w51L6vSjn4p6nOpO/VLz9bn519a1xGJMtUKS8yyAOPqnS4Qoil/Gmo020cofozDzSGgxzXSRpwSyKoC6h/ZVqhxQNoGSFhgG0JsM6IKgp9lMrhKs8GALpqbgxI4MIZL0loImVqzwosqSuZD7EcG3HV6zMUyVWeCnpbwvyf/Dh+neDCibmr2zHGpVqM1yr4iDx6CaTgjlEQ16UTPTVuii1BVFiAjIIMdRFQRWkRPYwK4TFWaC5c2k0W5hxmykAnULiopJTgHIfEIzAhnRZitKpIP+YiVSJassCPOkfr5LMZsHnc++YplfMbgsyWlaMm1RDQS6sotdFWuIw7NVSlOMsA2b5L0uqKZJf30DEpi3vqVtMw0jZaRMAmvODbRVBCTnSrNBkTo/6iS9Gbcea/yGSZGozRSGUNGnSBFNtD1FoqutM411Z4M5Y56bKyo4PcmXWGmi4WojKviyTAuq2mmjRYVQzz6K41pVvjAxEUSjNi0CAyophFbREwOEXoqwW5yY+Ig9IOK2TrgiuUQiVMqiKlRWkdfEQePQTScEc4Q16UTPTVuii1BVFiAjIIMdRFQRWkRPYwK4TFWaC5c2k0W5hxmykAnULiopJTgHIfEIzAhnRZitKpIP8AmIlUiWrLAjzpH6+SzGbB53PvmKZWicJsn338uKirpSHFdLmRNSKWrzXGY0/6EkN2MHJejvNiSkOnpAp5RS6CSoEeZFPGmxJaF1ssdYmipStRplsfF6H7OG0RBUCaJB5gIFUVxzVFZSS82DbryAmmYBlREi51FMrhKt0Vv0QDCNoMgPIif2kbwiaKL+yrNBW6IOik1Y7fpCD1I5jSq3xlamERSgVodF8iTRJXEx7eUTC5qzwZT0RdKM4/HBw2V621JF0P4Vb4zSRQMI/JtCPIifOgYRNFFq3RSYlmRyWlZBQeMudXEVMEq46as8GcjBIbKSo4PcmSdI6aLhaNtIVuAnIzAJrWSaKGmX7ABcCn7assB65MJhqW5GbN9tE91xUUkq5TJMmeyywrT3I8kw0ypEItcmAFzmv21JfPbIjlwYBQZlmyCvtgXOgmqaSJXIuW66toUuK6Oll8RRvTToUXATBIvVUNlTioqRy5NMs5HRXQ93KalxUKOgSzI5Io2OHiJNFVc95VRMLmrZEgR1NTVqIwDDakvTgERM1YrczLN5Xzfbitg4Tqoo6akiZ0sLjNWG3OTnEETknFaJ4hFUVEI1TK4VKitA9IUeWcEEQndFNFNMk58JqTNWe2wZkgSJSajgyLjvQrqtJkqbCY05yhylfBCGQ48Sm6ZgvvkqrirZFgxUXKMxWQZbRV6hBETz2yINxNtGjloyCSCD3FcRNLCdVck9abg4Uj0ZwM6Drv64cLlFbc+1jrzVqiSoKIIpGfYBxlEHmwBJjVVohAyjzb6ADAIKPNYQDwifaHRTC86VHaSQ4ANm8gJpkAZwJFzqiZXCVZ4MN6UWnIcjRwaN4us1BE0qgxxhKBAsYWhRlQLnRQTVhc1ZoMqLHUFYYfjNuNtKH2dACTCY6MVbYoCD6yQEWQRBfLOXUwn21zrLnqIzykkRCQfJppOiKaKIa/2kRF6as0GTb20BG4r0dtxgEDUmiBIopikZYtER4JDkdsNHTNhUJkBRMIjYl7S1ZYE12MukwcqM28TRdYKaLo+dsXGjFQMDTSEhLUqKi1EZgQyH9CERoWhYcRdMDABTCEJJpUxFcugR+QckNt84rhSQVX2kAlTKjVtitLEAm42gyA8iB/aFvCJoiuNaJUJjkZJGb7fJjoOk5qJTT+0pdOasdvYt7i6RxWYzYMEvPlQFEFajNLIBsmge0E5QQJUVRQufCqiZSrNBauTyaLswI4DIMeonERCWnAcnTnBHIJ7DcdnKNNj8VUl95asVuZlm8r5vtRWgcJ1UUdNSRM6WFVM+e2xZrImLgtyWReBDHmLBoutOunAalwlNkkNPYdivY02tXN9lCFetKt8Yo77hOPMq0Cg4ZLpKRCqYUlXWqrUZpZQNqyL2gnKC2qoqghc+MprSrNBYuEj9dKajtg+5n3zREJassALoaaJzRjNpIJOpXcaVWWA5cmkw3MOM2UgET3XFRSSrJAkywaJoX3ozbjotlzghkmcL1U9ammYiIjbE+0tz2W8cxsopNK24KakXOKYCdCBtRdGWAuI8RLpGRiqaOSJc4piLb7W4SNyWY7SNJ6Mv222hBMIp/Zz0JVohTo7SoTbUtgHwAh5lFDRddNi22AoIACIIiKasIif4c6l9XpRz8U9TnUnfql5+tz86/eH1L6vSjn4p6nOpO/VLz9bn51+8F0FeABM20JNMQNVQSVOpVFcfuXzdS+r0o5+KepzqTv1S8/W5+dfvAY05T+louuAqsMCOMuOqmM4z7LaKhGvUmVRowZfNHAKSK+mvmqYJ+RzaJGmEFvCaAoiavspXUvq9KOfinqc6k79UvP1ufnXz3aGw+GjpNuvgBjkUVMiq9VX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq5xJ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AXzHXy1t/wDd1/s/vv8A1rb/AO7r/Z/ff+tbf/d15AX3/rW3/wB3XkDfP+vbP/d15A3z96vWzG6VUVmysEqaT/LjJloPSgAgq2JL7yqSJ1U2otCqkqqqkZmS5IzJdZGS61Vdar5tS9GKwqdFNb0prelNb0prelNb0prelNb0prelNb0prelYSv4r5ualRf2dNDvSmt6U1vSmt6U1vSmt6U1vSmt6U1vSmt6VhOvzpWCToprelNb0prelNb0prelNb0prelNb0prelNb0prelNb0prelBjHSq0uVTo8+r99N/Cmt6U1vSmt6U1vSmt6U1vSmt6UO9KVETp8+pejFYVOimt6U1vSmt6U1vSmt6U1vSmt6U1vSmt6UO9KVETp/xb0o5+KepzqTv1S8/W5+dfvI6Uc/FPU51J36pefrc/Ov3kdKOfinqc6k79UvP1ufnXz6sU5upzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3JwpzcnCnNycKc3Uuscfxz5lxqzTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFObk4U5uThTm5OFOb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qb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41frdtTfGr9btqb41LZkNo4oKbLguIioiZTI5wuvzXaGw+GjpNuvgBjkUVMiq9VX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NX63bU3xq/W7am+NT48lG9DT5B0HNHSzjOiq4zjzXOJHcVtDQHngAsKqpnBLzaqv1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV+t21N8av1u2pvjV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", - "description": "Allows to create or edit gateway configuration.", + "alias": "gateway_connector", + "name": "Gateway connector", + "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCALuBnEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD91vD/AIP0vWvD1hdSWxZrm3jlJ81xksoPY+9WT8NtGP8Ay6N/3/k/+Kp/w3bd8PNBPrp1uf8AyEtbVAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUf8K10X/n0b/v8Ayf8AxVbtFAGF/wAK10X/AJ9G/wC/8n/xVH/CtdF/59G/7/yf/FVu0UAYX/CtdF/59G/7/wAn/wAVR/wrXRf+fRv+/wDJ/wDFVu0UAYX/AArXRf8An0b/AL/yf/FUf8K10X/n0b/v/J/8VW7RQBhf8K10X/n0b/v/ACf/ABVH/CtdF/59G/7/AMn/AMVW7RQBhf8ACtdF/wCfRv8Av/J/8VR/wrXRf+fRv+/8n/xVbtFAGF/wrXRf+fRv+/8AJ/8AFUq/DnR0PFo3/f8Ak/8Aiq3KKAMf/hAtJ/59T/3+f/GitiigDE+Gv/JOtA/7Btv/AOilrbrE+Gv/ACTrQP8AsG2//opa26ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK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uZ/Hur2B0b+2FLlVlNswDI7HCiPBYkDgk18pfsffEnw9o3xL/b98F3muaTaeL73xLq2q22iTXaR39zaDSUBuI4SQ7xg4yyggZGTyK8diktPDv/BLz/gn54o8WQ+b8KvCviWxvPGEk0RlsrOMrMltPcrjHlJMwyzfKpIJoA/Sb9k3/gon8Ff25YdTb4V+P9J8WS6N817bRxT2t3brkgOYJ0jl2EjAcLtPY157qf8AwW//AGVdEudMhvPjHoVpNq19Pp8MU1leo8c0MrQyecphzAgdGAkl2I2MqxHNeM+Kfij4R/aU/wCC3Pwg1n4PeIPD3iyPwt4H1keN9W8P3UV9apaTeWLKCeeFihYybmVScjOcenivwU8N6ev/AAbh/tETiws/Ou77xdPPJ5C7ppI7+UI7HGSyhVAJ5G0Y6UAfrvZXsWo2cVxbyxzwToJIpI2DJIpGQwI4II71LXlf7DN5JqH7F/wnmmcySy+EdLZ2PVj9ljr1SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDE+Gv/ACTrQP8AsG2//opa26xPhr/yTrQP+wbb/wDopa26ACuf+Jfwm8K/Gfwy+i+MPDPh/wAWaNKdz2Gs6dDf2zn1Mcqsp/KugooAxPh/8NvDvwm8MwaL4W0DRfDWjW3+psNKsYrO2i/3Y41VR+ArGP7N/wAOz8UP+E3/AOEC8F/8Jp/0H/7Etv7U9P8Aj52eb/49XaUUAYd18M/Dd98QLXxZN4f0SbxTY2j2FtrL2MTa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iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooJwKACioTqEAP+ui/77FH9o2//PeH/vsUATUVD/aNv/z3h/77FKt/A7YE0RJ6AOKAJaKRmCLkkADqTUX9owf894f++xQBNRUP9o2//PeH/vsUf2jb/wDPeH/vsUATUVHFdxTthJEc+isDT2cIpJ4AGSfSgBaKxr7xMQ5WBRj+83f6Cqq+IboNneD7FRQB0dFZumeIFvHCSAI54BHRq0qACiiigDE+Gv8AyTrQP+wbb/8Aopa8+/Yo/wCSOaz/ANj74z/9SjVa9B+Gv/JOtA/7Btv/AOilrz79ij/kjms/9j74z/8AUo1Wq+y/67nFP/e4f4Z/nA9coooqTtCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA8j/AGb/APksnx//AOx9tf8A1F9Ar1yvI/2b/wDksnx//wCx9tf/AFF9Ar1yrnv935HHgf4T/wAU/wD0uRyfxK+Nnh34TXFjBrFxfte6nvNpY6dpl1qd7OqYMjrb20ckpRdy7n27V3LkjIrX8EeN9K+JHhWy1vQ76HUdL1BPMguIs4cAkEEHBVgwKlSAVIIIBBFeXfEG7n+FH7UUfjTUNK1/U/DuqeGF0QT6RpNxqs2n3MV082Hgt43mCSrIPnClQYQG25XPn3jfw7Y+KPEfhXWvHXwo1EeALqx1aQeHrTRZNZFnqM12jw3l1ZW8RYTzQeY28xv5MkrhnViWOad4p9Xf5W5rJ+cklb1Xe52tWbXp87pXt6NtP0fofU9FfEGkfsw6r4v8EeNpfG3hDUdW1yx+GtnFoTX0D3k9rdJLqzwRxSchr2GNrVS6EyKzcN8/zavj74BXnizQfix4ovfCWpX/AI0t4tDuvD19JYSvexXMVjaF5LQ4yJBKrBzHydm1sgYFpXlJPp+ra+/TX5akt2su/wDlF/8At34PQ+yqp+IdetPCugX2p38vkWOnW8l1cy7S3lxopZmwAScAE4AJr5A/4U94pvv2qb291HzbHxAPGQ1HTtXj8DXt9cvpQK7YBrC3a2sNqYN0b27IGBLHy3dlZjwX8CtD8VfCW90DVvhp4guvic/h7UofEuqXeivHZ6tfFSVae6mAiv8AfcBJIDG0vlFQf3WMVjKT9j7Rb2vb5X/DZ7WZrCKdZU3tdK/za/4K7pn2BoWt23iXRLPUbKTzrPUIEubeTaV8yN1DKcEAjII4IzVuvjO0+HXhuDSPCLeJ/hl4j1bwRH4FhsdH0i28JXUh0nWRLKbwmzWIPa3EuYil06KvyORKu7Ldx+y78DdVtvjQviDx9or3nirRfBXh6zh1a8jM3l3gjvUu/KmOVaXDKsjKScP1w/PTOCU5KOybX4yX/tqfpJPtfnhJuCb3sn9/L/m16prue/eOfHOl/Dbwvc6zrV19i020KCaby3k2b3WNflQFjlmUcDvXLa5+094J8N+MZtEvNVuY7m1uo7K5uV0y7k06yuJNuyGa9WI20Mh3phJJFbLoMfMM8D+1L411Xx/4b8RfDu28H+KjrF/fafFpd3Dps0+m30BmglkuHu1TyLcR7ZQySur/ALsFQ29RXFfE6x1fw/4w8VR+HPD3jiy17WdcWSXwzLoza14S8WRtIi/a5bhoDFZtJENzgTxFXjyyScF8oe9NLo/+B+j13a7aO2ktIvuv+D/l5Lz1V/cfF37UngbwL4rudH1PWZobnT3ijv549Oup7HS2kwY1urqONoLYsCpAmkQ4ZT0INbXhz4yeGfFnxD8ReE9P1aG48ReE1gfVbHY6yWqzxiSJvmADqykHKEgZwcHivB9WfVPh94C+LngK48IeKdZ1zxnqerXOjS2ekS3On6tHqCnyjLdqnkW/lbvLcXDoQsWRuBXPPeHP2d/Ffgr4jePfGOjaddy+MvCNxpS6fK8bxReLLJNGs4r2yWRhh1kaI7G5CTxITjDAxzP2bm/5U/m7XX/brfvdeyurMknz8ke8l9zVn/28r26edj6k8LfEnQ/GngPTvE2n6hFJoWrW8d1a3citAsscmNhw4VgTkYBAPPSrnhnxTp/jLRob/TLqK8tJ0WRHTqAyhwGB5U7WU4IBGRkV5p+yr4FnuP2LfBHh7XbLUtLnk8N29nfWkyPa3VuTEA6MDhkYcg9CPY16L4I8Faf8PPDNto+kw/ZtNsty28A+7AhYsI19FXO1R2UAdq3qRUZyj2egk7pNGtRRRWYwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKp66xXSpcew/UVcqnr/APyCZfw/mKAPJ/ib+0B4Z+D95FDr8usWvneWElg0O+u4GaR9iJ5sMLpvZuAm7dkjjkVo+FvifY+Mr+2hsrHxAsV3bSXSXF3o9zZRKEkEZRvORGWQk5CkAsoJHFcp+1joF94j+G2mQafZXd/PH4k0ido7eFpWWNL6FnchQTtVQST0ABJrk/jh4L8T63+0RqF34etb6KeX4b6lYWWoJGywxXr3EZiTzfurJxkDOeM9qjmai211l+EOZfe9CuW7su0fxlyv8NT1iX4mWEXxXi8HmK7/ALTm0p9YWUKvkCFZViKk7t2/cw424x37V0VfG/w1/Z90vx74ludI03wR4i8K6Zqfw8l0rULjUtKntUOpmaJtxaQAPKGAfePv7Mgnbx6j+wqureNPCutePvEVv9n1vxTPDZlM52Q2MYthj/emW4f/AIGK25enZP5+81p8rP01Ib697fL3U9fx+asfSGsyE6DbnP3tuff5Sa4Lwl8XfDvjrxfr+g6VqSXWr+F5Y4dUtvKkRrVnBK8soDAgHlSR713msf8AIAtf+Af+gmvirxT8P/Hfgv4k+OvFXhTRdUbVPEXiO68PHNvIA1pc2lr5F8OMGOCdGJccAO/PBrK75+Vdn990kvm3+vQrTlv5r7rNt/JL9D6G8JftC+GPiFp0l34duL7X7e31n+wrh7GwmcW1xxuL5UfulBBMgynI5rt6+OvC3wK1bwFoEWiWGg619h0n4u2E9s32GT57CG3hj+1ZC8x/KcyfdznJq/4A+Cl/4Y8U+A/ENt4a1W01x/Hmsrqd59klEq6dK94U8wkfLA37srnC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/sfbX/1F9Ar1yvI/2b/+SyfH/wD7H21/9RfQK9cq57/d+Rx4H+E/8U//AEuQUUUVB2HmXhv/AFN//wBhXUP/AEsmrRrO8N/6m/8A+wrqH/pZNWjQAUUUUAFbPheyi1Kyv7edBJBOgjkRujqQwIP4Gsat7wT/AMvP/AP/AGagDzs/scWOp/HyLx9rfjbx34ik0/TptK0jRL64s00rRrecwG5WJYbaOaVpjbxbnuZZnAVlQorurexUUULRJL+uoPV3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5/wd/wAjF4r/AOwqn/pDaV0Fc/4O/wCRi8V/9hVP/SG0oA6CiiigDE+Gv/JOtA/7Btv/AOilrz79ij/kjms/9j74z/8AUo1WvQfhr/yTrQP+wbb/APopa8+/Yo/5I5rP/Y++M/8A1KNVqvsv+u5xT/3uH+Gf5wPXKQ9KWkPSpO0r6T/x5f8AA3/9DNWaraT/AMeX/A3/APQzT72/jsIwz554AA5NAE1FZ3/CSwf3ZfyH+NH/AAksH92X8h/jTsyeeJo0Vnf8JLB/dl/If40f8JLB/dl/If40WYc8TQKAnoPypazv+Elg/uy/kP8AGj/hJYP7sv5D/GizDniaNFZ3/CSwf3ZfyH+NH/CSwf3ZfyH+NFmHPE0aKzv+Elg/uy/kP8aP+Elg/uy/kP8AGizDniaNFZ3/AAksH92X8h/jR/wksH92X8h/jRZhzxNGis7/AISWD+7L+Q/xo/4SWD+7L+Q/xosw54mjRWd/wksH92X8h/jR/wAJLB/dl/If40WYc8TRorO/4SWD+7L+Q/xo/wCElg/uy/kP8aLMOeJo0Vnf8JLB/dl/If40f8JLB/dl/If40WYc8TRorO/4SWD+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40/tW0m0+/sNOuo54jbwBzdfaZRBErLJEiIXciR8DP2JRRYLni/wy8J+LPhFcfG3W4/DUmsXmteJZNZ0HTo7+3hfWIxp1nEqiRm2xFpYXX97txjJGCCcjxJdz6z+3VaW9n9gTV/+FZ3p+zXR86K3le9g2CZUOSm4EHBG4K2DXv8AWNo3w78P+HPFOq65p+haPYa3rvl/2lqFvZRxXWoeWNqedKqhpNo4G4nA6UCufL/7MfwR8eeC/jBoP2DwNrvwr8M2drcxeKtPfxYmqeG9WkaLEX9j2f2iZrRBKS+fLtcICpjcnI9j/Y0+Gev/AAS+CUHgvXrW0j/4RW8uLDTby3uPNXVbHf5kNwwwGjkIkKOjc742IJVlJ9WoosNu4Vt+Gv8Ajxb/AK6H+QrErb8Nf8eLf9dD/IUPYqnuaNVbP/j+u/8AfH/oC1aqrZ/8f13/AL4/9AWoOgtUUUUAFFFFABRRRQAUUUUAeR/s3/8AJZPj/wD9j7a/+ovoFeuV5H+zf/yWT4//APY+2v8A6i+gV65Vz3+78jjwP8J/4p/+lyCiiioOw8y8N/6m/wD+wrqH/pZNWjWd4b/1N/8A9hXUP/SyatGgAooooAK3vBP/AC8/8A/9mrBre8E/8vP/AAD/ANmoA3qKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5/wAHf8jF4r/7Cqf+kNpXQVz/AIO/5GLxX/2FU/8ASG0oA6CiiigDE+Gv/JOtA/7Btv8A+ilrz79ij/kjms/9j74z/wDUo1WvQfhr/wAk60D/ALBtv/6KWvPv2KP+SOaz/wBj74z/APUo1Wq+y/67nFP/AHuH+Gf5wPXKQ9KWkPSpO0r6T/x5f8Df/wBDNYHxIj8SyfY/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K7CiiimIKKKKACiiigAooooAKKKKACiiigAooooAK1vC/wDy3/4D/Wsmtbwv/wAt/wDgP9aT2Lp/Ea1YfiX/AI/l/wCuY/ma3Kw/Ev8Ax/L/ANcx/M1KNqnwmfXkv7Qf7Oes/FH4heEPGHhbxXaeF/E3g9bu3t31HRv7XsZoLkRiUGDzoWWUeUuyVZAV+YEMGIr1qirOc+drT9hLUYPgRfeF5fiDeXniT/hMn8b6b4jm0eHfaXpuftCLLbqyxyoCWQhTHuRuNrDdWn4S/ZB1yfUfiXqHjbx0nibUPiboFtoN2bDRF0uDTUiS5TNuhmlbaRckhZHdgwbLsCFX3ailYLs8Guv2TvFp8J+A721+IOnWnxI+H1nNptnr48NltO1CzlVEaC5sPtO5lIihYmO4jbzIwwKqSldt+z18Bz8EtM124v8AWZfEnifxbqbaxrmqvbLard3BjSJRHCpYRRJFHGiJuYgLyzMST6HRQFwooopiCiiigAooooAKKKKACiiigAooooAKKKKACtvw1/x4t/10P8hWJW34a/48W/66H+QpPY0p7mjVWz/4/rv/AHx/6AtWqq2f/H9d/wC+P/QFqDoLVFFFABRRRQAUUUUAFFFFAHkf7N//ACWT4/8A/Y+2v/qL6BXrleR/s3/8lk+P/wD2Ptr/AOovoFeuVc9/u/I48D/Cf+Kf/pcgoooqDsPMvDf+pv8A/sK6h/6WTVo1neG/9Tf/APYV1D/0smrRoAKKKKACt7wT/wAvP/AP/Zqwa3vBP/Lz/wAA/wDZqAN6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuf8AB3/IxeK/+wqn/pDaV0Fc/wCDv+Ri8V/9hVP/AEhtKAOgooooAxPhr/yT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HqP+FE2H/Qa8Zf8AhS3/AP8AHqAO4qnpsqz3V2yEMvm7cj1AAI/MGuVT4FacG+bV/F0i91k8R3zK31Blwa63SdJg0PT4rW1jWKCFQqKo4AoAs0UUUAFFFFABRRRQAUUUUAeR/s3/APJZPj//ANj7a/8AqL6BXrleR/s3/wDJZPj/AP8AY+2v/qL6BXrlXPf7vyOPA/wn/in/AOlyCiiioOw8y8N/6m//AOwrqH/pZNWjWd4b/wBTf/8AYV1D/wBLJq0aACiiigAre8E/8vP/AAD/ANmrBre8E/8ALz/wD/2agDeooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArn/B3/IxeK/8AsKp/6Q2ldBXP+Dv+Ri8V/wDYVT/0htKAOgooooAxPhr/AMk60D/sG2//AKKWvPv2KP8Akjms/wDY++M//Uo1WvQfhr/yTrQP+wbb/wDopa8+/Yo/5I5rP/Y++M//AFKNVqvsv+u5xT/3uH+Gf5wPXKKKKk7QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPI/wBm/wD5LJ8f/wDsfbX/ANRfQK9cryP9m/8A5LJ8f/8AsfbX/wBRfQK9cq57/d+Rx4H+E/8AFP8A9LkFFFFQdh5l4b/1N/8A9hXUP/SyatGs7w3/AKm//wCwrqH/AKWTVo0AFFFFABW94J/5ef8AgH/s1YNb3gn/AJef+Af+zUAb1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA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9Hsl3D+0q/8Az7X/AIE//kT6S+1J/eFH2pP7wr5t/wCGS/DP/Qc+K/8A4c/xL/8AJ9H/AAyX4Z/6DnxX/wDDn+Jf/k+j2S7h/aVf/n2v/An/APIn0l9qT+8KPtSf3hXzb/wyX4Z/6DnxX/8ADn+Jf/k+j/hkvwz/ANBz4r/+HP8AEv8A8n0eyXcP7Sr/APPtf+BP/wCRPpL7Un94UC4Q/wAQr5t/4ZL8M/8AQc+K/wD4c/xL/wDJ9Oi/ZS8PW0gkh8QfFaKVDuRz8SvEMoU/7kl6yN9GUj2o9ku4f2lX/wCfa/8AAn/8ifSYORS15X+yt4/1TxTpPi3QdavH1TUvAWvnQZNReNY5NRjNlaXsMsioAnm+TeRK5UKrOjsqIGCL6pWMk07M9TD141qaqR6/018mFFFFI2PMvDf+pv8A/sK6h/6WTVo1neG/9Tf/APYV1D/0smrRoAKKKKACt7wT/wAvP/AP/Zqwa3vBP/Lz/wAA/wDZqAN6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuf8AB3/IxeK/+wqn/pDaV0Fc/wCDv+Ri8V/9hVP/AEhtKAOgooooAxPhr/yTrQP+wbb/APopa8I/ZW/5J74h/wCx98Y/+pLqde7/AA1/5J1oH/YNt/8A0UteEfsrf8k98Q/9j74x/wDUl1Ot6WzPFzL+PT9JfnE9KooorU5QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOZ/ZB/5KH8d/8Asfbf/wBRrQq9urxH9kH/AJKH8d/+x9t//Ua0Kvbq56vxHp5V/u69Zf8ApTCiiisz0TzLw3/qb/8A7Cuof+lk1aNZ3hv/AFN//wBhXUP/AEsmrRoAKKKKACt7wT/y8/8AAP8A2asGt7wT/wAvP/AP/ZqAN6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuf8Hf8jF4r/wCwqn/pDaV0Fc/4O/5GLxX/ANhVP/SG0oA6CiiigDE+Gv8AyTrQP+wbb/8Aopa8I/ZW/wCSe+If+x98Y/8AqS6nXu/w1/5J1oH/AGDbf/0UteEfsrf8k98Q/wDY++Mf/Ul1Ot6WzPFzL+PT9JfnE9KooorU5Tg9f+PWm+D/AIo6romtzaHoukaTocOsz6te67aQ+WHnaHa9uzCWNAQuJmAjYttB3AitTwv8b/BfjjT9Xu9F8XeF9YtfD8jRapNZarBcR6a6jLLOyMREQASQ2MV8gf8ABRH4N+JfiF8Q/i+dN8K67rllrHwrsdLtzbaZLcxXs41cu9um1SHcRncUGTt5IxTP2gfg14j8HfFb4vXXgr4aw6nY6l8N9CtIrT/hH1n0++mhv7jzVWEqIbieGBt6wnJOEG0ggGbm3s01/XkfYPg744+CviL4MufEfh/xf4X13w9ZFxcapp+qwXVlblBl98yMUXaOuTx3rzj42f8ABRn4PfA34S6T43vfHHhvWPDut6xbaJZ3ek6zZXEc00s6RO6uZlRo4A/mTEMTHGrMQcYr47tvgh438c2nxjubLQfin4i0XUdQ8H655Hinw1baHeeJrKznLXttHbwW9tEWEce3ynjErBVV8h1J9D/aP8IW3xX+AHirxR4E+DHjbw6D448K61eRTaLcW2peIINPv7SW4uItKI81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OPm+/kyZOMEOBtBGa7mqEFbfhr/jxb/rof5CsStvw1/x4t/10P8AIUnsXT3NGvP/ABF/yN+p/wC/H/6KSvQK8/8AEX/I36n/AL8f/opKdLcyx38P5leiivGf2gv20tE+CHxW8H+ALDSdV8aePfGN0gg0HRzGbiysdwE1/OzsqRQRrk5dhvI2juRueSk3sezUV5v+1V+0K/7LvwhufGTeE/EPi3T9MniOpw6MiSXFhZlgJrsxlg0ixJliqBmOOgGSOq+GHxP0D4z+ANK8U+FtVs9b8P63brdWV9ayb4p426EHsexB5BBBAIoCztc3qKKKYgooooA5n9kH/kofx3/7H23/APUa0Kvbq8R/ZB/5KH8d/wDsfbf/ANRrQq9urnq/EenlX+7r1l/6UwooorM9E8y8N/6m/wD+wrqH/pZNWjWd4b/1N/8A9hXUP/SyatGgAooooAK3vBP/AC8/8A/9mrBre8E/8vP/AAD/ANmoA3qKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5/wAHf8jF4r/7Cqf+kNpXQVz/AIO/5GLxX/2FU/8ASG0oA6CiiigDE+Gv/JOtA/7Btv8A+ilrwj9lb/knviH/ALH3xj/6kup17v8ADX/knWgf9g23/wDRS14R+yt/yT3xD/2PvjH/ANSXU63pbM8XMv49P0l+cT0qkPSlpD0rU5Trvh3/AMijb/78v/o16l8Uf8sP+Bf0qL4d/wDIo2/+/L/6NepfFH/LD/gX9K5ep7sf4K9EZNFFed/tA/E+T4a3XgWOK/uLA+I/FVnox8rTkvBcCVZCYm3Sx+Up2f6xd7LgYRsmqMz0Sivn3xf/AMFFfDfhHWPGUX/CG/EbUdL+Her/ANk+JtZtNMgN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h74awSaLtl0D4t6r4nv1+2QHyNOmm1Jop/v/ADZFxD8i5cb+VGDjR+PP7JXiP42w/H7TUjSwi8cwaK+h3T37W6XU1nEGZGeBvOhHmIqFwAw3blzivp6iiwXZ8d/DD9jmTx9J4nOq+BPiX4Nv9Q8KX/hpNW8X/FG88VSo12EEgtIGvbpBASisZHMMp2KPL5OPVfgH4o+LLN4V8M638PbXwtpvhyyFpresXOq295BqpihEcf8AZyQSmUKzgMzXUcRVQVCMTuHt9FFgufJOmfs5eP8AV/2Ytc8Hv4di03xD4R8eSeKtBlvNRhbTvEyLrD6lEoaJnkhVkYRN50alX5CsoDHoD4D8ffH74qan411zwTd+A7fR/Bep+GtJ0nUNRsru/wBTurxo2klZraWWGOFfs8apmXcxkYsqYAP0tRRYOY8y+DNl4m+F3wg+Ffhubw1LdTQ6Va6brky38CjQzFZjLsNx84GVBHiIn7277ozUvwC+G+rfD7xZ8UrnU4oEt/E/jBtY01o5Q5ltm02whyw/hYSwSrg/3QehFekUUCCtvw1/x4t/10P8hWJW34a/48W/66H+QoexdPc0a8/8Rf8AI36n/vx/+ikr0CvP/EX/ACN+p/78f/opKdLcyx38P5leiiiug8gKKKKACiiigAooooA5n9kH/kofx3/7H23/APUa0Kvbq8R/ZB/5KH8d/wDsfbf/ANRrQq9urnq/EenlX+7r1l/6UwooorM9E8y8N/6m/wD+wrqH/pZNWjWd4b/1N/8A9hXUP/SyatGgAooooAK3vBP/AC8/8A/9mrBre8E/8vP/AAD/ANmoA3qKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5/wAHf8jF4r/7Cqf+kNpX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gDJ56VYpkhRRRQAUUUUAFFFFABW34a/48W/66H+QrErb8Nf8eLf9dD/IUnsaU9zRrz/xF/yN+p/78f8A6KSvQK8/8Rf8jfqf+/H/AOikp0tzLHfw/mV6KKK6DyAooooAKKKKACiiigDmf2Qf+Sh/Hf8A7H23/wDUa0Kvbq8R/ZB/5KH8d/8Asfbf/wBRrQq9urnq/EenlX+7r1l/6UwooorM9E8y8N/6m/8A+wrqH/pZNWjWd4b/ANTf/wDYV1D/ANLJq0aACiiigAre8E/8vP8AwD/2asGt7wT/AMvP/AP/AGagDeooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArn/B3/ACMXiv8A7Cqf+kNpXQVz/g7/AJGLxX/2FU/9IbSgDoKKKKAMT4a/8k60D/sG2/8A6KWvCP2Vv+Se+If+x98Y/wDqS6nXu/w1/wCSdaB/2Dbf/wBFLXhH7K3/ACT3xD/2PvjH/wBSXU63pbM8XMv49P0l+cT0qkPSlpD0rU5Trvh3/wAijb/78v8A6NepfFH/ACw/4F/Sovh3/wAijb/78v8A6NepfFH/ACw/4F/SuXqe7H+CvRGTRRXlX7VHxb8U/Cyy8FW/hC10G51XxZ4nttCb+1/N8iCKWKZ2kHlkNuXywQOjYK/LnctGZ6rRXyf/AML9+Psuu/Evw1GfhH/bPwtt4dTm1NtM1D7Lr9vPbtPHAlr9p3WkgEbq0pnnGdpEfJA6YftReNPjXqHw40j4cWvhrRtQ8YeFI/Gep3/iC0nv7bTbR/KVIEhhlgaSV5JGG4yKFWMkqxIWlcdj6Kor4m+LHx1+M/xS/Zn0HWdN1zwb4H8R2nxTTwzqAtbC+vre4ih1wWcIVlu7dyjBQZlbiVWZ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0j/5Br0Sii7DlXY87/4UTqn/AEUrxz/4D6R/8g0f8KJ1T/opXjn/AMB9I/8AkGvRKKLsOVdjzv8A4UTqn/RSvHP/AID6R/8AINdV4G8J3Hg7SZLa41vVdfd5jKLjUEtllQEKNgEEUSbRjPKk5Y84wBtUUgslsFef+Iv+Rv1P/fj/APRSV6BXn/iL/kb9T/34/wD0UlaUtzjx38P5leiiiug8gKKKKACiiigAooooA5n9kH/kofx3/wCx9t//AFGtCr26vEf2Qf8Akofx3/7H23/9RrQq9urnq/EenlX+7r1l/wClMKKKKzPRPMvDf+pv/wDsK6h/6WTVo1neG/8AU3//AGFdQ/8ASyatGgAooooAK3vBP/Lz/wAA/wDZqwa3vBP/AC8/8A/9moA3qKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5/wd/yMXiv/ALCqf+kNpXQVz/g7/kYvFf8A2FU/9IbSgDoKKKKAMT4a/wDJOtA/7Btv/wCilrwj9lb/AJJ74h/7H3xj/wCpLqde7/DX/knWgf8AYNt//RS14R+yt/yT3xD/ANj74x/9SXU63pbM8XMv49P0l+cT0qkPSlorU5TqvhvcJN4WRFYM0M0qSAfwkuWwfwYH8a3q8a174f2uuX32lbrVtOuCArSadqM9k8gHQMYnUtjnr61Q/wCFUL/0Mnjn/wAKjUP/AI9WDpu56dPGxjFRaPdKK8L/AOFUL/0Mnjn/AMKjUP8A49R/wqhf+hk8c/8AhUah/wDHqPZMv6/Dse6UV4X/AMKoX/oZPHP/AIVGof8Ax6j/AIVQv/QyeOf/AAqNQ/8Aj1HsmH1+HY90orwv/hVC/wDQyeOf/Co1D/49R/wqhf8AoZPHP/hU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/eFA1GI/xD86/krpVYq2RwRyCO1H9l/3vw/4If8AEXP+oT/yp/8AaH9bKSCRcjpTq+DP+DdX4o698TP2CNQj13U7zVP+Ec8V3ek2D3MpleG2FrZzLGGPO1XnkwOwIA4AFfedeZVg4TcH0P1bKcwjj8HTxkVZTV7dgoooqD0DzLw3/qb/AP7Cuof+lk1aNZ3hv/U3/wD2FdQ/9LJq0aACiiigAre8E/8ALz/wD/2asGt7wT/y8/8AAP8A2agDeooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArn/AAd/yMXiv/sKp/6Q2ldBXP8Ag7/kYvFf/YVT/wBIbSgDoKKKKAMT4a/8k60D/sG2/wD6KWv5mv2/v+T7/jX/ANj7rv8A6cJ6/pl+Gv8AyTrQP+wbb/8Aopa/ma/b+/5Pv+Nf/Y+67/6cJ69PLPjZ+TeLP+6UP8T/ACPI6KKK9k/DAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoor0n9kFfBS/tMeDJ/iLq40TwVY6nFearcm1lucxRHzPL8uJHdt7KE4Xox5HWk3ZXNaFP2lSNO6V2ld6JX6t9j1T9sP/gmTr37If7O/gLx7e67Fq7eKVji1nTUsvKk8NXUtulxFbyOJHDlo2PJCYIHBzmu0/Ze/4JEeJvGfwy8X+MPido2v+GNBsvBlx4k8Py2upWST3cqrviE9ufMmSJlyfmSMnHDV6b8WP+Cmnwk/a7+Hfx48HeI9Ct/AUfiwf2voWtm71LURqupWhVLPdDscWu6GNFIRVTGQffsdW/bv+A3ijxD46+JR+Jd1Z6944+Fg8JL4UuPD180unXqQ7dn2lIzCUZhgYOMkkkCuH2lbls1r6H6B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", + "description": "Allows to create or edit gateway connectors.", "descriptor": { "type": "latest", "sizeX": 11, "sizeY": 8, "resources": [], - "templateHtml": "", + "templateHtml": "", "templateCss": "", "controllerScript": "self.onInit = function() {\n if (self.ctx.datasources && self.ctx.datasources.length) {\n self.ctx.$scope.entityId = self.ctx.datasources[0].entity.id;\n }\n};\n\nself.typeParameters = function() {\n return {\n dataKeysOptional: true,\n singleEntity: true\n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Gateway configuration\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":false,\"enableDataExport\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":500},\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Gateway connector\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":false,\"enableDataExport\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":500},\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false}" } }, { - "alias": "gateway_connector", - "name": "Gateway connector", + "alias": "gateway_logs", + "name": "Gateway Logs", "image": null, - "description": "Allows to create or edit gateway connectors.", + "description": null, "descriptor": { - "type": "latest", - "sizeX": 11, - "sizeY": 8, + "type": "timeseries", + "sizeX": 7.5, + "sizeY": 3, "resources": [], - "templateHtml": "", - "templateCss": "", - "controllerScript": "self.onInit = function() {\n if (self.ctx.datasources && self.ctx.datasources.length) {\n self.ctx.$scope.entityId = self.ctx.datasources[0].entity.id;\n }\n};\n\nself.typeParameters = function() {\n return {\n dataKeysOptional: true,\n singleEntity: true\n };\n}", + "templateHtml": "\n \n", + "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n margin: 5px;\n padding: 8px;\n}\n\n.tbDatasource-title {\n font-size: 1.200rem;\n font-weight: 500;\n padding-bottom: 10px;\n}\n\n.tbDatasource-table {\n width: 100%;\n box-shadow: 0 0 10px #ccc;\n border-collapse: collapse;\n white-space: nowrap;\n font-size: 1.000rem;\n color: #757575;\n}\n\n.tbDatasource-table td {\n position: relative;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 0px 18px;\n box-sizing: border-box;\n}", + "controllerScript": "self.onInit = function() {\n};\n\nself.typeParameters = function() {\n return {\n dataKeysOptional: true,\n singleEntity: true\n };\n}", "settingsSchema": "{}", "dataKeySettingsSchema": "{}\n", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Gateway connector\",\"showTitleIcon\":false,\"titleTooltip\":\"\",\"dropShadow\":true,\"enableFullscreen\":false,\"enableDataExport\":false,\"widgetStyle\":{},\"widgetCss\":\"\",\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":500},\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false}" + "settingsDirective": "tb-gateway-logs-settings", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.15479322438769105,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":0,\"realtime\":{\"realtimeType\":0,\"timewindowMs\":86400000,\"quickInterval\":\"CURRENT_DAY\",\"interval\":300000},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":false,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{},\"title\":\"Gateway Logs\",\"showTitleIcon\":false,\"dropShadow\":false,\"enableFullscreen\":true,\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showLegend\":false,\"useDashboardTimewindow\":false,\"displayTimewindow\":true}" + } + }, + { + "alias": "gateway_statistics", + "name": "Gateway statistics", + "image": null, + "description": null, + "descriptor": { + "type": "timeseries", + "sizeX": 8, + "sizeY": 5, + "resources": [], + "templateHtml": "", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() { \n};\n\nself.onDataUpdated = function() {\n};\n\nself.onLatestDataUpdated = function() {\n};\n\nself.onResize = function() {\n};\n\nself.onEditModeChanged = function() {\n};\n\nself.onDestroy = function() {\n};\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: false\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-flot-line-widget-settings", + "dataKeySettingsDirective": "tb-flot-line-key-settings", + "latestDataKeySettingsDirective": "tb-flot-latest-key-settings", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"First\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Second\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false},\"_hash\":0.12775350966079668,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"shadowSize\":4,\"fontColor\":\"#545454\",\"fontSize\":10,\"xaxis\":{\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"showLabels\":true,\"color\":\"#545454\"},\"grid\":{\"color\":\"#545454\",\"tickColor\":\"#DDDDDD\",\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1},\"legend\":{\"show\":true,\"position\":\"nw\",\"backgroundColor\":\"#f0f0f0\",\"backgroundOpacity\":0.85,\"labelBoxBorderColor\":\"rgba(1, 1, 1, 0.45)\"},\"decimals\":1,\"stack\":false,\"tooltipIndividual\":false},\"title\":\"Gateway statistics\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null}" + } + }, + { + "alias": "gateway_general_statistics", + "name": "Gateway General Statistics", + "image": "data:image/png;base64,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", + "description": "Displays changes to timeseries data over time. For example, temperature or humidity readings.", + "descriptor": { + "type": "timeseries", + "sizeX": 8, + "sizeY": 5, + "resources": [], + "templateHtml": "", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n if (self.ctx.datasources[0]) {\n let connecotrsTs = [];\n const colors = ['blue', 'green', 'red', 'amber',\n 'blue-grey', 'purple', 'light-green',\n 'indigo', 'pink', 'yellow',\n 'light-blue', 'orange', 'deep-purple',\n 'lime', 'teal', 'brown', 'cyan',\n 'deep-orange', 'grey'\n ];\n self.ctx.attributeService\n .getEntityTimeseriesLatest(self.ctx\n .datasources[0].entity.id).subscribe(\n data => {\n connectorsTs = Object.keys(data)\n .filter(el => el.includes(\n 'ConnectorEventsProduced'\n ) || el.includes(\n 'ConnectorEventsSent'))\n if (connectorsTs.length) {\n self.ctx.defaultSubscription\n .unsubscribe();\n let defaultKeysAmount = self.ctx\n .data.length;\n connectorsTs.forEach(\n (connector, index) => {\n self.ctx\n .defaultSubscription\n .options\n .datasources[0]\n .dataKeys.push({\n name: connector,\n type: 'timeseries',\n settings: {},\n color: colors[\n (index +\n defaultKeysAmount\n ) %\n colors\n .length\n ]\n })\n })\n\n }\n self.ctx.defaultSubscription\n .updateDataSubscriptions();\n initChart();\n self.ctx.defaultSubscription.options\n .callbacks.dataLoading =\n () => {};\n self.ctx.defaultSubscription\n .callbacks.onDataUpdated = self\n .onDataUpdated;\n self.ctx.defaultSubscription\n .callbacks.timeWindowUpdated = (\n subscription, timeWindow\n ) => {\n self.ctx.defaultSubscription\n .options\n .timeWindowConfig =\n timeWindow;\n self.ctx.defaultSubscription\n .updateTimewindowConfig(\n timeWindow);\n self.ctx.defaultSubscription\n .update();\n self.onDataUpdated();\n }\n }, err => {\n self.ctx.flot = new TbFlot(self\n .ctx);\n })\n } else {\n self.ctx.flot = new TbFlot(self.ctx);\n }\n\n function initChart() {\n if (self.ctx.defaultSubscription.data.length &&\n !self.flot) {\n self.ctx.flot = new TbFlot(self.ctx);\n self.ctx.defaultSubscription\n .onTimewindowChangeFunction =\n timeWindow => {\n self.ctx.defaultSubscription\n .options\n .timeWindowConfig =\n timeWindow;\n self.ctx.defaultSubscription\n .updateTimewindowConfig(\n timeWindow);\n self.ctx.defaultSubscription\n .update();\n self.onDataUpdated();\n self.ctx.detectChanges();\n return timeWindow;\n }\n } else setTimeout(initChart, 500);\n }\n}\n\nself.onDataUpdated = function() {\n if (self.ctx.flot && self.ctx.defaultSubscription\n .data.length) {\n self.ctx.flot.update();\n }\n}\n\nself.onLatestDataUpdated = function() {\n if (self.ctx.flot) self.ctx.flot.latestDataUpdate();\n}\n\nself.onResize = function() {\n if (self.ctx.flot) self.ctx.flot.resize();\n}\n\nself.onEditModeChanged = function() {\n if (self.ctx.flot) self.ctx.flot.checkMouseEvents();\n}\n\nself.onDestroy = function() {\n if (self.ctx.flot) self.ctx.flot.destroy();\n}\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: true\n };\n}", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-flot-line-widget-settings", + "dataKeySettingsDirective": "tb-flot-line-key-settings", + "latestDataKeySettingsDirective": "tb-flot-latest-key-settings", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"First\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Second\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false},\"_hash\":0.12775350966079668,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"shadowSize\":4,\"fontColor\":\"#545454\",\"fontSize\":10,\"xaxis\":{\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"showLabels\":true,\"color\":\"#545454\"},\"grid\":{\"color\":\"#545454\",\"tickColor\":\"#DDDDDD\",\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1},\"legend\":{\"show\":true,\"position\":\"nw\",\"backgroundColor\":\"#f0f0f0\",\"backgroundOpacity\":0.85,\"labelBoxBorderColor\":\"rgba(1, 1, 1, 0.45)\"},\"decimals\":1,\"stack\":false,\"tooltipIndividual\":false},\"title\":\"Gateway General Statistics\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null}" + } + }, + { + "alias": "service_rpc", + "name": "Service RPC", + "image": null, + "description": null, + "descriptor": { + "type": "rpc", + "sizeX": 8.5, + "sizeY": 5.5, + "resources": [], + "templateHtml": "", + "templateCss": ".error {\n font-size: 14px !important;\n color: maroon;/*rgb(250,250,250);*/\n background-color: transparent;\n padding: 6px;\n}\n\n.error span {\n margin: auto;\n}\n\n.gpio-panel {\n padding-top: 10px;\n white-space: nowrap;\n}\n\n.gpio-panel section[fxflex] {\n min-width: 0px;\n}\n\n\n.switch-panel {\n margin: 0;\n height: 32px;\n width: 66px;\n min-width: 66px;\n}\n\n.switch-panel mat-slide-toggle {\n margin: 0;\n width: 36px;\n min-width: 36px;\n}\n\n.switch-panel.col-0 mat-slide-toggle {\n margin-left: 8px;\n margin-right: 4px;\n}\n\n.switch-panel.col-1 mat-slide-toggle {\n margin-left: 4px;\n margin-right: 8px;\n}\n\n.gpio-row {\n height: 32px;\n}\n\n.pin {\n margin-top: auto;\n margin-bottom: auto;\n color: white;\n font-size: 12px;\n width: 16px;\n min-width: 16px;\n}\n\n.switch-panel.col-0 .pin {\n margin-left: auto;\n padding-left: 2px;\n text-align: right;\n}\n\n.switch-panel.col-1 .pin {\n margin-right: auto;\n \n text-align: left;\n}\n\n.gpio-left-label {\n margin-right: 8px;\n}\n\n.gpio-right-label {\n margin-left: 8px;\n}", + "controllerScript": "\nself.onInit = function() {\n};", + "settingsSchema": "", + "dataKeySettingsSchema": "{}\n", + "settingsDirective": "tb-gateway-service-rpc-settings", + "defaultConfig": "{\"targetDeviceAliases\":[],\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"0px\",\"settings\":{\"isConnector\":false},\"title\":\"Service RPC\"}" } } ] diff --git a/ui-ngx/src/app/modules/common/modules-map.ts b/ui-ngx/src/app/modules/common/modules-map.ts index f71adb36fa..466a9f7cc6 100644 --- a/ui-ngx/src/app/modules/common/modules-map.ts +++ b/ui-ngx/src/app/modules/common/modules-map.ts @@ -300,6 +300,9 @@ import * as DeviceGatewayCommandComponent from '@shared/components/device/device import * as GatewayRemoteConfigurationDialogComponent from '@shared/components/dialog/gateway-remote-configuration-dialog'; import * as GatewayConfigurationComponent from '@shared/components/device/gateway-configuration.component'; import * as GatewayConnectorComponent from '@shared/components/device/gateway-connectors.component'; +import * as GatewayLogsComponent from '@shared/components/device/gateway-logs.component'; +import * as GatewayStatisticsComponent from '@shared/components/device/gateway-statistics.component'; +import * as GatewayServiceRPCComponent from '@shared/components/device/gateway-service-rpc.component'; import { IModulesMap } from '@modules/common/modules-map.models'; @@ -406,6 +409,9 @@ class ModulesMap implements IModulesMap { '@shared/components/device/device-gateway-command.component': DeviceGatewayCommandComponent, '@shared/components/device/gateway-configuration.component': GatewayConfigurationComponent, '@shared/components/device/gateway-connectors.component': GatewayConnectorComponent, + '@shared/components/device/gateway-logs.component': GatewayLogsComponent, + '@shared/components/device/gateway-statistics.component': GatewayStatisticsComponent, + '@shared/components/device/gateway-service-rpc.component': GatewayServiceRPCComponent, '@shared/components/device/gateway-remote-configuration-dialog': GatewayRemoteConfigurationDialogComponent, '@shared/components/tb-checkbox.component': TbCheckboxComponent, '@shared/components/toast.directive': TbToast, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.html new file mode 100644 index 0000000000..4f19fccc60 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.html @@ -0,0 +1,30 @@ + +
+ +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.scss new file mode 100644 index 0000000000..a5c9d20b2f --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.scss @@ -0,0 +1,33 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host { + width: 100%; + height: 100%; + + .action-buttons-container { + display: flex; + flex-wrap: wrap; + flex-direction: row; + height: 100%; + width: 100%; + + button { + flex-grow: 1; + margin: 10px; + min-width: 150px; + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.ts new file mode 100644 index 0000000000..7c0de7c91d --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/action-buttons.component.ts @@ -0,0 +1,61 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, Input, OnInit } from '@angular/core'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { WidgetActionDescriptor } from '@shared/models/widget.models'; +import { PageComponent } from '@shared/components/page.component'; +import { ThemePalette } from '@angular/material/core'; + + +interface ActionButtonsWidgetSettings { + buttonsType: string, + buttonsClass: ThemePalette, + alignment: string +} + +@Component({ + selector: 'tb-action-buttons-widget', + templateUrl: './action-buttons.component.html', + styleUrls: ['./action-buttons.component.scss'] +}) +export class ActionButtonsComponent implements OnInit { + + @Input() + ctx: WidgetContext; + + settings: ActionButtonsWidgetSettings; + + constructor() { + } + + ngOnInit(): void { + this.settings = this.ctx.settings; + } + + actionButtonClick($event: MouseEvent, actionDescriptor: WidgetActionDescriptor) { + let entityId, entityName, entityLabel; + if (this.ctx.datasources) { + entityId = this.ctx.datasources[0].entity.id; + entityName = this.ctx.datasources[0].entityName; + entityLabel = this.ctx.datasources[0].entityLabel; + } + this.ctx.actionsApi.handleWidgetAction($event, actionDescriptor, entityId, entityName, null, entityLabel); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.html new file mode 100644 index 0000000000..0cb70d331c --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.html @@ -0,0 +1,43 @@ + +
+ + widgets.action-buttons.button-type + + + {{type}} + + + + + widgets.action-buttons.button-class + + + {{class}} + + + + + widgets.action-buttons.alignment + + + {{type}} + + + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.ts new file mode 100644 index 0000000000..bc14843b0b --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/action-buttons-widget-settings.component.ts @@ -0,0 +1,62 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component } from '@angular/core'; +import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; + +@Component({ + selector: 'tb-action-buttons-widget-settings', + templateUrl: './action-buttons-widget-settings.component.html', + styleUrls: ['./../widget-settings.scss'] +}) +export class ActionButtonsWidgetSettingsComponent extends WidgetSettingsComponent { + + ActionButtonsSettingsForm: UntypedFormGroup; + + buttonTypes = ['basic', 'raised', 'stroked', 'flat']; + + buttonClasses = ['basic', 'primary', 'accent', 'warn']; + + alignment = ['center', 'start', 'end', 'normal', 'baseline', 'space-between', 'space-around', 'stretch']; + + constructor(protected store: Store, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.ActionButtonsSettingsForm; + } + + protected defaultSettings(): WidgetSettings { + return { + buttonsType: 'basic', + buttonsClass: 'basic', + alignment: 'center' + }; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.ActionButtonsSettingsForm = this.fb.group({ + buttonsType: [settings.buttonsType, []], + buttonsClass: [settings.buttonsClass, []], + alignment: [settings.alignment, []] + }); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.html new file mode 100644 index 0000000000..4f92aacffd --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.html @@ -0,0 +1,26 @@ + +
+ + Is Connector + + + State parameter connector name + + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts new file mode 100644 index 0000000000..74e214a3d9 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts @@ -0,0 +1,54 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component } from '@angular/core'; +import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; + +@Component({ + selector: 'tb-gateway-logs-settings', + templateUrl: './gateway-logs-settings.component.html', + styleUrls: ['../widget-settings.scss'] +}) +export class GatewayLogsSettingsComponent extends WidgetSettingsComponent { + + GatewayLogSettingForm: UntypedFormGroup; + + constructor(protected store: Store, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.GatewayLogSettingForm; + } + + protected defaultSettings(): WidgetSettings { + return { + isConnectorLog: false, + connectorLogState: 'default' + }; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.GatewayLogSettingForm = this.fb.group({ + isConnectorLog: [false, []], + connectorLogState: ['default', []] + }); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.html new file mode 100644 index 0000000000..96e9a7dba9 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.html @@ -0,0 +1,22 @@ + +
+ + Is Connector + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.ts new file mode 100644 index 0000000000..edafed90b8 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component.ts @@ -0,0 +1,52 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component } from '@angular/core'; +import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; + +@Component({ + selector: 'tb-gateway-service-rpc-settings', + templateUrl: './gateway-service-rpc-settings.component.html', + styleUrls: ['../widget-settings.scss'] +}) +export class GatewayServiceRPCSettingsComponent extends WidgetSettingsComponent { + + GatewayLogSettingForm: UntypedFormGroup; + + constructor(protected store: Store, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.GatewayLogSettingForm; + } + + protected defaultSettings(): WidgetSettings { + return { + isConnector: false, + }; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.GatewayLogSettingForm = this.fb.group({ + isConnector: [false, []] + }); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts index ef7668f306..6ba665cf23 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts @@ -259,6 +259,16 @@ import { import { TripAnimationPointSettingsComponent } from '@home/components/widget/lib/settings/map/trip-animation-point-settings.component'; +import { + ActionButtonsWidgetSettingsComponent +} from '@home/components/widget/lib/settings/cards/action-buttons-widget-settings.component'; +import { + GatewayLogsSettingsComponent +} from '@home/components/widget/lib/settings/gateway/gateway-logs-settings.component'; +import { + GatewayServiceRPCSettingsComponent +} from '@home/components/widget/lib/settings/gateway/gateway-service-rpc-settings.component'; + @NgModule({ declarations: [ @@ -357,7 +367,10 @@ import { TripAnimationPointSettingsComponent, MapWidgetSettingsComponent, RouteMapWidgetSettingsComponent, - TripAnimationWidgetSettingsComponent + TripAnimationWidgetSettingsComponent, + ActionButtonsWidgetSettingsComponent, + GatewayLogsSettingsComponent, + GatewayServiceRPCSettingsComponent ], imports: [ CommonModule, @@ -460,7 +473,10 @@ import { TripAnimationPointSettingsComponent, MapWidgetSettingsComponent, RouteMapWidgetSettingsComponent, - TripAnimationWidgetSettingsComponent + TripAnimationWidgetSettingsComponent, + ActionButtonsWidgetSettingsComponent, + GatewayLogsSettingsComponent, + GatewayServiceRPCSettingsComponent ] }) export class WidgetSettingsModule { @@ -527,5 +543,8 @@ export const widgetSettingsComponentsMap: {[key: string]: Type

gateway.gateway-configuration

- diff --git a/ui-ngx/src/app/shared/components/device/gateway-configuration.component.scss b/ui-ngx/src/app/shared/components/device/gateway-configuration.component.scss index 0b04abd6bf..7df5c58fe6 100644 --- a/ui-ngx/src/app/shared/components/device/gateway-configuration.component.scss +++ b/ui-ngx/src/app/shared/components/device/gateway-configuration.component.scss @@ -18,6 +18,10 @@ height: 100%; display: block; + .mat-icon { + color: rgba(0, 0, 0, .12); + } + .mat-toolbar { background: transparent; color: rgba(0, 0, 0, .87) !important; @@ -126,6 +130,12 @@ } } + .statistics-block { + margin-bottom: 15px; + padding-left: 15px; + padding-top: 15px; + } + .first-capital { text-transform: capitalize; } @@ -147,5 +157,36 @@ z-index: -10; border-radius: 5px; } + + ::ng-deep.pe { + pointer-events: all; + } + + ::ng-deep.mat-mdc-form-field-icon-suffix { + z-index: 100; + } + + mat-panel-title { + display: block; + padding-top: 20px; + } + + mat-panel-title span { + display: block; + padding-left: 0; + padding-top: 5px; + } + + .tb-hint { + font-size: 13px; + color: rgba(0, 0, 0, .54); + width: fit-content; + cursor: pointer; + text-transform: none!important; + } + + .line-break { + width: 100%; + } } diff --git a/ui-ngx/src/app/shared/components/device/gateway-configuration.component.ts b/ui-ngx/src/app/shared/components/device/gateway-configuration.component.ts index a99a23eff1..28dc198fa5 100644 --- a/ui-ngx/src/app/shared/components/device/gateway-configuration.component.ts +++ b/ui-ngx/src/app/shared/components/device/gateway-configuration.component.ts @@ -14,14 +14,13 @@ /// limitations under the License. /// -import { Component, Input, OnInit } from '@angular/core'; +import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { Router } from '@angular/router'; import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import { EntityId } from '@shared/models/id/entity-id'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { base64toObj, base64toString, objToBase64, stringToBase64 } from '@core/utils'; import { AttributeService } from '@core/http/attribute.service'; import { AttributeScope } from '@shared/models/telemetry/telemetry.models'; import { @@ -29,6 +28,9 @@ import { GatewayRemoteConfigurationDialogData } from '@shared/components/dialog/gateway-remote-configuration-dialog'; import { DeviceService } from '@core/http/device.service'; +import { of } from "rxjs"; +import { mergeMap } from "rxjs/operators"; +import { DeviceCredentialsType } from "@shared/models/device.models"; export enum StorageTypes { MEMORY = 'memory', @@ -46,10 +48,10 @@ export enum GatewayLogLevel { } export enum LogSavingPeriod { - days = 'd', - hours = 'h', - minutes = 'm', - seconds = 's' + days = 'D', + hours = 'H', + minutes = 'M', + seconds = 'S' } export enum LocalLogsConfigs { @@ -61,6 +63,15 @@ export enum LocalLogsConfigs { extension = 'extension' } +export const localLogsConfigLabels = new Map([ + [LocalLogsConfigs.service, 'Service'], + [LocalLogsConfigs.connector, 'Connector'], + [LocalLogsConfigs.converter, 'Converter'], + [LocalLogsConfigs.tb_connection, 'TB Connection'], + [LocalLogsConfigs.storage, 'Storage'], + [LocalLogsConfigs.extension, 'Extension'] +]) + export const logSavingPeriodTranslations = new Map( [ [LogSavingPeriod.days, 'gateway.logs.days'], @@ -107,12 +118,12 @@ export class GatewayConfigurationComponent implements OnInit { logSavingPeriods = logSavingPeriodTranslations; + localLogsConfigLabels = localLogsConfigLabels; + securityTypes = securityTypesTranslationsMap; gatewayLogLevel = Object.values(GatewayLogLevel); - localLogsConfigs = Object.values(LocalLogsConfigs); - @Input() device: EntityId; @@ -127,21 +138,21 @@ export class GatewayConfigurationComponent implements OnInit { protected fb: FormBuilder, protected attributeService: AttributeService, protected deviceService: DeviceService, + private cd: ChangeDetectorRef, public dialog: MatDialog) { } ngOnInit() { this.gatewayConfigGroup = this.fb.group({ thingsboard: this.fb.group({ - host: ['thingsboard.cloud', [Validators.required]], + host: [window.location.hostname, [Validators.required]], port: [1883, [Validators.required, Validators.min(1), Validators.max(65535), Validators.pattern(/^-?[0-9]+$/)]], remoteShell: [false, []], remoteConfiguration: [true, []], + checkConnectorsConfigurationInSeconds: [60, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], statistics: this.fb.group({ enable: [true, []], statsSendPeriodInSeconds: [3600, [Validators.required, Validators.min(0), Validators.pattern(/^-?[0-9]+$/)]], - checkConnectorsConfigurationInSeconds: [60, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], - handleDeviceRenaming: [false, []], commands: this.fb.array([], []) }), maxPayloadSizeBytes: [1024, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], @@ -257,6 +268,10 @@ export class GatewayConfigurationComponent implements OnInit { securityGroup.updateValueAndValidity(); }); + securityGroup.get('caCert').valueChanges.subscribe(_ => this.cd.detectChanges()) + securityGroup.get('privateKey').valueChanges.subscribe(_ => this.cd.detectChanges()) + securityGroup.get('cert').valueChanges.subscribe(_ => this.cd.detectChanges()) + const storageGroup = this.gatewayConfigGroup.get('storage') as FormGroup; storageGroup.get('type').valueChanges.subscribe(type => { this.removeAllStorageValidators(); @@ -286,25 +301,44 @@ export class GatewayConfigurationComponent implements OnInit { } fetchConfigAttribute(entityId: EntityId) { - this.attributeService.getEntityAttributes(entityId, AttributeScope.SHARED_SCOPE, - ['configuration', 'RemoteLoggingLevel']).subscribe(attributes => { + this.attributeService.getEntityAttributes(entityId, AttributeScope.CLIENT_SCOPE, + ['general_configuration', 'grpc_configuration', 'logs_configuration', 'storage_configuration', 'RemoteLoggingLevel']).pipe( + mergeMap(attributes => attributes.length ? of(attributes) : this.attributeService.getEntityAttributes( + entityId, AttributeScope.SHARED_SCOPE, ['general_configuration', 'grpc_configuration', 'logs_configuration', 'storage_configuration', 'RemoteLoggingLevel'])) + ).subscribe(attributes => { if (attributes.length) { - const configuration = attributes.find(attribute => attribute.key === 'configuration').value; - const remoteLoggingLevel = attributes.find(attribute => attribute.key === 'RemoteLoggingLevel').value; - if (configuration) { - const configObj = base64toObj(configuration).thingsboard; - configObj.logs = this.logsBase64ToObj(configObj.logs); + const general_configuration = attributes.find(attribute => attribute.key === 'general_configuration')?.value; + const grpc_configuration = attributes.find(attribute => attribute.key === 'grpc_configuration')?.value; + const logs_configuration = attributes.find(attribute => attribute.key === 'logs_configuration')?.value; + const storage_configuration = attributes.find(attribute => attribute.key === 'storage_configuration')?.value; + const remoteLoggingLevel = attributes.find(attribute => attribute.key === 'RemoteLoggingLevel')?.value; + if (general_configuration) { + const configObj = {thingsboard: general_configuration}; if (configObj.thingsboard.statistics && configObj.thingsboard.statistics.commands) { - for (const command of Object.values(configObj.thingsboard.statistics.commands)) { + for (const command of configObj.thingsboard.statistics.commands) { this.addCommand(command); } delete configObj.thingsboard.statistics.commands; } this.gatewayConfigGroup.patchValue(configObj, {emitEvent: false}); - this.gatewayConfigGroup.markAsDirty(); + this.gatewayConfigGroup.markAsPristine(); if (!configObj.thingsboard.remoteConfiguration) { this.gatewayConfigGroup.disable({emitEvent: false}); } + this.checkAndFetchCredentials(configObj.thingsboard.security); + } + if (grpc_configuration) { + const configObj = {grpc: grpc_configuration}; + this.gatewayConfigGroup.patchValue(configObj, {emitEvent: false}); + } + if (logs_configuration) { + const configObj = {logs: this.logsToObj(logs_configuration)}; + this.gatewayConfigGroup.patchValue(configObj, {emitEvent: false}); + this.cd.detectChanges(); + } + if (storage_configuration) { + const configObj = {storage: storage_configuration}; + this.gatewayConfigGroup.patchValue(configObj, {emitEvent: false}); } if (remoteLoggingLevel) { const remoteLogsFormGroup = this.gatewayConfigGroup.get('logs.remote'); @@ -312,41 +346,48 @@ export class GatewayConfigurationComponent implements OnInit { enabled: remoteLoggingLevel !== GatewayLogLevel.none, logLevel: remoteLoggingLevel }, {emitEvent: false}); - remoteLogsFormGroup.markAsDirty(); + remoteLogsFormGroup.markAsPristine(); } + this.cd.detectChanges(); + } else { + this.checkAndFetchCredentials({}); } }); } - logsBase64ToObj(logs64: string) { - const logsString = base64toString(logs64).split('"').join(''); - const logsObject = {}; - logsString.split('logger_').forEach((split, index) => { - if (index > 0) { - const key = split.split(']')[0]; - if (LocalLogsConfigs[key]) { - const logLevel = split.split('=')[1].replace('}}handlers', ''); - logsObject[key] = { - logLevel - }; - } - } - }); - logsString.split('handler_').forEach((split, index) => { - if (index > 0) { - const key = split.split('Handler]')[0]; - if (LocalLogsConfigs[key]) { - const args = split.split('args=(')[1].split(','); - logsObject[key].filePath = args[0].replace(`/${key}.log`, ''); - logsObject[key].savingPeriod = args[1].replace(' ', ''); - logsObject[key].savingTime = +args[2]; - logsObject[key].backupCount = +args[3]; + checkAndFetchCredentials(security): void { + if ((security.type == SecurityTypes.ACCESS_TOKEN && !security.accessToken) || + (security.type === SecurityTypes.USERNAME_PASSWORD && !(security.username && security.password)) || !security.type) { + this.deviceService.getDeviceCredentials(this.device.id).subscribe(credentials => { + if (credentials.credentialsType === DeviceCredentialsType.ACCESS_TOKEN) { + this.gatewayConfigGroup.get('thingsboard.security.accessToken').setValue(credentials.credentialsValue); + } else if (credentials.credentialsType === DeviceCredentialsType.MQTT_BASIC) { + const parsedValue = JSON.parse(credentials.credentialsValue); + this.gatewayConfigGroup.get('thingsboard.security.clientId').setValue(parsedValue.clientId); + this.gatewayConfigGroup.get('thingsboard.security.username').setValue(parsedValue.userName); + this.gatewayConfigGroup.get('thingsboard.security.password').setValue(parsedValue.password); } + }); + } + } + + logsToObj(logsConfig) { + const logsObject = { + local: {} + } + const logFormat = logsConfig.formatters.LogFormatter.format; + const dateFormat = logsConfig.formatters.LogFormatter.datefmt; + for (const localLogsConfigsKey of Object.keys(LocalLogsConfigs)) { + const handlerKey = localLogsConfigsKey + "Handler"; + logsObject[localLogsConfigsKey] = { + logLevel: logsConfig.loggers[localLogsConfigsKey].level, + filePath: logsConfig.handlers[handlerKey].filename.split('/'+localLogsConfigsKey)[0], + backupCount: logsConfig.handlers[handlerKey].backupCount, + savingTime: logsConfig.handlers[handlerKey].interval, + savingPeriod: logsConfig.handlers[handlerKey].when, } - }); - const formatArgs = logsString.split('format=')[1].split('}}datefmt='); - const logFormat = formatArgs[0]; - const dateFormat = formatArgs[1]; + } + return {local: logsObject, logFormat, dateFormat}; } @@ -366,7 +407,7 @@ export class GatewayConfigurationComponent implements OnInit { const localLogsFormGroup = this.gatewayConfigGroup.get('logs.local') as FormGroup; const configGroup = this.fb.group({ logLevel: [config.logLevel || GatewayLogLevel.info, [Validators.required]], - filePath: [config.filePath || './data', [Validators.required]], + filePath: [config.filePath || './logs', [Validators.required]], backupCount: [config.backupCount || 7, [Validators.required, Validators.min(0)]], savingTime: [config.savingTime || 3, [Validators.required, Validators.min(0)]], savingPeriod: [config.savingPeriod || LogSavingPeriod.days, [Validators.required]] @@ -416,65 +457,105 @@ export class GatewayConfigurationComponent implements OnInit { ); } - generateLogsFile(logsObj): string { - const line = '[loggers]}}' + - 'keys=root, service, connector, converter, tb_connection, storage, extension}}' + - '[handlers]}}' + - 'keys=consoleHandler, serviceHandler, connectorHandler, converterHandler, tb_connectionHandler, storageHandler, extensionHandler}}' + - '[formatters]}}' + - 'keys=LogFormatter}}' + - '[logger_root]}}' + - 'level=ERROR}}' + - 'handlers=consoleHandler}}' + - '[logger_database]}}' + - 'level=INFO}}' + - 'handlers=databaseHandler}}' + - 'formatter=LogFormatter}}' + - 'qualname=database}}'; - - let loggerLine = ''; - let handlerLine = ''; - + generateLogsFile(logsObj) { + const logAttrObj = { + version: 1, + disable_existing_loggers: false, + formatters: { + LogFormatter: { + class: "logging.Formatter", + format: logsObj.logFormat, + datefmt: logsObj.dateFormat, + } + }, + handlers: { + consoleHandler: { + class: "logging.StreamHandler", + formatter: "LogFormatter", + level: "DEBUG", + stream: "ext://sys.stdout" + }, + databaseHandler: { + class: "thingsboard_gateway.tb_utility.tb_logger.TimedRotatingFileHandler", + formatter: "LogFormatter", + filename: "./logs/database.log", + backupCount: 1, + encoding: "utf-8" + } + }, + loggers: { + database: { + handlers: ["databaseHandler", "consoleHandler"], + level: "DEBUG", + propagate: false + } + }, + root: { + level: "ERROR", + handlers: [ + "consoleHandler" + ] + } + } for (const key of Object.keys(logsObj.local)) { - loggerLine += `[logger_${key}]}}` + - `level=${logsObj.local[key].logLevel}}}` + - `handlers=${key}Handler}}` + - `formatter=LogFormatter}}` + - `qualname=${key}}}`; - handlerLine += `[handler_${key}Handler]}}` + - `level=${logsObj.local[key].logLevel}}}` + - `class=thingsboard_gateway.tb_utility.tb_logger.TimedRotatingFileHandler}}` + - `formatter=LogFormatter}}` + - `args=("${logsObj.local[key].filePath}/${key}.log", ${logsObj.local[key].savingPeriod},` + - ` ${logsObj.local[key].savingTime}, ${logsObj.local[key].backupCount},)}}`; + logAttrObj.handlers[key+"Handler"] = this.createHandlerObj(logsObj.local[key], key); + logAttrObj.loggers[key] = this.createLoggerObj(logsObj.local[key], key); } + return logAttrObj; + } - const logerEnding = `[formatter_LogFormatter]}}` + - `format="${logsObj.logFormat}"}}` + - `datefmt="${logsObj.dateFormat}"`; + createHandlerObj(logObj, key) { + return { + class: "thingsboard_gateway.tb_utility.tb_logger.TimedRotatingFileHandler", + formatter: "LogFormatter", + filename: `${logObj.filePath}/${key}.log`, + backupCount: logObj.backupCount, + interval: logObj.savingTime, + when: logObj.savingPeriod, + encoding: "utf-8" + } + } - return line + loggerLine + handlerLine + logerEnding; + createLoggerObj(logObj, key) { + return { + handlers: [`${key}Handler`, "consoleHandler"], + level: logObj.logLevel, + propagate: false + } } saveConfig(): void { const value = this.removeEmpty(this.gatewayConfigGroup.value); + value.thingsboard.statistics.commands = Object.values(value.thingsboard.statistics.commands); const attributes = []; attributes.push({ key: 'RemoteLoggingLevel', value: value.logs.remote.enabled ? value.logs.remote.logLevel : GatewayLogLevel.none }); delete value.connectors; - value.logs = stringToBase64(this.generateLogsFile(value.logs)); - const configuration = objToBase64({thingsboard: value}); attributes.push({ - key: 'configuration', - value: configuration + key: 'logs_configuration', + value: this.generateLogsFile(value.logs) + }); + attributes.push({ + key: 'grpc_configuration', + value: value.grpc + }); + attributes.push({ + key: 'storage_configuration', + value: value.storage }); + attributes.push({ + key: 'general_configuration', + value: value.thingsboard + }); + this.attributeService.saveEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, attributes).subscribe(_ => { if (this.dialogRef) { this.dialogRef.close(); } else { this.gatewayConfigGroup.markAsPristine(); + this.cd.detectChanges(); } }); } @@ -502,7 +583,5 @@ export class GatewayConfigurationComponent implements OnInit { } ); }); - - } } diff --git a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.html b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.html index 809a8cb44d..547476c381 100644 --- a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.html +++ b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.html @@ -15,115 +15,149 @@ limitations under the License. --> -
- -

gateway.connectors

- - -
-
-
- - - - - {{generatePanelTitle(connectorControl)}} - - -
- - - {{ (connectorControl.get('active').value ? 'gateway.connectors-active' : 'gateway.connectors-inactive') | translate }} - - - gateway.connector-name - - - {{'gateway.connector-name-required' | translate }} - - - - gateway.connector-configuration - - - {{'gateway.connector-configuration-required' | translate }} - - - - gateway.connector-type - - {{type}} - - - {{'gateway.connector-type-required' | translate }} - - - - gateway.connector-key - - - {{'gateway.connector-key-required' | translate }} - - - -
- + + + + + Enabled + + + + + + + Name + + {{ attribute.key }} + + + + Type + + {{ attribute.value.type }} + + + + + Actions + + +
+ - + +
+
+ + + + + +
- - - - +
+
+ + +
+ + +
+ + + Name + + + + Type + + {{type}} + + + + Key + + + + gateway.remote-logging-level + + {{logLevel}} + + + + + + +
+ +
+
- - -
-
- - -
diff --git a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.scss b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.scss index 0ad7851616..626f40672f 100644 --- a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.scss +++ b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.scss @@ -17,6 +17,31 @@ width: 100%; height: 100%; display: block; + overflow-x: auto; + padding: 0; + + .connector-container { + width: 100%; + + &>mat-card, &>div { + min-width: 50%; + } + + mat-card { + margin: 10px; + padding: 10px; + max-width: 100%; + } + } + + .tb-entity-table { + .tb-entity-table-content { + width: 100%; + height: 100%; + background: #fff; + overflow: hidden; + } + } .mat-toolbar { background: transparent; @@ -24,7 +49,9 @@ } .mat-mdc-form-field { - margin-right: 15px; + flex-grow: 1; + //min-width: 200px; + //flex-shrink: 1; } mat-expansion-panel { @@ -55,5 +82,9 @@ .action-btns { margin: 10px 10px 0; } + + mat-row { + cursor: pointer; + } } diff --git a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.ts b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.ts index 4635b7fe56..5f36dd014c 100644 --- a/ui-ngx/src/app/shared/components/device/gateway-connectors.component.ts +++ b/ui-ngx/src/app/shared/components/device/gateway-connectors.component.ts @@ -14,26 +14,40 @@ /// limitations under the License. /// -import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, NgZone, ViewChild } from '@angular/core'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { Router } from '@angular/router'; -import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { EntityId } from '@shared/models/id/entity-id'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; import { AttributeService } from '@core/http/attribute.service'; import { DeviceService } from '@core/http/device.service'; import { TranslateService } from '@ngx-translate/core'; -import { forkJoin } from 'rxjs'; -import { AttributeScope } from '@shared/models/telemetry/telemetry.models'; +import { forkJoin, merge } from 'rxjs'; +import { AttributeData, AttributeScope } from '@shared/models/telemetry/telemetry.models'; +import { PageComponent } from "@shared/components/page.component"; +import { PageLink } from "@shared/models/page/page-link"; +import { AttributeDatasource } from "@home/models/datasource/attribute-datasource"; +import { Direction, SortOrder } from "@shared/models/page/sort-order"; +import { MatSort } from "@angular/material/sort"; +import { tap } from "rxjs/operators"; +import { TelemetryWebsocketService } from "@core/ws/telemetry-websocket.service"; +import { MatTableDataSource } from "@angular/material/table"; +import { GatewayLogLevel } from "@shared/components/device/gateway-configuration.component"; +import { ActionNotificationShow } from "@core/notification/notification.actions"; +import { DialogService } from '@app/core/services/dialog.service'; +import { updateEntityParams, WidgetContext } from "@home/models/widget-component.models"; +import { deepClone } from "@core/utils"; export interface gatewayConnector { name: string; type: string; - configuration: string; - jsonConfiguration: string; - key: string; + configuration?: string; + configurationJson: string; + log_level: string; + key?: string; } @Component({ @@ -41,39 +55,58 @@ export interface gatewayConnector { templateUrl: './gateway-connectors.component.html', styleUrls: ['./gateway-connectors.component.scss'] }) -export class GatewayConnectorComponent implements OnInit { +export class GatewayConnectorComponent extends PageComponent implements AfterViewInit { - gatewayConnectorsGroup: FormGroup; + pageLink: PageLink; + + attributeDataSource: AttributeDatasource; + + dataSource: MatTableDataSource + + displayedColumns = ['enabled', 'key', 'type', 'actions']; gatewayConnectorDefaultTypes: Array = ['mqtt', - 'modbus', - 'grpc', - 'opcua', - 'opcua_asyncio', - 'ble', - 'request', - 'can', - 'bacnet', - 'odbc', - 'rest', - 'snmp', - 'ftp', - 'socket', - 'xmpp', - 'ocpp' - ]; - - selectedConnector: number; + 'modbus', + 'grpc', + 'opcua', + 'opcua_asyncio', + 'ble', + 'request', + 'can', + 'bacnet', + 'odbc', + 'rest', + 'snmp', + 'ftp', + 'socket', + 'xmpp', + 'ocpp', + 'custom' + ]; @Input() - device: EntityId; + ctx: WidgetContext; @Input() - dialogRef: MatDialogRef; + device: EntityId; + + @ViewChild('searchInput') searchInputField: ElementRef; + @ViewChild(MatSort) sort: MatSort; - logSelector: FormControl; + connectorForm: FormGroup; + viewsInited = false; + + textSearchMode: boolean; + + activeConnectors: Array; + + inactiveConnectors: Array; + + InitialActiveConnectors: Array; + + gatewayLogLevel = Object.values(GatewayLogLevel); constructor(protected router: Router, protected store: Store, @@ -81,111 +114,244 @@ export class GatewayConnectorComponent implements OnInit { protected translate: TranslateService, protected attributeService: AttributeService, protected deviceService: DeviceService, + protected dialogService: DialogService, + private telemetryWsService: TelemetryWebsocketService, + private zone: NgZone, private cd: ChangeDetectorRef, public dialog: MatDialog) { + super(store); + const sortOrder: SortOrder = {property: 'key', direction: Direction.ASC}; + this.pageLink = new PageLink(1000, 0, null, sortOrder); + this.attributeDataSource = new AttributeDatasource(this.attributeService, this.telemetryWsService, this.zone, this.translate); + this.dataSource = new MatTableDataSource([]); + this.connectorForm = this.fb.group({ + name: ['', [Validators.required]], + type: ['', [Validators.required]], + log_level: ['', [Validators.required]], + key: ['auto'], + configurationJson: [{}, [Validators.required]] + }) + this.connectorForm.disable(); } - ngOnInit() { - this.gatewayConnectorsGroup = this.fb.group({ - connectors: this.fb.array([], [Validators.required]) - }); - this.gatewayConnectorsGroup.valueChanges.subscribe(_=>{ - this.cd.detectChanges(); - }); - this.getConnectorsData(); + + initialConnector: gatewayConnector; + + ngAfterViewInit() { + console.log(this.device) + merge(this.sort.sortChange) + .pipe( + tap(() => this.updateData()) + ) + .subscribe(); + + this.viewsInited = true; + if (this.device) { + forkJoin(this.attributeService.getEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, ['active_connectors']), + this.attributeService.getEntityAttributes(this.device, AttributeScope.SERVER_SCOPE, ['inactive_connectors'])).subscribe(attributes => { + if (attributes.length) { + this.activeConnectors = attributes[0].length ? attributes[0][0].value : []; + this.inactiveConnectors = attributes[1].length ? attributes[1][0].value : []; + this.updateData(true); + } else { + this.activeConnectors = []; + this.inactiveConnectors = []; + this.updateData(true); + } + }) + } } - cancel(): void { - if (this.dialogRef) { - this.dialogRef.close(); + saveConnector(): void { + const value = this.connectorForm.value; + if (value.type !== 'grpc') { + delete value.key; + } + value.configuration = `${value.type}.json` + const attributesToSave = [{ + key: value.name, + value: value + }]; + const attributesToDelete = []; + const scope = (this.activeConnectors.includes(value.name) || !this.initialConnector) ? AttributeScope.SHARED_SCOPE : AttributeScope.SERVER_SCOPE; + let updateActiveConnectors = false; + if (this.initialConnector && this.initialConnector.name !== value.name) { + attributesToDelete.push({key: this.initialConnector.name}); + updateActiveConnectors = true; + const activeIndex = this.activeConnectors.indexOf(this.initialConnector.name); + const inactiveIndex = this.inactiveConnectors.indexOf(this.initialConnector.name); + if (activeIndex !== -1) this.activeConnectors.splice(activeIndex, 1); + if (inactiveIndex !== -1) this.inactiveConnectors.splice(activeIndex, 1); + } + if (!this.activeConnectors.includes(value.name) && scope == AttributeScope.SHARED_SCOPE) { + this.activeConnectors.push(value.name); + updateActiveConnectors = true; + } + if (!this.inactiveConnectors.includes(value.name) && scope == AttributeScope.SERVER_SCOPE) { + this.inactiveConnectors.push(value.name); + updateActiveConnectors = true; + } + const tasks = [this.attributeService.saveEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, attributesToSave)]; + if (updateActiveConnectors) { + tasks.push(this.attributeService.saveEntityAttributes(this.device, scope, [{ + key: scope == AttributeScope.SHARED_SCOPE ? 'active_connectors' : 'inactive_connectors', + value: scope == AttributeScope.SHARED_SCOPE ? this.activeConnectors : this.inactiveConnectors + }])); + } + + if (attributesToDelete.length) { + tasks.push(this.attributeService.deleteEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, attributesToDelete)); } + forkJoin(tasks).subscribe(resp => { + this.showToast("Update Successful") + this.updateData(true); + }) } - getConnectorsData(): void { - forkJoin([ - this.attributeService.getEntityAttributes(this.device, AttributeScope.SHARED_SCOPE,['implementedConnectors']), - this.attributeService.getEntityAttributes(this.device, AttributeScope.SERVER_SCOPE,['implementedConnectors']), - this.attributeService.getEntityAttributes(this.device, AttributeScope.SHARED_SCOPE,['connectorTypes']) - ]).subscribe(attributes=>{ - if (attributes[0].length) { - attributes[0][0].value.forEach(connector=>this.addConnector(true, connector)); - } - if (attributes[1].length) { - attributes[1][0].value.forEach(connector=>this.addConnector(false, connector)); + resetSortAndFilter(update: boolean = true) { + this.textSearchMode = false; + this.pageLink.textSearch = null; + if (this.viewsInited) { + const sortable = this.sort.sortables.get('key'); + this.sort.active = sortable.id; + this.sort.direction = 'asc'; + if (update) { + this.updateData(true); } - if(attributes[2].length) { - attributes[1][0].value.forEach(type=> { - if (this.gatewayConnectorDefaultTypes.indexOf(type) === -1) { - this.gatewayConnectorDefaultTypes.push(type); - } - }); - } - this.cd.detectChanges(); - }); + } } - saveConnectors(): void { - const connectors = this.gatewayConnectorsGroup.value.connectors; - const activeConnectors = connectors.filter(connector=>connector.active); - const inactiveConnectors = connectors.filter(connector=>!connector.active); - forkJoin([ - this.attributeService.saveEntityAttributes(this.device, AttributeScope.SERVER_SCOPE, - [{key: 'implementedConnectors', value: inactiveConnectors}]), - this.attributeService.saveEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, - [{key: 'implementedConnectors', value: activeConnectors}]) - ]).subscribe(_=> { - if (this.dialogRef) { - this.dialogRef.close(); - } else { - this.gatewayConnectorsGroup.markAsPristine(); - this.cd.detectChanges(); - } + updateData(reload: boolean = false) { + this.pageLink.sortOrder.property = this.sort.active; + this.pageLink.sortOrder.direction = Direction[this.sort.direction.toUpperCase()]; + this.attributeDataSource.loadAttributes(this.device, AttributeScope.SHARED_SCOPE, this.pageLink, reload).subscribe(data => { + this.dataSource.data = data.data.filter(value => this.activeConnectors.includes(value.key) || this.inactiveConnectors.includes(value.key)); }); } - connectorsFormArray(): FormArray { - return this.gatewayConnectorsGroup.get('connectors') as FormArray; + addAttribute(): void { + if (this.connectorForm.disabled) { + this.connectorForm.enable(); + } + this.clearOutConnectorForm(); } - addConnector(active?: boolean,connector?: gatewayConnector) { - const newConnector = this.fb.group({ - active: [!!active], - name: [connector?.name || '', [Validators.required]], - type: [connector?.type || '', [Validators.required]], - configuration: [connector?.configuration || '', [Validators.required]], - jsonConfiguration: [connector?.jsonConfiguration || {}, [Validators.required]], - key: [connector?.key || 'auto', [Validators.required]], - }); - const connectorsFormArray = this.connectorsFormArray(); - connectorsFormArray.push(newConnector); - this.selectConnector(connectorsFormArray.length-1); + clearOutConnectorForm(): void { + this.connectorForm.setValue({ + name: '', + type: this.gatewayConnectorDefaultTypes[0], + log_level: GatewayLogLevel.info, + key: 'auto', + configurationJson: {} + }) + this.initialConnector = null; + this.connectorForm.markAsPristine(); } - removeConnector(index: number): void { - this.connectorsFormArray().removeAt(index); - if (index !== 0) { - this.selectedConnector = index - 1; - } else { - this.selectedConnector = undefined; + selectConnector(attribute): void { + if (this.connectorForm.disabled) { + this.connectorForm.enable(); + } + const connector = attribute.value; + if (!connector.key) { + connector.key = 'auto'; } + if (connector.configuration) { + delete connector.configuration; + } + this.initialConnector = connector; + this.connectorForm.setValue(connector); } - selectConnector(index: number): void { - this.selectedConnector = index; + showToast(message: string) { + this.store.dispatch(new ActionNotificationShow( + { + message, + type: 'success', + duration: 1000, + verticalPosition: 'top', + horizontalPosition: 'right', + target: 'dashboardRoot', + // panelClass: this.widgetNamespace, + forceDismiss: true + })); } - getJsonControl(selectedConnector: number): FormControl { - return this.connectorsFormArray().at(selectedConnector).get('jsonConfiguration') as FormControl; + deleteConnector(attribute: AttributeData, $event: Event): void { + if ($event) { + $event.stopPropagation(); + } + const title = `Delete connector ${attribute.key}?`; + const content = `All connector data will be deleted.`; + this.dialogService.confirm(title, content, 'Cancel', 'Delete').subscribe(result => { + if (result) { + const tasks = []; + const scope = (this.activeConnectors.includes(attribute.key) || !this.initialConnector) ? AttributeScope.SHARED_SCOPE : AttributeScope.SERVER_SCOPE; + tasks.push(this.attributeService.deleteEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, [attribute])); + const activeIndex = this.activeConnectors.indexOf(attribute.key); + const inactiveIndex = this.inactiveConnectors.indexOf(attribute.key); + if (activeIndex !== -1) this.activeConnectors.splice(activeIndex, 1); + if (inactiveIndex !== -1) this.inactiveConnectors.splice(activeIndex, 1); + tasks.push(this.attributeService.saveEntityAttributes(this.device, scope, [{ + key: scope == AttributeScope.SHARED_SCOPE ? 'active_connectors' : 'inactive_connectors', + value: scope == AttributeScope.SHARED_SCOPE ? this.activeConnectors : this.inactiveConnectors + }])); + forkJoin(tasks).subscribe(resp=>{ + if (this.initialConnector ? this.initialConnector.name === attribute.key: true) { + this.clearOutConnectorForm(); + this.cd.detectChanges(); + this.connectorForm.disable(); + } + this.updateData() + }) + } + }) + } + + connectorLogs(attribute: AttributeData, $event: Event): void { + if ($event) { + $event.stopPropagation(); + } + console.log(attribute); + const params = deepClone(this.ctx.stateController.getStateParams()); + params.connector_logs = attribute; + params.targetEntityParamName = "connector_logs"; + this.ctx.stateController.openState("connector_logs", params); } - generatePanelTitle(connectorControl): string{ - const connectorValues = connectorControl.value; - const activeTxt = this.translate.instant(connectorValues.active ? 'gateway.connectors-active' : 'gateway.connectors-inactive'); - let title = `${connectorValues.name} | ${connectorValues.type} `; - if (connectorValues.type === 'grpc') { - title += `| ${connectorValues.key} `; + connectorRpc(attribute: AttributeData, $event: Event): void { + if ($event) { + $event.stopPropagation(); } - title += `| ${activeTxt}`; - return title; + console.log(attribute); + const params = deepClone(this.ctx.stateController.getStateParams()); + params.connector_logs = attribute; + params.targetEntityParamName = "connector_rpc"; + this.ctx.stateController.openState("connector_rpc", params); } + + + + enableConnector(attribute): void { + const wasEnabled = this.activeConnectors.includes(attribute.key); + if (wasEnabled) { + let index = this.activeConnectors.indexOf(attribute.key); + this.activeConnectors.splice(index, 1); + this.inactiveConnectors.push(attribute.key); + } else { + let index = this.inactiveConnectors.indexOf(attribute.key); + this.inactiveConnectors.splice(index, 1); + this.activeConnectors.push(attribute.key); + } + forkJoin([this.attributeService.saveEntityAttributes(this.device, AttributeScope.SHARED_SCOPE, [{ + key: 'active_connectors', + value: this.activeConnectors + }]), this.attributeService.saveEntityAttributes(this.device, AttributeScope.SERVER_SCOPE, [{ + key: 'inactive_connectors', + value: this.inactiveConnectors + }]),]).subscribe(resp => { + this.updateData(); + }) + } + } diff --git a/ui-ngx/src/app/shared/components/device/gateway-logs.component.html b/ui-ngx/src/app/shared/components/device/gateway-logs.component.html new file mode 100644 index 0000000000..bfd37aa53c --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-logs.component.html @@ -0,0 +1,57 @@ + + + + + + Created time + + {{ attribute.ts | date:'yyyy-MM-dd HH:mm:ss'}} + + + + Status + + {{ attribute.status }} + + + + Message + + {{ attribute.message }} + + + + + + + + + + +
+ + diff --git a/ui-ngx/src/app/shared/components/device/gateway-logs.component.scss b/ui-ngx/src/app/shared/components/device/gateway-logs.component.scss new file mode 100644 index 0000000000..a529107a43 --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-logs.component.scss @@ -0,0 +1,55 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host { + width: 100%; + height: 100%; + display: block; + overflow-x: auto; + padding: 0; + + + .status { + border-radius: 20px; + font-weight: 500; + padding: 5px 15px; + } + + .status-debug { + color: green; + background: rgba(0, 128, 0, 0.1); + } + + .status-warning { + color: orange; + background: rgba(255, 165, 0, 0.1); + } + + .status-error { + color: red; + background: rgba(255, 0, 0, 0.1); + } + + .status-info { + color: black; + background: rgba(0, 0, 0, 0.1); + } + + .msg-status-exception { + color: red; + } + +} + diff --git a/ui-ngx/src/app/shared/components/device/gateway-logs.component.ts b/ui-ngx/src/app/shared/components/device/gateway-logs.component.ts new file mode 100644 index 0000000000..cc1538729b --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-logs.component.ts @@ -0,0 +1,250 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { Router } from '@angular/router'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { AttributeService } from '@core/http/attribute.service'; +import { DeviceService } from '@core/http/device.service'; +import { TranslateService } from '@ngx-translate/core'; +import { AttributeData, DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { PageComponent } from "@shared/components/page.component"; +import { PageLink } from "@shared/models/page/page-link"; +import { AttributeDatasource } from "@home/models/datasource/attribute-datasource"; +import { Direction, SortOrder } from "@shared/models/page/sort-order"; +import { MatSort } from "@angular/material/sort"; +import { MatTableDataSource } from "@angular/material/table"; +import { GatewayLogLevel } from "@shared/components/device/gateway-configuration.component"; +import { DialogService } from '@app/core/services/dialog.service'; +import { WidgetContext } from "@home/models/widget-component.models"; + + +export interface gatewayConnector { + name: string; + type: string; + configuration?: string; + configurationJson: string; + log_level: string; + key?: string; +} + +export interface LogLink { + name: string; + key: string; + filterFn?: Function; +} + +@Component({ + selector: 'tb-gateway-logs', + templateUrl: './gateway-logs.component.html', + styleUrls: ['./gateway-logs.component.scss'] +}) +export class GatewayLogsComponent extends PageComponent implements AfterViewInit { + + pageLink: PageLink; + + attributeDataSource: AttributeDatasource; + + dataSource: MatTableDataSource + + displayedColumns = ['ts', 'status', 'message']; + + gatewayConnectorDefaultTypes: Array = + ['mqtt', + 'modbus', + 'grpc', + 'opcua', + 'opcua_asyncio', + 'ble', + 'request', + 'can', + 'bacnet', + 'odbc', + 'rest', + 'snmp', + 'ftp', + 'socket', + 'xmpp', + 'ocpp', + 'custom' + ]; + + @Input() + ctx: WidgetContext; + + @Input() + dialogRef: MatDialogRef; + + @ViewChild('searchInput') searchInputField: ElementRef; + @ViewChild(MatSort) sort: MatSort; + + connectorForm: FormGroup; + + viewsInited = false; + + textSearchMode: boolean; + + activeConnectors: Array; + + inactiveConnectors: Array; + + InitialActiveConnectors: Array; + + gatewayLogLevel = Object.values(GatewayLogLevel); + + logLinks: Array; + + initialConnector: gatewayConnector; + + activeLink: LogLink; + + gatewayLogLinks: Array = [ + { + name: "General", + key: "LOGS" + }, { + name: "Service", + key: "SERVICE_LOGS" + }, + { + name: "Connection", + key: "CONNECTION_LOGS" + }, { + name: "Storage", + key: "STORAGE_LOGS" + }] + + + constructor(protected router: Router, + protected store: Store, + protected fb: FormBuilder, + protected translate: TranslateService, + protected attributeService: AttributeService, + protected deviceService: DeviceService, + protected dialogService: DialogService, + private cd: ChangeDetectorRef, + public dialog: MatDialog) { + super(store); + const sortOrder: SortOrder = {property: 'key', direction: Direction.ASC}; + this.pageLink = new PageLink(1000, 0, null, sortOrder); + this.dataSource = new MatTableDataSource([]); + + } + + + ngAfterViewInit() { + this.dataSource.sort = this.sort; + this.ctx.defaultSubscription.onTimewindowChangeFunction = timewindow => { + this.ctx.defaultSubscription.options.timeWindowConfig = timewindow; + this.ctx.defaultSubscription.updateDataSubscriptions(); + return timewindow; + } + if (this.ctx.settings.isConnectorLog && this.ctx.settings.connectorLogState) { + console.log(this.ctx.settings.connectorLogState) + + const connector = this.ctx.stateController.getStateParams()[this.ctx.settings.connectorLogState]; + console.log(connector) + this.logLinks = [{ + key: `${connector.key}_LOGS`, + name: "Connector", + filterFn: (attrData)=>{ + return !attrData.message.includes(`${connector.key}_converter`) + } + },{ + key: `${connector.key}_LOGS`, + name: "Convector", + filterFn: (attrData)=>{ + return attrData.message.includes(`${connector.key}_converter`) + } + }, + { + key: `${connector.key}_EXTENSION_LOGS`, + name: "Extension" + }] + } else { + this.logLinks = this.gatewayLogLinks; + } + this.activeLink = this.logLinks[0]; + this.changeSubscription(); + } + + + updateData(sort?) { + if (this.ctx.defaultSubscription.data.length) { + let attrData = this.ctx.defaultSubscription.data[0].data.map(data => { + return { + ts: data[0], + key: this.activeLink.key, + status: data[1].match(/\|(\w+)\|/)[1], + message: /\[(.*)/.exec(data[1])[0] + }; + }); + if (this.activeLink.filterFn) { + attrData = attrData.filter(data => this.activeLink.filterFn(data)); + } + this.dataSource.data = attrData; + if (sort) { + this.dataSource.sortData(this.dataSource.data, this.sort); + } + } + } + + onTabChanged(link) { + this.activeLink = link; + this.changeSubscription(); + } + + statusClass(status) { + switch (status) { + case GatewayLogLevel.debug: + return "status status-debug"; + case GatewayLogLevel.warning: + return "status status-warning"; + case GatewayLogLevel.error: + case "EXCEPTION": + return "status status-error"; + case GatewayLogLevel.info: + default: + return "status status-info" + } + } + + statusClassMsg(status) { + if (status === "EXCEPTION") { + return 'msg-status-exception'; + } + } + + changeSubscription() { + if (this.ctx.datasources[0].entity) { + this.ctx.defaultSubscription.options.datasources[0].dataKeys = [{ + name: this.activeLink.key, + type: DataKeyType.timeseries, + settings: {} + }]; + this.ctx.defaultSubscription.unsubscribe(); + this.ctx.defaultSubscription.updateDataSubscriptions(); + this.ctx.defaultSubscription.callbacks.onDataUpdated = () => { + this.updateData(); + } + + } + } + +} diff --git a/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.html b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.html new file mode 100644 index 0000000000..158b03c3e0 --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.html @@ -0,0 +1,49 @@ + + + + Command + + + {{command}} + + + + + + Time + + + + Parameters + + edit + + + + + + Result + + + + diff --git a/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.scss b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.scss new file mode 100644 index 0000000000..421ac5a153 --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.scss @@ -0,0 +1,48 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host { + width: 100%; + height: 100%; + overflow-x: auto; + display: flex; + flex-direction: column; + padding: 0; + + .command-form { + width: 100%; + flex-wrap: nowrap; + padding: 0 15px; + margin-bottom: 5px; + + &>button { + margin-top: 10px; + } + + ::ng-deep.mat-mdc-form-field-icon-suffix { + z-index: 100; + } + } + + .result-block { + padding: 0 15px; + + &>span { + font-weight: 600; + } + } + +} + diff --git a/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.ts b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.ts new file mode 100644 index 0000000000..1dc88c8e0f --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-service-rpc.component.ts @@ -0,0 +1,125 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { AfterViewInit, ChangeDetectorRef, Component, Input } from '@angular/core'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { Router } from '@angular/router'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { AttributeService } from '@core/http/attribute.service'; +import { DeviceService } from '@core/http/device.service'; +import { TranslateService } from '@ngx-translate/core'; +import { PageComponent } from "@shared/components/page.component"; +import { DialogService } from '@app/core/services/dialog.service'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { ContentType } from '@shared/models/constants'; +import { + JsonObjectEditDialogComponent, + JsonObjectEditDialogData +} from "@shared/components/dialog/json-object-edit-dialog.component"; + + +@Component({ + selector: 'tb-gateway-service-rpc', + templateUrl: './gateway-service-rpc.component.html', + styleUrls: ['./gateway-service-rpc.component.scss'] +}) +export class GatewayServiceRPCComponent extends PageComponent implements AfterViewInit { + + @Input() + ctx: WidgetContext; + + contentTypes = ContentType; + + @Input() + dialogRef: MatDialogRef; + + commandForm: FormGroup; + + isConnector: boolean; + + RPCCommands: Array = [ + "Ping", + "Stats", + "Devices", + "Update", + "Version", + "Restart", + "Reboot" + ] + + + constructor(protected router: Router, + protected store: Store, + protected fb: FormBuilder, + protected translate: TranslateService, + protected attributeService: AttributeService, + protected deviceService: DeviceService, + protected dialogService: DialogService, + private cd: ChangeDetectorRef, + public dialog: MatDialog) { + super(store); + this.commandForm = this.fb.group({ + command: [null,[Validators.required]], + time: [60, [Validators.required]], + params: ["{}", [Validators.required]], + result: [null] + }) + + + } + + + ngAfterViewInit() { + this.isConnector = this.ctx.settings.isConnector; + if (!this.isConnector) { + this.commandForm.get('command').setValue(this.RPCCommands[0]); + } + } + + + sendCommand() { + const formValues = this.commandForm.value; + this.ctx.controlApi.sendTwoWayCommand(formValues.command.toLowerCase(), {},formValues.time).subscribe(resp=>{ + console.log(resp); + this.commandForm.get('result').setValue(resp); + },error => { + console.log(error); + this.commandForm.get('result').setValue(error.error); + }) + } + + openEditJSONDialog($event: Event) { + if ($event) { + $event.stopPropagation(); + } + this.dialog.open(JsonObjectEditDialogComponent, { + disableClose: true, + panelClass: ['tb-dialog', 'tb-fullscreen-dialog'], + data: { + jsonValue: JSON.parse(this.commandForm.get('params').value) + } + }).afterClosed().subscribe( + (res) => { + if (res) { + this.commandForm.get('params').setValue(JSON.stringify(res)); + } + } + ); + } + +} diff --git a/ui-ngx/src/app/shared/components/device/gateway-statistics.component.html b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.html new file mode 100644 index 0000000000..4cf9a3ea18 --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.html @@ -0,0 +1,43 @@ + + +
+ + + Statistic + + + {{key}} + + + {{command.attributeName}} + + + + + Timeout + + + + Command + + + +
+
+ diff --git a/ui-ngx/src/app/shared/components/device/gateway-statistics.component.scss b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.scss new file mode 100644 index 0000000000..2125391eea --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.scss @@ -0,0 +1,41 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host { + width: 100%; + height: 100%; + padding: 0; + + + .statistics-container { + height: 100%; + + mat-card { + width: 40%; + margin-right: 35px; + padding: 15px; + } + + div { + height: 100%; + flex-grow: 1; + } + + & > * { + height: 100%; + } + } +} + diff --git a/ui-ngx/src/app/shared/components/device/gateway-statistics.component.ts b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.ts new file mode 100644 index 0000000000..3c870dc77a --- /dev/null +++ b/ui-ngx/src/app/shared/components/device/gateway-statistics.component.ts @@ -0,0 +1,150 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { Router } from '@angular/router'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { AttributeService } from '@core/http/attribute.service'; +import { DeviceService } from '@core/http/device.service'; +import { TranslateService } from '@ngx-translate/core'; +import { AttributeScope, DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { PageComponent } from '@shared/components/page.component'; +import { DialogService } from '@app/core/services/dialog.service'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { TbFlot } from '@home/components/widget/lib/flot-widget'; +import { ResizeObserver } from "@juggle/resize-observer"; + + +@Component({ + selector: 'tb-gateway-statistics', + templateUrl: './gateway-statistics.component.html', + styleUrls: ['./gateway-statistics.component.scss'] +}) +export class GatewayStatisticsComponent extends PageComponent implements AfterViewInit { + + @ViewChild('statisticChart') statisticChart: ElementRef; + + @Input() + ctx: WidgetContext; + + private flot: TbFlot; + + public statisticForm: FormGroup; + + public statisticsKeys = []; + public commands = []; + public commandObj: any; + private resize$: ResizeObserver; + + + constructor(protected router: Router, + protected store: Store, + protected fb: FormBuilder, + protected translate: TranslateService, + protected attributeService: AttributeService, + protected deviceService: DeviceService, + protected dialogService: DialogService, + private cd: ChangeDetectorRef, + public dialog: MatDialog) { + super(store); + this.statisticForm = this.fb.group({ + statisticKey: [this.statisticsKeys[0], []] + }) + + this.statisticForm.get('statisticKey').valueChanges.subscribe(value=>{ + this.commandObj = null; + if (this.commands.length) { + this.commandObj = this.commands.find(command=>command.attributeName === value); + } + this.changeSubscription(true); + }) + } + + + ngAfterViewInit() { + if (this.ctx.defaultSubscription.datasources.length) { + const gatewayId = this.ctx.defaultSubscription.datasources[0].entity.id; + this.attributeService.getEntityAttributes(gatewayId, AttributeScope.SHARED_SCOPE, ["configuration"]).subscribe(resp=>{ + if (resp && resp.length) { + this.commands = resp[0].value.thingsboard.thingsboard.statistics.commands; + if (!this.statisticForm.get('statisticKey').value ) { + this.statisticForm.get('statisticKey').setValue(this.commands[0].attributeName); + this.changeSubscription(true); + } + } + }) + } + this.ctx.defaultSubscription.onTimewindowChangeFunction = timeWindow => { + this.ctx.defaultSubscription.options.timeWindowConfig = timeWindow; + this.ctx.defaultSubscription.updateTimewindowConfig(timeWindow); + this.ctx.defaultSubscription.update(); + this.updateChart(); + return timeWindow; + } + this.changeSubscription(true); + this.resize$ = new ResizeObserver(() => { + this.resize(); + }); + this.resize$.observe(this.statisticChart.nativeElement) + } + + initChart = () => { + if (this.ctx.defaultSubscription.data.length && !this.flot) { + this.ctx.$container = $(this.statisticChart.nativeElement); + this.flot = new TbFlot(this.ctx, 'line'); + } else setTimeout(this.initChart, 500); + } + + updateChart = () => { + if (this.flot && this.ctx.defaultSubscription.data.length) { + this.flot.update(); + } + } + + resize = () => { + if (this.flot) { + this.flot.resize(); + } + } + + + changeSubscription(init?: boolean) { + if (this.ctx.datasources[0].entity) { + if (this.flot) { + this.flot.destroy(); + delete this.flot; + } + this.ctx.defaultSubscription.options.datasources[0].dataKeys = [{ + name: this.statisticForm.get('statisticKey').value, + type: DataKeyType.timeseries, + settings: {}, + color: "#2196f3" + }]; + this.ctx.defaultSubscription.unsubscribe(); + this.ctx.defaultSubscription.updateDataSubscriptions(); + if (init) this.initChart(); + this.ctx.defaultSubscription.options.callbacks.dataLoading = ()=>{}; + this.ctx.defaultSubscription.callbacks.onDataUpdated = () => { + this.updateChart(); + } + + } + } + +} diff --git a/ui-ngx/src/app/shared/components/dialog/gateway-remote-configuration-dialog.html b/ui-ngx/src/app/shared/components/dialog/gateway-remote-configuration-dialog.html index e253c67e33..d8bff54898 100644 --- a/ui-ngx/src/app/shared/components/dialog/gateway-remote-configuration-dialog.html +++ b/ui-ngx/src/app/shared/components/dialog/gateway-remote-configuration-dialog.html @@ -28,7 +28,7 @@
- + gateway.configuration-delete-dialog-input diff --git a/ui-ngx/src/app/shared/components/file-input.component.html b/ui-ngx/src/app/shared/components/file-input.component.html index 57e1ad1465..dbc217df19 100644 --- a/ui-ngx/src/app/shared/components/file-input.component.html +++ b/ui-ngx/src/app/shared/components/file-input.component.html @@ -16,7 +16,12 @@ -->
- +
@@ -37,9 +42,11 @@ cloud_upload {{ dropLabel }} - +
diff --git a/ui-ngx/src/app/shared/components/file-input.component.scss b/ui-ngx/src/app/shared/components/file-input.component.scss index 3426539be9..33ded0bc65 100644 --- a/ui-ngx/src/app/shared/components/file-input.component.scss +++ b/ui-ngx/src/app/shared/components/file-input.component.scss @@ -93,4 +93,8 @@ $previewSize: 100px !default; padding: 0 16px; } } + + .pe { + pointer-events: auto; + } } diff --git a/ui-ngx/src/app/shared/components/file-input.component.ts b/ui-ngx/src/app/shared/components/file-input.component.ts index 51933d749c..8e70ca88ba 100644 --- a/ui-ngx/src/app/shared/components/file-input.component.ts +++ b/ui-ngx/src/app/shared/components/file-input.component.ts @@ -54,6 +54,9 @@ export class FileInputComponent extends PageComponent implements AfterViewInit, @Input() label: string; + @Input() + hint: string; + @Input() accept = '*/*'; diff --git a/ui-ngx/src/app/shared/shared.module.ts b/ui-ngx/src/app/shared/shared.module.ts index 7b053007f1..408ad0d057 100644 --- a/ui-ngx/src/app/shared/shared.module.ts +++ b/ui-ngx/src/app/shared/shared.module.ts @@ -180,6 +180,9 @@ import { DeviceGatewayCommandComponent } from '@shared/components/device/device- import { GatewayConfigurationComponent } from '@shared/components/device/gateway-configuration.component'; import { GatewayRemoteConfigurationDialogComponent } from '@shared/components/dialog/gateway-remote-configuration-dialog'; import { GatewayConnectorComponent } from '@shared/components/device/gateway-connectors.component'; +import { GatewayLogsComponent } from '@shared/components/device/gateway-logs.component'; +import { GatewayStatisticsComponent } from '@shared/components/device/gateway-statistics.component'; +import { GatewayServiceRPCComponent } from '@shared/components/device/gateway-service-rpc.component'; export const MarkedOptionsFactory = (markedOptionsService: MarkedOptionsService) => markedOptionsService; @@ -247,6 +250,9 @@ export const MarkedOptionsFactory = (markedOptionsService: MarkedOptionsService) DeviceGatewayCommandComponent, GatewayConfigurationComponent, GatewayConnectorComponent, + GatewayLogsComponent, + GatewayStatisticsComponent, + GatewayServiceRPCComponent, GatewayRemoteConfigurationDialogComponent, TbCheckboxComponent, TbSnackBarComponent, @@ -417,6 +423,9 @@ export const MarkedOptionsFactory = (markedOptionsService: MarkedOptionsService) DeviceGatewayCommandComponent, GatewayConfigurationComponent, GatewayConnectorComponent, + GatewayLogsComponent, + GatewayStatisticsComponent, + GatewayServiceRPCComponent, GatewayRemoteConfigurationDialogComponent, TbCheckboxComponent, TbErrorComponent, diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index ea9cd2d66c..a21f5f0dab 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2512,7 +2512,7 @@ "create-new-gateway-text": "Are you sure you want create a new gateway with name: '{{gatewayName}}'?", "created-time": "Created time", "configuration-delete-dialog-header": "Configurations will be deleted", - "configuration-delete-dialog-body": "Turning off Remote Configuration is possible only if there is physical access to the Gateway. All previous configurations will be deleted.

\nTo turn off configuration, enter gateway name below.", + "configuration-delete-dialog-body": "Turning off Remote Configuration is possible only if there is physical access to the Gateway. All previous configurations will be deleted.

\nTo turn off configuration, enter gateway name below", "configuration-delete-dialog-input": "Gateway name", "configuration-delete-dialog-input-required": "Gateway name is mandatory", "configuration-delete-dialog-confirm": "Turn Off", @@ -2609,6 +2609,7 @@ "stats-send-period-in-sec": "Stats send period in seconds", "statistics": { "statistics": "Statistics", + "commands": "Commands", "send-period": "Statistic send period (in ms)", "send-period-required": "Statistic send period is required", "send-period-min": "Statistic send period can not be less then 0", @@ -2689,7 +2690,45 @@ "toggle-fullscreen": "Toggle fullscreen", "transformer-json-config": "Configuration JSON*", "update-config": "Add/update configuration JSON", - "windows": "Windows" + "windows": "Windows", + "hints": { + "remote-configuration": "Enables remote configuration and management of the gateway", + "remote-shell": "Enables remote control of the operating system with the gateway from the Remote Shell widget", + "host": "Hostname or ip address of ThingsBoard server", + "port": "Port of MQTT service on ThingsBoard server", + "token": "Access token for the gateway from ThingsBoard server", + "client-id": "MQTT client id for the gateway form ThingsBoard server", + "username": "MQTT username for the gateway form ThingsBoard server", + "password": "MQTT password for the gateway form ThingsBoard server", + "ca-cert": "Path to CA certificate file", + "cert": "Path to certificate file", + "private-key": "Path to private key file", + "date-form": "Date format of log message", + "log-format": "Log message format", + "remote-log": "Enables remote logging and logs reading from the gateway", + "backup-count": "If Backup count is > 0, when a rollover is done, no more than Backup count files are kept - the oldest ones are deleted", + "storage": "Provides configuration for saving incoming data before it is sent to the ThingsBoard platform", + "file": "Received data saving to the hard drive", + "memory": "Received data saving to the RAM memory", + "sqlite": "Received data saving to the .db file", + "data-folder": "Path to folder, that will contains data (Relative or Absolute)", + "max-file-count": "Maximum count of file that will be saved", + "max-read-count": "Count of messages to get from storage and send to ThingsBoard", + "max-records": "Maximum count of records that will be stored in one file", + "read-record-count": "Count of messages to get from storage and send to ThingsBoard", + "max-records-count": "Maximum count of data in storage before send to ThingsBoard", + "ttl-check-hour": "How often will Gateway check data for obsolescence", + "ttl-messages-day": "Maximum days that storage will save data", + "commands": "Commands for collecting additional statistic", + "attribute": "Gateway client attribute name", + "timeout": "Timeout for command executing", + "command": "The result of the command will be used as the value of the client attribute (\"/bin/sh -c ipconfig getifaddr en0\")", + "check-device-activity": "Enables monitor the activity of each connected device", + "inactivity-timeout": "Inactivity device time after whose the gateway will disconnect device", + "inactivity-period": "Periodicity of device activity check", + "minimal-pack-delay": "Delay between sending packets (Decreasing this setting results in increased CPU usage", + "qos": "Quality of Service in MQTT messaging (0 - at most once, 1 - at least once)" + } }, "grid": { "delete-item-title": "Are you sure you want to delete this item?", @@ -5247,6 +5286,11 @@ "font-weight-lighter": "Lighter", "color": "Color", "shadow-color": "Shadow color" + }, + "action-buttons": { + "button-type": "Button type", + "button-class": "Button class", + "alignment": "Buttons alignment" } }, "icon": { @@ -5273,7 +5317,8 @@ "node-selected": "On node selected", "element-click": "On HTML element click", "pie-slice-click": "On slice click", - "row-double-click": "On row double click" + "row-double-click": "On row double click", + "action-button-click": "Action button click" } }, "paginator" : {