diff --git a/components/ecg-info/ecg-info.vue b/components/ecg-info/ecg-info.vue index c0c5c13..0780b9f 100644 --- a/components/ecg-info/ecg-info.vue +++ b/components/ecg-info/ecg-info.vue @@ -547,8 +547,9 @@ .pops { border: 1rpx solid gray; border-radius: 20rpx; - margin: 50rpx; + margin: 50rpx 200rpx; margin-top: 100rpx; + padding: 0rpx 50rpx; } .box1 { diff --git a/components/echarts-data/echarts-data.vue b/components/echarts-data/echarts-data.vue index 2b1814b..a25efef 100644 --- a/components/echarts-data/echarts-data.vue +++ b/components/echarts-data/echarts-data.vue @@ -370,12 +370,13 @@ import { mapGetters } from "vuex"; type: Object } }, - onLoad() { - this.type = pageData.type; + mounted() { + this.pageData.type = this.getpageType; }, computed: { ...mapGetters({ - getActiceDevice: "api/getActiceDevice" + getActiceDevice: "api/getActiceDevice", + getpageType: "api/getpageType", }) }, methods: { @@ -387,9 +388,10 @@ import { mapGetters } from "vuex"; async getDataList(){ let type = this.pageData.type - if(type == 'bloodLiquidAll'){ + if(type == 'bloodLiquidAll') { type = 'bloodLiquid' } + let res = await this.$store.dispatch('api/getDeviceListDays', { type: type, device_real_time: this.time, diff --git a/components/home-data/home-data.vue b/components/home-data/home-data.vue index 1f4dc3b..e11215b 100644 --- a/components/home-data/home-data.vue +++ b/components/home-data/home-data.vue @@ -442,6 +442,7 @@ }, toPageCom(val) { this.$emit('pageDetail', val) + this.$store.commit('api/setpageType', val) }, // 退出登录 outlogin() { diff --git a/config/request.js b/config/request.js index 592d10f..98cc7e9 100644 --- a/config/request.js +++ b/config/request.js @@ -28,7 +28,8 @@ export default () => { } config.data = config.data || {}; - config.baseURL = 'https://ai.agrimedia.cn/'; // 不使用请求代理 上线记得注释掉 *********************************************************** + // config.baseURL = 'https://ai.agrimedia.cn/'; // 不使用请求代理 上线记得注释掉 *********************************************************** + // config.baseURL = 'http://test.sc2.agrimedia.cn'; let apiToken = store.getters['api/getApiToken'] let serverTime = (parseInt(Date.now() /1000) - store.getters['api/getServerTime']) diff --git a/hybrid/html/ai.html b/hybrid/html/ai.html index 8cea7a5..23e42b7 100755 --- a/hybrid/html/ai.html +++ b/hybrid/html/ai.html @@ -65,7 +65,6 @@ var scrollWidth = document.getElementById(p).offsetWidth; var textWidth = document.getElementById(s).offsetWidth; var i = scrollWidth; - console.log(scrollWidth, textWidth); function change() { i--; if (i < -textWidth) { @@ -309,7 +308,7 @@ // 判断关键字是否存在 const result = parseHealthQuery(params.msg); - + console.log(result, '判断关键字是否存在') if (result) { DetailDay(result.dataKey, result.date).then(res => { let TargetData = res.data.data; @@ -541,7 +540,6 @@ startRec.style.display = 'none'; endRec.style.display = 'none'; - console.log(endRec.style) showModal() }); @@ -659,7 +657,10 @@ totalTime --; if (totalTime <= 0) { // 停止倒计时 - console.log('计算结束') + startRec.style.display = 'block'; + endRec.style.display = 'none'; + statusTxt.value = ''; + voiceTxt.innerText = ''; clearInterval(countdown); replayVideoSegment(0, 60); } @@ -723,12 +724,16 @@ SleepDatas: "睡眠", bloodOxygen: "血氧", bloodPressure: '血压', - bloodLiquid: "血脂", meiTuo: '梅脱', pulseReat: '心率', bodyTemperature: '体温', ECGData: '心电图', - bodyData: '身体成分', + bloodLiquid: { + '血脂': true, + '血液成分': true, + '尿酸': true + }, + bodyData: '身体成分', stepIndex: '运动' }; } @@ -749,18 +754,36 @@ targetDate.setDate(day - 2); } - // 格式化日期为 YYYY-MM-DD const formattedDate = `${targetDate.getFullYear()}-${('0' + targetDate.getMonth()).slice(-2)}-${('0' + targetDate.getDate()).slice(-2)}`; - // 查找匹配的数据项键 - for (let key in demoData) { - if (query.includes(demoData[key])) { - return { - dataKey: key, - date: formattedDate - }; - } - } + // 创建一个辅助函数来检查 bloodLiquid 对象是否包含查询字符串 + function isBloodLiquidMatch(bloodLiquidData, query) { + for (let value in bloodLiquidData) { + if (value.includes(query)) { + return true; + } + } + return false; + } + + // 在查询逻辑中使用这个辅助函数 + for (let key in demoData) { + if (typeof demoData[key] === 'object' && key === 'bloodLiquid') { + if (isBloodLiquidMatch(demoData[key], query)) { + const formattedDate = new Date().toISOString().split('T')[0]; + return { + dataKey: key, + date: formattedDate + }; + } + } else if (typeof demoData[key] === 'string' && demoData[key].includes(query)) { + const formattedDate = new Date().toISOString().split('T')[0]; + return { + dataKey: key, + date: formattedDate + }; + } + } // 如果没有找到匹配的数据项,则返回null或错误信息(这里选择返回null) return null; diff --git a/manifest.json b/manifest.json index 578b5ab..1c41934 100644 --- a/manifest.json +++ b/manifest.json @@ -126,7 +126,8 @@ "disableHostCheck" : true, // 开启可以用自己的域名 "proxy" : { "/watch" : { - "target" : "https://ai.agrimedia.cn", + // "target" : "https://ai.agrimedia.cn", + "target" : "https://test.sc2.agrimedia.cn", "changeOrigin" : true, "secure" : false } diff --git a/pages/index/index.vue b/pages/index/index.vue index 609913e..15a09c0 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -219,9 +219,20 @@ } else { this.Sindex = 2; this.activeType = str; - for (let val in this.dataListsNew) { - if (str == val) { - this.pageData = this.dataListsNew[val] + + if (str == 'bloodLiquidAll') { + this.pageData = this.dataListsNew['bloodLiquid']; + this.pageData.type = 'bloodLiquidAll'; + return + } else if (str == 'bloodLiquid') { + this.pageData = this.dataListsNew['bloodLiquid']; + this.pageData.type = 'bloodLiquid'; + return + } else { + for (let val in this.dataListsNew) { + if (str == val) { + this.pageData = this.dataListsNew[val] + } } } } @@ -264,7 +275,7 @@ back(index) { this.Sindex = index; - console.log(this.Sindex) + this.pageData.type = ''; } } } diff --git a/store/modules/api.js b/store/modules/api.js index 77a4693..53d36e8 100644 --- a/store/modules/api.js +++ b/store/modules/api.js @@ -18,7 +18,8 @@ let state = { userInfo: {}, apiToken: '', serverTime:0, - activeDevice: '' + activeDevice: '', + pageType: '' }, getters = { getUserInfo(state){ @@ -32,9 +33,15 @@ let state = { }, getActiceDevice(state){ return state.activeDevice + }, + getpageType(state){ + return state.pageType } }, - mutations = { + mutations = { + setpageType(state,data) { + state.pageType = data + }, setUserInfo(state,data) { state.userInfo = data }, diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index 00b8f9a..8786b65 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -6221,7 +6221,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _navtab = _interopRequireDefault(__webpack_require__(/*! ../../components/navtab/navtab.vue */ 74));\nvar _homeData = _interopRequireDefault(__webpack_require__(/*! ../../components/home-data/home-data.vue */ 79));\nvar _echartsData = _interopRequireDefault(__webpack_require__(/*! ../../components/echarts-data/echarts-data.vue */ 154));\nvar _allData = _interopRequireDefault(__webpack_require__(/*! ../../components/all-data/all-data.vue */ 171));\nvar _utils = __webpack_require__(/*! @/utils/utils.js */ 146);\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 148));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n components: {\n homeData: _homeData.default,\n echartsData: _echartsData.default,\n allData: _allData.default\n },\n data: function data() {\n return {\n Sindex: 1,\n keyNameMap: {\n bloodGlucose: \"血糖\",\n sleep: \"睡眠\",\n bloodOxygen: \"血氧\",\n bloodPressure: '血压',\n bloodLiquid: \"血脂\",\n meiTuo: '梅脱',\n pulseReat: '心率',\n updataDate: '更新时间',\n bodyTemperature: '体温'\n },\n dataLists: {},\n dataListsNew: {\n stepIndex: {},\n pulseReat: {},\n bloodOxygen: {},\n bloodPressure: {},\n bloodGlucose: {},\n meiTuo: {},\n bodyTemperature: {},\n bloodLiquid: {},\n ECGData: {},\n bodyData: {},\n SleepDatas: {}\n },\n name: '',\n name1: '',\n name2: '',\n deviceList: [],\n urlLink: '',\n activeType: '',\n // 选中的类型\n\n pageData: {\n type: ''\n },\n loading: true,\n customConfigs: {\n padding: '30rpx',\n //内边距\n gridRows: 2,\n //行数\n gridColumns: 1,\n //列数\n headShow: true,\n //head是否展示\n headWidth: '100%',\n //head宽度,支持百分比\n headHeight: '100vh',\n //head高度\n headBorderRadius: '12rpx' //head圆角,支持百分比\n }\n };\n },\n onLoad: function onLoad() {\n /*\n * 首页数据\n */\n this.onRefresh();\n setTimeout(function () {\n var avaudiosession = plus.ios.import(\"AVAudioSession\");\n var avaudio = avaudiosession.sharedInstance();\n avaudio.requestRecordPermission(function () {\n __f__(\"log\", '申请麦克风权限', \" at pages/index/index.vue:123\");\n });\n }, 1000);\n this.urlLink = \"/hybrid/html/ai.html\";\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\",\n getUserInfo: \"api/getUserInfo\"\n })),\n onReady: function onReady() {\n var pages = getCurrentPages();\n var page = pages[pages.length - 1];\n var currentWebview = page.$getAppWebview();\n setTimeout(function () {\n var wv = currentWebview.children()[0];\n //setStyle设置webview的宽高的位置\n wv.setStyle({\n top: 0,\n right: 0,\n height: uni.getSystemInfoSync().windowHeight,\n width: uni.getSystemInfoSync().windowWidth - 660\n });\n }, 100);\n },\n onPageScroll: function onPageScroll(e) {\n this.$refs.xtotop_ref.scroll(e);\n },\n methods: {\n getArrMaxValue: _utils.getArrMaxValue,\n onRefresh: function onRefresh(pageNo, pageSize) {\n var _this = this;\n this.$store.dispatch('api/getIndexData', {\n device_id: this.getActiceDevice.device_id,\n need_arr: ['pulseReat', 'bloodOxygen', 'bloodPressure', 'bloodGlucose', 'meiTuo', 'bodyTemperature', 'bloodLiquid', 'stepIndex', 'ECGData', 'SleepDatas', 'bodyData']\n }).then(function (res) {\n for (var i = 0; i < res.length; i++) {\n _this.dataListsNew[res[i].type] = res[i];\n _this.dataListsNew[res[i].name] = _this.getNameByKey(res[i].type);\n }\n\n // 身体成分\n // this.dataListsNew.bodyData = JSON.parse(JSON.stringify(this.dataListsNew.bloodLiquid));\n // this.dataListsNew.bodyData.type = 'bodyData';\n __f__(\"log\", _this.dataListsNew, \" at pages/index/index.vue:186\");\n if (_this.dataListsNew.ECGData.data_msg) {\n // 删除心电图点位\n delete _this.dataListsNew.ECGData.data_msg.wavefrom;\n delete _this.dataListsNew.ECGData.data_msg.list;\n }\n _this.urlLink = \"/hybrid/html/ai.html?data=\".concat(JSON.stringify(_this.dataListsNew), \"&user=\").concat(JSON.stringify(_this.getUserInfo), \"&token=\").concat(_index.default.getters['api/getApiToken'], \"&deviceId=\").concat(_this.getActiceDevice.device_id);\n _this.loading = false;\n });\n this.$store.dispatch('api/getBindUserDeviceId').then(function (res) {\n _this.deviceList = res;\n });\n },\n mkHourMin: function mkHourMin(min) {\n if (min < 60) {\n return [0, min];\n }\n return [Math.floor(min / 60), min % 60];\n },\n // 触发组件\n pageDetail: function pageDetail(str) {\n if (str == 'ECGData' || str == 'bodyData') {\n this.Sindex = 3;\n this.activeType = str;\n return;\n } else if (str == 'SleepDatas') {\n this.Sindex = 4;\n } else {\n this.Sindex = 2;\n this.activeType = str;\n for (var val in this.dataListsNew) {\n if (str == val) {\n this.pageData = this.dataListsNew[val];\n }\n }\n }\n },\n toPage: function toPage(url) {\n uni.navigateTo({\n url: url\n });\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (dateTimeStr) {\n return dateTimeStr.replace(/-/g, ' ').replace(' ', ' ', 2).replace(' ', ':');\n }\n },\n // 退出登录\n outlogin: function outlogin() {\n this.$store.commit('api/setApiToken', '');\n this.$store.commit('api/setActiceDevice', '');\n this.$store.commit('api/setUserInfo', '');\n uni.reLaunch({\n url: \"/pages/login/login\"\n });\n },\n getNameByKey: function getNameByKey(key) {\n return this.keyNameMap[key] || \"Key not found\";\n },\n deviceGet: function deviceGet(val) {\n this.deviceList = val;\n },\n allData: function allData(index) {\n this.Sindex = index;\n },\n back: function back(index) {\n this.Sindex = index;\n __f__(\"log\", this.Sindex, \" at pages/index/index.vue:267\");\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJob21lRGF0YSIsImVjaGFydHNEYXRhIiwiYWxsRGF0YSIsImRhdGEiLCJTaW5kZXgiLCJrZXlOYW1lTWFwIiwiYmxvb2RHbHVjb3NlIiwic2xlZXAiLCJibG9vZE94eWdlbiIsImJsb29kUHJlc3N1cmUiLCJibG9vZExpcXVpZCIsIm1laVR1byIsInB1bHNlUmVhdCIsInVwZGF0YURhdGUiLCJib2R5VGVtcGVyYXR1cmUiLCJkYXRhTGlzdHMiLCJkYXRhTGlzdHNOZXciLCJzdGVwSW5kZXgiLCJFQ0dEYXRhIiwiYm9keURhdGEiLCJTbGVlcERhdGFzIiwibmFtZSIsIm5hbWUxIiwibmFtZTIiLCJkZXZpY2VMaXN0IiwidXJsTGluayIsImFjdGl2ZVR5cGUiLCJwYWdlRGF0YSIsInR5cGUiLCJsb2FkaW5nIiwiY3VzdG9tQ29uZmlncyIsInBhZGRpbmciLCJncmlkUm93cyIsImdyaWRDb2x1bW5zIiwiaGVhZFNob3ciLCJoZWFkV2lkdGgiLCJoZWFkSGVpZ2h0IiwiaGVhZEJvcmRlclJhZGl1cyIsIm9uTG9hZCIsInNldFRpbWVvdXQiLCJhdmF1ZGlvIiwiY29tcHV0ZWQiLCJnZXRBY3RpY2VEZXZpY2UiLCJnZXRVc2VySW5mbyIsIm9uUmVhZHkiLCJ3diIsInRvcCIsInJpZ2h0IiwiaGVpZ2h0Iiwid2lkdGgiLCJvblBhZ2VTY3JvbGwiLCJtZXRob2RzIiwiZ2V0QXJyTWF4VmFsdWUiLCJvblJlZnJlc2giLCJkZXZpY2VfaWQiLCJuZWVkX2FyciIsIm1rSG91ck1pbiIsInBhZ2VEZXRhaWwiLCJ0b1BhZ2UiLCJ1bmkiLCJ1cmwiLCJmb3JtYXREYXRlVGltZSIsIm91dGxvZ2luIiwiZ2V0TmFtZUJ5S2V5IiwiZGV2aWNlR2V0IiwiYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUE4Q0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUEsZUFFQTtFQUNBQTtJQUFBQztJQUFBQztJQUFBQztFQUFBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztRQUNBQztRQUNBTDtRQUNBSjtRQUNBQztRQUNBSDtRQUNBSztRQUNBRztRQUNBSjtRQUNBUTtRQUNBQztRQUNBQztNQUNBO01BRUFDO01BQ0FDO01BQ0FDO01BQ0FDO01BR0FDO01BQ0FDO01BQUE7O01BRUFDO1FBQ0FDO01BQ0E7TUFFQUM7TUFDQUM7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFHQTtFQUNBO0VBQ0FDLDRCQUNBO0lBQ0FDO0lBQ0FDO0VBQ0EsR0FDQTtFQUVBQztJQUVBO0lBQ0E7SUFDQTtJQUNBTDtNQUNBO01BQ0E7TUFDQU07UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBRUE7RUFFQUM7SUFDQTtFQUNBO0VBRUFDO0lBQ0FDO0lBQ0FDO01BQUE7TUFDQTtRQUNBQztRQUNBQyxXQUNBLGFBQ0EsZUFDQSxpQkFDQSxnQkFDQSxVQUNBLG1CQUNBLGVBQ0EsYUFDQSxXQUNBLGNBQ0E7TUFFQTtRQUNBO1VBQ0E7VUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUVBO1FBQ0E7TUFDQSxFQUVBO01BRUE7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtVQUNBO1lBQ0E7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBQztNQUNBQztRQUNBQztNQUNBO0lBQ0E7SUFFQUM7TUFDQTtRQUNBO01BQ0E7SUFDQTtJQUVBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBO01BRUFIO1FBQ0FDO01BQ0E7SUFDQTtJQUVBRztNQUNBO0lBQ0E7SUFFQUM7TUFDQTtJQUNBO0lBRUE5RDtNQUNBO0lBQ0E7SUFFQStEO01BQ0E7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3PlxuXHRcdDx2aWV3IGNsYXNzPVwic2tlbGV0b24gZmx4XCIgdi1pZj1cImxvYWRpbmdcIj5cblx0XHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDYwJVwiPlxuXHRcdFx0XHQ8eC1za2VsZXRvbiB0eXBlPVwiYmFubmVyXCIgOmxvYWRpbmc9XCJsb2FkaW5nXCI+PC94LXNrZWxldG9uPlxuXHRcdFx0XHQ8eC1za2VsZXRvbiB0eXBlPVwiYmFubmVyXCIgOmxvYWRpbmc9XCJsb2FkaW5nXCI+PC94LXNrZWxldG9uPlxuXHRcdFx0XHQ8eC1za2VsZXRvbiB0eXBlPVwiYmFubmVyXCIgOmxvYWRpbmc9XCJsb2FkaW5nXCI+PC94LXNrZWxldG9uPlxuXHRcdFx0XHQ8eC1za2VsZXRvbiB0eXBlPVwiYmFubmVyXCIgOmxvYWRpbmc9XCJsb2FkaW5nXCI+PC94LXNrZWxldG9uPlxuXHRcdFx0XHQ8eC1za2VsZXRvbiB0eXBlPVwiYmFubmVyXCIgOmxvYWRpbmc9XCJsb2FkaW5nXCI+PC94LXNrZWxldG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNDAlXCI+XG5cdFx0XHRcdDx4LXNrZWxldG9uIDpsb2FkaW5nPVwibG9hZGluZ1wiIDpjb25maWdzPVwiY3VzdG9tQ29uZmlnc1wiIGZhZGVPdXQ+PC94LXNrZWxldG9uPlxuXHRcdFx0PC92aWV3PlxuXHRcdDwvdmlldz5cblx0XG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCI+XG5cdFx0XHQ8IS0tIOmmlumhteaVsOaNriAtLT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC13cmFwXCIgIHYtaWY9XCJTaW5kZXggPT0gMVwiPlxuXHRcdFx0XHQ8aG9tZURhdGEgOmRhdGFMaXN0c05ldz1cImRhdGFMaXN0c05ld1wiIDpkZXZpY2VMaXN0PVwiZGV2aWNlTGlzdFwiIEBkZXZpY2VHZXQ9XCJkZXZpY2VHZXRcIiBAcGFnZURldGFpbD1cInBhZ2VEZXRhaWxcIj48L2hvbWVEYXRhPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0XG5cdFx0XHQ8IS0tIOWbvuihqCAtLT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC13cmFwXCIgdi1pZj1cIlNpbmRleCA9PSAyXCI+XG5cdFx0XHRcdDxlY2hhcnRzRGF0YSA6cGFnZURhdGE9XCJwYWdlRGF0YVwiIEBiYWNrPVwiYmFja1wiIEBhbGxEYXRhPVwiYWxsRGF0YVwiPjwvZWNoYXJ0c0RhdGE+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcblx0XHRcdDwhLS0g5pel5pyf562b6YCJIOWFqOmDqOaVsOaNriAtLT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC13cmFwXCIgdi1pZj1cIlNpbmRleCA9PSAzXCI+XG5cdFx0XHRcdDxhbGxEYXRhIEBiYWNrPVwiYmFja1wiIDphY3RpdmVUeXBlPVwiYWN0aXZlVHlwZVwiPjwvYWxsRGF0YT5cblx0XHRcdDwvdmlldz5cblx0XHRcdFxuXHRcdFx0PCEtLSDnnaHnnKAgLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtd3JhcFwiIHYtaWY9XCJTaW5kZXggPT0gNFwiPlxuXHRcdFx0XHQ8c2xlZXAtaW5mbyByZWY9XCJzbGVlcFwiIEBiYWNrPVwiYmFja1wiPjwvc2xlZXAtaW5mbz5cblx0XHRcdDwvdmlldz5cblx0XHRcdFxuXG5cdFx0XHQ8IS0tIOaVsOWtl+S6undlYnZpZXfljp/nlJ/pobXpnaIgLS0+XG5cdFx0XHQ8dmlldyBjbGFzcz1cInJpZ2h0XCI+XG5cdFx0XHRcdDx3ZWItdmlldyA6c3JjPVwidXJsTGlua1wiPjwvd2ViLXZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxuXHRpbXBvcnQgbmF2dGFiIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbmF2dGFiL25hdnRhYi52dWUnIFxuXHRcblx0aW1wb3J0IGhvbWVEYXRhIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaG9tZS1kYXRhL2hvbWUtZGF0YS52dWUnXG5cdGltcG9ydCBlY2hhcnRzRGF0YSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2VjaGFydHMtZGF0YS9lY2hhcnRzLWRhdGEudnVlJ1xuXHRpbXBvcnQgYWxsRGF0YSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2FsbC1kYXRhL2FsbC1kYXRhLnZ1ZSdcblx0XG5cdGltcG9ydCB7IGdldEFyck1heFZhbHVlIH0gZnJvbSAnQC91dGlscy91dGlscy5qcydcblx0aW1wb3J0IHN0b3JlIGZyb20gXCJAL3N0b3JlL2luZGV4LmpzXCI7XG5cdGltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tIFwidnVleFwiO1xuXHRcblx0ZXhwb3J0IGRlZmF1bHQge1xuXHRcdGNvbXBvbmVudHM6IHsgaG9tZURhdGEsIGVjaGFydHNEYXRhLCBhbGxEYXRhIH0sXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0U2luZGV4OiAxLFxuXHRcdFx0XHRrZXlOYW1lTWFwOiB7XG5cdFx0XHRcdCAgICBibG9vZEdsdWNvc2U6IFwi6KGA57OWXCIsXG5cdFx0XHRcdCAgICBzbGVlcDogXCLnnaHnnKBcIixcblx0XHRcdFx0XHRibG9vZE94eWdlbjogXCLooYDmsKdcIixcblx0XHRcdFx0XHRibG9vZFByZXNzdXJlOiAn6KGA5Y6LJyxcblx0XHRcdFx0ICAgIGJsb29kTGlxdWlkOiBcIuihgOiEglwiLFxuXHRcdFx0XHRcdG1laVR1bzogJ+aiheiEsScsXG5cdFx0XHRcdFx0cHVsc2VSZWF0OiAn5b+D546HJyxcblx0XHRcdFx0XHR1cGRhdGFEYXRlOiAn5pu05paw5pe26Ze0Jyxcblx0XHRcdFx0XHRib2R5VGVtcGVyYXR1cmU6ICfkvZPmuKknXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRhdGFMaXN0czoge30sXG5cdFx0XHRcdGRhdGFMaXN0c05ldzp7XG5cdFx0XHRcdFx0c3RlcEluZGV4Ont9LFxuXHRcdFx0XHRcdHB1bHNlUmVhdDp7fSxcblx0XHRcdFx0XHRibG9vZE94eWdlbjp7fSxcblx0XHRcdFx0XHRibG9vZFByZXNzdXJlOnt9LFxuXHRcdFx0XHRcdGJsb29kR2x1Y29zZTp7fSxcblx0XHRcdFx0XHRtZWlUdW86e30sXG5cdFx0XHRcdFx0Ym9keVRlbXBlcmF0dXJlOnt9LFxuXHRcdFx0XHRcdGJsb29kTGlxdWlkOnt9LFxuXHRcdFx0XHRcdEVDR0RhdGE6e30sXG5cdFx0XHRcdFx0Ym9keURhdGE6e30sXG5cdFx0XHRcdFx0U2xlZXBEYXRhczp7fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0bmFtZTogJycsXG5cdFx0XHRcdG5hbWUxOiAnJyxcblx0XHRcdFx0bmFtZTI6ICcnLFxuXHRcdFx0XHRkZXZpY2VMaXN0OiBbXSxcblx0XHRcdFx0XG5cdFx0XHRcdFxuXHRcdFx0XHR1cmxMaW5rOiAnJyxcblx0XHRcdFx0YWN0aXZlVHlwZTogJycsICAvLyDpgInkuK3nmoTnsbvlnotcblx0XHRcdFx0XG5cdFx0XHRcdHBhZ2VEYXRhOiB7XG5cdFx0XHRcdFx0dHlwZTogJydcblx0XHRcdFx0fSxcblx0XHRcdFx0XG5cdFx0XHRcdGxvYWRpbmc6IHRydWUsXG5cdFx0XHRcdGN1c3RvbUNvbmZpZ3M6IHtcblx0XHRcdFx0XHRwYWRkaW5nOiAnMzBycHgnLFx0XHQgICBcdFx0XHRcdCAgLy/lhoXovrnot51cblx0XHRcdFx0XHRncmlkUm93czogMiwgXHRcdFx0IFx0ICAgXHRcdFx0ICAvL+ihjOaVsFxuXHRcdFx0XHRcdGdyaWRDb2x1bW5zOiAxLFx0ICBcdFx0ICBcdCAgIFx0XHRcdCAgLy/liJfmlbBcblx0XHRcdFx0XHRoZWFkU2hvdzogdHJ1ZSxcdFx0IFx0ICAgXHRcdFx0XHQgIC8vaGVhZOaYr+WQpuWxleekulxuXHRcdFx0XHRcdGhlYWRXaWR0aDogJzEwMCUnLFx0ICBcdCAgIFx0XHRcdFx0ICAvL2hlYWTlrr3luqbvvIzmlK/mjIHnmb7liIbmr5Rcblx0XHRcdFx0XHRoZWFkSGVpZ2h0OiAnMTAwdmgnLFx0ICAgXHRcdFx0XHQgIC8vaGVhZOmrmOW6plxuXHRcdFx0XHRcdGhlYWRCb3JkZXJSYWRpdXM6ICcxMnJweCcsIFx0XHRcdFx0ICAvL2hlYWTlnIbop5LvvIzmlK/mjIHnmb7liIbmr5Rcblx0XHRcdFx0fVxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdG9uTG9hZCgpIHtcblx0XHRcdC8qXG5cdFx0XHQqIOmmlumhteaVsOaNrlxuXHRcdFx0Ki9cblx0XHRcdHRoaXMub25SZWZyZXNoKCk7XG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR2YXIgYXZhdWRpb3Nlc3Npb24gPSBwbHVzLmlvcy5pbXBvcnQoXCJBVkF1ZGlvU2Vzc2lvblwiKTtcblx0XHRcdFx0dmFyIGF2YXVkaW8gPSBhdmF1ZGlvc2Vzc2lvbi5zaGFyZWRJbnN0YW5jZSgpO1xuXHRcdFx0XHRhdmF1ZGlvLnJlcXVlc3RSZWNvcmRQZXJtaXNzaW9uKCgpPT57XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+eUs+ivt+m6puWFi+mjjuadg+mZkCcpOyAgXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgMTAwMCk7XG5cdFx0XHQvLyAjZW5kaWZcblx0XHRcdFxuXHRcdFx0dGhpcy51cmxMaW5rID0gYC9oeWJyaWQvaHRtbC9haS5odG1sYDtcclxuXHRcdH0sXG5cdFx0Y29tcHV0ZWQ6IHtcblx0XHRcdC4uLm1hcEdldHRlcnMoe1xuXHRcdFx0XHRnZXRBY3RpY2VEZXZpY2U6IFwiYXBpL2dldEFjdGljZURldmljZVwiLFxuXHRcdFx0XHRnZXRVc2VySW5mbzogXCJhcGkvZ2V0VXNlckluZm9cIixcblx0XHRcdH0pXG5cdFx0fSxcblx0XHRcblx0XHRvblJlYWR5KCkge1xuXHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXG5cdFx0XHRsZXQgcGFnZXMgPSBnZXRDdXJyZW50UGFnZXMoKTtcblx0XHRcdGxldCBwYWdlID0gcGFnZXNbcGFnZXMubGVuZ3RoIC0gMV07XG5cdFx0XHRsZXQgY3VycmVudFdlYnZpZXcgPSBwYWdlLiRnZXRBcHBXZWJ2aWV3KCk7XG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjb25zdCB3diA9IGN1cnJlbnRXZWJ2aWV3LmNoaWxkcmVuKClbMF1cblx0XHRcdFx0Ly9zZXRTdHlsZeiuvue9rndlYnZpZXfnmoTlrr3pq5jnmoTkvY3nva5cblx0XHRcdFx0d3Yuc2V0U3R5bGUoe1xuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRoZWlnaHQ6IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLndpbmRvd0hlaWdodCxcblx0XHRcdFx0XHR3aWR0aDogdW5pLmdldFN5c3RlbUluZm9TeW5jKCkud2luZG93V2lkdGggLSA2NjBcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdFx0Ly8gI2VuZGlmXG5cdFx0fSxcblx0XHRcblx0XHRvblBhZ2VTY3JvbGwoZSkge1xuXHRcdCAgICB0aGlzLiRyZWZzLnh0b3RvcF9yZWYuc2Nyb2xsKGUpO1xuXHRcdH0sXG5cdFx0XHJcblx0XHRtZXRob2RzOiB7XG5cdFx0XHRnZXRBcnJNYXhWYWx1ZSxcblx0XHRcdG9uUmVmcmVzaChwYWdlTm8sIHBhZ2VTaXplKSB7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0SW5kZXhEYXRhJywgeyBcblx0XHRcdFx0XHRkZXZpY2VfaWQ6IHRoaXMuZ2V0QWN0aWNlRGV2aWNlLmRldmljZV9pZCAsXG5cdFx0XHRcdFx0bmVlZF9hcnIgOltcblx0XHRcdFx0XHRcdCdwdWxzZVJlYXQnLFxuXHRcdFx0XHRcdFx0J2Jsb29kT3h5Z2VuJyxcblx0XHRcdFx0XHRcdCdibG9vZFByZXNzdXJlJyxcblx0XHRcdFx0XHRcdCdibG9vZEdsdWNvc2UnLFxuXHRcdFx0XHRcdFx0J21laVR1bycsXG5cdFx0XHRcdFx0XHQnYm9keVRlbXBlcmF0dXJlJyxcblx0XHRcdFx0XHRcdCdibG9vZExpcXVpZCcsXG5cdFx0XHRcdFx0XHQnc3RlcEluZGV4Jyxcblx0XHRcdFx0XHRcdCdFQ0dEYXRhJyxcblx0XHRcdFx0XHRcdCdTbGVlcERhdGFzJyxcblx0XHRcdFx0XHRcdCdib2R5RGF0YSdcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7aSA8IHJlcy5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUxpc3RzTmV3W3Jlc1tpXS50eXBlXSA9IHJlc1tpXVxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFMaXN0c05ld1tyZXNbaV0ubmFtZV0gPSB0aGlzLmdldE5hbWVCeUtleShyZXNbaV0udHlwZSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ly8g6Lqr5L2T5oiQ5YiGXG5cdFx0XHRcdFx0XHQvLyB0aGlzLmRhdGFMaXN0c05ldy5ib2R5RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQpKTtcblx0XHRcdFx0XHRcdC8vIHRoaXMuZGF0YUxpc3RzTmV3LmJvZHlEYXRhLnR5cGUgPSAnYm9keURhdGEnO1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5kYXRhTGlzdHNOZXcpXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5kYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZykge1xuXHRcdFx0XHRcdFx0XHQvLyDliKDpmaTlv4PnlLXlm77ngrnkvY1cblx0XHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMuZGF0YUxpc3RzTmV3LkVDR0RhdGEuZGF0YV9tc2cud2F2ZWZyb207XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLmRhdGFMaXN0c05ldy5FQ0dEYXRhLmRhdGFfbXNnLmxpc3Q7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMudXJsTGluayA9IGAvaHlicmlkL2h0bWwvYWkuaHRtbD9kYXRhPSR7SlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhTGlzdHNOZXcpfSZ1c2VyPSR7SlNPTi5zdHJpbmdpZnkodGhpcy5nZXRVc2VySW5mbyl9JnRva2VuPSR7c3RvcmUuZ2V0dGVyc1snYXBpL2dldEFwaVRva2VuJ119JmRldmljZUlkPSR7dGhpcy5nZXRBY3RpY2VEZXZpY2UuZGV2aWNlX2lkfWA7XG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdCk7XG5cdFx0XHRcdFxuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYXBpL2dldEJpbmRVc2VyRGV2aWNlSWQnKS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0dGhpcy5kZXZpY2VMaXN0ID0gcmVzO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRcblx0XHRcdG1rSG91ck1pbihtaW4pe1xuXHRcdFx0XHRpZihtaW4gPCA2MCl7XG5cdFx0XHRcdFx0cmV0dXJuIFswLG1pbl1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gWyhNYXRoLmZsb29yKG1pbiAvIDYwKSksKG1pbiAlIDYwKV1cblx0XHRcdH0sXG5cdFx0XHRcblx0XHRcdC8vIOinpuWPkee7hOS7tlxuXHRcdFx0cGFnZURldGFpbChzdHIpIHtcblx0XHRcdFx0aWYgKHN0ciA9PSAnRUNHRGF0YScgfHwgc3RyID09ICdib2R5RGF0YScpIHtcblx0XHRcdFx0XHR0aGlzLlNpbmRleCA9IDM7XG5cdFx0XHRcdFx0dGhpcy5hY3RpdmVUeXBlID0gc3RyO1xuXHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHR9IGVsc2UgaWYgKHN0ciA9PSAnU2xlZXBEYXRhcycpIHtcblx0XHRcdFx0XHR0aGlzLlNpbmRleCA9IDQ7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5TaW5kZXggPSAyO1xuXHRcdFx0XHRcdHRoaXMuYWN0aXZlVHlwZSA9IHN0cjtcblx0XHRcdFx0XHRmb3IgKGxldCB2YWwgaW4gdGhpcy5kYXRhTGlzdHNOZXcpIHtcblx0XHRcdFx0XHRcdGlmIChzdHIgPT0gdmFsKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMucGFnZURhdGEgID0gdGhpcy5kYXRhTGlzdHNOZXdbdmFsXVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0dG9QYWdlKHVybCkge1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0XG5cdFx0XHRmb3JtYXREYXRlVGltZShkYXRlVGltZVN0cikge1xuXHRcdFx0XHRpZiAoZGF0ZVRpbWVTdHIpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0ZVRpbWVTdHIucmVwbGFjZSgvLS9nLCAnICcpLnJlcGxhY2UoJyAnLCAnICcsIDIpLnJlcGxhY2UoJyAnLCAnOicpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0XG5cdFx0XHQvLyDpgIDlh7rnmbvlvZVcblx0XHRcdG91dGxvZ2luKCkge1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBcGlUb2tlbicsICcnKVxuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBY3RpY2VEZXZpY2UnLCAnJylcblx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0VXNlckluZm8nLCAnJylcblx0XHRcdFx0XG5cdFx0XHRcdHVuaS5yZUxhdW5jaCh7XG5cdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0XG5cdFx0XHRnZXROYW1lQnlLZXkoa2V5KSB7XG5cdFx0XHQgICAgcmV0dXJuIHRoaXMua2V5TmFtZU1hcFtrZXldIHx8IFwiS2V5IG5vdCBmb3VuZFwiO1xuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0ZGV2aWNlR2V0KHZhbCkge1xuXHRcdFx0XHR0aGlzLmRldmljZUxpc3QgPSB2YWw7XG5cdFx0XHR9LFxuXHRcdFx0XG5cdFx0XHRhbGxEYXRhKGluZGV4KSB7XG5cdFx0XHRcdHRoaXMuU2luZGV4ID0gaW5kZXg7XG5cdFx0XHR9LFxuXHRcdFx0XG5cdFx0XHRiYWNrKGluZGV4KSB7XG5cdFx0XHRcdHRoaXMuU2luZGV4ID0gaW5kZXg7XG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuU2luZGV4KVxuXHRcdFx0fVxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuXHQuc2tlbGV0b24ge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHR6LWluZGV4OiA5OTk5O1xuXHR9XG5cdC5mbGV4X2RhdGF7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHQuZl9sZWZ0e1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcblx0XHR9XG5cdFx0LmZfcmlnaHR7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTZycHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29udGVudCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdC5jb250ZW50LXdyYXAge1xuXHRcdFx0d2lkdGg6IDYwJTtcblx0XHRcdGhlaWdodDogMTAwdmg7XG5cdFx0XHRvdmVyZmxvdzogc2Nyb2xsO1xuXHRcdH1cblx0XHQubGVmdCB7XG5cdFx0XHR3aWR0aDogNjAlO1xuXHRcdH1cblx0XHQucmlnaHQge1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0dG9wOiAwcnB4O1xuXHRcdFx0cmlnaHQ6IDBycHg7XG5cdFx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdFx0d2lkdGg6IDQwJTtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzMHJweDtcblx0XHR9XG5cdFx0LmNvbnRlbnQtaGVhZGVyIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xuXHRcdFx0cGFkZGluZzogMzBycHg7XG5cdFx0XHRoZWlnaHQ6IDQwMHJweDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0bWFyZ2luOiAwcnB4IDBycHggMzBycHggMHJweDtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdC5zaGEtZG93IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogNjQwcnB4O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cdFx0XHR9XG5cdFx0XHQudGV4dCB7XG5cdFx0XHRcdHdpZHRoOiA4MDBycHg7XG5cdFx0XHRcdC8vIGhlaWdodDogMzAwcnB4O1xuXHRcdFx0XHRsZWZ0OiAwcHg7XG5cdFx0XHRcdHRvcDogMHB4O1xuXHRcdFx0XHRyaWdodDowcHg7XG5cdFx0XHRcdGJvdHRvbTowcHg7XG5cdFx0XHRcdG1hcmdpbjphdXRvO1xuXHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0ei1pbmRleDogOTk5O1xuXHRcdFx0XHRiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnJweCk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcnB4O1xuXHRcdFx0XHRwYWRkaW5nOjIwcnB4O1xuXHRcdFx0XHRtYXJnaW4tdG9wOiA2MHJweDtcblx0XHRcdH1cblx0XHRcdC5sZWZ0IHtcblx0XHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDEwMHJweDtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDkwMDtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHJweDtcblx0XHRcdFx0XHR0ZXh0LXN0cm9rZTogMTBycHggd2hpdGU7XG5cdFx0XHRcdH1cblx0XHRcdFx0LmRlc2Mge1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXNpemU6IDM0cnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5yb3cge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblx0XHR9XG5cdFx0Lmxpc3Qtd3JhcCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdHBhZGRpbmc6IDBycHggNDBycHg7XG5cdFx0fVxuXHRcdC5jb250cm9sIHtcblx0XHRcdG1hcmdpbjogMHJweCA0MHJweDtcblx0XHRcdC5idG4ge1xuXHRcdFx0XHRmb250LXNpemU6IDM2cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcblx0XHRcdFx0cGFkZGluZzogMzBycHggNTBycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcnB4IDtcblx0XHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNjBycHggMCByZ2JhKDQzLDg2LDExMiwuMSkgO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuY29udGVudC1pdGVtIHtcblx0XHRcdHdpZHRoOiA0MiU7XG5cdFx0XHRtYXJnaW46IDIwcnB4IDEwcnB4O1xuXHRcdFx0cGFkZGluZzogMjBycHg7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzMHJweCA7XG5cdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2MHJweCAwIHJnYmEoNDMsODYsMTEyLC4xKSA7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgNjBycHggMCByZ2JhKDQzLDg2LDExMiwuMSkgO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzhycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDE0cnB4O1xuXHRcdFx0fVxuXHRcdFx0LnJvdy10aW1lIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IDEwcnB4O1xuXHRcdFx0XHRyaWdodDogMzBycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGNvbG9yOiBncmV5O1xuXHRcdFx0fVxuXHRcdFx0LmJnIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IDBycHg7XG5cdFx0XHRcdHJpZ2h0OiA1MHJweDtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cdFx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdFx0XHRpbWFnZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDI1MHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnRpbWUge1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRjb2xvcjogZ3JleTtcblx0XHRcdFx0cGFkZGluZzogMjBycHggMHJweCAyMHJweCAwcnB4O1xuXHRcdFx0fVxuXHRcdFx0LnJvdy1kYXRlIHtcblx0XHRcdFx0Zm9udC1zaXplOiA0NnJweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0dGV4dCB7XG5cdFx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMTBycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmRhdGUge1xuXHRcdFx0XHRmb250LXNpemU6IDQ2cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogMTAwcnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdFx0Y29sb3I6IGdyZXk7XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmdhcC1jb250ZW50IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0XHQuZ2FwLWl0ZW0ge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzNnJweDtcblx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHJweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Lm51bSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdFxuXHQvLyDmkq3mlL7lmajmoLflvI8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuXHQudmlkZW8ge1xuXHRcdHdpZHRoOiA4MCU7XG5cdFx0cGFkZGluZzogMHJweCAyMHJweDtcblx0fVxuXG5cdC8qIOmakOiXj+aJgOaciem7mOiupOaOp+S7tiAqL1xuXHR2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scyB7XG5cdCAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdCBcblx0dmlkZW86Oi1tb3otbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdHZpZGVvOjotbXMtbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdC8qIOmSiOWvueS4jeWQjOa1j+iniOWZqOeahOmakOiXj+aOp+S7tueahOaWueW8jyAqL1xuXHR2aWRlbzo6cGFydChtZWRpYS1jb250cm9scykge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHRcblx0dmlkZW8ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblx0XG5cdC52aWRlby13cmFwe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDYxOTNhO1xuXHRcdG1hcmdpbjogMHJweCAyMHJweDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXHRcblx0XG5cdFxuXHQucGFnZS1tYWluIHtcblx0ICAgICAgICBwYWRkaW5nOiAyMHJweDtcblx0ICAgIH1cblx0XG5cdC50aXRsZSB7XG5cdFx0bWFyZ2luOiAzMnJweDtcblx0fVxuXG5cdC5idG4taW5mbyB7XG5cdFx0d2lkdGg6IDYwMHJweDtcblx0XHRoZWlnaHQ6IDg4cnB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1hcmdpbi10b3A6IDMwcnB4O1xuXHRcdGJvcmRlcjogc29saWQgI2YwZjBmMCAxcHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdFx0cGFkZGluZzogMCAzMHJweDtcblx0fVxuXG5cdC5idG4taW5mbzEge1xuXHRcdHdpZHRoOiAzMDBycHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdH1cblx0LmNhcmQge1xuXHRcdHdpZHRoOiA4MDBycHggIWltcG9ydGFudDtcblx0fVxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _navtab = _interopRequireDefault(__webpack_require__(/*! ../../components/navtab/navtab.vue */ 74));\nvar _homeData = _interopRequireDefault(__webpack_require__(/*! ../../components/home-data/home-data.vue */ 79));\nvar _echartsData = _interopRequireDefault(__webpack_require__(/*! ../../components/echarts-data/echarts-data.vue */ 154));\nvar _allData = _interopRequireDefault(__webpack_require__(/*! ../../components/all-data/all-data.vue */ 171));\nvar _utils = __webpack_require__(/*! @/utils/utils.js */ 146);\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 148));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n components: {\n homeData: _homeData.default,\n echartsData: _echartsData.default,\n allData: _allData.default\n },\n data: function data() {\n return {\n Sindex: 1,\n keyNameMap: {\n bloodGlucose: \"血糖\",\n sleep: \"睡眠\",\n bloodOxygen: \"血氧\",\n bloodPressure: '血压',\n bloodLiquid: \"血脂\",\n meiTuo: '梅脱',\n pulseReat: '心率',\n updataDate: '更新时间',\n bodyTemperature: '体温'\n },\n dataLists: {},\n dataListsNew: {\n stepIndex: {},\n pulseReat: {},\n bloodOxygen: {},\n bloodPressure: {},\n bloodGlucose: {},\n meiTuo: {},\n bodyTemperature: {},\n bloodLiquid: {},\n ECGData: {},\n bodyData: {},\n SleepDatas: {}\n },\n name: '',\n name1: '',\n name2: '',\n deviceList: [],\n urlLink: '',\n activeType: '',\n // 选中的类型\n\n pageData: {\n type: ''\n },\n loading: true,\n customConfigs: {\n padding: '30rpx',\n //内边距\n gridRows: 2,\n //行数\n gridColumns: 1,\n //列数\n headShow: true,\n //head是否展示\n headWidth: '100%',\n //head宽度,支持百分比\n headHeight: '100vh',\n //head高度\n headBorderRadius: '12rpx' //head圆角,支持百分比\n }\n };\n },\n onLoad: function onLoad() {\n /*\n * 首页数据\n */\n this.onRefresh();\n setTimeout(function () {\n var avaudiosession = plus.ios.import(\"AVAudioSession\");\n var avaudio = avaudiosession.sharedInstance();\n avaudio.requestRecordPermission(function () {\n __f__(\"log\", '申请麦克风权限', \" at pages/index/index.vue:123\");\n });\n }, 1000);\n this.urlLink = \"/hybrid/html/ai.html\";\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\",\n getUserInfo: \"api/getUserInfo\"\n })),\n onReady: function onReady() {\n var pages = getCurrentPages();\n var page = pages[pages.length - 1];\n var currentWebview = page.$getAppWebview();\n setTimeout(function () {\n var wv = currentWebview.children()[0];\n //setStyle设置webview的宽高的位置\n wv.setStyle({\n top: 0,\n right: 0,\n height: uni.getSystemInfoSync().windowHeight,\n width: uni.getSystemInfoSync().windowWidth - 660\n });\n }, 100);\n },\n onPageScroll: function onPageScroll(e) {\n this.$refs.xtotop_ref.scroll(e);\n },\n methods: {\n getArrMaxValue: _utils.getArrMaxValue,\n onRefresh: function onRefresh(pageNo, pageSize) {\n var _this = this;\n this.$store.dispatch('api/getIndexData', {\n device_id: this.getActiceDevice.device_id,\n need_arr: ['pulseReat', 'bloodOxygen', 'bloodPressure', 'bloodGlucose', 'meiTuo', 'bodyTemperature', 'bloodLiquid', 'stepIndex', 'ECGData', 'SleepDatas', 'bodyData']\n }).then(function (res) {\n for (var i = 0; i < res.length; i++) {\n _this.dataListsNew[res[i].type] = res[i];\n _this.dataListsNew[res[i].name] = _this.getNameByKey(res[i].type);\n }\n\n // 身体成分\n // this.dataListsNew.bodyData = JSON.parse(JSON.stringify(this.dataListsNew.bloodLiquid));\n // this.dataListsNew.bodyData.type = 'bodyData';\n __f__(\"log\", _this.dataListsNew, \" at pages/index/index.vue:186\");\n if (_this.dataListsNew.ECGData.data_msg) {\n // 删除心电图点位\n delete _this.dataListsNew.ECGData.data_msg.wavefrom;\n delete _this.dataListsNew.ECGData.data_msg.list;\n }\n _this.urlLink = \"/hybrid/html/ai.html?data=\".concat(JSON.stringify(_this.dataListsNew), \"&user=\").concat(JSON.stringify(_this.getUserInfo), \"&token=\").concat(_index.default.getters['api/getApiToken'], \"&deviceId=\").concat(_this.getActiceDevice.device_id);\n _this.loading = false;\n });\n this.$store.dispatch('api/getBindUserDeviceId').then(function (res) {\n _this.deviceList = res;\n });\n },\n mkHourMin: function mkHourMin(min) {\n if (min < 60) {\n return [0, min];\n }\n return [Math.floor(min / 60), min % 60];\n },\n // 触发组件\n pageDetail: function pageDetail(str) {\n if (str == 'ECGData' || str == 'bodyData') {\n this.Sindex = 3;\n this.activeType = str;\n return;\n } else if (str == 'SleepDatas') {\n this.Sindex = 4;\n } else {\n this.Sindex = 2;\n this.activeType = str;\n if (str == 'bloodLiquidAll') {\n this.pageData = this.dataListsNew['bloodLiquid'];\n this.pageData.type = 'bloodLiquidAll';\n return;\n } else if (str == 'bloodLiquid') {\n this.pageData = this.dataListsNew['bloodLiquid'];\n this.pageData.type = 'bloodLiquid';\n return;\n } else {\n for (var val in this.dataListsNew) {\n if (str == val) {\n this.pageData = this.dataListsNew[val];\n }\n }\n }\n }\n },\n toPage: function toPage(url) {\n uni.navigateTo({\n url: url\n });\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (dateTimeStr) {\n return dateTimeStr.replace(/-/g, ' ').replace(' ', ' ', 2).replace(' ', ':');\n }\n },\n // 退出登录\n outlogin: function outlogin() {\n this.$store.commit('api/setApiToken', '');\n this.$store.commit('api/setActiceDevice', '');\n this.$store.commit('api/setUserInfo', '');\n uni.reLaunch({\n url: \"/pages/login/login\"\n });\n },\n getNameByKey: function getNameByKey(key) {\n return this.keyNameMap[key] || \"Key not found\";\n },\n deviceGet: function deviceGet(val) {\n this.deviceList = val;\n },\n allData: function allData(index) {\n this.Sindex = index;\n },\n back: function back(index) {\n this.Sindex = index;\n this.pageData.type = '';\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvaW5kZXgvaW5kZXgudnVlIl0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJob21lRGF0YSIsImVjaGFydHNEYXRhIiwiYWxsRGF0YSIsImRhdGEiLCJTaW5kZXgiLCJrZXlOYW1lTWFwIiwiYmxvb2RHbHVjb3NlIiwic2xlZXAiLCJibG9vZE94eWdlbiIsImJsb29kUHJlc3N1cmUiLCJibG9vZExpcXVpZCIsIm1laVR1byIsInB1bHNlUmVhdCIsInVwZGF0YURhdGUiLCJib2R5VGVtcGVyYXR1cmUiLCJkYXRhTGlzdHMiLCJkYXRhTGlzdHNOZXciLCJzdGVwSW5kZXgiLCJFQ0dEYXRhIiwiYm9keURhdGEiLCJTbGVlcERhdGFzIiwibmFtZSIsIm5hbWUxIiwibmFtZTIiLCJkZXZpY2VMaXN0IiwidXJsTGluayIsImFjdGl2ZVR5cGUiLCJwYWdlRGF0YSIsInR5cGUiLCJsb2FkaW5nIiwiY3VzdG9tQ29uZmlncyIsInBhZGRpbmciLCJncmlkUm93cyIsImdyaWRDb2x1bW5zIiwiaGVhZFNob3ciLCJoZWFkV2lkdGgiLCJoZWFkSGVpZ2h0IiwiaGVhZEJvcmRlclJhZGl1cyIsIm9uTG9hZCIsInNldFRpbWVvdXQiLCJhdmF1ZGlvIiwiY29tcHV0ZWQiLCJnZXRBY3RpY2VEZXZpY2UiLCJnZXRVc2VySW5mbyIsIm9uUmVhZHkiLCJ3diIsInRvcCIsInJpZ2h0IiwiaGVpZ2h0Iiwid2lkdGgiLCJvblBhZ2VTY3JvbGwiLCJtZXRob2RzIiwiZ2V0QXJyTWF4VmFsdWUiLCJvblJlZnJlc2giLCJkZXZpY2VfaWQiLCJuZWVkX2FyciIsIm1rSG91ck1pbiIsInBhZ2VEZXRhaWwiLCJ0b1BhZ2UiLCJ1bmkiLCJ1cmwiLCJmb3JtYXREYXRlVGltZSIsIm91dGxvZ2luIiwiZ2V0TmFtZUJ5S2V5IiwiZGV2aWNlR2V0IiwiYmFjayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUE4Q0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUEsZUFFQTtFQUNBQTtJQUFBQztJQUFBQztJQUFBQztFQUFBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUNBQztRQUNBQztRQUNBTDtRQUNBSjtRQUNBQztRQUNBSDtRQUNBSztRQUNBRztRQUNBSjtRQUNBUTtRQUNBQztRQUNBQztNQUNBO01BRUFDO01BQ0FDO01BQ0FDO01BQ0FDO01BR0FDO01BQ0FDO01BQUE7O01BRUFDO1FBQ0FDO01BQ0E7TUFFQUM7TUFDQUM7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7UUFBQTtRQUNBQztRQUFBO1FBQ0FDO1FBQUE7UUFDQUM7TUFDQTtJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFHQTtFQUNBO0VBQ0FDLDRCQUNBO0lBQ0FDO0lBQ0FDO0VBQ0EsR0FDQTtFQUVBQztJQUVBO0lBQ0E7SUFDQTtJQUNBTDtNQUNBO01BQ0E7TUFDQU07UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBRUE7RUFFQUM7SUFDQTtFQUNBO0VBRUFDO0lBQ0FDO0lBQ0FDO01BQUE7TUFDQTtRQUNBQztRQUNBQyxXQUNBLGFBQ0EsZUFDQSxpQkFDQSxnQkFDQSxVQUNBLG1CQUNBLGVBQ0EsYUFDQSxXQUNBLGNBQ0E7TUFFQTtRQUNBO1VBQ0E7VUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUVBO1FBQ0E7TUFDQSxFQUVBO01BRUE7UUFDQTtNQUNBO0lBQ0E7SUFFQUM7TUFDQTtRQUNBO01BQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFFQTtVQUNBO1VBQ0E7VUFDQTtRQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQTtZQUNBO2NBQ0E7WUFDQTtVQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUFDO01BQ0FDO1FBQ0FDO01BQ0E7SUFDQTtJQUVBQztNQUNBO1FBQ0E7TUFDQTtJQUNBO0lBRUE7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFFQUg7UUFDQUM7TUFDQTtJQUNBO0lBRUFHO01BQ0E7SUFDQTtJQUVBQztNQUNBO0lBQ0E7SUFFQTlEO01BQ0E7SUFDQTtJQUVBK0Q7TUFDQTtNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJza2VsZXRvbiBmbHhcIiB2LWlmPVwibG9hZGluZ1wiPlxuXHRcdFx0PHZpZXcgc3R5bGU9XCJ3aWR0aDogNjAlXCI+XG5cdFx0XHRcdDx4LXNrZWxldG9uIHR5cGU9XCJiYW5uZXJcIiA6bG9hZGluZz1cImxvYWRpbmdcIj48L3gtc2tlbGV0b24+XG5cdFx0XHRcdDx4LXNrZWxldG9uIHR5cGU9XCJiYW5uZXJcIiA6bG9hZGluZz1cImxvYWRpbmdcIj48L3gtc2tlbGV0b24+XG5cdFx0XHRcdDx4LXNrZWxldG9uIHR5cGU9XCJiYW5uZXJcIiA6bG9hZGluZz1cImxvYWRpbmdcIj48L3gtc2tlbGV0b24+XG5cdFx0XHRcdDx4LXNrZWxldG9uIHR5cGU9XCJiYW5uZXJcIiA6bG9hZGluZz1cImxvYWRpbmdcIj48L3gtc2tlbGV0b24+XG5cdFx0XHRcdDx4LXNrZWxldG9uIHR5cGU9XCJiYW5uZXJcIiA6bG9hZGluZz1cImxvYWRpbmdcIj48L3gtc2tlbGV0b24+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8dmlldyBzdHlsZT1cIndpZHRoOiA0MCVcIj5cblx0XHRcdFx0PHgtc2tlbGV0b24gOmxvYWRpbmc9XCJsb2FkaW5nXCIgOmNvbmZpZ3M9XCJjdXN0b21Db25maWdzXCIgZmFkZU91dD48L3gtc2tlbGV0b24+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC92aWV3PlxuXHRcblx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnRcIj5cblx0XHRcdDwhLS0g6aaW6aG15pWw5o2uIC0tPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LXdyYXBcIiAgdi1pZj1cIlNpbmRleCA9PSAxXCI+XG5cdFx0XHRcdDxob21lRGF0YSA6ZGF0YUxpc3RzTmV3PVwiZGF0YUxpc3RzTmV3XCIgOmRldmljZUxpc3Q9XCJkZXZpY2VMaXN0XCIgQGRldmljZUdldD1cImRldmljZUdldFwiIEBwYWdlRGV0YWlsPVwicGFnZURldGFpbFwiPjwvaG9tZURhdGE+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcblx0XHRcdDwhLS0g5Zu+6KGoIC0tPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LXdyYXBcIiB2LWlmPVwiU2luZGV4ID09IDJcIj5cblx0XHRcdFx0PGVjaGFydHNEYXRhIDpwYWdlRGF0YT1cInBhZ2VEYXRhXCIgQGJhY2s9XCJiYWNrXCIgQGFsbERhdGE9XCJhbGxEYXRhXCI+PC9lY2hhcnRzRGF0YT5cblx0XHRcdDwvdmlldz5cblx0XHRcdFxuXHRcdFx0PCEtLSDml6XmnJ/nrZvpgIkg5YWo6YOo5pWw5o2uIC0tPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LXdyYXBcIiB2LWlmPVwiU2luZGV4ID09IDNcIj5cblx0XHRcdFx0PGFsbERhdGEgQGJhY2s9XCJiYWNrXCIgOmFjdGl2ZVR5cGU9XCJhY3RpdmVUeXBlXCI+PC9hbGxEYXRhPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0XG5cdFx0XHQ8IS0tIOedoeecoCAtLT5cblx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC13cmFwXCIgdi1pZj1cIlNpbmRleCA9PSA0XCI+XG5cdFx0XHRcdDxzbGVlcC1pbmZvIHJlZj1cInNsZWVwXCIgQGJhY2s9XCJiYWNrXCI+PC9zbGVlcC1pbmZvPlxuXHRcdFx0PC92aWV3PlxuXHRcdFx0XG5cblx0XHRcdDwhLS0g5pWw5a2X5Lq6d2Vidmlld+WOn+eUn+mhtemdoiAtLT5cblx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRcIj5cblx0XHRcdFx0PHdlYi12aWV3IDpzcmM9XCJ1cmxMaW5rXCI+PC93ZWItdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XG5cdGltcG9ydCBuYXZ0YWIgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9uYXZ0YWIvbmF2dGFiLnZ1ZScgXG5cdFxuXHRpbXBvcnQgaG9tZURhdGEgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ob21lLWRhdGEvaG9tZS1kYXRhLnZ1ZSdcblx0aW1wb3J0IGVjaGFydHNEYXRhIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZWNoYXJ0cy1kYXRhL2VjaGFydHMtZGF0YS52dWUnXG5cdGltcG9ydCBhbGxEYXRhIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYWxsLWRhdGEvYWxsLWRhdGEudnVlJ1xuXHRcblx0aW1wb3J0IHsgZ2V0QXJyTWF4VmFsdWUgfSBmcm9tICdAL3V0aWxzL3V0aWxzLmpzJ1xuXHRpbXBvcnQgc3RvcmUgZnJvbSBcIkAvc3RvcmUvaW5kZXguanNcIjtcblx0aW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XG5cdFxuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0Y29tcG9uZW50czogeyBob21lRGF0YSwgZWNoYXJ0c0RhdGEsIGFsbERhdGEgfSxcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRTaW5kZXg6IDEsXG5cdFx0XHRcdGtleU5hbWVNYXA6IHtcblx0XHRcdFx0ICAgIGJsb29kR2x1Y29zZTogXCLooYDns5ZcIixcblx0XHRcdFx0ICAgIHNsZWVwOiBcIuedoeecoFwiLFxuXHRcdFx0XHRcdGJsb29kT3h5Z2VuOiBcIuihgOawp1wiLFxuXHRcdFx0XHRcdGJsb29kUHJlc3N1cmU6ICfooYDljosnLFxuXHRcdFx0XHQgICAgYmxvb2RMaXF1aWQ6IFwi6KGA6ISCXCIsXG5cdFx0XHRcdFx0bWVpVHVvOiAn5qKF6ISxJyxcblx0XHRcdFx0XHRwdWxzZVJlYXQ6ICflv4PnjocnLFxuXHRcdFx0XHRcdHVwZGF0YURhdGU6ICfmm7TmlrDml7bpl7QnLFxuXHRcdFx0XHRcdGJvZHlUZW1wZXJhdHVyZTogJ+S9k+a4qSdcblx0XHRcdFx0fSxcblx0XHRcdFx0ZGF0YUxpc3RzOiB7fSxcblx0XHRcdFx0ZGF0YUxpc3RzTmV3Ontcblx0XHRcdFx0XHRzdGVwSW5kZXg6e30sXG5cdFx0XHRcdFx0cHVsc2VSZWF0Ont9LFxuXHRcdFx0XHRcdGJsb29kT3h5Z2VuOnt9LFxuXHRcdFx0XHRcdGJsb29kUHJlc3N1cmU6e30sXG5cdFx0XHRcdFx0Ymxvb2RHbHVjb3NlOnt9LFxuXHRcdFx0XHRcdG1laVR1bzp7fSxcblx0XHRcdFx0XHRib2R5VGVtcGVyYXR1cmU6e30sXG5cdFx0XHRcdFx0Ymxvb2RMaXF1aWQ6e30sXG5cdFx0XHRcdFx0RUNHRGF0YTp7fSxcblx0XHRcdFx0XHRib2R5RGF0YTp7fSxcblx0XHRcdFx0XHRTbGVlcERhdGFzOnt9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFxuXHRcdFx0XHRuYW1lOiAnJyxcblx0XHRcdFx0bmFtZTE6ICcnLFxuXHRcdFx0XHRuYW1lMjogJycsXG5cdFx0XHRcdGRldmljZUxpc3Q6IFtdLFxuXHRcdFx0XHRcblx0XHRcdFx0XG5cdFx0XHRcdHVybExpbms6ICcnLFxuXHRcdFx0XHRhY3RpdmVUeXBlOiAnJywgIC8vIOmAieS4reeahOexu+Wei1xuXHRcdFx0XHRcblx0XHRcdFx0cGFnZURhdGE6IHtcblx0XHRcdFx0XHR0eXBlOiAnJ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRcblx0XHRcdFx0bG9hZGluZzogdHJ1ZSxcblx0XHRcdFx0Y3VzdG9tQ29uZmlnczoge1xuXHRcdFx0XHRcdHBhZGRpbmc6ICczMHJweCcsXHRcdCAgIFx0XHRcdFx0ICAvL+WGhei+uei3nVxuXHRcdFx0XHRcdGdyaWRSb3dzOiAyLCBcdFx0XHQgXHQgICBcdFx0XHQgIC8v6KGM5pWwXG5cdFx0XHRcdFx0Z3JpZENvbHVtbnM6IDEsXHQgIFx0XHQgIFx0ICAgXHRcdFx0ICAvL+WIl+aVsFxuXHRcdFx0XHRcdGhlYWRTaG93OiB0cnVlLFx0XHQgXHQgICBcdFx0XHRcdCAgLy9oZWFk5piv5ZCm5bGV56S6XG5cdFx0XHRcdFx0aGVhZFdpZHRoOiAnMTAwJScsXHQgIFx0ICAgXHRcdFx0XHQgIC8vaGVhZOWuveW6pu+8jOaUr+aMgeeZvuWIhuavlFxuXHRcdFx0XHRcdGhlYWRIZWlnaHQ6ICcxMDB2aCcsXHQgICBcdFx0XHRcdCAgLy9oZWFk6auY5bqmXG5cdFx0XHRcdFx0aGVhZEJvcmRlclJhZGl1czogJzEycnB4JywgXHRcdFx0XHQgIC8vaGVhZOWchuinku+8jOaUr+aMgeeZvuWIhuavlFxuXHRcdFx0XHR9XG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0b25Mb2FkKCkge1xuXHRcdFx0Lypcblx0XHRcdCog6aaW6aG15pWw5o2uXG5cdFx0XHQqL1xuXHRcdFx0dGhpcy5vblJlZnJlc2goKTtcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHZhciBhdmF1ZGlvc2Vzc2lvbiA9IHBsdXMuaW9zLmltcG9ydChcIkFWQXVkaW9TZXNzaW9uXCIpO1xuXHRcdFx0XHR2YXIgYXZhdWRpbyA9IGF2YXVkaW9zZXNzaW9uLnNoYXJlZEluc3RhbmNlKCk7XG5cdFx0XHRcdGF2YXVkaW8ucmVxdWVzdFJlY29yZFBlcm1pc3Npb24oKCk9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn55Sz6K+36bqm5YWL6aOO5p2D6ZmQJyk7ICBcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCAxMDAwKTtcblx0XHRcdC8vICNlbmRpZlxuXHRcdFx0XG5cdFx0XHR0aGlzLnVybExpbmsgPSBgL2h5YnJpZC9odG1sL2FpLmh0bWxgO1xyXG5cdFx0fSxcblx0XHRjb21wdXRlZDoge1xuXHRcdFx0Li4ubWFwR2V0dGVycyh7XG5cdFx0XHRcdGdldEFjdGljZURldmljZTogXCJhcGkvZ2V0QWN0aWNlRGV2aWNlXCIsXG5cdFx0XHRcdGdldFVzZXJJbmZvOiBcImFwaS9nZXRVc2VySW5mb1wiLFxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdFxuXHRcdG9uUmVhZHkoKSB7XG5cdFx0XHQvLyAjaWZkZWYgQVBQLVBMVVNcblx0XHRcdGxldCBwYWdlcyA9IGdldEN1cnJlbnRQYWdlcygpO1xuXHRcdFx0bGV0IHBhZ2UgPSBwYWdlc1twYWdlcy5sZW5ndGggLSAxXTtcblx0XHRcdGxldCBjdXJyZW50V2VidmlldyA9IHBhZ2UuJGdldEFwcFdlYnZpZXcoKTtcblx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGNvbnN0IHd2ID0gY3VycmVudFdlYnZpZXcuY2hpbGRyZW4oKVswXVxuXHRcdFx0XHQvL3NldFN0eWxl6K6+572ud2Vidmlld+eahOWuvemrmOeahOS9jee9rlxuXHRcdFx0XHR3di5zZXRTdHlsZSh7XG5cdFx0XHRcdFx0dG9wOiAwLFxuXHRcdFx0XHRcdHJpZ2h0OiAwLFxuXHRcdFx0XHRcdGhlaWdodDogdW5pLmdldFN5c3RlbUluZm9TeW5jKCkud2luZG93SGVpZ2h0LFxuXHRcdFx0XHRcdHdpZHRoOiB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS53aW5kb3dXaWR0aCAtIDY2MFxuXHRcdFx0XHR9KTtcblx0XHRcdH0sIDEwMCk7XG5cdFx0XHQvLyAjZW5kaWZcblx0XHR9LFxuXHRcdFxuXHRcdG9uUGFnZVNjcm9sbChlKSB7XG5cdFx0ICAgIHRoaXMuJHJlZnMueHRvdG9wX3JlZi5zY3JvbGwoZSk7XG5cdFx0fSxcblx0XHRcclxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGdldEFyck1heFZhbHVlLFxuXHRcdFx0b25SZWZyZXNoKHBhZ2VObywgcGFnZVNpemUpIHtcblx0XHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ2FwaS9nZXRJbmRleERhdGEnLCB7IFxuXHRcdFx0XHRcdGRldmljZV9pZDogdGhpcy5nZXRBY3RpY2VEZXZpY2UuZGV2aWNlX2lkICxcblx0XHRcdFx0XHRuZWVkX2FyciA6W1xuXHRcdFx0XHRcdFx0J3B1bHNlUmVhdCcsXG5cdFx0XHRcdFx0XHQnYmxvb2RPeHlnZW4nLFxuXHRcdFx0XHRcdFx0J2Jsb29kUHJlc3N1cmUnLFxuXHRcdFx0XHRcdFx0J2Jsb29kR2x1Y29zZScsXG5cdFx0XHRcdFx0XHQnbWVpVHVvJyxcblx0XHRcdFx0XHRcdCdib2R5VGVtcGVyYXR1cmUnLFxuXHRcdFx0XHRcdFx0J2Jsb29kTGlxdWlkJyxcblx0XHRcdFx0XHRcdCdzdGVwSW5kZXgnLFxuXHRcdFx0XHRcdFx0J0VDR0RhdGEnLFxuXHRcdFx0XHRcdFx0J1NsZWVwRGF0YXMnLFxuXHRcdFx0XHRcdFx0J2JvZHlEYXRhJ1xuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSkudGhlbihyZXMgPT4ge1xuXHRcdFx0XHRcdFx0Zm9yKGxldCBpID0gMDtpIDwgcmVzLmxlbmd0aDsgaSsrKXtcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhTGlzdHNOZXdbcmVzW2ldLnR5cGVdID0gcmVzW2ldXG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUxpc3RzTmV3W3Jlc1tpXS5uYW1lXSA9IHRoaXMuZ2V0TmFtZUJ5S2V5KHJlc1tpXS50eXBlKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQvLyDouqvkvZPmiJDliIZcblx0XHRcdFx0XHRcdC8vIHRoaXMuZGF0YUxpc3RzTmV3LmJvZHlEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFMaXN0c05ldy5ibG9vZExpcXVpZCkpO1xuXHRcdFx0XHRcdFx0Ly8gdGhpcy5kYXRhTGlzdHNOZXcuYm9keURhdGEudHlwZSA9ICdib2R5RGF0YSc7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLmRhdGFMaXN0c05ldylcblx0XHRcdFx0XHRcdGlmICh0aGlzLmRhdGFMaXN0c05ldy5FQ0dEYXRhLmRhdGFfbXNnKSB7XG5cdFx0XHRcdFx0XHRcdC8vIOWIoOmZpOW/g+eUteWbvueCueS9jVxuXHRcdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5kYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZy53YXZlZnJvbTtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIHRoaXMuZGF0YUxpc3RzTmV3LkVDR0RhdGEuZGF0YV9tc2cubGlzdDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy51cmxMaW5rID0gYC9oeWJyaWQvaHRtbC9haS5odG1sP2RhdGE9JHtKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFMaXN0c05ldyl9JnVzZXI9JHtKU09OLnN0cmluZ2lmeSh0aGlzLmdldFVzZXJJbmZvKX0mdG9rZW49JHtzdG9yZS5nZXR0ZXJzWydhcGkvZ2V0QXBpVG9rZW4nXX0mZGV2aWNlSWQ9JHt0aGlzLmdldEFjdGljZURldmljZS5kZXZpY2VfaWR9YDtcblx0XHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcblx0XHRcdFx0KTtcblx0XHRcdFx0XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0QmluZFVzZXJEZXZpY2VJZCcpLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLmRldmljZUxpc3QgPSByZXM7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0bWtIb3VyTWluKG1pbil7XG5cdFx0XHRcdGlmKG1pbiA8IDYwKXtcblx0XHRcdFx0XHRyZXR1cm4gWzAsbWluXVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBbKE1hdGguZmxvb3IobWluIC8gNjApKSwobWluICUgNjApXVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Ly8g6Kem5Y+R57uE5Lu2XG5cdFx0XHRwYWdlRGV0YWlsKHN0cikge1xuXHRcdFx0XHRpZiAoc3RyID09ICdFQ0dEYXRhJyB8fCBzdHIgPT0gJ2JvZHlEYXRhJykge1xuXHRcdFx0XHRcdHRoaXMuU2luZGV4ID0gMztcblx0XHRcdFx0XHR0aGlzLmFjdGl2ZVR5cGUgPSBzdHI7XG5cdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdH0gZWxzZSBpZiAoc3RyID09ICdTbGVlcERhdGFzJykge1xuXHRcdFx0XHRcdHRoaXMuU2luZGV4ID0gNDtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLlNpbmRleCA9IDI7XG5cdFx0XHRcdFx0dGhpcy5hY3RpdmVUeXBlID0gc3RyO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdGlmIChzdHIgPT0gJ2Jsb29kTGlxdWlkQWxsJykge1xuXHRcdFx0XHRcdFx0dGhpcy5wYWdlRGF0YSA9IHRoaXMuZGF0YUxpc3RzTmV3WydibG9vZExpcXVpZCddO1xuXHRcdFx0XHRcdFx0dGhpcy5wYWdlRGF0YS50eXBlID0gJ2Jsb29kTGlxdWlkQWxsJztcblx0XHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoc3RyID09ICdibG9vZExpcXVpZCcpIHtcblx0XHRcdFx0XHRcdHRoaXMucGFnZURhdGEgPSB0aGlzLmRhdGFMaXN0c05ld1snYmxvb2RMaXF1aWQnXTtcblx0XHRcdFx0XHRcdHRoaXMucGFnZURhdGEudHlwZSA9ICdibG9vZExpcXVpZCc7XG5cdFx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgdmFsIGluIHRoaXMuZGF0YUxpc3RzTmV3KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChzdHIgPT0gdmFsKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5wYWdlRGF0YSAgPSB0aGlzLmRhdGFMaXN0c05ld1t2YWxdXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRcblx0XHRcdHRvUGFnZSh1cmwpIHtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybFxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Zm9ybWF0RGF0ZVRpbWUoZGF0ZVRpbWVTdHIpIHtcblx0XHRcdFx0aWYgKGRhdGVUaW1lU3RyKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGVUaW1lU3RyLnJlcGxhY2UoLy0vZywgJyAnKS5yZXBsYWNlKCcgJywgJyAnLCAyKS5yZXBsYWNlKCcgJywgJzonKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Ly8g6YCA5Ye655m75b2VXG5cdFx0XHRvdXRsb2dpbigpIHtcblx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0QXBpVG9rZW4nLCAnJylcblx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0QWN0aWNlRGV2aWNlJywgJycpXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdCgnYXBpL3NldFVzZXJJbmZvJywgJycpXG5cdFx0XHRcdFxuXHRcdFx0XHR1bmkucmVMYXVuY2goe1xuXHRcdFx0XHRcdHVybDogXCIvcGFnZXMvbG9naW4vbG9naW5cIlxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Z2V0TmFtZUJ5S2V5KGtleSkge1xuXHRcdFx0ICAgIHJldHVybiB0aGlzLmtleU5hbWVNYXBba2V5XSB8fCBcIktleSBub3QgZm91bmRcIjtcblx0XHRcdH0sXG5cdFx0XHRcblx0XHRcdGRldmljZUdldCh2YWwpIHtcblx0XHRcdFx0dGhpcy5kZXZpY2VMaXN0ID0gdmFsO1xuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0YWxsRGF0YShpbmRleCkge1xuXHRcdFx0XHR0aGlzLlNpbmRleCA9IGluZGV4O1xuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0YmFjayhpbmRleCkge1xuXHRcdFx0XHR0aGlzLlNpbmRleCA9IGluZGV4O1xuXHRcdFx0XHR0aGlzLnBhZ2VEYXRhLnR5cGUgPSAnJztcblx0XHRcdH1cblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cblx0LnNrZWxldG9uIHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDB2aDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0ei1pbmRleDogOTk5OTtcblx0fVxuXHQuZmxleF9kYXRhe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0LmZfbGVmdHtcblx0XHRcdG1hcmdpbi1yaWdodDogMTBycHg7XG5cdFx0fVxuXHRcdC5mX3JpZ2h0e1xuXHRcdFx0cGFkZGluZy10b3A6IDE2cnB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHQuY29udGVudC13cmFwIHtcblx0XHRcdHdpZHRoOiA2MCU7XG5cdFx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdFx0b3ZlcmZsb3c6IHNjcm9sbDtcblx0XHR9XG5cdFx0LmxlZnQge1xuXHRcdFx0d2lkdGg6IDYwJTtcblx0XHR9XG5cdFx0LnJpZ2h0IHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDogMHJweDtcblx0XHRcdHJpZ2h0OiAwcnB4O1xuXHRcdFx0aGVpZ2h0OiAxMDB2aDtcblx0XHRcdHdpZHRoOiA0MCU7XG5cdFx0XHRwYWRkaW5nOiAzMHJweDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XG5cdFx0fVxuXHRcdC5jb250ZW50LWhlYWRlciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0aGVpZ2h0OiA0MDBycHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdG1hcmdpbjogMHJweCAwcnB4IDMwcnB4IDBycHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQuc2hhLWRvdyB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDY0MHJweDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRcdG9wYWNpdHk6IC40O1xuXHRcdFx0fVxuXHRcdFx0LnRleHQge1xuXHRcdFx0XHR3aWR0aDogODAwcnB4O1xuXHRcdFx0XHQvLyBoZWlnaHQ6IDMwMHJweDtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHR0b3A6IDBweDtcblx0XHRcdFx0cmlnaHQ6MHB4O1xuXHRcdFx0XHRib3R0b206MHB4O1xuXHRcdFx0XHRtYXJnaW46YXV0bztcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0XHRcdHotaW5kZXg6IDk5OTtcblx0XHRcdFx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDZycHgpO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcblx0XHRcdFx0cGFkZGluZzoyMHJweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogNjBycHg7XG5cdFx0XHR9XG5cdFx0XHQubGVmdCB7XG5cdFx0XHRcdC50aXRsZSB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxMDBycHg7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBycHg7XG5cdFx0XHRcdFx0dGV4dC1zdHJva2U6IDEwcnB4IHdoaXRlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5kZXNjIHtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAzNHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQucm93IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0fVxuXHRcdC5saXN0LXdyYXAge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0XHRwYWRkaW5nOiAwcnB4IDQwcnB4O1xuXHRcdH1cblx0XHQuY29udHJvbCB7XG5cdFx0XHRtYXJnaW46IDBycHggNDBycHg7XG5cdFx0XHQuYnRuIHtcblx0XHRcdFx0Zm9udC1zaXplOiAzNnJweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMzBycHg7XG5cdFx0XHRcdHBhZGRpbmc6IDMwcnB4IDUwcnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAyMHJweCA7XG5cdFx0XHRcdC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDYwcnB4IDAgcmdiYSg0Myw4NiwxMTIsLjEpIDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmNvbnRlbnQtaXRlbSB7XG5cdFx0XHR3aWR0aDogNDIlO1xuXHRcdFx0bWFyZ2luOiAyMHJweCAxMHJweDtcblx0XHRcdHBhZGRpbmc6IDIwcnB4O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHggO1xuXHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNjBycHggMCByZ2JhKDQzLDg2LDExMiwuMSkgO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDYwcnB4IDAgcmdiYSg0Myw4NiwxMTIsLjEpIDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IDM4cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNHJweDtcblx0XHRcdH1cblx0XHRcdC5yb3ctdGltZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAxMHJweDtcblx0XHRcdFx0cmlnaHQ6IDMwcnB4O1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRjb2xvcjogZ3JleTtcblx0XHRcdH1cblx0XHRcdC5iZyB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAwcnB4O1xuXHRcdFx0XHRyaWdodDogNTBycHg7XG5cdFx0XHRcdG9wYWNpdHk6IC40O1xuXHRcdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdFx0aW1hZ2Uge1xuXHRcdFx0XHRcdHdpZHRoOiAyNTBycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC50aW1lIHtcblx0XHRcdFx0Zm9udC1zaXplOiAyOHJweDtcblx0XHRcdFx0Y29sb3I6IGdyZXk7XG5cdFx0XHRcdHBhZGRpbmc6IDIwcnB4IDBycHggMjBycHggMHJweDtcblx0XHRcdH1cblx0XHRcdC5yb3ctZGF0ZSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDZycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdHRleHQge1xuXHRcdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjRycHg7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5kYXRlIHtcblx0XHRcdFx0Zm9udC1zaXplOiA0NnJweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRcdFx0XHQuaWNvbiB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDEwMHJweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRcdGNvbG9yOiBncmV5O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5nYXAtY29udGVudCB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdFx0LmdhcC1pdGVtIHtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiAyMHJweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdFx0LnRpdGxlIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMzZycHg7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTogMTBycHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdC5udW0ge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAyOHJweDtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHRcblx0Ly8g5pKt5pS+5Zmo5qC35byPICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblx0LnZpZGVvIHtcblx0XHR3aWR0aDogODAlO1xuXHRcdHBhZGRpbmc6IDBycHggMjBycHg7XG5cdH1cblxuXHQvKiDpmpDol4/miYDmnInpu5jorqTmjqfku7YgKi9cblx0dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdHZpZGVvOjotbW96LW1lZGlhLWNvbnRyb2xzIHtcblx0ICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0IFxuXHR2aWRlbzo6LW1zLW1lZGlhLWNvbnRyb2xzIHtcblx0ICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0IFxuXHQvKiDpkojlr7nkuI3lkIzmtY/op4jlmajnmoTpmpDol4/mjqfku7bnmoTmlrnlvI8gKi9cblx0dmlkZW86OnBhcnQobWVkaWEtY29udHJvbHMpIHtcblx0ICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdH1cblx0XG5cdHZpZGVvIHtcblx0XHRib3JkZXItcmFkaXVzOiAzMHJweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cdFxuXHQudmlkZW8td3JhcHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzA2MTkzYTtcblx0XHRtYXJnaW46IDBycHggMjBycHg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblx0XG5cdFxuXHRcblx0LnBhZ2UtbWFpbiB7XG5cdCAgICAgICAgcGFkZGluZzogMjBycHg7XG5cdCAgICB9XG5cdFxuXHQudGl0bGUge1xuXHRcdG1hcmdpbjogMzJycHg7XG5cdH1cblxuXHQuYnRuLWluZm8ge1xuXHRcdHdpZHRoOiA2MDBycHg7XG5cdFx0aGVpZ2h0OiA4OHJweDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRtYXJnaW4tdG9wOiAzMHJweDtcblx0XHRib3JkZXI6IHNvbGlkICNmMGYwZjAgMXB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEycnB4O1xuXHRcdHBhZGRpbmc6IDAgMzBycHg7XG5cdH1cblxuXHQuYnRuLWluZm8xIHtcblx0XHR3aWR0aDogMzAwcnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDEycnB4O1xuXHR9XG5cdC5jYXJkIHtcblx0XHR3aWR0aDogODAwcnB4ICFpbXBvcnRhbnQ7XG5cdH1cclxuPC9zdHlsZT5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///73\n"); /***/ }), /* 74 */ @@ -10941,7 +10941,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _navtab = _interopRequireDefault(__webpack_require__(/*! ../../components/navtab/navtab.vue */ 74));\nvar _homeData = _interopRequireDefault(__webpack_require__(/*! ../../components/home-data/home-data.vue */ 79));\nvar _utils = __webpack_require__(/*! @/utils/utils.js */ 146);\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 148));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n name: \"home-data\",\n props: {\n deviceList: {\n default: []\n },\n dataListsNew: {\n default: []\n }\n },\n data: function data() {\n return {\n keyNameMap: {\n bloodGlucose: \"血糖\",\n sleep: \"睡眠\",\n bloodOxygen: \"血氧\",\n bloodPressure: '血压',\n bloodLiquid: \"血脂\",\n meiTuo: '梅脱',\n pulseReat: '心率',\n updataDate: '更新时间',\n bodyData: '身体成分',\n bodyTemperature: '体温',\n bloodLiquidAll: '血脂'\n },\n dataLists: {},\n name: '',\n name1: '',\n name2: ''\n };\n },\n mounted: function mounted() {\n this.name2 = this.getActiceDevice.device_id;\n },\n onLoad: function onLoad() {\n /*\n * 首页数据\n */\n this.onRefresh();\n setTimeout(function () {\n var avaudiosession = plus.ios.import(\"AVAudioSession\");\n var avaudio = avaudiosession.sharedInstance();\n avaudio.requestRecordPermission(function () {\n __f__(\"log\", '申请麦克风权限', \" at components/home-data/home-data.vue:360\");\n });\n }, 1000);\n this.urlLink = \"/hybrid/html/ai.html\";\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\"\n })),\n onReady: function onReady() {\n var pages = getCurrentPages();\n var page = pages[pages.length - 1];\n var currentWebview = page.$getAppWebview();\n setTimeout(function () {\n var wv = currentWebview.children()[0];\n //setStyle设置webview的宽高的位置\n wv.setStyle({\n top: 0,\n right: 0,\n height: uni.getSystemInfoSync().windowHeight,\n width: uni.getSystemInfoSync().windowWidth - 660\n });\n }, 100);\n },\n methods: {\n getArrMaxValue: _utils.getArrMaxValue,\n onRefresh: function onRefresh(pageNo, pageSize) {\n var _this = this;\n this.$store.dispatch('api/getIndexData', {\n device_id: this.getActiceDevice.device_id,\n need_arr: ['pulseReat', 'bloodOxygen', 'bloodPressure', 'bloodGlucose', 'meiTuo', 'bodyTemperature', 'bloodLiquid', 'stepIndex', 'ECGData', 'SleepDatas', 'bodyData']\n }).then(function (res) {\n for (var i = 0; i < res.length; i++) {\n _this.dataListsNew[res[i].type] = res[i];\n _this.dataListsNew[res[i].name] = _this.getNameByKey(res[i].type);\n }\n _this.urlLink = \"/hybrid/html/ai.html?data=\".concat(JSON.stringify(res));\n _this.$refs.paging.complete();\n });\n this.$store.dispatch('api/getBindUserDeviceId').then(function (res) {\n _this.$emit('deviceGet', res);\n });\n },\n mkHourMin: function mkHourMin(min) {\n if (min < 60) {\n return [0, min];\n }\n return [Math.floor(min / 60), min % 60];\n },\n toPage: function toPage(url) {\n uni.navigateTo({\n url: url\n });\n },\n getNameByKey: function getNameByKey(key) {\n return this.keyNameMap[key] || \"Key not found\";\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (dateTimeStr) {\n return dateTimeStr.replace(/-/g, ' ').replace(' ', ' ', 2).replace(' ', ':');\n }\n },\n toPageCom: function toPageCom(val) {\n this.$emit('pageDetail', val);\n },\n // 退出登录\n outlogin: function outlogin() {\n this.$store.commit('api/setApiToken', '');\n this.$store.commit('api/setActiceDevice', '');\n this.$store.commit('api/setUserInfo', {});\n uni.reLaunch({\n url: \"/pages/login/login\"\n });\n },\n // 选中的设备\n changeDev: function changeDev(item) {\n var _this2 = this;\n this.name2 = item.device_id;\n this.$store.commit('api/setActiceDevice', item);\n\n // 查询个人信息\n this.$store.dispatch('api/getUserInfo').then(function (res) {\n _this2.$store.commit('api/setUserInfo', res);\n });\n uni.reLaunch({\n url: '/pages/index/index'\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9ob21lLWRhdGEvaG9tZS1kYXRhLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwicHJvcHMiLCJkZXZpY2VMaXN0IiwiZGVmYXVsdCIsImRhdGFMaXN0c05ldyIsImRhdGEiLCJrZXlOYW1lTWFwIiwiYmxvb2RHbHVjb3NlIiwic2xlZXAiLCJibG9vZE94eWdlbiIsImJsb29kUHJlc3N1cmUiLCJibG9vZExpcXVpZCIsIm1laVR1byIsInB1bHNlUmVhdCIsInVwZGF0YURhdGUiLCJib2R5RGF0YSIsImJvZHlUZW1wZXJhdHVyZSIsImJsb29kTGlxdWlkQWxsIiwiZGF0YUxpc3RzIiwibmFtZTEiLCJuYW1lMiIsIm1vdW50ZWQiLCJvbkxvYWQiLCJzZXRUaW1lb3V0IiwiYXZhdWRpbyIsImNvbXB1dGVkIiwiZ2V0QWN0aWNlRGV2aWNlIiwib25SZWFkeSIsInd2IiwidG9wIiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCIsIm1ldGhvZHMiLCJnZXRBcnJNYXhWYWx1ZSIsIm9uUmVmcmVzaCIsImRldmljZV9pZCIsIm5lZWRfYXJyIiwibWtIb3VyTWluIiwidG9QYWdlIiwidW5pIiwidXJsIiwiZ2V0TmFtZUJ5S2V5IiwiZm9ybWF0RGF0ZVRpbWUiLCJ0b1BhZ2VDb20iLCJvdXRsb2dpbiIsImNoYW5nZURldiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFxVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUQ7SUFDQTtFQUNBO0VBQ0FFO0lBQ0E7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUVBbEI7TUFDQW1CO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFHQTtFQUNBO0VBQ0FDLDRCQUNBO0lBQ0FDO0VBQ0EsR0FDQTtFQUVBQztJQUVBO0lBQ0E7SUFDQTtJQUNBSjtNQUNBO01BQ0E7TUFDQUs7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBRUE7RUFFQUM7SUFDQUM7SUFDQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0FDLFdBQ0EsYUFDQSxlQUNBLGlCQUNBLGdCQUNBLFVBQ0EsbUJBQ0EsZUFDQSxhQUNBLFdBQ0EsY0FDQTtNQUVBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFFQTtRQUNBO01BQ0EsRUFDQTtNQUVBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBQztRQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BQ0E7TUFFQUw7UUFDQUM7TUFDQTtJQUNBO0lBQ0E7SUFDQUs7TUFBQTtNQUNBO01BQ0E7O01BRUE7TUFDQTtRQUNBO01BQ0E7TUFFQU47UUFDQUM7TUFDQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDJCIiwiZmlsZSI6IjE0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXc+XG5cdFx0PHotcGFnaW5nIHJlZj1cInBhZ2luZ1wicmVmcmVzaGVyLW9ubHkgQG9uUmVmcmVzaD1cIm9uUmVmcmVzaFwiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggamNzYiBhY1wiPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIj5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCI+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNoYS1kb3dcIj48L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRleHRcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOWutuW6reWBpeW6t+euoeeQhlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiXCI+5YWx5Lqr5YGl5bq3ICAgIMK3ICAgICAg5a6I5oqk5a625Lq6PC90ZXh0PiBcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250cm9sIGZseCBmbHhfc2JcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnRuXCI+XG5cdFx0XHRcdFx0XHRcdDxsaXUtZGF0YS1zZWxlY3QgZWxlbWVudElkPVwiZGF0YS1zZWxlY3QzXCIgOmRhdGFMaXN0PVwiZGV2aWNlTGlzdFwiIEBjaGFuZ2U9XCJjaGFuZ2VEZXZcIiBiZ0NvbG9yPVwiI2ZmZlwiXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCIjMDAwXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgaWQ9XCJkYXRhLXNlbGVjdDNcIiBjbGFzcz1cImJ0bi1pbmZvMVwiPnt7bmFtZTI/ICforr7lpIfvvJonICsgbmFtZTIgOiAn6YCJ5oup6K6+5aSHJ319PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L2xpdS1kYXRhLXNlbGVjdD5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYnRuXCIgQGNsaWNrPVwib3V0bG9naW5cIj5cblx0XHRcdFx0XHRcdFx06YCA5Ye655m75b2VXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGlzdC13cmFwXCI+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbSByb3cgaGVhZGVyLWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ3N0ZXBJbmRleCcpXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj7ljaHot6/ph4w8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+e3tkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnID8gZGF0YUxpc3RzTmV3LnN0ZXBJbmRleC5kYXRhX21zZy5jYWxvcmllIC8gMTAgOiAnLS0nfX08L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD7ljYPljaE8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj7mraXmlbA8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+e3tkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnID8gZGF0YUxpc3RzTmV3LnN0ZXBJbmRleC5kYXRhX21zZy5zdGVwIDogJy0tJ319PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+5q2lPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIml0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+6Led56a7PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicm93LWRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3Pnt7ZGF0YUxpc3RzTmV3LnN0ZXBJbmRleC5kYXRhX21zZyA/IChkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnLmRpc3RhbmNlIC8gMTAwMCkudG9GaXhlZCgyKSA6ICctLSd9fTwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0PuWFrOmHjDwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctdGltZVwiIHYtaWY9XCJkYXRhTGlzdHNOZXcuc3RlcEluZGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0e3soZGF0YUxpc3RzTmV3LnN0ZXBJbmRleC5kZXZpY2VfcmVhbF90aW1lKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gPGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL+ihgOezli5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPiAtLT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW0gcm93IGhlYWRlci1pdGVtXCIgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogY29sdW1uXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdTbGVlcERhdGFzJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2dldE5hbWVCeUtleSgnc2xlZXAnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCIgdi1pZj1cImRhdGFMaXN0c05ldy5TbGVlcERhdGFzLmRhdGFfbXNnXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyB2LWlmPVwiIShpID09IDAgJiYgdiA9PSAwKVwiIGNsYXNzPVwiXCIgdi1mb3I9XCIodixpKSBpbiBta0hvdXJNaW4oZGF0YUxpc3RzTmV3LlNsZWVwRGF0YXMuZGF0YV9tc2dbMF0uc2xlZXBUb3RhbFRpbWUpXCIgOmtleT1cImlcIiBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiID5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7e3Z9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPnt7KGkgPT0gMD8n5pe2Jzon5YiGJyl9fTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1ib3R0b206IDBycHhcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5TbGVlcERhdGFzLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuU2xlZXBEYXRhcy5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3NsZWVwLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDIwMHJweDtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgnYmxvb2RHbHVjb3NlJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdibG9vZEdsdWNvc2UnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RHbHVjb3NlLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuYmxvb2RHbHVjb3NlLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZEdsdWNvc2UuZGF0YV9tc2cgfHwgJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfcmlnaHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5q+r5pGp5bCUL+WNhzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaWNvbi94dWV0YW5nLnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdibG9vZE94eWdlbicpXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2dldE5hbWVCeUtleSgnYmxvb2RPeHlnZW4nKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RPeHlnZW4uZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZE94eWdlbi5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX2xlZnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RPeHlnZW4uZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYmxvb2RPeHlnZW4uZGF0YV9tc2dbMF0pIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfcmlnaHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+JTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaWNvbi94dWV5YW5nLnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdibG9vZFByZXNzdXJlJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdibG9vZFByZXNzdXJlJyl9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kUHJlc3N1cmUuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZFByZXNzdXJlLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZFByZXNzdXJlLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuYmxvb2RQcmVzc3VyZS5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaCArICcvJyArIGRhdGFMaXN0c05ldy5ibG9vZFByZXNzdXJlLmRhdGFfbXNnLmJsb29kUHJlc3N1cmVMb3cgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj5tbUhHPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3h1ZXlhLnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2JvZHlUZW1wZXJhdHVyZScpXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2dldE5hbWVCeUtleSgnYm9keVRlbXBlcmF0dXJlJyl9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJvZHlUZW1wZXJhdHVyZS5kYXRhX21zZz8gZGF0YUxpc3RzTmV3LmJvZHlUZW1wZXJhdHVyZS5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX2xlZnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYm9keVRlbXBlcmF0dXJlLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJvZHlUZW1wZXJhdHVyZS5kYXRhX21zZykgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj7ihIM8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24vd2VuZHUucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgncHVsc2VSZWF0JylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdwdWxzZVJlYXQnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcucHVsc2VSZWF0LmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcucHVsc2VSZWF0LmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5wdWxzZVJlYXQuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcucHVsc2VSZWF0LmRhdGFfbXNnWzBdKSA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuasoS/liIY8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24vbWFpbHYucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ0VDR0RhdGEnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx05b+D55S15Zu+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZz8gZGF0YUxpc3RzTmV3LkVDR0RhdGEuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LkVDR0RhdGEuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZy5oZWFydFJhdGUgfHwgZGF0YUxpc3RzTmV3LkVDR0RhdGEuZGF0YV9tc2cubWVhbkhlYXJ0UmF0ZSkgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj7mrKEv5YiGPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3hpbmRpYW50dS5wbmdcIiBzdHlsZT1cIndpZHRoOiAyMjBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiICBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2JvZHlEYXRhJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdOi6q+S9k+aIkOWIhlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJvZHlEYXRhLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuYm9keURhdGEuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJvZHlEYXRhLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJvZHlEYXRhLmRhdGFfbXNnLkJNSSApIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfcmlnaHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+Qk1JPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3J0Y2YucG5nXCIgc3R5bGU9XCJ3aWR0aDogMjIwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2Jsb29kTGlxdWlkJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdOWwv+mFuFxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnLnVyaWNBY2lkVmFsIC8gMTApLnRvRml4ZWQoMikgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj7lvq7mkanlsJQv5Y2HPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL25pYW9zdWFuLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDIyMHJweDtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdibG9vZExpcXVpZEFsbCcpXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2dldE5hbWVCeUtleSgnYmxvb2RMaXF1aWRBbGwnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImdhcC1jb250ZW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJnYXAtaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHTmgLvog4blm7rphodcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibnVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnLmNob2xlc3Rlcm9sIC8gMTAwKS50b0ZpeGVkKDIpIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuavq+aRqeWwlC/ljYc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZ2FwLWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx055SY5rK55LiJ6ISCXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm51bVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kYXRhX21zZz8gKGRhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kYXRhX21zZy50cmlhY3lsZ2x5Y2Vyb2wgLyAxMDApLnRvRml4ZWQoMikgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5q+r5pGp5bCUL+WNhzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJnYXAtaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHTpq5jlr4bluqbohILom4vnmb1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibnVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnLmhpZ2hEZW5zaXR5IC8gMTAwKS50b0ZpeGVkKDIpIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuavq+aRqeWwlC/ljYc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZ2FwLWl0ZW1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx05L2O5a+G5bqm6ISC6JuL55m9XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm51bVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kYXRhX21zZz8gKGRhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kYXRhX21zZy5sb3dEZW5zaXR5IC8gMTAwKS50b0ZpeGVkKDIpIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuavq+aRqeWwlC/ljYc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHQ8L3ZpZXc+XG5cdFx0PC96LXBhZ2luZz5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cblx0aW1wb3J0IG5hdnRhYiBmcm9tICcuLi8uLi9jb21wb25lbnRzL25hdnRhYi9uYXZ0YWIudnVlJyBcblx0aW1wb3J0IGhvbWVEYXRhIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaG9tZS1kYXRhL2hvbWUtZGF0YS52dWUnXG5cdGltcG9ydCB7IGdldEFyck1heFZhbHVlIH0gZnJvbSAnQC91dGlscy91dGlscy5qcydcblx0aW1wb3J0IHN0b3JlIGZyb20gXCJAL3N0b3JlL2luZGV4LmpzXCI7XG5cdGltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tIFwidnVleFwiO1xuXHRleHBvcnQgZGVmYXVsdCB7XG5cdFx0bmFtZTpcImhvbWUtZGF0YVwiLFxuXHRcdHByb3BzOiB7XG5cdFx0XHRkZXZpY2VMaXN0OiB7XG5cdFx0XHRcdGRlZmF1bHQ6IFtdXG5cdFx0XHR9LFxuXHRcdFx0ZGF0YUxpc3RzTmV3OiB7XG5cdFx0XHRcdGRlZmF1bHQ6IFtdXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRkYXRhKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0a2V5TmFtZU1hcDoge1xuXHRcdFx0XHQgICAgYmxvb2RHbHVjb3NlOiBcIuihgOezllwiLFxuXHRcdFx0XHQgICAgc2xlZXA6IFwi552h55ygXCIsXG5cdFx0XHRcdFx0Ymxvb2RPeHlnZW46IFwi6KGA5rCnXCIsXG5cdFx0XHRcdFx0Ymxvb2RQcmVzc3VyZTogJ+ihgOWOiycsXG5cdFx0XHRcdCAgICBibG9vZExpcXVpZDogXCLooYDohIJcIixcblx0XHRcdFx0XHRtZWlUdW86ICfmooXohLEnLFxuXHRcdFx0XHRcdHB1bHNlUmVhdDogJ+W/g+eOhycsXG5cdFx0XHRcdFx0dXBkYXRhRGF0ZTogJ+abtOaWsOaXtumXtCcsXG5cdFx0XHRcdFx0Ym9keURhdGE6ICfouqvkvZPmiJDliIYnLFxuXHRcdFx0XHRcdGJvZHlUZW1wZXJhdHVyZTogJ+S9k+a4qScsXG5cdFx0XHRcdFx0Ymxvb2RMaXF1aWRBbGw6ICfooYDohIInXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGRhdGFMaXN0czoge30sXG5cdFx0XHRcdFxuXHRcdFx0XHRuYW1lOiAnJyxcblx0XHRcdFx0bmFtZTE6ICcnLFxuXHRcdFx0XHRuYW1lMjogJycsXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRtb3VudGVkKCkge1xuXHRcdFx0dGhpcy5uYW1lMiA9IHRoaXMuZ2V0QWN0aWNlRGV2aWNlLmRldmljZV9pZFxuXHRcdH0sXG5cdFx0b25Mb2FkKCkge1xuXHRcdFx0Lypcblx0XHRcdCog6aaW6aG15pWw5o2uXG5cdFx0XHQqL1xuXHRcdFx0dGhpcy5vblJlZnJlc2goKTtcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHZhciBhdmF1ZGlvc2Vzc2lvbiA9IHBsdXMuaW9zLmltcG9ydChcIkFWQXVkaW9TZXNzaW9uXCIpO1xuXHRcdFx0XHR2YXIgYXZhdWRpbyA9IGF2YXVkaW9zZXNzaW9uLnNoYXJlZEluc3RhbmNlKCk7XG5cdFx0XHRcdGF2YXVkaW8ucmVxdWVzdFJlY29yZFBlcm1pc3Npb24oKCk9Pntcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn55Sz6K+36bqm5YWL6aOO5p2D6ZmQJyk7ICBcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCAxMDAwKTtcblx0XHRcdC8vICNlbmRpZlxuXHRcdFx0XG5cdFx0XHR0aGlzLnVybExpbmsgPSBgL2h5YnJpZC9odG1sL2FpLmh0bWxgO1xuXHRcdH0sXG5cdFx0Y29tcHV0ZWQ6IHtcblx0XHRcdC4uLm1hcEdldHRlcnMoe1xuXHRcdFx0XHRnZXRBY3RpY2VEZXZpY2U6IFwiYXBpL2dldEFjdGljZURldmljZVwiXG5cdFx0XHR9KVxuXHRcdH0sXG5cdFx0XG5cdFx0b25SZWFkeSgpIHtcblx0XHRcdC8vICNpZmRlZiBBUFAtUExVU1xuXHRcdFx0bGV0IHBhZ2VzID0gZ2V0Q3VycmVudFBhZ2VzKCk7XG5cdFx0XHRsZXQgcGFnZSA9IHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdO1xuXHRcdFx0bGV0IGN1cnJlbnRXZWJ2aWV3ID0gcGFnZS4kZ2V0QXBwV2VidmlldygpO1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0Y29uc3Qgd3YgPSBjdXJyZW50V2Vidmlldy5jaGlsZHJlbigpWzBdXG5cdFx0XHRcdC8vc2V0U3R5bGXorr7nva53ZWJ2aWV355qE5a696auY55qE5L2N572uXG5cdFx0XHRcdHd2LnNldFN0eWxlKHtcblx0XHRcdFx0XHR0b3A6IDAsXG5cdFx0XHRcdFx0cmlnaHQ6IDAsXG5cdFx0XHRcdFx0aGVpZ2h0OiB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKS53aW5kb3dIZWlnaHQsXG5cdFx0XHRcdFx0d2lkdGg6IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLndpbmRvd1dpZHRoIC0gNjYwXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgMTAwKTtcblx0XHRcdC8vICNlbmRpZlxuXHRcdH0sXG5cdFx0XG5cdFx0bWV0aG9kczoge1xuXHRcdFx0Z2V0QXJyTWF4VmFsdWUsXG5cdFx0XHRvblJlZnJlc2gocGFnZU5vLCBwYWdlU2l6ZSkge1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYXBpL2dldEluZGV4RGF0YScsIHsgXG5cdFx0XHRcdFx0ZGV2aWNlX2lkOiB0aGlzLmdldEFjdGljZURldmljZS5kZXZpY2VfaWQgLFxuXHRcdFx0XHRcdG5lZWRfYXJyIDpbXG5cdFx0XHRcdFx0XHQncHVsc2VSZWF0Jyxcblx0XHRcdFx0XHRcdCdibG9vZE94eWdlbicsXG5cdFx0XHRcdFx0XHQnYmxvb2RQcmVzc3VyZScsXG5cdFx0XHRcdFx0XHQnYmxvb2RHbHVjb3NlJyxcblx0XHRcdFx0XHRcdCdtZWlUdW8nLFxuXHRcdFx0XHRcdFx0J2JvZHlUZW1wZXJhdHVyZScsXG5cdFx0XHRcdFx0XHQnYmxvb2RMaXF1aWQnLFxuXHRcdFx0XHRcdFx0J3N0ZXBJbmRleCcsXG5cdFx0XHRcdFx0XHQnRUNHRGF0YScsXG5cdFx0XHRcdFx0XHQnU2xlZXBEYXRhcycsXG5cdFx0XHRcdFx0XHQnYm9keURhdGEnXG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHR9KS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0XHRmb3IobGV0IGkgPSAwO2kgPCByZXMubGVuZ3RoOyBpKyspe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFMaXN0c05ld1tyZXNbaV0udHlwZV0gPSByZXNbaV1cblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhTGlzdHNOZXdbcmVzW2ldLm5hbWVdID0gdGhpcy5nZXROYW1lQnlLZXkocmVzW2ldLnR5cGUpXG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHRoaXMudXJsTGluayA9IGAvaHlicmlkL2h0bWwvYWkuaHRtbD9kYXRhPSR7SlNPTi5zdHJpbmdpZnkocmVzKX1gO1xuXHRcdFx0XHRcdFx0dGhpcy4kcmVmcy5wYWdpbmcuY29tcGxldGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHRcdFxuXHRcdFx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYXBpL2dldEJpbmRVc2VyRGV2aWNlSWQnKS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0dGhpcy4kZW1pdCgnZGV2aWNlR2V0JywgcmVzKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0bWtIb3VyTWluKG1pbil7XG5cdFx0XHRcdGlmKG1pbiA8IDYwKXtcblx0XHRcdFx0XHRyZXR1cm4gWzAsbWluXVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBbKE1hdGguZmxvb3IobWluIC8gNjApKSwobWluICUgNjApXVxuXHRcdFx0fSxcblx0XHRcdHRvUGFnZSh1cmwpIHtcblx0XHRcdFx0dW5pLm5hdmlnYXRlVG8oe1xuXHRcdFx0XHRcdHVybFxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdGdldE5hbWVCeUtleShrZXkpIHtcblx0XHRcdCAgICByZXR1cm4gdGhpcy5rZXlOYW1lTWFwW2tleV0gfHwgXCJLZXkgbm90IGZvdW5kXCI7XG5cdFx0XHR9LFxuXHRcdFx0Zm9ybWF0RGF0ZVRpbWUoZGF0ZVRpbWVTdHIpIHtcblx0XHRcdFx0aWYgKGRhdGVUaW1lU3RyKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGVUaW1lU3RyLnJlcGxhY2UoLy0vZywgJyAnKS5yZXBsYWNlKCcgJywgJyAnLCAyKS5yZXBsYWNlKCcgJywgJzonKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHRvUGFnZUNvbSh2YWwpIHtcblx0XHRcdFx0dGhpcy4kZW1pdCgncGFnZURldGFpbCcsIHZhbClcblx0XHRcdH0sXG5cdFx0XHQvLyDpgIDlh7rnmbvlvZVcblx0XHRcdG91dGxvZ2luKCkge1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBcGlUb2tlbicsICcnKVxuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBY3RpY2VEZXZpY2UnLCAnJylcblx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0VXNlckluZm8nLCB7fSlcblx0XHRcdFx0XG5cdFx0XHRcdHVuaS5yZUxhdW5jaCh7XG5cdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8g6YCJ5Lit55qE6K6+5aSHXG5cdFx0XHRjaGFuZ2VEZXYoaXRlbSkge1xuXHRcdFx0XHR0aGlzLm5hbWUyID0gaXRlbS5kZXZpY2VfaWQ7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdCgnYXBpL3NldEFjdGljZURldmljZScsIGl0ZW0pO1xuXHRcdFx0XHRcblx0XHRcdFx0Ly8g5p+l6K+i5Liq5Lq65L+h5oGvXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0VXNlckluZm8nKS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0VXNlckluZm8nLCByZXMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0XG5cdFx0XHRcdHVuaS5yZUxhdW5jaCh7XG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2luZGV4L2luZGV4J1xuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG5cdC5mbGV4X2RhdGF7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHQuZl9sZWZ0e1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcblx0XHR9XG5cdFx0LmZfcmlnaHR7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTZycHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29udGVudCB7XG5cdFx0cGFkZGluZzogMjBycHggMzBycHg7XG5cdFx0bWFyZ2luLXRvcDoyMHJweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0LmxlZnQge1xuXHRcdFx0d2lkdGg6IDYwJTtcblx0XHR9XG5cdFx0LnJpZ2h0IHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHJpZ2h0OiAwcnB4O1xuXHRcdFx0aGVpZ2h0OiAxMDB2aDtcblx0XHRcdHdpZHRoOiA0MCU7XG5cdFx0XHRwYWRkaW5nOiAzMHJweDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XG5cdFx0fVxuXHRcdC5jb250ZW50LWhlYWRlciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0aGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdG1hcmdpbjogMHJweCAwcnB4IDMwcnB4IDBycHg7XG5cdFx0XHQvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vaW1nLmFncmltZWRpYS5jbi93YXRjaC1hcHAvaGVhZGVyLWJnLnBuZycpO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0LnNoYS1kb3cge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRvcGFjaXR5OiAuNDtcblx0XHRcdH1cblx0XHRcdC50ZXh0IHtcblx0XHRcdFx0d2lkdGg6IDgwMHJweDtcblx0XHRcdFx0Ly8gaGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRcdGxlZnQ6IDBweDtcblx0XHRcdFx0dG9wOiAwcHg7XG5cdFx0XHRcdHJpZ2h0OjBweDtcblx0XHRcdFx0Ym90dG9tOjBweDtcblx0XHRcdFx0bWFyZ2luOmF1dG87XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHR6LWluZGV4OiA5OTk7XG5cdFx0XHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cnB4KTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XG5cdFx0XHRcdHBhZGRpbmc6MjBycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDYwcnB4O1xuXHRcdFx0fVxuXHRcdFx0LmxlZnQge1xuXHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTAwcnB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogOTAwO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xuXHRcdFx0XHRcdHRleHQtc3Ryb2tlOiAxMHJweCB3aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQuZGVzYyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMzRycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0LnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdH1cblx0XHQubGlzdC13cmFwIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cGFkZGluZzogMHJweCA0MHJweDtcblx0XHR9XG5cdFx0LmNvbnRyb2wge1xuXHRcdFx0bWFyZ2luOiAwcnB4IDQwcnB4O1xuXHRcdFx0LmJ0biB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzZycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xuXHRcdFx0XHRwYWRkaW5nOiAzMHJweCA1MHJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjBycHggO1xuXHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2MHJweCAwIHJnYmEoNDMsODYsMTEyLC4xKSA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5oZWFkZXItaXRlbSB7XG5cdFx0XHRoZWlnaHQ6IDI4MHJweCAhaW1wb3J0YW50O1xuXHRcdFx0cGFkZGluZy10b3A6IDBycHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0LmNvbnRlbnQtaXRlbSB7XG5cdFx0XHR3aWR0aDogNDIlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAyMHJweCAxMHJweDtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHggO1xuXHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNjBycHggMCByZ2JhKDQzLDg2LDExMiwuMSkgO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDYwcnB4IDAgcmdiYSg0Myw4NiwxMTIsLjEpIDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IDM4cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNHJweDtcblx0XHRcdH1cblx0XHRcdC5yb3ctdGltZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAzMHJweDtcblx0XHRcdFx0bGVmdDogNjBycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGNvbG9yOiBncmV5O1xuXHRcdFx0fVxuXHRcdFx0LmJnIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IDBycHg7XG5cdFx0XHRcdHJpZ2h0OiA1MHJweDtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cdFx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdFx0XHRpbWFnZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDI1MHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnRpbWUge1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRjb2xvcjogZ3JleTtcblx0XHRcdFx0cGFkZGluZzogMjBycHggMHJweCAyMHJweCAwcnB4O1xuXHRcdFx0fVxuXHRcdFx0LnJvdy1kYXRlIHtcblx0XHRcdFx0Zm9udC1zaXplOiA0NnJweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0dGV4dCB7XG5cdFx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMTBycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmRhdGUge1xuXHRcdFx0XHRmb250LXNpemU6IDQ2cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogMTAwcnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdFx0Y29sb3I6IGdyZXk7XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmdhcC1jb250ZW50IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0XHQuZ2FwLWl0ZW0ge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzNnJweDtcblx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHJweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Lm51bSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdFxuXHQvLyDmkq3mlL7lmajmoLflvI8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuXHQudmlkZW8ge1xuXHRcdHdpZHRoOiA4MCU7XG5cdFx0cGFkZGluZzogMHJweCAyMHJweDtcblx0fVxuXG5cdC8qIOmakOiXj+aJgOaciem7mOiupOaOp+S7tiAqL1xuXHR2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scyB7XG5cdCAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdCBcblx0dmlkZW86Oi1tb3otbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdHZpZGVvOjotbXMtbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdC8qIOmSiOWvueS4jeWQjOa1j+iniOWZqOeahOmakOiXj+aOp+S7tueahOaWueW8jyAqL1xuXHR2aWRlbzo6cGFydChtZWRpYS1jb250cm9scykge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHRcblx0dmlkZW8ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblx0XG5cdC52aWRlby13cmFwe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDYxOTNhO1xuXHRcdG1hcmdpbjogMHJweCAyMHJweDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXHRcblx0XG5cdFxuXHQucGFnZS1tYWluIHtcblx0ICAgICAgICBwYWRkaW5nOiAyMHJweDtcblx0ICAgIH1cblx0XG5cblx0LmJ0bi1pbmZvIHtcblx0XHR3aWR0aDogNjAwcnB4O1xuXHRcdGhlaWdodDogODhycHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWFyZ2luLXRvcDogMzBycHg7XG5cdFx0Ym9yZGVyOiBzb2xpZCAjZjBmMGYwIDFweDtcblx0XHRib3JkZXItcmFkaXVzOiAxMnJweDtcblx0XHRwYWRkaW5nOiAwIDMwcnB4O1xuXHR9XG5cblx0LmJ0bi1pbmZvMSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdH1cblx0LmNhcmQge1xuXHRcdHdpZHRoOiA4MDBycHggIWltcG9ydGFudDtcblx0fVxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar _navtab = _interopRequireDefault(__webpack_require__(/*! ../../components/navtab/navtab.vue */ 74));\nvar _homeData = _interopRequireDefault(__webpack_require__(/*! ../../components/home-data/home-data.vue */ 79));\nvar _utils = __webpack_require__(/*! @/utils/utils.js */ 146);\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 148));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default = {\n name: \"home-data\",\n props: {\n deviceList: {\n default: []\n },\n dataListsNew: {\n default: []\n }\n },\n data: function data() {\n return {\n keyNameMap: {\n bloodGlucose: \"血糖\",\n sleep: \"睡眠\",\n bloodOxygen: \"血氧\",\n bloodPressure: '血压',\n bloodLiquid: \"血脂\",\n meiTuo: '梅脱',\n pulseReat: '心率',\n updataDate: '更新时间',\n bodyData: '身体成分',\n bodyTemperature: '体温',\n bloodLiquidAll: '血脂'\n },\n dataLists: {},\n name: '',\n name1: '',\n name2: ''\n };\n },\n mounted: function mounted() {\n this.name2 = this.getActiceDevice.device_id;\n },\n onLoad: function onLoad() {\n /*\n * 首页数据\n */\n this.onRefresh();\n setTimeout(function () {\n var avaudiosession = plus.ios.import(\"AVAudioSession\");\n var avaudio = avaudiosession.sharedInstance();\n avaudio.requestRecordPermission(function () {\n __f__(\"log\", '申请麦克风权限', \" at components/home-data/home-data.vue:360\");\n });\n }, 1000);\n this.urlLink = \"/hybrid/html/ai.html\";\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\"\n })),\n onReady: function onReady() {\n var pages = getCurrentPages();\n var page = pages[pages.length - 1];\n var currentWebview = page.$getAppWebview();\n setTimeout(function () {\n var wv = currentWebview.children()[0];\n //setStyle设置webview的宽高的位置\n wv.setStyle({\n top: 0,\n right: 0,\n height: uni.getSystemInfoSync().windowHeight,\n width: uni.getSystemInfoSync().windowWidth - 660\n });\n }, 100);\n },\n methods: {\n getArrMaxValue: _utils.getArrMaxValue,\n onRefresh: function onRefresh(pageNo, pageSize) {\n var _this = this;\n this.$store.dispatch('api/getIndexData', {\n device_id: this.getActiceDevice.device_id,\n need_arr: ['pulseReat', 'bloodOxygen', 'bloodPressure', 'bloodGlucose', 'meiTuo', 'bodyTemperature', 'bloodLiquid', 'stepIndex', 'ECGData', 'SleepDatas', 'bodyData']\n }).then(function (res) {\n for (var i = 0; i < res.length; i++) {\n _this.dataListsNew[res[i].type] = res[i];\n _this.dataListsNew[res[i].name] = _this.getNameByKey(res[i].type);\n }\n _this.urlLink = \"/hybrid/html/ai.html?data=\".concat(JSON.stringify(res));\n _this.$refs.paging.complete();\n });\n this.$store.dispatch('api/getBindUserDeviceId').then(function (res) {\n _this.$emit('deviceGet', res);\n });\n },\n mkHourMin: function mkHourMin(min) {\n if (min < 60) {\n return [0, min];\n }\n return [Math.floor(min / 60), min % 60];\n },\n toPage: function toPage(url) {\n uni.navigateTo({\n url: url\n });\n },\n getNameByKey: function getNameByKey(key) {\n return this.keyNameMap[key] || \"Key not found\";\n },\n formatDateTime: function formatDateTime(dateTimeStr) {\n if (dateTimeStr) {\n return dateTimeStr.replace(/-/g, ' ').replace(' ', ' ', 2).replace(' ', ':');\n }\n },\n toPageCom: function toPageCom(val) {\n this.$emit('pageDetail', val);\n this.$store.commit('api/setpageType', val);\n },\n // 退出登录\n outlogin: function outlogin() {\n this.$store.commit('api/setApiToken', '');\n this.$store.commit('api/setActiceDevice', '');\n this.$store.commit('api/setUserInfo', {});\n uni.reLaunch({\n url: \"/pages/login/login\"\n });\n },\n // 选中的设备\n changeDev: function changeDev(item) {\n var _this2 = this;\n this.name2 = item.device_id;\n this.$store.commit('api/setActiceDevice', item);\n\n // 查询个人信息\n this.$store.dispatch('api/getUserInfo').then(function (res) {\n _this2.$store.commit('api/setUserInfo', res);\n });\n uni.reLaunch({\n url: '/pages/index/index'\n });\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9ob21lLWRhdGEvaG9tZS1kYXRhLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwicHJvcHMiLCJkZXZpY2VMaXN0IiwiZGVmYXVsdCIsImRhdGFMaXN0c05ldyIsImRhdGEiLCJrZXlOYW1lTWFwIiwiYmxvb2RHbHVjb3NlIiwic2xlZXAiLCJibG9vZE94eWdlbiIsImJsb29kUHJlc3N1cmUiLCJibG9vZExpcXVpZCIsIm1laVR1byIsInB1bHNlUmVhdCIsInVwZGF0YURhdGUiLCJib2R5RGF0YSIsImJvZHlUZW1wZXJhdHVyZSIsImJsb29kTGlxdWlkQWxsIiwiZGF0YUxpc3RzIiwibmFtZTEiLCJuYW1lMiIsIm1vdW50ZWQiLCJvbkxvYWQiLCJzZXRUaW1lb3V0IiwiYXZhdWRpbyIsImNvbXB1dGVkIiwiZ2V0QWN0aWNlRGV2aWNlIiwib25SZWFkeSIsInd2IiwidG9wIiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCIsIm1ldGhvZHMiLCJnZXRBcnJNYXhWYWx1ZSIsIm9uUmVmcmVzaCIsImRldmljZV9pZCIsIm5lZWRfYXJyIiwibWtIb3VyTWluIiwidG9QYWdlIiwidW5pIiwidXJsIiwiZ2V0TmFtZUJ5S2V5IiwiZm9ybWF0RGF0ZVRpbWUiLCJ0b1BhZ2VDb20iLCJvdXRsb2dpbiIsImNoYW5nZURldiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFxVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0FDO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQUQ7SUFDQTtFQUNBO0VBQ0FFO0lBQ0E7TUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtNQUNBQztNQUVBbEI7TUFDQW1CO01BQ0FDO0lBQ0E7RUFDQTtFQUNBQztJQUNBO0VBQ0E7RUFDQUM7SUFDQTtBQUNBO0FBQ0E7SUFDQTtJQUVBQztNQUNBO01BQ0E7TUFDQUM7UUFDQTtNQUNBO0lBQ0E7SUFHQTtFQUNBO0VBQ0FDLDRCQUNBO0lBQ0FDO0VBQ0EsR0FDQTtFQUVBQztJQUVBO0lBQ0E7SUFDQTtJQUNBSjtNQUNBO01BQ0E7TUFDQUs7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQTtJQUNBO0VBRUE7RUFFQUM7SUFDQUM7SUFDQUM7TUFBQTtNQUNBO1FBQ0FDO1FBQ0FDLFdBQ0EsYUFDQSxlQUNBLGlCQUNBLGdCQUNBLFVBQ0EsbUJBQ0EsZUFDQSxhQUNBLFdBQ0EsY0FDQTtNQUVBO1FBQ0E7VUFDQTtVQUNBO1FBQ0E7UUFFQTtRQUNBO01BQ0EsRUFDQTtNQUVBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBQztRQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7UUFDQTtNQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7TUFDQTtNQUVBTDtRQUNBQztNQUNBO0lBQ0E7SUFDQTtJQUNBSztNQUFBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO1FBQ0E7TUFDQTtNQUVBTjtRQUNBQztNQUNBO0lBQ0E7RUFDQTtBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8dmlldz5cblx0XHQ8ei1wYWdpbmcgcmVmPVwicGFnaW5nXCJyZWZyZXNoZXItb25seSBAb25SZWZyZXNoPVwib25SZWZyZXNoXCI+XG5cdFx0XHQ8dmlldyBjbGFzcz1cImZseCBqY3NiIGFjXCI+XG5cdFx0XHRcdDx2aWV3IGNsYXNzPVwibGVmdFwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2hhLWRvd1wiPjwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGV4dFwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxlZnRcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx05a625bqt5YGl5bq3566h55CGXG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGVzY1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJcIj7lhbHkuqvlgaXlurcgICAgwrcgICAgICDlrojmiqTlrrbkuro8L3RleHQ+IFxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRyb2wgZmx4IGZseF9zYlwiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidG5cIj5cblx0XHRcdFx0XHRcdFx0PGxpdS1kYXRhLXNlbGVjdCBlbGVtZW50SWQ9XCJkYXRhLXNlbGVjdDNcIiA6ZGF0YUxpc3Q9XCJkZXZpY2VMaXN0XCIgQGNoYW5nZT1cImNoYW5nZURldlwiIGJnQ29sb3I9XCIjZmZmXCJcblx0XHRcdFx0XHRcdFx0XHRjb2xvcj1cIiMwMDBcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBpZD1cImRhdGEtc2VsZWN0M1wiIGNsYXNzPVwiYnRuLWluZm8xXCI+e3tuYW1lMj8gJ+iuvuWkh++8micgKyBuYW1lMiA6ICfpgInmi6norr7lpIcnfX08L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvbGl1LWRhdGEtc2VsZWN0PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJidG5cIiBAY2xpY2s9XCJvdXRsb2dpblwiPlxuXHRcdFx0XHRcdFx0XHTpgIDlh7rnmbvlvZVcblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsaXN0LXdyYXBcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtIHJvdyBoZWFkZXItaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgnc3RlcEluZGV4JylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPuWNoei3r+mHjDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvdy1kYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz57e2RhdGFMaXN0c05ldy5zdGVwSW5kZXguZGF0YV9tc2cgPyBkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnLmNhbG9yaWUgLyAxMCA6ICctLSd9fTwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0PuWNg+WNoTwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJpdGVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPuatpeaVsDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvdy1kYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldz57e2RhdGFMaXN0c05ldy5zdGVwSW5kZXguZGF0YV9tc2cgPyBkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnLnN0ZXAgOiAnLS0nfX08L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dD7mraU8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj7ot53nprs8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJyb3ctZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXc+e3tkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRhdGFfbXNnID8gKGRhdGFMaXN0c05ldy5zdGVwSW5kZXguZGF0YV9tc2cuZGlzdGFuY2UgLyAxMDAwKS50b0ZpeGVkKDIpIDogJy0tJ319PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQ+5YWs6YeMPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJvdy10aW1lXCIgdi1pZj1cImRhdGFMaXN0c05ldy5zdGVwSW5kZXhcIj5cblx0XHRcdFx0XHRcdFx0XHR7eyhkYXRhTGlzdHNOZXcuc3RlcEluZGV4LmRldmljZV9yZWFsX3RpbWUpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PCEtLSA8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24v6KGA57OWLnBuZ1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+IC0tPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbSByb3cgaGVhZGVyLWl0ZW1cIiBzdHlsZT1cImZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ1NsZWVwRGF0YXMnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdzbGVlcCcpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIiB2LWlmPVwiZGF0YUxpc3RzTmV3LlNsZWVwRGF0YXMuZGF0YV9tc2dcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IHYtaWY9XCIhKGkgPT0gMCAmJiB2ID09IDApXCIgY2xhc3M9XCJcIiB2LWZvcj1cIih2LGkpIGluIG1rSG91ck1pbihkYXRhTGlzdHNOZXcuU2xlZXBEYXRhcy5kYXRhX21zZ1swXS5zbGVlcFRvdGFsVGltZSlcIiA6a2V5PVwiaVwiIGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCIgPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7dn19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+e3soaSA9PSAwPyfml7YnOifliIYnKX19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGltZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IHJpZ2h0OyBwYWRkaW5nLWJvdHRvbTogMHJweFwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LlNsZWVwRGF0YXMuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5TbGVlcERhdGFzLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24vc2xlZXAucG5nXCIgc3R5bGU9XCJ3aWR0aDogMjAwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdibG9vZEdsdWNvc2UnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tnZXROYW1lQnlLZXkoJ2Jsb29kR2x1Y29zZScpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZEdsdWNvc2UuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZEdsdWNvc2UuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kR2x1Y29zZS5kYXRhX21zZyB8fCAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj7mr6vmkanlsJQv5Y2HPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3h1ZXRhbmcucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2Jsb29kT3h5Z2VuJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdibG9vZE94eWdlbicpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZE94eWdlbi5kYXRhX21zZz8gZGF0YUxpc3RzTmV3LmJsb29kT3h5Z2VuLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZE94eWdlbi5kYXRhX21zZz8gKGRhdGFMaXN0c05ldy5ibG9vZE94eWdlbi5kYXRhX21zZ1swXSkgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj4lPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3h1ZXlhbmcucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2Jsb29kUHJlc3N1cmUnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tnZXROYW1lQnlLZXkoJ2Jsb29kUHJlc3N1cmUnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RQcmVzc3VyZS5kYXRhX21zZz8gZGF0YUxpc3RzTmV3LmJsb29kUHJlc3N1cmUuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kUHJlc3N1cmUuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZFByZXNzdXJlLmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoICsgJy8nICsgZGF0YUxpc3RzTmV3LmJsb29kUHJlc3N1cmUuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUxvdyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPm1tSEc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veHVleWEucG5nXCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgnYm9keVRlbXBlcmF0dXJlJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdib2R5VGVtcGVyYXR1cmUnKX19XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYm9keVRlbXBlcmF0dXJlLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuYm9keVRlbXBlcmF0dXJlLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGF0ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmxleF9kYXRhXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfbGVmdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ib2R5VGVtcGVyYXR1cmUuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYm9keVRlbXBlcmF0dXJlLmRhdGFfbXNnKSA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuKEgzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaWNvbi93ZW5kdS5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgQGNsaWNrPVwidG9QYWdlQ29tKCdwdWxzZVJlYXQnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tnZXROYW1lQnlLZXkoJ3B1bHNlUmVhdCcpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5wdWxzZVJlYXQuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5wdWxzZVJlYXQuZGV2aWNlX3JlYWxfdGltZSArICfmm7TmlrAnIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkYXRlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbGV4X2RhdGFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9sZWZ0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LnB1bHNlUmVhdC5kYXRhX21zZz8gKGRhdGFMaXN0c05ldy5wdWxzZVJlYXQuZGF0YV9tc2dbMF0pIDogJy0tJ319XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZfcmlnaHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5qyhL+WIhjwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJiZ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaWNvbi9tYWlsdi5wbmdcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgnRUNHRGF0YScpXCI+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHTlv4PnlLXlm75cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5FQ0dEYXRhLmRhdGFfbXNnPyBkYXRhTGlzdHNOZXcuRUNHRGF0YS5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX2xlZnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZz8gKGRhdGFMaXN0c05ldy5FQ0dEYXRhLmRhdGFfbXNnLmhlYXJ0UmF0ZSB8fCBkYXRhTGlzdHNOZXcuRUNHRGF0YS5kYXRhX21zZy5tZWFuSGVhcnRSYXRlKSA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuasoS/liIY8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veGluZGlhbnR1LnBuZ1wiIHN0eWxlPVwid2lkdGg6IDIyMHJweDtcIiBtb2RlPVwid2lkdGhGaXhcIj48L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY29udGVudC1pdGVtXCIgIEBjbGljaz1cInRvUGFnZUNvbSgnYm9keURhdGEnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx06Lqr5L2T5oiQ5YiGXG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYm9keURhdGEuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ib2R5RGF0YS5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX2xlZnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYm9keURhdGEuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYm9keURhdGEuZGF0YV9tc2cuQk1JICkgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZl9yaWdodFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj5CTUk8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24vcnRjZi5wbmdcIiBzdHlsZT1cIndpZHRoOiAyMjBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImNvbnRlbnQtaXRlbVwiIEBjbGljaz1cInRvUGFnZUNvbSgnYmxvb2RMaXF1aWQnKVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx05bC/6YW4XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2c/IGRhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kZXZpY2VfcmVhbF90aW1lICsgJ+abtOaWsCcgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRhdGVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZsZXhfZGF0YVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX2xlZnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2cudXJpY0FjaWRWYWwgLyAxMCkudG9GaXhlZCgyKSA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmX3JpZ2h0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0IGNsYXNzPVwiaWNvblwiPuW+ruaRqeWwlC/ljYc8L3RleHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYmdcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24vbmlhb3N1YW4ucG5nXCIgc3R5bGU9XCJ3aWR0aDogMjIwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50LWl0ZW1cIiBAY2xpY2s9XCJ0b1BhZ2VDb20oJ2Jsb29kTGlxdWlkQWxsJylcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0TmFtZUJ5S2V5KCdibG9vZExpcXVpZEFsbCcpfX1cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpbWVcIj5cblx0XHRcdFx0XHRcdFx0XHR7e2RhdGFMaXN0c05ldy5ibG9vZExpcXVpZC5kYXRhX21zZz8gZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRldmljZV9yZWFsX3RpbWUgKyAn5pu05pawJyA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZ2FwLWNvbnRlbnRcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImdhcC1pdGVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdOaAu+iDhuWbuumGh1xuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJudW1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2cuY2hvbGVzdGVyb2wgLyAxMDApLnRvRml4ZWQoMikgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5q+r5pGp5bCUL+WNhzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJnYXAtaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHTnlJjmsrnkuInohIJcblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibnVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnLnRyaWFjeWxnbHljZXJvbCAvIDEwMCkudG9GaXhlZCgyKSA6ICctLSd9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGV4dCBjbGFzcz1cImljb25cIj7mr6vmkanlsJQv5Y2HPC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImdhcC1pdGVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInRpdGxlXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdOmrmOWvhuW6puiEguibi+eZvVxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJudW1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0e3tkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2c/IChkYXRhTGlzdHNOZXcuYmxvb2RMaXF1aWQuZGF0YV9tc2cuaGlnaERlbnNpdHkgLyAxMDApLnRvRml4ZWQoMikgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5q+r5pGp5bCUL+WNhzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJnYXAtaXRlbVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0aXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHTkvY7lr4bluqbohILom4vnmb1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibnVtXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnPyAoZGF0YUxpc3RzTmV3LmJsb29kTGlxdWlkLmRhdGFfbXNnLmxvd0RlbnNpdHkgLyAxMDApLnRvRml4ZWQoMikgOiAnLS0nfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uXCI+5q+r5pGp5bCUL+WNhzwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3otcGFnaW5nPlxuXHQ8L3ZpZXc+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXHRpbXBvcnQgbmF2dGFiIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvbmF2dGFiL25hdnRhYi52dWUnIFxuXHRpbXBvcnQgaG9tZURhdGEgZnJvbSAnLi4vLi4vY29tcG9uZW50cy9ob21lLWRhdGEvaG9tZS1kYXRhLnZ1ZSdcblx0aW1wb3J0IHsgZ2V0QXJyTWF4VmFsdWUgfSBmcm9tICdAL3V0aWxzL3V0aWxzLmpzJ1xuXHRpbXBvcnQgc3RvcmUgZnJvbSBcIkAvc3RvcmUvaW5kZXguanNcIjtcblx0aW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRuYW1lOlwiaG9tZS1kYXRhXCIsXG5cdFx0cHJvcHM6IHtcblx0XHRcdGRldmljZUxpc3Q6IHtcblx0XHRcdFx0ZGVmYXVsdDogW11cblx0XHRcdH0sXG5cdFx0XHRkYXRhTGlzdHNOZXc6IHtcblx0XHRcdFx0ZGVmYXVsdDogW11cblx0XHRcdH1cblx0XHR9LFxuXHRcdGRhdGEoKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRrZXlOYW1lTWFwOiB7XG5cdFx0XHRcdCAgICBibG9vZEdsdWNvc2U6IFwi6KGA57OWXCIsXG5cdFx0XHRcdCAgICBzbGVlcDogXCLnnaHnnKBcIixcblx0XHRcdFx0XHRibG9vZE94eWdlbjogXCLooYDmsKdcIixcblx0XHRcdFx0XHRibG9vZFByZXNzdXJlOiAn6KGA5Y6LJyxcblx0XHRcdFx0ICAgIGJsb29kTGlxdWlkOiBcIuihgOiEglwiLFxuXHRcdFx0XHRcdG1laVR1bzogJ+aiheiEsScsXG5cdFx0XHRcdFx0cHVsc2VSZWF0OiAn5b+D546HJyxcblx0XHRcdFx0XHR1cGRhdGFEYXRlOiAn5pu05paw5pe26Ze0Jyxcblx0XHRcdFx0XHRib2R5RGF0YTogJ+i6q+S9k+aIkOWIhicsXG5cdFx0XHRcdFx0Ym9keVRlbXBlcmF0dXJlOiAn5L2T5ripJyxcblx0XHRcdFx0XHRibG9vZExpcXVpZEFsbDogJ+ihgOiEgidcblx0XHRcdFx0fSxcblx0XHRcdFx0ZGF0YUxpc3RzOiB7fSxcblx0XHRcdFx0XG5cdFx0XHRcdG5hbWU6ICcnLFxuXHRcdFx0XHRuYW1lMTogJycsXG5cdFx0XHRcdG5hbWUyOiAnJyxcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1vdW50ZWQoKSB7XG5cdFx0XHR0aGlzLm5hbWUyID0gdGhpcy5nZXRBY3RpY2VEZXZpY2UuZGV2aWNlX2lkXG5cdFx0fSxcblx0XHRvbkxvYWQoKSB7XG5cdFx0XHQvKlxuXHRcdFx0KiDpppbpobXmlbDmja5cblx0XHRcdCovXG5cdFx0XHR0aGlzLm9uUmVmcmVzaCgpO1xuXHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dmFyIGF2YXVkaW9zZXNzaW9uID0gcGx1cy5pb3MuaW1wb3J0KFwiQVZBdWRpb1Nlc3Npb25cIik7XG5cdFx0XHRcdHZhciBhdmF1ZGlvID0gYXZhdWRpb3Nlc3Npb24uc2hhcmVkSW5zdGFuY2UoKTtcblx0XHRcdFx0YXZhdWRpby5yZXF1ZXN0UmVjb3JkUGVybWlzc2lvbigoKT0+e1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfnlLPor7fpuqblhYvpo47mnYPpmZAnKTsgIFxuXHRcdFx0XHR9KTtcblx0XHRcdH0sIDEwMDApO1xuXHRcdFx0Ly8gI2VuZGlmXG5cdFx0XHRcblx0XHRcdHRoaXMudXJsTGluayA9IGAvaHlicmlkL2h0bWwvYWkuaHRtbGA7XG5cdFx0fSxcblx0XHRjb21wdXRlZDoge1xuXHRcdFx0Li4ubWFwR2V0dGVycyh7XG5cdFx0XHRcdGdldEFjdGljZURldmljZTogXCJhcGkvZ2V0QWN0aWNlRGV2aWNlXCJcblx0XHRcdH0pXG5cdFx0fSxcblx0XHRcblx0XHRvblJlYWR5KCkge1xuXHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXG5cdFx0XHRsZXQgcGFnZXMgPSBnZXRDdXJyZW50UGFnZXMoKTtcblx0XHRcdGxldCBwYWdlID0gcGFnZXNbcGFnZXMubGVuZ3RoIC0gMV07XG5cdFx0XHRsZXQgY3VycmVudFdlYnZpZXcgPSBwYWdlLiRnZXRBcHBXZWJ2aWV3KCk7XG5cdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjb25zdCB3diA9IGN1cnJlbnRXZWJ2aWV3LmNoaWxkcmVuKClbMF1cblx0XHRcdFx0Ly9zZXRTdHlsZeiuvue9rndlYnZpZXfnmoTlrr3pq5jnmoTkvY3nva5cblx0XHRcdFx0d3Yuc2V0U3R5bGUoe1xuXHRcdFx0XHRcdHRvcDogMCxcblx0XHRcdFx0XHRyaWdodDogMCxcblx0XHRcdFx0XHRoZWlnaHQ6IHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLndpbmRvd0hlaWdodCxcblx0XHRcdFx0XHR3aWR0aDogdW5pLmdldFN5c3RlbUluZm9TeW5jKCkud2luZG93V2lkdGggLSA2NjBcblx0XHRcdFx0fSk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdFx0Ly8gI2VuZGlmXG5cdFx0fSxcblx0XHRcblx0XHRtZXRob2RzOiB7XG5cdFx0XHRnZXRBcnJNYXhWYWx1ZSxcblx0XHRcdG9uUmVmcmVzaChwYWdlTm8sIHBhZ2VTaXplKSB7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0SW5kZXhEYXRhJywgeyBcblx0XHRcdFx0XHRkZXZpY2VfaWQ6IHRoaXMuZ2V0QWN0aWNlRGV2aWNlLmRldmljZV9pZCAsXG5cdFx0XHRcdFx0bmVlZF9hcnIgOltcblx0XHRcdFx0XHRcdCdwdWxzZVJlYXQnLFxuXHRcdFx0XHRcdFx0J2Jsb29kT3h5Z2VuJyxcblx0XHRcdFx0XHRcdCdibG9vZFByZXNzdXJlJyxcblx0XHRcdFx0XHRcdCdibG9vZEdsdWNvc2UnLFxuXHRcdFx0XHRcdFx0J21laVR1bycsXG5cdFx0XHRcdFx0XHQnYm9keVRlbXBlcmF0dXJlJyxcblx0XHRcdFx0XHRcdCdibG9vZExpcXVpZCcsXG5cdFx0XHRcdFx0XHQnc3RlcEluZGV4Jyxcblx0XHRcdFx0XHRcdCdFQ0dEYXRhJyxcblx0XHRcdFx0XHRcdCdTbGVlcERhdGFzJyxcblx0XHRcdFx0XHRcdCdib2R5RGF0YSdcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdH0pLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7aSA8IHJlcy5sZW5ndGg7IGkrKyl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUxpc3RzTmV3W3Jlc1tpXS50eXBlXSA9IHJlc1tpXVxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFMaXN0c05ld1tyZXNbaV0ubmFtZV0gPSB0aGlzLmdldE5hbWVCeUtleShyZXNbaV0udHlwZSlcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0dGhpcy51cmxMaW5rID0gYC9oeWJyaWQvaHRtbC9haS5odG1sP2RhdGE9JHtKU09OLnN0cmluZ2lmeShyZXMpfWA7XG5cdFx0XHRcdFx0XHR0aGlzLiRyZWZzLnBhZ2luZy5jb21wbGV0ZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdFx0XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0QmluZFVzZXJEZXZpY2VJZCcpLnRoZW4ocmVzID0+IHtcblx0XHRcdFx0XHR0aGlzLiRlbWl0KCdkZXZpY2VHZXQnLCByZXMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHRta0hvdXJNaW4obWluKXtcblx0XHRcdFx0aWYobWluIDwgNjApe1xuXHRcdFx0XHRcdHJldHVybiBbMCxtaW5dXG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIFsoTWF0aC5mbG9vcihtaW4gLyA2MCkpLChtaW4gJSA2MCldXG5cdFx0XHR9LFxuXHRcdFx0dG9QYWdlKHVybCkge1xuXHRcdFx0XHR1bmkubmF2aWdhdGVUbyh7XG5cdFx0XHRcdFx0dXJsXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Z2V0TmFtZUJ5S2V5KGtleSkge1xuXHRcdFx0ICAgIHJldHVybiB0aGlzLmtleU5hbWVNYXBba2V5XSB8fCBcIktleSBub3QgZm91bmRcIjtcblx0XHRcdH0sXG5cdFx0XHRmb3JtYXREYXRlVGltZShkYXRlVGltZVN0cikge1xuXHRcdFx0XHRpZiAoZGF0ZVRpbWVTdHIpIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0ZVRpbWVTdHIucmVwbGFjZSgvLS9nLCAnICcpLnJlcGxhY2UoJyAnLCAnICcsIDIpLnJlcGxhY2UoJyAnLCAnOicpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0dG9QYWdlQ29tKHZhbCkge1xuXHRcdFx0XHR0aGlzLiRlbWl0KCdwYWdlRGV0YWlsJywgdmFsKVxuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRwYWdlVHlwZScsIHZhbClcblx0XHRcdH0sXG5cdFx0XHQvLyDpgIDlh7rnmbvlvZVcblx0XHRcdG91dGxvZ2luKCkge1xuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBcGlUb2tlbicsICcnKVxuXHRcdFx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2FwaS9zZXRBY3RpY2VEZXZpY2UnLCAnJylcblx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0VXNlckluZm8nLCB7fSlcblx0XHRcdFx0XG5cdFx0XHRcdHVuaS5yZUxhdW5jaCh7XG5cdFx0XHRcdFx0dXJsOiBcIi9wYWdlcy9sb2dpbi9sb2dpblwiXG5cdFx0XHRcdH0pXG5cdFx0XHR9LFxuXHRcdFx0Ly8g6YCJ5Lit55qE6K6+5aSHXG5cdFx0XHRjaGFuZ2VEZXYoaXRlbSkge1xuXHRcdFx0XHR0aGlzLm5hbWUyID0gaXRlbS5kZXZpY2VfaWQ7XG5cdFx0XHRcdHRoaXMuJHN0b3JlLmNvbW1pdCgnYXBpL3NldEFjdGljZURldmljZScsIGl0ZW0pO1xuXHRcdFx0XHRcblx0XHRcdFx0Ly8g5p+l6K+i5Liq5Lq65L+h5oGvXG5cdFx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0VXNlckluZm8nKS50aGVuKHJlcyA9PiB7XG5cdFx0XHRcdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdhcGkvc2V0VXNlckluZm8nLCByZXMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0XG5cdFx0XHRcdHVuaS5yZUxhdW5jaCh7XG5cdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2luZGV4L2luZGV4J1xuXHRcdFx0XHR9KVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG5cdC5mbGV4X2RhdGF7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHQuZl9sZWZ0e1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcblx0XHR9XG5cdFx0LmZfcmlnaHR7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTZycHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29udGVudCB7XG5cdFx0cGFkZGluZzogMjBycHggMzBycHg7XG5cdFx0bWFyZ2luLXRvcDoyMHJweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0LmxlZnQge1xuXHRcdFx0d2lkdGg6IDYwJTtcblx0XHR9XG5cdFx0LnJpZ2h0IHtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHJpZ2h0OiAwcnB4O1xuXHRcdFx0aGVpZ2h0OiAxMDB2aDtcblx0XHRcdHdpZHRoOiA0MCU7XG5cdFx0XHRwYWRkaW5nOiAzMHJweDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XG5cdFx0fVxuXHRcdC5jb250ZW50LWhlYWRlciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHJweDtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0aGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdG1hcmdpbjogMHJweCAwcnB4IDMwcnB4IDBycHg7XG5cdFx0XHQvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vaW1nLmFncmltZWRpYS5jbi93YXRjaC1hcHAvaGVhZGVyLWJnLnBuZycpO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0LnNoYS1kb3cge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0XHRvcGFjaXR5OiAuNDtcblx0XHRcdH1cblx0XHRcdC50ZXh0IHtcblx0XHRcdFx0d2lkdGg6IDgwMHJweDtcblx0XHRcdFx0Ly8gaGVpZ2h0OiAzMDBycHg7XG5cdFx0XHRcdGxlZnQ6IDBweDtcblx0XHRcdFx0dG9wOiAwcHg7XG5cdFx0XHRcdHJpZ2h0OjBweDtcblx0XHRcdFx0Ym90dG9tOjBweDtcblx0XHRcdFx0bWFyZ2luOmF1dG87XG5cdFx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0XHR6LWluZGV4OiA5OTk7XG5cdFx0XHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cig2cnB4KTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XG5cdFx0XHRcdHBhZGRpbmc6MjBycHg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDYwcnB4O1xuXHRcdFx0fVxuXHRcdFx0LmxlZnQge1xuXHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTAwcnB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRmb250LXdlaWdodDogOTAwO1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDIwcnB4O1xuXHRcdFx0XHRcdHRleHQtc3Ryb2tlOiAxMHJweCB3aGl0ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHQuZGVzYyB7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMzRycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0LnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdH1cblx0XHQubGlzdC13cmFwIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0cGFkZGluZzogMHJweCA0MHJweDtcblx0XHR9XG5cdFx0LmNvbnRyb2wge1xuXHRcdFx0bWFyZ2luOiAwcnB4IDQwcnB4O1xuXHRcdFx0LmJ0biB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMzZycHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcnB4O1xuXHRcdFx0XHRwYWRkaW5nOiAzMHJweCA1MHJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMjBycHggO1xuXHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2MHJweCAwIHJnYmEoNDMsODYsMTEyLC4xKSA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5oZWFkZXItaXRlbSB7XG5cdFx0XHRoZWlnaHQ6IDI4MHJweCAhaW1wb3J0YW50O1xuXHRcdFx0cGFkZGluZy10b3A6IDBycHggIWltcG9ydGFudDtcblx0XHR9XG5cdFx0LmNvbnRlbnQtaXRlbSB7XG5cdFx0XHR3aWR0aDogNDIlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAyMHJweCAxMHJweDtcblx0XHRcdHBhZGRpbmc6IDMwcnB4O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMzBycHggO1xuXHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNjBycHggMCByZ2JhKDQzLDg2LDExMiwuMSkgO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDYwcnB4IDAgcmdiYSg0Myw4NiwxMTIsLjEpIDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHQudGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IDM4cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxNHJweDtcblx0XHRcdH1cblx0XHRcdC5yb3ctdGltZSB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAzMHJweDtcblx0XHRcdFx0bGVmdDogNjBycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdGNvbG9yOiBncmV5O1xuXHRcdFx0fVxuXHRcdFx0LmJnIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IDBycHg7XG5cdFx0XHRcdHJpZ2h0OiA1MHJweDtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cdFx0XHRcdHotaW5kZXg6IC0xO1xuXHRcdFx0XHRpbWFnZSB7XG5cdFx0XHRcdFx0d2lkdGg6IDI1MHJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0LnRpbWUge1xuXHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRjb2xvcjogZ3JleTtcblx0XHRcdFx0cGFkZGluZzogMjBycHggMHJweCAyMHJweCAwcnB4O1xuXHRcdFx0fVxuXHRcdFx0LnJvdy1kYXRlIHtcblx0XHRcdFx0Zm9udC1zaXplOiA0NnJweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0dGV4dCB7XG5cdFx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMTBycHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmRhdGUge1xuXHRcdFx0XHRmb250LXNpemU6IDQ2cnB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogODAwO1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogMTAwcnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjhycHg7XG5cdFx0XHRcdFx0Y29sb3I6IGdyZXk7XG5cdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmdhcC1jb250ZW50IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0XHQuZ2FwLWl0ZW0ge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDIwcnB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdFx0XHQudGl0bGUge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAzNnJweDtcblx0XHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHJweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Lm51bSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDI4cnB4O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdFxuXHQvLyDmkq3mlL7lmajmoLflvI8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuXHQudmlkZW8ge1xuXHRcdHdpZHRoOiA4MCU7XG5cdFx0cGFkZGluZzogMHJweCAyMHJweDtcblx0fVxuXG5cdC8qIOmakOiXj+aJgOaciem7mOiupOaOp+S7tiAqL1xuXHR2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scyB7XG5cdCAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cdCBcblx0dmlkZW86Oi1tb3otbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdHZpZGVvOjotbXMtbWVkaWEtY29udHJvbHMge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdC8qIOmSiOWvueS4jeWQjOa1j+iniOWZqOeahOmakOiXj+aOp+S7tueahOaWueW8jyAqL1xuXHR2aWRlbzo6cGFydChtZWRpYS1jb250cm9scykge1xuXHQgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXHRcblx0dmlkZW8ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblx0XG5cdC52aWRlby13cmFwe1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDYxOTNhO1xuXHRcdG1hcmdpbjogMHJweCAyMHJweDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXHRcblx0XG5cdFxuXHQucGFnZS1tYWluIHtcblx0ICAgICAgICBwYWRkaW5nOiAyMHJweDtcblx0ICAgIH1cblx0XG5cblx0LmJ0bi1pbmZvIHtcblx0XHR3aWR0aDogNjAwcnB4O1xuXHRcdGhlaWdodDogODhycHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0bWFyZ2luLXRvcDogMzBycHg7XG5cdFx0Ym9yZGVyOiBzb2xpZCAjZjBmMGYwIDFweDtcblx0XHRib3JkZXItcmFkaXVzOiAxMnJweDtcblx0XHRwYWRkaW5nOiAwIDMwcnB4O1xuXHR9XG5cblx0LmJ0bi1pbmZvMSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTJycHg7XG5cdH1cblx0LmNhcmQge1xuXHRcdHdpZHRoOiA4MDBycHggIWltcG9ydGFudDtcblx0fVxyXG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///145\n"); /***/ }), /* 146 */ @@ -10985,7 +10985,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _api = __webpack_require__(/*! @/common/api.js */ 150);\nvar state = {\n userInfo: {},\n apiToken: '',\n serverTime: 0,\n activeDevice: ''\n },\n getters = {\n getUserInfo: function getUserInfo(state) {\n return state.userInfo;\n },\n getApiToken: function getApiToken(state) {\n return state.apiToken;\n },\n getServerTime: function getServerTime(state) {\n return state.serverTime;\n },\n getActiceDevice: function getActiceDevice(state) {\n return state.activeDevice;\n }\n },\n mutations = {\n setUserInfo: function setUserInfo(state, data) {\n state.userInfo = data;\n },\n setApiToken: function setApiToken(state, data) {\n state.apiToken = data;\n },\n logOut: function logOut(state, data) {\n state.apiToken = '';\n },\n setActiceDevice: function setActiceDevice(state, data) {\n state.activeDevice = data;\n }\n },\n actions = {\n code: function code(_ref, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var commit, res;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n commit = _ref.commit;\n _context.next = 3;\n return (0, _api.code)(data);\n case 3:\n res = _context.sent;\n return _context.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n dologin: function dologin(_ref2, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var commit, res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n commit = _ref2.commit;\n _context2.next = 3;\n return (0, _api.dologin)(data);\n case 3:\n res = _context2.sent;\n return _context2.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n sendSms: function sendSms(_ref3, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var commit, res;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n commit = _ref3.commit;\n _context3.next = 3;\n return (0, _api.sendSms)(data);\n case 3:\n res = _context3.sent;\n return _context3.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n register: function register(_ref4, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var commit, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n commit = _ref4.commit;\n _context4.next = 3;\n return (0, _api.register)(data);\n case 3:\n res = _context4.sent;\n return _context4.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n getBindUserDeviceId: function getBindUserDeviceId(_ref5, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var commit, res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n commit = _ref5.commit;\n _context5.next = 3;\n return (0, _api.getBindUserDeviceId)(data);\n case 3:\n res = _context5.sent;\n return _context5.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n getDayInfo: function getDayInfo(_ref6, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var commit, res;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n commit = _ref6.commit;\n _context6.next = 3;\n return (0, _api.getDayInfo)(data);\n case 3:\n res = _context6.sent;\n return _context6.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n getDeviceListDays: function getDeviceListDays(_ref7, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n var commit, res;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n commit = _ref7.commit;\n _context7.next = 3;\n return (0, _api.getDeviceListDays)(data);\n case 3:\n res = _context7.sent;\n return _context7.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n getVersion: function getVersion(_ref8, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var commit, res;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n commit = _ref8.commit;\n _context8.next = 3;\n return (0, _api.getVersion)(data);\n case 3:\n res = _context8.sent;\n return _context8.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n },\n getIndexData: function getIndexData(_ref9, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var commit, res;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n commit = _ref9.commit;\n _context9.next = 3;\n return (0, _api.getIndexData)(data);\n case 3:\n res = _context9.sent;\n return _context9.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }))();\n },\n forgotPassword: function forgotPassword(_ref10, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var commit, res;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n commit = _ref10.commit;\n _context10.next = 3;\n return (0, _api.forgotPassword)(data);\n case 3:\n res = _context10.sent;\n return _context10.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n },\n getUserInfo: function getUserInfo(_ref11, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n var commit, res;\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n commit = _ref11.commit;\n _context11.next = 3;\n return (0, _api.getUserInfo)(data);\n case 3:\n res = _context11.sent;\n return _context11.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }))();\n },\n getLoginCode: function getLoginCode(_ref12, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n var commit, res;\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n commit = _ref12.commit;\n _context12.next = 3;\n return (0, _api.getLoginCode)(data);\n case 3:\n res = _context12.sent;\n return _context12.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }))();\n },\n checkLoginCode: function checkLoginCode(_ref13, data, config) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {\n var commit, res;\n return _regenerator.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n commit = _ref13.commit;\n _context13.next = 3;\n return (0, _api.checkLoginCode)(data, config);\n case 3:\n res = _context13.sent;\n return _context13.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }))();\n }\n };\nvar _default = {\n namespaced: true,\n state: state,\n getters: getters,\n mutations: mutations,\n actions: actions\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvbW9kdWxlcy9hcGkuanMiXSwibmFtZXMiOlsic3RhdGUiLCJ1c2VySW5mbyIsImFwaVRva2VuIiwic2VydmVyVGltZSIsImFjdGl2ZURldmljZSIsImdldHRlcnMiLCJnZXRVc2VySW5mbyIsImdldEFwaVRva2VuIiwiZ2V0U2VydmVyVGltZSIsImdldEFjdGljZURldmljZSIsIm11dGF0aW9ucyIsInNldFVzZXJJbmZvIiwiZGF0YSIsInNldEFwaVRva2VuIiwibG9nT3V0Iiwic2V0QWN0aWNlRGV2aWNlIiwiYWN0aW9ucyIsImNvZGUiLCJjb21taXQiLCJyZXMiLCJkb2xvZ2luIiwic2VuZFNtcyIsInJlZ2lzdGVyIiwiZ2V0QmluZFVzZXJEZXZpY2VJZCIsImdldERheUluZm8iLCJnZXREZXZpY2VMaXN0RGF5cyIsImdldFZlcnNpb24iLCJnZXRJbmRleERhdGEiLCJmb3Jnb3RQYXNzd29yZCIsImdldExvZ2luQ29kZSIsImNoZWNrTG9naW5Db2RlIiwiY29uZmlnIiwibmFtZXNwYWNlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFnQkEsSUFBSUEsS0FBSyxHQUFHO0lBQ1ZDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDWkMsUUFBUSxFQUFFLEVBQUU7SUFDWkMsVUFBVSxFQUFDLENBQUM7SUFDWkMsWUFBWSxFQUFFO0VBQ2YsQ0FBQztFQUNEQyxPQUFPLEdBQUc7SUFDVEMsV0FBVyx1QkFBQ04sS0FBSyxFQUFDO01BQ2pCLE9BQU9BLEtBQUssQ0FBQ0MsUUFBUTtJQUN0QixDQUFDO0lBQ0RNLFdBQVcsdUJBQUNQLEtBQUssRUFBQztNQUNqQixPQUFPQSxLQUFLLENBQUNFLFFBQVE7SUFDdEIsQ0FBQztJQUNETSxhQUFhLHlCQUFDUixLQUFLLEVBQUM7TUFDbkIsT0FBT0EsS0FBSyxDQUFDRyxVQUFVO0lBQ3hCLENBQUM7SUFDRE0sZUFBZSwyQkFBQ1QsS0FBSyxFQUFDO01BQ3JCLE9BQU9BLEtBQUssQ0FBQ0ks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QixJQUFJLEVBQUU7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQWZNLE1BQU0sVUFBTkEsTUFBTTtnQkFBQTtnQkFBQSxPQUNQLElBQUFXLGlCQUFZLEVBQUNqQixJQUFJLENBQUM7Y0FBQTtnQkFBOUJPLEdBQUc7Z0JBQUEsbUNBQ0ZBLEdBQUc7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDWCxDQUFDO0lBQ0tXLGNBQWMsa0NBQVdsQixJQUFJLEVBQUNtQixNQUFNLEVBQUU7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQXRCYixNQUFNLFVBQU5BLE1BQU07Z0JBQUE7Z0JBQUEsT0FDVCxJQUFBWSxtQkFBYyxFQUFDbEIsSUFBSSxFQUFDbUIsTUFBTSxDQUFDO2NBQUE7Z0JBQXZDWixHQUFHO2dCQUFBLG1DQUNGQSxHQUFHO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ1g7RUFDRCxDQUFDO0FBQUEsZUFDYTtFQUNkYSxVQUFVLEVBQUUsSUFBSTtFQUNoQmhDLEtBQUssRUFBTEEsS0FBSztFQUNMSyxPQUFPLEVBQVBBLE9BQU87RUFDUEssU0FBUyxFQUFUQSxTQUFTO0VBQ1RNLE9BQU8sRUFBUEE7QUFDRCxDQUFDO0FBQUEiLCJmaWxlIjoiMTQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Y29kZSxcblx0ZG9sb2dpbixcblx0c2VuZFNtcyxcblx0cmVnaXN0ZXIsXG5cdGdldEJpbmRVc2VyRGV2aWNlSWQsXG5cdGdldERheUluZm8sXG5cdGdldERldmljZUxpc3REYXlzLFxuXHRnZXRWZXJzaW9uLFxuXHRnZXRJbmRleERhdGEsXG5cdGZvcmdvdFBhc3N3b3JkLFxuXHRnZXRVc2VySW5mbyxcblx0Y2hlY2tMb2dpbkNvZGUsXG5cdGdldExvZ2luQ29kZVxufSBmcm9tICdAL2NvbW1vbi9hcGkuanMnO1xuXG5sZXQgc3RhdGUgPSB7XG5cdFx0dXNlckluZm86IHt9LFxuXHRcdGFwaVRva2VuOiAnJyxcblx0XHRzZXJ2ZXJUaW1lOjAsXG5cdFx0YWN0aXZlRGV2aWNlOiAnJ1xuXHR9LFxuXHRnZXR0ZXJzID0ge1xuXHRcdGdldFVzZXJJbmZvKHN0YXRlKXtcblx0XHRcdHJldHVybiBzdGF0ZS51c2VySW5mb1xuXHRcdH0sXG5cdFx0Z2V0QXBpVG9rZW4oc3RhdGUpe1xuXHRcdFx0cmV0dXJuIHN0YXRlLmFwaVRva2VuXG5cdFx0fSxcblx0XHRnZXRTZXJ2ZXJUaW1lKHN0YXRlKXtcblx0XHRcdHJldHVybiBzdGF0ZS5zZXJ2ZXJUaW1lXG5cdFx0fSxcblx0XHRnZXRBY3RpY2VEZXZpY2Uoc3RhdGUpe1xuXHRcdFx0cmV0dXJuIHN0YXRlLmFjdGl2ZURldmljZVxuXHRcdH1cblx0fSxcblx0bXV0YXRpb25zID0ge1xuXHRcdHNldFVzZXJJbmZvKHN0YXRlLGRhdGEpIHtcblx0XHRcdHN0YXRlLnVzZXJJbmZvID0gZGF0YVxuXHRcdH0sXG5cdFx0c2V0QXBpVG9rZW4oc3RhdGUsZGF0YSl7XG5cdFx0XHRzdGF0ZS5hcGlUb2tlbiA9IGRhdGFcblx0XHR9LFxuXHRcdGxvZ091dChzdGF0ZSxkYXRhKSB7XG5cdFx0XHRzdGF0ZS5hcGlUb2tlbiA9ICcnXG5cdFx0fSxcblx0XHRzZXRBY3RpY2VEZXZpY2Uoc3RhdGUsZGF0YSkge1xuXHRcdFx0c3RhdGUuYWN0aXZlRGV2aWNlID0gZGF0YVxuXHRcdH1cblx0fSxcblx0YWN0aW9ucyA9IHtcblx0XHRhc3luYyBjb2RlKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBjb2RlKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBkb2xvZ2luKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBkb2xvZ2luKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBzZW5kU21zKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBzZW5kU21zKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyByZWdpc3Rlcih7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgcmVnaXN0ZXIoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldEJpbmRVc2VyRGV2aWNlSWQoe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IGdldEJpbmRVc2VyRGV2aWNlSWQoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldERheUluZm8oe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IGdldERheUluZm8oZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldERldmljZUxpc3REYXlzKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXREZXZpY2VMaXN0RGF5cyhkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgZ2V0VmVyc2lvbih7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgZ2V0VmVyc2lvbihkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgZ2V0SW5kZXhEYXRhKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXRJbmRleERhdGEoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGZvcmdvdFBhc3N3b3JkKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBmb3Jnb3RQYXNzd29yZChkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgZ2V0VXNlckluZm8oe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IGdldFVzZXJJbmZvKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBnZXRMb2dpbkNvZGUoe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IGdldExvZ2luQ29kZShkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgY2hlY2tMb2dpbkNvZGUoe2NvbW1pdH0sIGRhdGEsY29uZmlnKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBjaGVja0xvZ2luQ29kZShkYXRhLGNvbmZpZylcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHR9XG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWVzcGFjZWQ6IHRydWUsXG5cdHN0YXRlLFxuXHRnZXR0ZXJzLFxuXHRtdXRhdGlvbnMsXG5cdGFjdGlvbnNcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///149\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _api = __webpack_require__(/*! @/common/api.js */ 150);\nvar state = {\n userInfo: {},\n apiToken: '',\n serverTime: 0,\n activeDevice: '',\n pageType: ''\n },\n getters = {\n getUserInfo: function getUserInfo(state) {\n return state.userInfo;\n },\n getApiToken: function getApiToken(state) {\n return state.apiToken;\n },\n getServerTime: function getServerTime(state) {\n return state.serverTime;\n },\n getActiceDevice: function getActiceDevice(state) {\n return state.activeDevice;\n },\n getpageType: function getpageType(state) {\n return state.pageType;\n }\n },\n mutations = {\n setpageType: function setpageType(state, data) {\n state.pageType = data;\n },\n setUserInfo: function setUserInfo(state, data) {\n state.userInfo = data;\n },\n setApiToken: function setApiToken(state, data) {\n state.apiToken = data;\n },\n logOut: function logOut(state, data) {\n state.apiToken = '';\n },\n setActiceDevice: function setActiceDevice(state, data) {\n state.activeDevice = data;\n }\n },\n actions = {\n code: function code(_ref, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var commit, res;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n commit = _ref.commit;\n _context.next = 3;\n return (0, _api.code)(data);\n case 3:\n res = _context.sent;\n return _context.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n dologin: function dologin(_ref2, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var commit, res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n commit = _ref2.commit;\n _context2.next = 3;\n return (0, _api.dologin)(data);\n case 3:\n res = _context2.sent;\n return _context2.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n sendSms: function sendSms(_ref3, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var commit, res;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n commit = _ref3.commit;\n _context3.next = 3;\n return (0, _api.sendSms)(data);\n case 3:\n res = _context3.sent;\n return _context3.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n register: function register(_ref4, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var commit, res;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n commit = _ref4.commit;\n _context4.next = 3;\n return (0, _api.register)(data);\n case 3:\n res = _context4.sent;\n return _context4.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n getBindUserDeviceId: function getBindUserDeviceId(_ref5, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var commit, res;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n commit = _ref5.commit;\n _context5.next = 3;\n return (0, _api.getBindUserDeviceId)(data);\n case 3:\n res = _context5.sent;\n return _context5.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n getDayInfo: function getDayInfo(_ref6, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var commit, res;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n commit = _ref6.commit;\n _context6.next = 3;\n return (0, _api.getDayInfo)(data);\n case 3:\n res = _context6.sent;\n return _context6.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n getDeviceListDays: function getDeviceListDays(_ref7, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n var commit, res;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n commit = _ref7.commit;\n _context7.next = 3;\n return (0, _api.getDeviceListDays)(data);\n case 3:\n res = _context7.sent;\n return _context7.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n getVersion: function getVersion(_ref8, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var commit, res;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n commit = _ref8.commit;\n _context8.next = 3;\n return (0, _api.getVersion)(data);\n case 3:\n res = _context8.sent;\n return _context8.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n },\n getIndexData: function getIndexData(_ref9, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var commit, res;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n commit = _ref9.commit;\n _context9.next = 3;\n return (0, _api.getIndexData)(data);\n case 3:\n res = _context9.sent;\n return _context9.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }))();\n },\n forgotPassword: function forgotPassword(_ref10, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var commit, res;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n commit = _ref10.commit;\n _context10.next = 3;\n return (0, _api.forgotPassword)(data);\n case 3:\n res = _context10.sent;\n return _context10.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n },\n getUserInfo: function getUserInfo(_ref11, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n var commit, res;\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n commit = _ref11.commit;\n _context11.next = 3;\n return (0, _api.getUserInfo)(data);\n case 3:\n res = _context11.sent;\n return _context11.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }))();\n },\n getLoginCode: function getLoginCode(_ref12, data) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n var commit, res;\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n commit = _ref12.commit;\n _context12.next = 3;\n return (0, _api.getLoginCode)(data);\n case 3:\n res = _context12.sent;\n return _context12.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }))();\n },\n checkLoginCode: function checkLoginCode(_ref13, data, config) {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {\n var commit, res;\n return _regenerator.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n commit = _ref13.commit;\n _context13.next = 3;\n return (0, _api.checkLoginCode)(data, config);\n case 3:\n res = _context13.sent;\n return _context13.abrupt(\"return\", res);\n case 5:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }))();\n }\n };\nvar _default = {\n namespaced: true,\n state: state,\n getters: getters,\n mutations: mutations,\n actions: actions\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vc3RvcmUvbW9kdWxlcy9hcGkuanMiXSwibmFtZXMiOlsic3RhdGUiLCJ1c2VySW5mbyIsImFwaVRva2VuIiwic2VydmVyVGltZSIsImFjdGl2ZURldmljZSIsInBhZ2VUeXBlIiwiZ2V0dGVycyIsImdldFVzZXJJbmZvIiwiZ2V0QXBpVG9rZW4iLCJnZXRTZXJ2ZXJUaW1lIiwiZ2V0QWN0aWNlRGV2aWNlIiwiZ2V0cGFnZVR5cGUiLCJtdXRhdGlvbnMiLCJzZXRwYWdlVHlwZSIsImRhdGEiLCJzZXRVc2VySW5mbyIsInNldEFwaVRva2VuIiwibG9nT3V0Iiwic2V0QWN0aWNlRGV2aWNlIiwiYWN0aW9ucyIsImNvZGUiLCJjb21taXQiLCJyZXMiLCJkb2xvZ2luIiwic2VuZFNtcyIsInJlZ2lzdGVyIiwiZ2V0QmluZFVzZXJEZXZpY2VJZCIsImdldERheUluZm8iLCJnZXREZXZpY2VMaXN0RGF5cyIsImdldFZlcnNpb24iLCJnZXRJbmRleERhdGEiLCJmb3Jnb3RQYXNzd29yZCIsImdldExvZ2luQ29kZSIsImNoZWNrTG9naW5Db2RlIiwiY29uZmlnIiwibmFtZXNwYWNlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFnQkEsSUFBSUEsS0FBSyxHQUFHO0lBQ1ZDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDWkMsUUFBUSxFQUFFLEVBQUU7SUFDWkMsVUFBVSxFQUFDLENBQUM7SUFDWkMsWUFBWSxFQUFFLEVBQUU7SUFDaEJDLFFBQVEsRUFBRTtFQUNYLENBQUM7RUFDREMsT0FBTyxHQUFHO0lBQ1RDLFdBQVcsdUJBQUNQLEtBQUssRUFBQztNQUNqQixPQUFPQSxLQUFLLENBQUNDLFFBQVE7SUFDdEIsQ0FBQztJQUNETyxXQUFXLHVCQUFDUixLQUFLLEVBQUM7TUFDakIsT0FBT0EsS0FBSyxDQUFDRSxRQUFRO0lBQ3RCLENBQUM7SUFDRE8sYUFBYSx5QkFBQ1QsS0FBSyxFQUFDO01BQ25CLE9BQU9BLEtBQUssQ0FBQ0csVUFBVTtJ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QUFXLCtCQUFXTyxJQUFJLEVBQUU7TUFBQTtRQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQWZPLE1BQU0sVUFBTkEsTUFBTTtnQkFBQTtnQkFBQSxPQUNOLElBQUFkLGdCQUFXLEVBQUNPLElBQUksQ0FBQztjQUFBO2dCQUE3QlEsR0FBRztnQkFBQSxtQ0FDRkEsR0FBRztjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNYLENBQUM7SUFDS1UsWUFBWSxnQ0FBV2xCLElBQUksRUFBRTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBZk8sTUFBTSxVQUFOQSxNQUFNO2dCQUFBO2dCQUFBLE9BQ1AsSUFBQVcsaUJBQVksRUFBQ2xCLElBQUksQ0FBQztjQUFBO2dCQUE5QlEsR0FBRztnQkFBQSxtQ0FDRkEsR0FBRztjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNYLENBQUM7SUFDS1csY0FBYyxrQ0FBV25CLElBQUksRUFBQ29CLE1BQU0sRUFBRTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFBdEJiLE1BQU0sVUFBTkEsTUFBTTtnQkFBQTtnQkFBQSxPQUNULElBQUFZLG1CQUFjLEVBQUNuQixJQUFJLEVBQUNvQixNQUFNLENBQUM7Y0FBQTtnQkFBdkNaLEdBQUc7Z0JBQUEsbUNBQ0ZBLEdBQUc7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDWDtFQUNELENBQUM7QUFBQSxlQUNhO0VBQ2RhLFVBQVUsRUFBRSxJQUFJO0VBQ2hCbkMsS0FBSyxFQUFMQSxLQUFLO0VBQ0xNLE9BQU8sRUFBUEEsT0FBTztFQUNQTSxTQUFTLEVBQVRBLFNBQVM7RUFDVE8sT0FBTyxFQUFQQTtBQUNELENBQUM7QUFBQSIsImZpbGUiOiIxNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRjb2RlLFxuXHRkb2xvZ2luLFxuXHRzZW5kU21zLFxuXHRyZWdpc3Rlcixcblx0Z2V0QmluZFVzZXJEZXZpY2VJZCxcblx0Z2V0RGF5SW5mbyxcblx0Z2V0RGV2aWNlTGlzdERheXMsXG5cdGdldFZlcnNpb24sXG5cdGdldEluZGV4RGF0YSxcblx0Zm9yZ290UGFzc3dvcmQsXG5cdGdldFVzZXJJbmZvLFxuXHRjaGVja0xvZ2luQ29kZSxcblx0Z2V0TG9naW5Db2RlXG59IGZyb20gJ0AvY29tbW9uL2FwaS5qcyc7XG5cbmxldCBzdGF0ZSA9IHtcblx0XHR1c2VySW5mbzoge30sXG5cdFx0YXBpVG9rZW46ICcnLFxuXHRcdHNlcnZlclRpbWU6MCxcblx0XHRhY3RpdmVEZXZpY2U6ICcnLFxuXHRcdHBhZ2VUeXBlOiAnJ1xuXHR9LFxuXHRnZXR0ZXJzID0ge1xuXHRcdGdldFVzZXJJbmZvKHN0YXRlKXtcblx0XHRcdHJldHVybiBzdGF0ZS51c2VySW5mb1xuXHRcdH0sXG5cdFx0Z2V0QXBpVG9rZW4oc3RhdGUpe1xuXHRcdFx0cmV0dXJuIHN0YXRlLmFwaVRva2VuXG5cdFx0fSxcblx0XHRnZXRTZXJ2ZXJUaW1lKHN0YXRlKXtcblx0XHRcdHJldHVybiBzdGF0ZS5zZXJ2ZXJUaW1lXG5cdFx0fSxcblx0XHRnZXRBY3RpY2VEZXZpY2Uoc3RhdGUpe1xuXHRcdFx0cmV0dXJuIHN0YXRlLmFjdGl2ZURldmljZVxuXHRcdH0sXG5cdFx0Z2V0cGFnZVR5cGUoc3RhdGUpe1xuXHRcdFx0cmV0dXJuIHN0YXRlLnBhZ2VUeXBlXG5cdFx0fVxuXHR9LFxuXHRtdXRhdGlvbnMgPSB7XG5cdFx0c2V0cGFnZVR5cGUoc3RhdGUsZGF0YSkge1xuXHRcdFx0c3RhdGUucGFnZVR5cGUgPSBkYXRhXG5cdFx0fSxcblx0XHRzZXRVc2VySW5mbyhzdGF0ZSxkYXRhKSB7XG5cdFx0XHRzdGF0ZS51c2VySW5mbyA9IGRhdGFcblx0XHR9LFxuXHRcdHNldEFwaVRva2VuKHN0YXRlLGRhdGEpe1xuXHRcdFx0c3RhdGUuYXBpVG9rZW4gPSBkYXRhXG5cdFx0fSxcblx0XHRsb2dPdXQoc3RhdGUsZGF0YSkge1xuXHRcdFx0c3RhdGUuYXBpVG9rZW4gPSAnJ1xuXHRcdH0sXG5cdFx0c2V0QWN0aWNlRGV2aWNlKHN0YXRlLGRhdGEpIHtcblx0XHRcdHN0YXRlLmFjdGl2ZURldmljZSA9IGRhdGFcblx0XHR9XG5cdH0sXG5cdGFjdGlvbnMgPSB7XG5cdFx0YXN5bmMgY29kZSh7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgY29kZShkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgZG9sb2dpbih7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgZG9sb2dpbihkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgc2VuZFNtcyh7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgc2VuZFNtcyhkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgcmVnaXN0ZXIoe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IHJlZ2lzdGVyKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBnZXRCaW5kVXNlckRldmljZUlkKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXRCaW5kVXNlckRldmljZUlkKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBnZXREYXlJbmZvKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXREYXlJbmZvKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBnZXREZXZpY2VMaXN0RGF5cyh7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgZ2V0RGV2aWNlTGlzdERheXMoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldFZlcnNpb24oe2NvbW1pdH0sIGRhdGEpIHtcblx0XHRcdGNvbnN0IHJlcyA9IGF3YWl0IGdldFZlcnNpb24oZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldEluZGV4RGF0YSh7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgZ2V0SW5kZXhEYXRhKGRhdGEpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0XHRhc3luYyBmb3Jnb3RQYXNzd29yZCh7Y29tbWl0fSwgZGF0YSkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgZm9yZ290UGFzc3dvcmQoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGdldFVzZXJJbmZvKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXRVc2VySW5mbyhkYXRhKVxuXHRcdFx0cmV0dXJuIHJlc1xuXHRcdH0sXG5cdFx0YXN5bmMgZ2V0TG9naW5Db2RlKHtjb21taXR9LCBkYXRhKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBnZXRMb2dpbkNvZGUoZGF0YSlcblx0XHRcdHJldHVybiByZXNcblx0XHR9LFxuXHRcdGFzeW5jIGNoZWNrTG9naW5Db2RlKHtjb21taXR9LCBkYXRhLGNvbmZpZykge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgY2hlY2tMb2dpbkNvZGUoZGF0YSxjb25maWcpXG5cdFx0XHRyZXR1cm4gcmVzXG5cdFx0fSxcblx0fVxuZXhwb3J0IGRlZmF1bHQge1xuXHRuYW1lc3BhY2VkOiB0cnVlLFxuXHRzdGF0ZSxcblx0Z2V0dGVycyxcblx0bXV0YXRpb25zLFxuXHRhY3Rpb25zXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///149\n"); /***/ }), /* 150 */ @@ -11950,7 +11950,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 52));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar echarts = _interopRequireWildcard(__webpack_require__(/*! @/uni_modules/lime-echart/static/echarts.min */ 67));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default2 = {\n name: \"echarts-data\",\n data: function data() {\n return {\n time: new Date().toISOString().substring(0, 10),\n dataConfig: {\n bloodGlucose: {\n title: '123123',\n name: '血糖',\n color: \"#fb8544\",\n unit: '毫摩尔/升',\n cankaoData: [{\n name: '空腹/餐前',\n data: [0, 3.9, 6.1, 15],\n adjustment: [0.05, 0.00, -0.05],\n max: 15\n }, {\n name: '餐后1小时',\n data: [0, 6.7, 9.4, 15],\n adjustment: [0.04, 0.00, -0.04],\n max: 15\n }, {\n name: '餐后2小时',\n data: [0, 4.4, 7.8, 15],\n adjustment: [0.04, 0.00, -0.04],\n max: 15\n }]\n },\n stepIndex: {\n name: '每日运动',\n color: \"#29cf6f\",\n unit: '毫摩尔/升'\n },\n bloodOxygen: {\n title: '123123',\n name: '血氧',\n color: \"#bf32fc\",\n unit: '%',\n cankaoData: false\n },\n bodyTemperature: {\n title: 'bodyTemperature',\n name: '体温',\n color: \"#2ec8d8\",\n unit: '℃',\n cankaoData: false\n },\n bloodPressure: {\n title: 'bloodPressure',\n name: '血压',\n color: \"#fb8544\",\n color1: \"#00c3da\",\n unit: '℃',\n cankaoData: false\n },\n pulseReat: {\n title: '123123',\n name: '心率',\n color: \"#fd5656\",\n unit: '次/分',\n cankaoData: false\n },\n bloodLiquid: {\n title: '123123',\n name: '尿酸',\n color: \"#f00\",\n unit: '微摩尔/升',\n cankaoData: [{\n name: '尿酸',\n data: [0, 150, 420, 1000],\n adjustment: [0.06, 0.00, -0.06],\n max: 1000\n }]\n },\n bloodLiquidAll: {\n title: '123123',\n name: '血脂',\n unit: '微摩尔/升',\n overviewData: {\n name: '血脂概况',\n tb_head: ['', '单日测量范围', '平均值'],\n data: [{\n name: '总胆固醇',\n value: '0-0',\n average: 0,\n color: '#46b4ff',\n bgColor: '#e1f3fd'\n }, {\n name: '甘油三酯',\n value: '0-0',\n average: 0,\n color: '#29cf6c',\n bgColor: '#e2fff3'\n }, {\n name: '高密度脂蛋白',\n value: '0-0',\n average: 0,\n color: '#fcc05d',\n bgColor: '#fef5e3'\n }, {\n name: '低密度脂蛋白',\n value: '0-0',\n average: 0,\n color: '#fa4e33',\n bgColor: '#fee5e1'\n }]\n },\n cankaoData: [{\n name: '总胆固醇',\n data: [0, 2.8, 5.17, 20],\n adjustment: [0.05, 0.02, -0.05],\n max: 10\n }, {\n name: '甘油三酯',\n data: [0, 0.56, 1.7, 20],\n adjustment: [0.06, -0.02, -0.04],\n max: 3\n }, {\n name: '高密度脂蛋白',\n data: [0, 0.96, 1.15, 20],\n adjustment: [0.04, 0.00, -0.04],\n max: 3\n }, {\n name: '低密度脂蛋白',\n data: [0, 3.1, 20],\n adjustment: [0.04, 0.00, -0.04],\n max: 20\n }]\n }\n },\n option: {\n // tooltip: {\n // \ttrigger: 'item',\n // \tformatter: function (params) {\n // \t\t// params 是数据的相关信息,可以根据需要进行处理\n // \t\tconsole.log(params)\n // \t\tif(params.componentType == 'series'){\n // \t\t\treturn `
\n // \t\t\t\t\t

${params.seriesName}

\n // \t\t\t\t\t

${params.name}: ${params.value[1]}

\n // \t\t\t\t
`\n // \t\t}\n // \t\treturn '';\n // \t},\n // \t// renderMode:'html'\n // \t// axisPointer: {\n // \t// type: 'line',\n // \t// label: {\n // \t// \tbackgroundColor: '#6a7985'\n // \t// }\n // \t// },\n\n // },\n xAxis: {\n splitLine: {\n show: false\n },\n type: 'value',\n max: 4,\n min: 0,\n axisLabel: {\n show: true,\n splitNumber: 2,\n formatter: function formatter(value, index) {\n var arr = ['12am', '6am', '12pm', '6pm', '12am'];\n return arr[Math.floor(index)];\n }\n }\n },\n yAxis: {\n splitLine: {\n show: true,\n lineStyle: {\n // 使用深浅的间隔色\n color: [\"#ccc\"],\n type: \"dashed\"\n }\n },\n axisTick: {\n show: false\n },\n axisLine: {\n show: false // 设置y轴线不显示\n },\n\n axisLabel: {},\n position: \"right\",\n splitNumber: 3\n },\n series: [{\n symbolSize: 5,\n data: [],\n markLine: {\n data: [{\n show: false,\n yAxis: 2.5 // 在 y 值为 100 的位置添加水平参考线\n }],\n\n lineStyle: {\n color: '#ccc',\n cap: \"butt\"\n },\n label: {\n color: '#ccc'\n }\n },\n type: 'scatter'\n }]\n }\n };\n },\n props: {\n pageData: {\n default: function _default() {\n return {};\n },\n type: Object\n }\n },\n onLoad: function onLoad() {\n this.type = pageData.type;\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\"\n })),\n methods: {\n init: function init() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var option;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return _this.$refs.chartRef.init(echarts);\n case 2:\n _this.chart = _context.sent;\n _context.next = 5;\n return _this.getDataList();\n case 5:\n option = _context.sent;\n _this.chart.setOption(option);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n getDataList: function getDataList() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var type, res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n type = _this2.pageData.type;\n if (type == 'bloodLiquidAll') {\n type = 'bloodLiquid';\n }\n _context2.next = 4;\n return _this2.$store.dispatch('api/getDeviceListDays', {\n type: type,\n device_real_time: _this2.time,\n device_id: _this2.getActiceDevice.device_id\n });\n case 4:\n res = _context2.sent;\n return _context2.abrupt(\"return\", _this2.makeOptionConfig(res.data));\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n getAverage: function getAverage(arr) {\n if (arr.length === 0) return 0; // 如果数组为空,则返回0\n var sum = arr.reduce(function (accumulator, currentValue) {\n return accumulator + currentValue;\n });\n return sum / arr.length; // 计算平均值\n },\n subtractMinutes: function subtractMinutes(timeStr, minutes) {\n var parts = timeStr.split(':');\n var hours = parseInt(parts[0], 10);\n var minutesLeft = parseInt(parts[1], 10);\n var date = new Date();\n date.setHours(hours, minutesLeft, 0, 0); // 设置时、分、秒、毫秒\n date.setMinutes(date.getMinutes() - minutes); // 减去指定的分钟数\n\n // 格式化为HH:MM\n var newHours = date.getHours().toString().padStart(2, '0');\n var newMinutes = date.getMinutes().toString().padStart(2, '0');\n return newHours + ':' + newMinutes;\n },\n makeFloatHoursMinutes: function makeFloatHoursMinutes(hours, minutes) {\n var total = hours * 3600 + minutes * 60;\n var floatData = total / 86400 * 4;\n return floatData.toFixed(2);\n },\n back: function back() {\n this.$emit('back', 1);\n },\n // 全部数据\n goAllPath: function goAllPath() {\n this.$emit('allData', 3);\n },\n /// git dev test\n makeOptionConfig: function makeOptionConfig(data) {\n __f__(\"log\", data, \" at components/echarts-data/echarts-data.vue:436\");\n var echartsData = [];\n var sum = 0;\n var max = 0;\n var min = 0;\n var avg = 0;\n var len = 0;\n var arr = [];\n var dataArr = {};\n this.option.series[0].markLine.symbol = 'none';\n this.option.series[0].markLine.label.position = 'insideEndTop';\n __f__(\"log\", this.pageData.type, '900000000000', \" at components/echarts-data/echarts-data.vue:448\");\n switch (this.pageData.type) {\n case 'stepIndex':\n __f__(\"log\", '步数', \" at components/echarts-data/echarts-data.vue:451\");\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = '';\n if (timeArr[1] < 30) {\n key = timeArr[0] + ':' + '00';\n } else {\n key = timeArr[0] + ':' + '30';\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: v.data_msg.step,\n from: 1\n };\n } else {\n dataArr[key].val += v.data_msg.step;\n }\n });\n for (var key in dataArr) {\n if (dataArr.hasOwnProperty(key)) {\n // 确保key是对象自身的属性\n var timeArr2 = key.split(':');\n var floatData = this.makeFloatHoursMinutes(timeArr2[0], timeArr2[1]);\n echartsData.push({\n value: [floatData, dataArr[key].val],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n __f__(\"log\", echartsData, \" at components/echarts-data/echarts-data.vue:479\");\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine = [];\n this.option.series[0].type = 'bar';\n this.option.series[0].barMaxWidth = '10';\n this.option.title = {\n text: this.pageData.data_msg.step + '步',\n // subtext: '毫摩尔/升',\n left: 'center'\n };\n break;\n case 'bodyTemperature':\n __f__(\"log\", data, \" at components/echarts-data/echarts-data.vue:491\");\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = timeArr[0] + ':' + '00';\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [parseFloat(v.data_msg)],\n from: 0\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [parseFloat(v.data_msg)]);\n }\n var dataMsg = parseFloat(v.data_msg);\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,dataMsg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += dataMsg;\n if (max == 0 || max < dataMsg) {\n max = dataMsg;\n }\n if (min == 0 || min > dataMsg) {\n min = dataMsg;\n }\n });\n avg = sum / data.length;\n avg = parseFloat(avg.toFixed(2));\n for (var _key in dataArr) {\n if (dataArr.hasOwnProperty(_key)) {\n // 确保key是对象自身的属性\n var _timeArr = _key.split(':');\n var _floatData = this.makeFloatHoursMinutes(_timeArr[0], _timeArr[1]);\n echartsData.push({\n value: [_floatData, this.getAverage(dataArr[_key].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n }\n }\n this.option.series[0].data = echartsData;\n this.option.series[0].type = 'line';\n this.option.series[0].lineStyle = {};\n this.option.series[0].lineStyle.color = '#ccc';\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.yAxis.min = parseInt(min) - 1;\n this.option.yAxis.max = parseInt(max) + 1;\n this.option.yAxis.splitNumber = 1;\n this.option.title = {\n text: min + '-' + max,\n subtext: '℃',\n left: 'center'\n };\n this.dataConfig.bodyTemperature.title = min + '-' + max;\n break;\n case 'bloodOxygen':\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var dataMsg = v.data_msg.filter(function (item) {\n return item > 0;\n });\n if (timeArr[1] % 10 == 0) {\n var _key2 = v.hour_minute;\n if (dataArr[_key2] == undefined) {\n dataArr[_key2] = {\n val: dataMsg,\n from: 0\n };\n } else {\n dataArr[_key2].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key2].val), (0, _toConsumableArray2.default)(dataMsg));\n }\n } else {\n var _key3 = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n if (dataArr[_key3] == undefined) {\n dataArr[_key3] = {\n val: dataMsg,\n from: 1\n };\n } else {\n dataArr[_key3].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key3].val), (0, _toConsumableArray2.default)(dataMsg));\n }\n }\n dataMsg.map(function (v2, i2) {\n if (v2 > 0) {\n arr.push(v2);\n }\n });\n });\n for (var _key4 in dataArr) {\n if (dataArr.hasOwnProperty(_key4)) {\n // 确保key是对象自身的属性\n var _timeArr2 = _key4.split(':');\n var _floatData2 = this.makeFloatHoursMinutes(_timeArr2[0], _timeArr2[1]);\n echartsData.push({\n value: [_floatData2, this.getAverage(dataArr[_key4].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n if (arr.length > 0) {\n min = Math.min.apply(Math, arr);\n max = Math.max.apply(Math, arr);\n }\n this.option.series[0].data = echartsData;\n this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.series[0].markLine.data[0].yAxis = this.getAverage(arr);\n this.option.series[0].markLine.data[0].value = this.getAverage(arr);\n this.option.series[0].markLine.symbol = 'none';\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.position = 'insideEndTop';\n this.option.series[0].markLine.label.formatter = function (data) {\n return data.value + '%';\n // console.log(data,123)\n };\n // this.option.series[0].markLine.label.distance =[10,5]\n this.option.title = {\n text: min + '-' + max,\n subtext: '%',\n left: 'center'\n };\n this.option.yAxis.splitNumber = 2;\n this.dataConfig.bodyTemperature.title = min + '-' + max;\n this.option.yAxis.min = min;\n this.option.yAxis.max = 100;\n break;\n case 'bloodGlucose':\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] < 30) {\n var _key5 = timeArr[0] + ':' + '00';\n if (dataArr[_key5] == undefined) {\n dataArr[_key5] = {\n val: [v.data_msg],\n from: 0\n };\n } else {\n dataArr[_key5].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key5].val), [v.data_msg]);\n }\n } else {\n var _key6 = timeArr[0] + ':' + '30';\n if (dataArr[_key6] == undefined) {\n dataArr[_key6] = {\n val: [v.data_msg],\n from: 1\n };\n } else {\n // console.log(dataArr[key].val)\n dataArr[_key6].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key6].val), [v.data_msg]);\n }\n }\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,v.data_msg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += v.data_msg;\n if (max == 0 || max < v.data_msg) {\n max = v.data_msg;\n }\n if (min == 0 || min > v.data_msg) {\n min = v.data_msg;\n }\n });\n avg = sum / data.length;\n avg = parseFloat(avg.toFixed(2));\n for (var _key7 in dataArr) {\n if (dataArr.hasOwnProperty(_key7)) {\n // 确保key是对象自身的属性\n var _timeArr3 = _key7.split(':');\n var _floatData3 = this.makeFloatHoursMinutes(_timeArr3[0], _timeArr3[1]);\n echartsData.push({\n value: [_floatData3, this.getAverage(dataArr[_key7].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '毫摩尔/升',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n break;\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var timeArr = v.hour_minute.split(':');\n for (var _i = 0; _i < 5; _i++) {\n var real_data = dataMsg[_i];\n if (real_data <= 0) {\n break;\n }\n len += 1;\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],parseInt( timeArr[1]) + i)\n // echartsData.push({value:[floatData,real_data],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n }\n });\n avg = sum / len;\n avg = parseFloat(avg.toFixed(2));\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '%',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 95;\n this.option.yAxis.max = 100;\n break;\n case 'bloodPressure':\n var max2 = 0;\n var min2 = 0;\n var sum2 = 0;\n var echartsData2 = [];\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = timeArr[0] + ':' + '00';\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [v.data_msg.bloodPressureHigh],\n val2: [v.data_msg.bloodPressureLow],\n from: 0\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [v.data_msg.bloodPressureHigh]);\n dataArr[key].val2 = [].concat((0, _toConsumableArray2.default)(dataArr[key].val2), [v.data_msg.bloodPressureLow]);\n }\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,v.data_msg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += v.data_msg.bloodPressureHigh;\n sum2 += v.data_msg.bloodPressureLow;\n if (max == 0 || max < v.data_msg.bloodPressureHigh) {\n max = v.data_msg.bloodPressureHigh;\n }\n if (min == 0 || min > v.data_msg.bloodPressureHigh) {\n min = v.data_msg.bloodPressureHigh;\n }\n if (max2 == 0 || max2 < v.data_msg.bloodPressureLow) {\n max2 = v.data_msg.bloodPressureLow;\n }\n if (min2 == 0 || min2 > v.data_msg.bloodPressureLow) {\n min2 = v.data_msg.bloodPressureLow;\n }\n });\n avg = sum / data.length;\n var avg2 = sum2 / data.length;\n avg = parseInt(avg);\n avg2 = parseInt(avg2);\n // console.log(avg,'ag')\n // console.log(avg2,'ag2')\n __f__(\"log\", dataArr, \" at components/echarts-data/echarts-data.vue:755\");\n for (var _key8 in dataArr) {\n if (dataArr.hasOwnProperty(_key8)) {\n // 确保key是对象自身的属性\n var _timeArr4 = _key8.split(':');\n var _floatData4 = this.makeFloatHoursMinutes(_timeArr4[0], _timeArr4[1]);\n echartsData.push({\n value: [_floatData4, this.getAverage(dataArr[_key8].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n echartsData.push({\n value: [_floatData4, this.getAverage(dataArr[_key8].val2)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color1\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n // this.option.series[1].data = echartsData2\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.data[1] = {};\n this.option.series[0].markLine.data[1].lineStyle = {};\n this.option.series[0].markLine.data[1].lineStyle.color = this.dataConfig[this.pageData.type].color1;\n this.option.series[0].markLine.data[1].label = {};\n this.option.series[0].markLine.data[1].label.color = this.dataConfig[this.pageData.type].color1;\n this.option.series[0].markLine.data[1].yAxis = avg2;\n // this.option.series[1].markLine.lineStyle.color = this.dataConfig[this.type].color\n // this.option.series[1].markLine.label.color = this.dataConfig[this.type].color\n this.option.title = {\n text: '收缩压' + min + '-' + max + ' ' + '舒张压:' + min2 + '-' + max2,\n // subtext: '毫摩尔/升',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n // this.option.yAxis.min = parseInt(min2) - 5;\n // this.option.yAxis.max = parseInt(max) + 5;\n break;\n case 'pulseReat':\n // [data[0]],\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var timeArr = v.hour_minute.split(':');\n var maxLength = dataMsg.length > 5 ? 5 : dataMsg.length;\n var readDataArr = [];\n for (var _i2 = 0; _i2 < maxLength; _i2++) {\n var real_data = dataMsg[_i2];\n if (real_data < 30 || real_data >= 200) {\n continue;\n }\n readDataArr.push(real_data);\n len += 1;\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n }\n if (timeArr[1] < 30) {\n var _key9 = timeArr[0] + ':' + '00';\n if (dataArr[_key9] == undefined) {\n dataArr[_key9] = {\n val: readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n }),\n from: 0\n };\n } else {\n dataArr[_key9].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key9].val), (0, _toConsumableArray2.default)(readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n })));\n }\n } else {\n var _key10 = timeArr[0] + ':' + '30';\n if (dataArr[_key10] == undefined) {\n dataArr[_key10] = {\n val: readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n }),\n from: 0\n };\n } else {\n dataArr[_key10].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key10].val), (0, _toConsumableArray2.default)(readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n })));\n }\n }\n });\n avg = sum / len;\n avg = parseInt(avg);\n for (var _key11 in dataArr) {\n if (dataArr.hasOwnProperty(_key11)) {\n // 确保key是对象自身的属性\n var _timeArr5 = _key11.split(':');\n var _floatData5 = this.makeFloatHoursMinutes(_timeArr5[0], _timeArr5[1]);\n echartsData.push({\n value: [_floatData5, this.getAverage(dataArr[_key11].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '次/分',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n // this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.yAxis.splitNumber = 1;\n this.option.yAxis.min = 30;\n this.option.yAxis.max = 90;\n break;\n case 'bloodLiquid':\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var real_data = dataMsg.uricAcidVal / 10;\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] % 10 == 0) {\n var key = v.hour_minute;\n } else {\n var key = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [real_data]\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [real_data]);\n }\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n len += 1;\n });\n avg = sum / len;\n avg = parseFloat(avg.toFixed(2));\n for (var _key12 in dataArr) {\n if (dataArr.hasOwnProperty(_key12)) {\n // 确保key是对象自身的属性\n var _timeArr6 = _key12.split(':');\n var _floatData6 = this.makeFloatHoursMinutes(_timeArr6[0], _timeArr6[1]);\n var nextKey = this.subtractMinutes(_key12, 10);\n echartsData.push({\n value: [_floatData6, this.getAverage(dataArr[_key12].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n if (!dataArr.hasOwnProperty(nextKey)) {\n echartsData.push(null);\n }\n }\n }\n this.option.series[0].data = echartsData;\n //top / left / right / bottom / inside / insideLeft / insideRight / insideTop / insideBottom / insideTopLeft / insideBottomLeft / insideTopRight / insideBottomRight\n this.option.series[0].markLine.label.position = 'insideEndTop';\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].type = 'line';\n this.option.series[0].symbol = 'none', this.option.series[0].smooth = true;\n this.option.series[0].itemStyle = {\n color: 'rgb(255, 70, 131)'\n };\n this.option.series[0].areaStyle = {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgb(254, 174, 173)'\n }, {\n offset: 1,\n color: 'rgb(255, 255, 248)'\n }])\n };\n\n // this.option.series[0].type = 'this.dataConfig[this.type].color'\n this.option.title = {\n text: min + '-' + max,\n subtext: '微摩尔/升',\n left: 'center',\n textStyle: {\n fontWeight: \"lighter\",\n fontSize: 24\n }\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.option.yAxis.axisLabel.formatter = function (v, i) {\n return v;\n };\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 0;\n this.option.yAxis.max = Math.round(max) + 1;\n break;\n case 'bloodLiquidAll':\n var orTotal = {\n cholesterol: [],\n highDensity: [],\n lowDensity: [],\n triacylglycerol: []\n };\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var real_data = {\n cholesterol: (dataMsg.cholesterol / 100).toFixed(2),\n highDensity: (dataMsg.highDensity / 100).toFixed(2),\n lowDensity: (dataMsg.lowDensity / 100).toFixed(2),\n triacylglycerol: (dataMsg.triacylglycerol / 100).toFixed(2)\n };\n orTotal.cholesterol.push(parseFloat(real_data.cholesterol));\n orTotal.highDensity.push(parseFloat(real_data.highDensity));\n orTotal.lowDensity.push(parseFloat(real_data.lowDensity));\n orTotal.triacylglycerol.push(parseFloat(real_data.triacylglycerol));\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] % 10 == 0) {\n var key = v.hour_minute;\n } else {\n var key = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [real_data.cholesterol],\n highDensity: [real_data.highDensity],\n lowDensity: [real_data.lowDensity],\n triacylglycerol: [real_data.triacylglycerol]\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [real_data.cholesterol]);\n dataArr[key].highDensity = [].concat((0, _toConsumableArray2.default)(dataArr[key].highDensity), [real_data.highDensity]);\n dataArr[key].lowDensity = [].concat((0, _toConsumableArray2.default)(dataArr[key].lowDensity), [real_data.lowDensity]);\n dataArr[key].triacylglycerol = [].concat((0, _toConsumableArray2.default)(dataArr[key].triacylglycerol), [real_data.triacylglycerol]);\n }\n });\n var echartsData1 = [];\n echartsData2 = [];\n var echartsData3 = [];\n var echartsData8 = []; // 测试用\n for (var _key13 in dataArr) {\n if (dataArr.hasOwnProperty(_key13)) {\n // 确保key是对象自身的属性\n var _timeArr7 = _key13.split(':');\n var _floatData7 = this.makeFloatHoursMinutes(_timeArr7[0], _timeArr7[1]);\n var _nextKey = this.subtractMinutes(_key13, 10);\n echartsData.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].val)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData.push(null);\n }\n echartsData1.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].highDensity)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData1.push(null);\n }\n echartsData2.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].lowDensity)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData2.push(null);\n }\n echartsData3.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].triacylglycerol)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData3.push(null);\n }\n\n // console.log(key , dataArr[key]);\n }\n }\n\n __f__(\"log\", echartsData8, \" at components/echarts-data/echarts-data.vue:1035\");\n this.option.legend = {\n data: ['总胆固醇', '甘油三酯', '高密度脂蛋白', '低密度脂蛋白']\n };\n // 总胆固醇\n this.option.series[0].data = echartsData;\n this.option.series[0].type = 'line';\n this.option.series[0].symbol = 'none', this.option.series[0].smooth = true;\n this.option.series[0].name = this.option.legend.data[0];\n this.option.series[0].color = this.dataConfig.bloodLiquidAll.overviewData.data[0].color;\n // 甘油三酯\n this.option.series[1] = {};\n this.option.series[1].data = echartsData3;\n this.option.series[1].type = 'line';\n this.option.series[1].symbol = 'none', this.option.series[1].smooth = true;\n this.option.series[1].name = this.option.legend.data[1];\n this.option.series[1].color = this.dataConfig.bloodLiquidAll.overviewData.data[1].color;\n // 高\n this.option.series[2] = {};\n this.option.series[2].data = echartsData1;\n this.option.series[2].type = 'line';\n this.option.series[2].symbol = 'none', this.option.series[2].smooth = true;\n this.option.series[2].name = this.option.legend.data[2];\n this.option.series[2].color = this.dataConfig.bloodLiquidAll.overviewData.data[2].color;\n // 低\n this.option.series[3] = {};\n this.option.series[3].data = echartsData2;\n this.option.series[3].type = 'line';\n this.option.series[3].symbol = 'none', this.option.series[3].smooth = true;\n this.option.series[3].name = this.option.legend.data[3];\n this.option.series[3].color = this.dataConfig.bloodLiquidAll.overviewData.data[3].color;\n this.option.series[0].markLine = [];\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.dataConfig.bloodLiquidAll.overviewData.data[0].average = this.getAverage(orTotal.cholesterol).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[1].average = this.getAverage(orTotal.triacylglycerol).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[2].average = this.getAverage(orTotal.highDensity).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[3].average = this.getAverage(orTotal.lowDensity).toFixed(2);\n if (orTotal.cholesterol.length > 0) {\n this.dataConfig.bloodLiquidAll.overviewData.data[0].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.cholesterol)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.cholesterol)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[1].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.triacylglycerol)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.triacylglycerol)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[2].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.highDensity)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.highDensity)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[3].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.lowDensity)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.lowDensity)).toFixed(2);\n }\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 0;\n this.option.yAxis.max = 6;\n break;\n }\n return this.option;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9lY2hhcnRzLWRhdGEvZWNoYXJ0cy1kYXRhLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwiZGF0YSIsInRpbWUiLCJkYXRhQ29uZmlnIiwiYmxvb2RHbHVjb3NlIiwidGl0bGUiLCJjb2xvciIsInVuaXQiLCJjYW5rYW9EYXRhIiwiYWRqdXN0bWVudCIsIm1heCIsInN0ZXBJbmRleCIsImJsb29kT3h5Z2VuIiwiYm9keVRlbXBlcmF0dXJlIiwiYmxvb2RQcmVzc3VyZSIsImNvbG9yMSIsInB1bHNlUmVhdCIsImJsb29kTGlxdWlkIiwiYmxvb2RMaXF1aWRBbGwiLCJvdmVydmlld0RhdGEiLCJ0Yl9oZWFkIiwidmFsdWUiLCJhdmVyYWdlIiwiYmdDb2xvciIsIm9wdGlvbiIsInhBeGlzIiwic3BsaXRMaW5lIiwic2hvdyIsInR5cGUiLCJtaW4iLCJheGlzTGFiZWwiLCJzcGxpdE51bWJlciIsImZvcm1hdHRlciIsInlBeGlzIiwibGluZVN0eWxlIiwiYXhpc1RpY2siLCJheGlzTGluZSIsInBvc2l0aW9uIiwic2VyaWVzIiwic3ltYm9sU2l6ZSIsIm1hcmtMaW5lIiwiY2FwIiwibGFiZWwiLCJwcm9wcyIsInBhZ2VEYXRhIiwiZGVmYXVsdCIsIm9uTG9hZCIsImNvbXB1dGVkIiwiZ2V0QWN0aWNlRGV2aWNlIiwibWV0aG9kcyIsImluaXQiLCJnZXREYXRhTGlzdCIsImRldmljZV9yZWFsX3RpbWUiLCJkZXZpY2VfaWQiLCJyZXMiLCJnZXRBdmVyYWdlIiwic3VidHJhY3RNaW51dGVzIiwiZGF0ZSIsIm1ha2VGbG9hdEhvdXJzTWludXRlcyIsImJhY2siLCJnb0FsbFBhdGgiLCJtYWtlT3B0aW9uQ29uZmlnIiwia2V5IiwiZGF0YUFyciIsInZhbCIsImZyb20iLCJlY2hhcnRzRGF0YSIsIml0ZW1TdHlsZSIsInRleHQiLCJsZWZ0Iiwic3VtIiwiYXZnIiwic3VidGV4dCIsImRhdGFNc2ciLCJhcnIiLCJsZW4iLCJ2YWwyIiwic3VtMiIsIm1heDIiLCJtaW4yIiwiYXZnMiIsInJlYWREYXRhQXJyIiwib2Zmc2V0IiwidGV4dFN0eWxlIiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiY2hvbGVzdGVyb2wiLCJoaWdoRGVuc2l0eSIsImxvd0RlbnNpdHkiLCJ0cmlhY3lsZ2x5Y2Vyb2wiLCJvclRvdGFsIiwiZWNoYXJ0c0RhdGEyIiwiZWNoYXJ0c0RhdGExIiwiZWNoYXJ0c0RhdGEzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUF1RUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBQ0E7RUFDQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztRQUNBQztVQUNBQztVQUNBTDtVQUNBTTtVQUNBQztVQUNBQyxhQUNBO1lBQ0FSO1lBQ0FDLE9BQ0EsZ0JBQ0E7WUFDQVEsYUFDQSxNQUNBLE1BQ0EsTUFDQTtZQUNBQztVQUNBLEdBQ0E7WUFDQVY7WUFDQUMsT0FDQSxnQkFDQTtZQUNBUSxhQUNBLE1BQ0EsTUFDQSxNQUNBO1lBQ0FDO1VBQ0EsR0FDQTtZQUNBVjtZQUNBQyxPQUNBLGdCQUNBO1lBQ0FRLGFBQ0EsTUFDQSxNQUNBLE1BQ0E7WUFDQUM7VUFDQTtRQUVBO1FBQ0FDO1VBQ0FYO1VBQ0FNO1VBQ0FDO1FBQ0E7UUFDQUs7VUFDQVA7VUFDQUw7VUFDQU07VUFDQUM7VUFDQUM7UUFFQTtRQUNBSztVQUNBUjtVQUNBTDtVQUNBTTtVQUNBQztVQUNBQztRQUNBO1FBQ0FNO1VBQ0FUO1VBQ0FMO1VBQ0FNO1VBQ0FTO1VBQ0FSO1VBQ0FDO1FBQ0E7UUFDQVE7VUFDQVg7VUFDQUw7VUFDQU07VUFDQUM7VUFDQUM7UUFFQTtRQUNBUztVQUNBWjtVQUNBTDtVQUNBTTtVQUNBQztVQUNBQyxhQUNBO1lBQ0FSO1lBQ0FDLE9BQ0Esa0JBQ0E7WUFDQVEsYUFDQSxNQUNBLE1BQ0EsTUFDQTtZQUNBQztVQUNBO1FBRUE7UUFDQVE7VUFDQWI7VUFDQUw7VUFFQU87VUFDQVk7WUFDQW5CO1lBQ0FvQixVQUNBLElBQ0EsVUFDQSxNQUNB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Q0E7VUFDQTtZQUNBOEQ7WUFDQTtZQUNBQztVQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0FwRTtZQUNBO1lBQ0E7WUFDQTtjQUNBOEQ7Z0JBQ0FDO2dCQUNBQztjQUNBO1lBQ0E7Y0FDQUY7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBTztZQUNBO2NBQ0E1RDtZQUNBO1lBQ0E7Y0FDQW1CO1lBQ0E7VUFDQTtVQUNBMEM7VUFDQUE7VUFDQTtZQUNBO2NBQUE7Y0FDQTtjQUNBO2NBQ0FMO2dCQUFBN0M7Z0JBQUE4QztrQkFBQTdEO2dCQUFBO2NBQUE7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBOEQ7WUFDQUk7WUFDQUg7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBcEU7WUFDQTtZQUNBO2NBQUE7WUFBQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQThEO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Y0FDQTtnQkFDQUY7Y0FDQTtZQUNBO2NBRUE7Y0FDQTtnQkFDQUE7a0JBQ0FDO2tCQUNBQztnQkFDQTtjQUNBO2dCQUNBRjtjQUNBO1lBRUE7WUFJQVU7Y0FDQTtnQkFDQUM7Y0FDQTtZQUVBO1VBRUE7VUFDQTtZQUNBO2NBQUE7Y0FDQTtjQUNBO2NBQ0FSO2dCQUFBN0M7Z0JBQUE4QztrQkFBQTdEO2dCQUFBO2NBQUE7Y0FDQTtZQUNBO1VBQ0E7O1VBQ0E7WUFDQXVCO1lBQ0FuQjtVQUNBO1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUVBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBMEQ7WUFDQUk7WUFDQUg7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBcEU7WUFDQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQThEO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Y0FDQTtnQkFDQUY7Y0FDQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQUE7a0JBQ0FDO2tCQUNBQztnQkFDQTtjQUNBO2dCQUNBO2dCQUNBRjtj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O1lBQ0E7VUFDQTtVQUNBO1VBRUE7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1VBQ0E7VUFDQXhGO1lBQ0E7WUFDQTtjQUNBcUY7Y0FDQUM7Y0FDQUM7Y0FDQUM7WUFDQTtZQUNBQztZQUNBQTtZQUNBQTtZQUNBQTtZQUNBO1lBQ0E7Y0FDQTtZQUNBO2NBQ0E7WUFDQTtZQUNBO2NBQ0EzQjtnQkFDQUM7Z0JBQ0F1QjtnQkFDQUM7Z0JBQ0FDO2NBQ0E7WUFDQTtjQUNBMUI7Y0FDQUE7Y0FDQUE7Y0FDQUE7WUFDQTtVQUdBO1VBRUE7VUFDQTRCO1VBQ0E7VUFDQTtVQUNBO1lBRUE7Y0FBQTtjQUNBO2NBQ0E7Y0FDQTtjQUVBekI7Z0JBQUE3QztjQUFBO2NBQ0E7Z0JBQ0E2QztjQUNBO2NBRUEwQjtnQkFBQXZFO2NBQUE7Y0FDQTtnQkFDQXVFO2NBQ0E7Y0FFQUQ7Z0JBQUF0RTtjQUFBO2NBQ0E7Z0JBQ0FzRTtjQUNBO2NBRUFFO2dCQUFBeEU7Y0FBQTtjQUNBO2dCQUNBd0U7Y0FDQTs7Y0FFQTtZQUNBO1VBQ0E7O1VBQ0E7VUFDQTtZQUNBNUY7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBLHVDQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0EsdUNBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQSx1Q0FDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBLHVDQUNBO1VBQ0E7VUFDQTtVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO01BQUE7TUFFQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDRCIiwiZmlsZSI6IjE3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50c1wiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCIgdi1pZj1cInBhZ2VEYXRhLnR5cGVcIj5cblx0XHRcdFx0PHRtLW5hdi1iYXJcblx0XHRcdFx0XHRsZWZ0LWljb249XCJhcnJvdy1sZWZ0XCIgXG5cdFx0XHRcdFx0OnRpdGxlPVwiZGF0YUNvbmZpZ1twYWdlRGF0YS50eXBlXS5uYW1lXCIgXG5cdFx0XHRcdFx0QGNsaWNrTGVmdD1cImJhY2tcIiBcblx0XHRcdFx0XHQ6cmlnaHRUZXh0PVwiYOWFqOmDqOaVsOaNrmBcIlxuXHRcdFx0XHRcdEBjbGlja1JpZ2h0PVwiZ29BbGxQYXRoXCIvPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBqY3NiIGFjXCIgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O2JhY2tncm91bmQtY29sb3I6ICNmZmY7cGFkZGluZzogMjBycHg7XCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZTogNDBycHg7Zm9udC13ZWlnaHQ6IGJvbGQ7XCI+PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJjb2xvcjogI2I4YjhiODtmb250LXNpemU6IDI0cnB4O1wiPlxuXHRcdFx0XHRcdFx0e3t0aW1lfX1cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O2JhY2tncm91bmQtY29sb3I6ICNmZmY7XCI+PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwYWdlLXZpZXdcIiB2LWlmPVwidGhpcy5wYWdlRGF0YS5kYXRhX21zZ1wiPlxuXHRcdFx0XHRcdDwhLS0g5Zu+6KGoIC0tPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzXCI+XG5cdFx0XHRcdFx0XHQ8bC1lY2hhcnQgcmVmPVwiY2hhcnRSZWZcIiBAZmluaXNoZWQ9XCJpbml0XCI+PC9sLWVjaGFydD5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PG92ZXJ2aWV3IHYtaWY9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLm92ZXJ2aWV3RGF0YVwiIDpvdmVydmlld0RhdGE9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLm92ZXJ2aWV3RGF0YVwiPjwvb3ZlcnZpZXc+XG5cdFx0XHRcdFx0PGNhbmthbyB2LWlmPVwiZGF0YUNvbmZpZ1twYWdlRGF0YS50eXBlXS5jYW5rYW9EYXRhXCIgOmNhbmthb0RhdGE9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLmNhbmthb0RhdGFcIiA+PC9jYW5rYW8+XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggdG90YWxfYm94XCIgdi1pZj1cInBhZ2VEYXRhLnR5cGUgPT0gJ3N0ZXBJbmRleCcgJiYgcGFnZURhdGEuZGF0YV9tc2dcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGlzdGFuY2UgYjFcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHhcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiZm9udC1zaXplOiA0OHJweDtmb250LXdlaWdodDogNjAwO1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgcGFnZURhdGEuZGF0YV9tc2cuZGlzdGFuY2UvMTAwMCB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNwb3J0LXRpdGxlXCIgc3R5bGU9XCJmb250LXNpemU6IDM0cnB4O21hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1sZWZ0OiA0cnB4O2ZvbnQtd2VpZ2h0OiAzMDA7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHTlhazph4xcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcG9ydC1qdmxpXCIgc3R5bGU9XCJmb250LXNpemU6IDQwcnB4O2NvbG9yOiAjOTk5O1wiPlxuXHRcdFx0XHRcdFx0XHRcdOi3neemu1xuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmx4XCIgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ltYWdlL2p1bGkuanBnXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2Fsb3JpZSBiMVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJmb250LXNpemU6IDQ4cnB4O2ZvbnQtd2VpZ2h0OiA2MDA7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBwYWdlRGF0YS5kYXRhX21zZy5jYWxvcmllIC8gMTAgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzRycHg7bWFyZ2luLXRvcDogMTBycHg7bWFyZ2luLWxlZnQ6IDRycHg7Zm9udC13ZWlnaHQ6IDMwMDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOWNg+WNoVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiZm9udC1zaXplOiA0MHJweDtjb2xvcjogIzk5OTtcIj5cblx0XHRcdFx0XHRcdFx0XHTljaHot6/ph4xcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseFwiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBlbmQ7XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pbWFnZS9rYWx2bGkuanBnXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJlbmRcIj5cblx0XHRcdOWIsOW6leS6hlxuXHRcdDwvdmlldz5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAnQC91bmlfbW9kdWxlcy9saW1lLWVjaGFydC9zdGF0aWMvZWNoYXJ0cy5taW4nO1xuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRuYW1lOlwiZWNoYXJ0cy1kYXRhXCIsXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApLFxuXHRcdFx0XHRkYXRhQ29uZmlnOntcblx0XHRcdFx0XHRibG9vZEdsdWNvc2U6e1xuXHRcdFx0XHRcdFx0dGl0bGU6JzEyMzEyMycsXG5cdFx0XHRcdFx0XHRuYW1lOifooYDns5YnLFxuXHRcdFx0XHRcdFx0Y29sb3I6XCIjZmI4NTQ0XCIsXG5cdFx0XHRcdFx0XHR1bml0Oifmr6vmkanlsJQv5Y2HJyxcblx0XHRcdFx0XHRcdGNhbmthb0RhdGE6W1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZTon56m66IW5L+mkkOWJjScsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDMuOSw2LjEsMTVcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNSxcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjE1XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOifppJDlkI4x5bCP5pe2Jyxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOltcblx0XHRcdFx0XHRcdFx0XHRcdDAsNi43LDkuNCwxNVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0YWRqdXN0bWVudDpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjA0LFxuXHRcdFx0XHRcdFx0XHRcdFx0MC4wMCxcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjA0XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRtYXg6MTVcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+mkkOWQjjLlsI/ml7YnLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCw0LjQsNy44LDE1XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRhZGp1c3RtZW50Oltcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDQsXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjAwLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDRcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDoxNVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdGVwSW5kZXg6e1xuXHRcdFx0XHRcdFx0bmFtZTon5q+P5pel6L+Q5YqoJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiIzI5Y2Y2ZlwiLFxuXHRcdFx0XHRcdFx0dW5pdDon5q+r5pGp5bCUL+WNhycsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZE94eWdlbjp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOawpycsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNiZjMyZmNcIixcblx0XHRcdFx0XHRcdHVuaXQ6JyUnLFxuXHRcdFx0XHRcdFx0Y2Fua2FvRGF0YTpmYWxzZSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Ym9keVRlbXBlcmF0dXJlOntcblx0XHRcdFx0XHRcdHRpdGxlOidib2R5VGVtcGVyYXR1cmUnLFxuXHRcdFx0XHRcdFx0bmFtZTon5L2T5ripJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiIzJlYzhkOFwiLFxuXHRcdFx0XHRcdFx0dW5pdDon4oSDJyxcblx0XHRcdFx0XHRcdGNhbmthb0RhdGE6ZmFsc2UsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZFByZXNzdXJlOntcblx0XHRcdFx0XHRcdHRpdGxlOidibG9vZFByZXNzdXJlJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOWOiycsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNmYjg1NDRcIixcblx0XHRcdFx0XHRcdGNvbG9yMTpcIiMwMGMzZGFcIixcblx0XHRcdFx0XHRcdHVuaXQ6J+KEgycsXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOmZhbHNlLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cHVsc2VSZWF0Ontcblx0XHRcdFx0XHRcdHRpdGxlOicxMjMxMjMnLFxuXHRcdFx0XHRcdFx0bmFtZTon5b+D546HJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiI2ZkNTY1NlwiLFxuXHRcdFx0XHRcdFx0dW5pdDon5qyhL+WIhicsXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOmZhbHNlLFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZExpcXVpZDp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+Wwv+mFuCcsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNmMDBcIixcblx0XHRcdFx0XHRcdHVuaXQ6J+W+ruaRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0Y2Fua2FvRGF0YTpbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiflsL/phbgnLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCwxNTAsNDIwLDEwMDBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNixcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNlxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjEwMDBcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZExpcXVpZEFsbDp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOiEgicsXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHVuaXQ6J+W+ruaRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0b3ZlcnZpZXdEYXRhOntcblx0XHRcdFx0XHRcdFx0bmFtZTon6KGA6ISC5qaC5Ya1Jyxcblx0XHRcdFx0XHRcdFx0dGJfaGVhZDpbXG5cdFx0XHRcdFx0XHRcdFx0JycsXG5cdFx0XHRcdFx0XHRcdFx0J+WNleaXpea1i+mHj+iMg+WbtCcsXG5cdFx0XHRcdFx0XHRcdFx0J+W5s+Wdh+WAvCdcblx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTon5oC76IOG5Zu66YaHJyxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOicwLTAnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YXZlcmFnZTowLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6JyM0NmI0ZmYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YmdDb2xvcjonI2UxZjNmZCdcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6J+eUmOayueS4iemFrycsXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTonMC0wJyxcblx0XHRcdFx0XHRcdFx0XHRcdGF2ZXJhZ2U6MCxcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOicjMjljZjZjJyxcblx0XHRcdFx0XHRcdFx0XHRcdGJnQ29sb3I6JyNlMmZmZjMnXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOifpq5jlr4bluqbohILom4vnmb0nLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6JzAtMCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRhdmVyYWdlOjAsXG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjonI2ZjYzA1ZCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRiZ0NvbG9yOicjZmVmNWUzJ1xuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTon5L2O5a+G5bqm6ISC6JuL55m9Jyxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOicwLTAnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YXZlcmFnZTowLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6JyNmYTRlMzMnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YmdDb2xvcjonI2ZlZTVlMSdcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOltcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+aAu+iDhuWbuumGhycsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDIuOCw1LjE3LDIwXG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRhZGp1c3RtZW50Oltcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDUsXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjAyLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDVcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDoxMFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZTon55SY5rK55LiJ6YWvJyxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOltcblx0XHRcdFx0XHRcdFx0XHRcdDAsMC41NiwxLjcsMjBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNixcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjAyLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDRcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDozXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOifpq5jlr4bluqbohILom4vnmb0nLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCwwLjk2LDEuMTUsMjBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNCxcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNFxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjNcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+S9juWvhuW6puiEguibi+eZvScsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDMuMSwyMFxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0YWRqdXN0bWVudDpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjA0LFxuXHRcdFx0XHRcdFx0XHRcdFx0MC4wMCxcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjA0XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRtYXg6MjBcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0b3B0aW9uOntcblx0XHRcdFx0XHQvLyB0b29sdGlwOiB7XG5cdFx0XHRcdFx0Ly8gXHR0cmlnZ2VyOiAnaXRlbScsXG5cdFx0XHRcdFx0Ly8gXHRmb3JtYXR0ZXI6IGZ1bmN0aW9uIChwYXJhbXMpIHtcblx0XHRcdFx0XHQvLyBcdFx0Ly8gcGFyYW1zIOaYr+aVsOaNrueahOebuOWFs+S/oeaBr++8jOWPr+S7peagueaNrumcgOimgei/m+ihjOWkhOeQhlxuXHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZyhwYXJhbXMpXG5cdFx0XHRcdFx0Ly8gXHRcdGlmKHBhcmFtcy5jb21wb25lbnRUeXBlID09ICdzZXJpZXMnKXtcblx0XHRcdFx0XHQvLyBcdFx0XHRyZXR1cm4gYDxodG1sPjxkaXYgc3R5bGU9XCJ3aWR0aDoxMHB4XCI+XG5cdFx0XHRcdFx0Ly8gXHRcdFx0XHRcdDxwPiR7cGFyYW1zLnNlcmllc05hbWV9PC9wPlxuXHRcdFx0XHRcdC8vIFx0XHRcdFx0XHQ8cD4ke3BhcmFtcy5uYW1lfTogJHtwYXJhbXMudmFsdWVbMV19PC9wPlxuXHRcdFx0XHRcdC8vIFx0XHRcdFx0PC9kaXY+PC9odG1sPmBcblx0XHRcdFx0XHQvLyBcdFx0fVxuXHRcdFx0XHRcdC8vIFx0XHRyZXR1cm4gJyc7XG5cdFx0XHRcdFx0Ly8gXHR9LFxuXHRcdFx0XHRcdC8vIFx0Ly8gcmVuZGVyTW9kZTonaHRtbCdcblx0XHRcdFx0XHQvLyBcdC8vIGF4aXNQb2ludGVyOiB7XG5cdFx0XHRcdFx0Ly8gXHQvLyAgIHR5cGU6ICdsaW5lJyxcblx0XHRcdFx0XHQvLyBcdC8vICAgbGFiZWw6IHtcblx0XHRcdFx0XHQvLyBcdC8vIFx0YmFja2dyb3VuZENvbG9yOiAnIzZhNzk4NSdcblx0XHRcdFx0XHQvLyBcdC8vICAgfVxuXHRcdFx0XHRcdC8vIFx0Ly8gfSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0Ly8gICB9LFxuXHRcdFx0XHQgIHhBeGlzOiB7XG5cdFx0XHRcdFx0c3BsaXRMaW5lOntcblx0XHRcdFx0XHQgIHNob3c6ZmFsc2Vcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHR5cGU6J3ZhbHVlJyxcblx0XHRcdFx0XHRtYXg6NCxcblx0XHRcdFx0XHRtaW46MCxcblx0XHRcdFx0XHRheGlzTGFiZWw6IHtcblx0XHRcdFx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHRcdFx0XHRzcGxpdE51bWJlcjoyLFxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGFyciA9IFsnMTJhbScsICc2YW0nLCAnMTJwbScsICc2cG0nLCAnMTJhbSddXG5cdFx0XHRcdFx0XHRcdHJldHVybiBhcnJbIE1hdGguZmxvb3IoaW5kZXgpXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdCAgfSxcblx0XHRcdFx0IFxuXHRcdFx0XHQgIHlBeGlzOiB7XG5cdFx0XHRcdFx0ICBzcGxpdExpbmU6e1xuXHRcdFx0XHRcdFx0c2hvdzp0cnVlLFxuXHRcdFx0XHRcdFx0bGluZVN0eWxlOiB7XG5cdFx0XHRcdFx0XHRcdC8vIOS9v+eUqOa3sea1heeahOmXtOmalOiJslxuXHRcdFx0XHRcdFx0XHRjb2xvcjogW1wiI2NjY1wiXSxcblx0XHRcdFx0XHRcdFx0dHlwZTpcImRhc2hlZFwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgYXhpc1RpY2s6IHtcblx0XHRcdFx0XHRcdCAgc2hvdzogZmFsc2Vcblx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdFx0ICBheGlzTGluZToge1xuXHRcdFx0XHRcdFx0ICBzaG93OiBmYWxzZSAvLyDorr7nva556L2057q/5LiN5pi+56S6XG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgYXhpc0xhYmVsOiB7fSxcblx0XHRcdFx0XHQgIHBvc2l0aW9uOlwicmlnaHRcIixcblx0XHRcdFx0XHQgIHNwbGl0TnVtYmVyOjNcblx0XHRcdFx0XHQgIFxuXHRcdFx0XHQgIH0sXG5cdFx0XHRcdCAgc2VyaWVzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdCAgc3ltYm9sU2l6ZTogNSxcblx0XHRcdFx0XHQgIGRhdGE6IFxuXHRcdFx0XHRcdCAgW1xuXHRcdFx0XHRcdCAgXSxcblx0XHRcdFx0XHQgIFxuXHRcdFx0XHRcdCAgbWFya0xpbmU6IHtcblx0XHRcdFx0XHQgICAgICBkYXRhOiBbXG5cdFx0XHRcdFx0ICAgICAgICAgIHtcblx0XHRcdFx0XHRcdFx0XHQgIHNob3c6ZmFsc2UsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgICB5QXhpczogMi41LCAvLyDlnKggeSDlgLzkuLogMTAwIOeahOS9jee9rua3u+WKoOawtOW5s+WPguiAg+e6v1xuXHRcdFx0XHRcdCAgICAgICAgICB9LFxuXHRcdFx0XHRcdFx0XHQgIFxuXHRcdFx0XHRcdCAgICAgIF0sXG5cdFx0XHRcdFx0XHQgIGxpbmVTdHlsZTp7XG5cdFx0XHRcdFx0XHRcdCAgY29sb3I6JyNjY2MnLFxuXHRcdFx0XHRcdFx0XHQgIGNhcDpcImJ1dHRcIlxuXHRcdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdFx0ICBsYWJlbDp7XG5cdFx0XHRcdFx0XHRcdCBjb2xvcjonI2NjYycsXG5cdFx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgdHlwZTogJ3NjYXR0ZXInLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdCAgXSxcblx0XHRcdFx0ICBcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cHJvcHM6IHtcblx0XHRcdHBhZ2VEYXRhOiB7XG5cdFx0XHRcdGRlZmF1bHQ6ICgpID0+ICh7fSksXG5cdFx0XHRcdHR5cGU6IE9iamVjdFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0b25Mb2FkKCkge1xuXHRcdFx0dGhpcy50eXBlID0gcGFnZURhdGEudHlwZTtcblx0XHR9LFxuXHRcdGNvbXB1dGVkOiB7XG5cdFx0XHQuLi5tYXBHZXR0ZXJzKHtcblx0XHRcdFx0Z2V0QWN0aWNlRGV2aWNlOiBcImFwaS9nZXRBY3RpY2VEZXZpY2VcIlxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGFzeW5jIGluaXQoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnQgPSBhd2FpdCB0aGlzLiRyZWZzLmNoYXJ0UmVmLmluaXQoZWNoYXJ0cyk7XG5cdFx0XHRcdGxldCBvcHRpb24gPSBhd2FpdCB0aGlzLmdldERhdGFMaXN0KCk7XG5cdFx0XHRcdHRoaXMuY2hhcnQuc2V0T3B0aW9uKG9wdGlvbilcblx0XHRcdH0sXG5cdFx0XHRhc3luYyBnZXREYXRhTGlzdCgpe1xuXHRcdFx0XHRsZXQgdHlwZSA9IHRoaXMucGFnZURhdGEudHlwZVxuXHRcdFx0XHRcblx0XHRcdFx0aWYodHlwZSA9PSAnYmxvb2RMaXF1aWRBbGwnKXtcblx0XHRcdFx0XHR0eXBlID0gJ2Jsb29kTGlxdWlkJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCByZXMgPSBhd2FpdCB0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYXBpL2dldERldmljZUxpc3REYXlzJywge1xuXHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0ZGV2aWNlX3JlYWxfdGltZTogdGhpcy50aW1lLFxuXHRcdFx0XHRcdGRldmljZV9pZDp0aGlzLmdldEFjdGljZURldmljZS5kZXZpY2VfaWRcblx0XHRcdFx0fSlcblx0XHRcdFx0XG5cdFx0XHRcdHJldHVybiB0aGlzLm1ha2VPcHRpb25Db25maWcocmVzLmRhdGEpO1xuXHRcdFx0fSxcblx0XHRcdGdldEF2ZXJhZ2UoYXJyKSB7XG5cdFx0XHQgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHJldHVybiAwOyAvLyDlpoLmnpzmlbDnu4TkuLrnqbrvvIzliJnov5Tlm54wXG5cdFx0XHQgICAgY29uc3Qgc3VtID0gYXJyLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWUpO1xuXHRcdFx0ICAgIHJldHVybiBzdW0gLyBhcnIubGVuZ3RoOyAvLyDorqHnrpflubPlnYflgLxcblx0XHRcdH0sXG5cdFx0XHRzdWJ0cmFjdE1pbnV0ZXModGltZVN0ciwgbWludXRlcykge1xuXHRcdFx0ICBjb25zdCBwYXJ0cyA9IHRpbWVTdHIuc3BsaXQoJzonKTtcblx0XHRcdCAgY29uc3QgaG91cnMgPSBwYXJzZUludChwYXJ0c1swXSwgMTApO1xuXHRcdFx0ICBjb25zdCBtaW51dGVzTGVmdCA9IHBhcnNlSW50KHBhcnRzWzFdLCAxMCk7XG5cdFx0XHQgXG5cdFx0XHQgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0ICBkYXRlLnNldEhvdXJzKGhvdXJzLCBtaW51dGVzTGVmdCwgMCwgMCk7IC8vIOiuvue9ruaXtuOAgeWIhuOAgeenkuOAgeavq+enklxuXHRcdFx0ICBkYXRlLnNldE1pbnV0ZXMoZGF0ZS5nZXRNaW51dGVzKCkgLSBtaW51dGVzKTsgLy8g5YeP5Y675oyH5a6a55qE5YiG6ZKf5pWwXG5cdFx0XHQgXG5cdFx0XHQgIC8vIOagvOW8j+WMluS4ukhIOk1NXG5cdFx0XHQgIGNvbnN0IG5ld0hvdXJzID0gZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRcdCAgY29uc3QgbmV3TWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRcdCAgcmV0dXJuIG5ld0hvdXJzICsgJzonICsgbmV3TWludXRlcztcblx0XHRcdH0sXG5cdFx0XHRtYWtlRmxvYXRIb3Vyc01pbnV0ZXMoaG91cnMsIG1pbnV0ZXMpIHtcblx0XHRcdFx0XG5cdFx0XHQgICAgbGV0IHRvdGFsID0gaG91cnMgKiAzNjAwICsgbWludXRlcyAqIDYwO1xuXHRcdFx0XHRsZXQgZmxvYXREYXRhID0gIHRvdGFsIC8gODY0MDAgKiA0XG5cdFx0XHRcdHJldHVybiBmbG9hdERhdGEudG9GaXhlZCgyKTtcblx0XHRcdH0sXG5cdFx0XHRiYWNrKCkge1xuXHRcdFx0XHR0aGlzLiRlbWl0KCdiYWNrJywgMSlcblx0XHRcdH0sXG5cdFx0XHRcblx0XHRcdC8vIOWFqOmDqOaVsOaNrlxuXHRcdFx0Z29BbGxQYXRoKCkge1xuXHRcdFx0XHR0aGlzLiRlbWl0KCdhbGxEYXRhJywgMylcblx0XHRcdH0sXG5cdFx0XHQvLy8gZ2l0IGRldiB0ZXN0XG5cdFx0XHRtYWtlT3B0aW9uQ29uZmlnKGRhdGEpe1xuXHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKVxuXHRcdFx0XHRsZXQgZWNoYXJ0c0RhdGEgPSBbXTtcblx0XHRcdFx0bGV0IHN1bSA9IDA7XG5cdFx0XHRcdGxldCBtYXggPSAwO1xuXHRcdFx0XHRsZXQgbWluID0gMDtcblx0XHRcdFx0bGV0IGF2ZyA9IDA7XG5cdFx0XHRcdGxldCBsZW4gPSAwO1xuXHRcdFx0XHRsZXQgYXJyID0gW107XG5cdFx0XHRcdGxldCBkYXRhQXJyID0ge307XG5cdFx0XHRcdFxuXHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuc3ltYm9sID0gJ25vbmUnXG5cdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5wb3NpdGlvbiA9J2luc2lkZUVuZFRvcCdcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5wYWdlRGF0YS50eXBlLCAnOTAwMDAwMDAwMDAwJylcblx0XHRcdFx0c3dpdGNoKHRoaXMucGFnZURhdGEudHlwZSl7XG5cdFx0XHRcdFx0Y2FzZSAnc3RlcEluZGV4Jzpcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCfmraXmlbAnKVxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0bGV0IGtleSA9ICcnO1xuXHRcdFx0XHRcdFx0XHRpZih0aW1lQXJyWzFdIDwgMzApe1xuXHRcdFx0XHRcdFx0XHRcdGtleSA9IHRpbWVBcnJbMF0rJzonKycwMCdcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0a2V5ID0gdGltZUFyclswXSsnOicrJzMwJ1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbDp2LmRhdGFfbXNnLnN0ZXAsXG5cdFx0XHRcdFx0XHRcdFx0XHRmcm9tOjFcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS52YWwgKz0gdi5kYXRhX21zZy5zdGVwO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSwoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGtleSAsIGRhdGFBcnJba2V5XSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGVjaGFydHNEYXRhKVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lID0gW11cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS50eXBlID0gJ2Jhcidcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5iYXJNYXhXaWR0aCA9ICcxMCdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnRpdGxlID0ge1xuXHRcdFx0XHRcdFx0XHR0ZXh0IDp0aGlzLnBhZ2VEYXRhLmRhdGFfbXNnLnN0ZXAgKyAn5q2lJyxcblx0XHRcdFx0XHRcdFx0Ly8gc3VidGV4dDogJ+avq+aRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ2JvZHlUZW1wZXJhdHVyZSc6XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKVxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHRpbWVBcnJbMF0rJzonKycwMCdcblx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsOltwYXJzZUZsb2F0KHYuZGF0YV9tc2cpXSxcblx0XHRcdFx0XHRcdFx0XHRcdGZyb206MFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLHBhcnNlRmxvYXQodi5kYXRhX21zZyldO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gcGFyc2VGbG9hdCh2LmRhdGFfbXNnKTtcblx0XHRcdFx0XHRcdFx0Ly8gbGV0IGZsb2F0RGF0YSA9IHRoaXMubWFrZUZsb2F0SG91cnNNaW51dGVzKHRpbWVBcnJbMF0sdGltZUFyclsxXSlcblx0XHRcdFx0XHRcdFx0Ly8gZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSxkYXRhTXNnXSxpdGVtU3R5bGU6IHtjb2xvcjogdGhpcy5kYXRhQ29uZmlnW3RoaXMudHlwZV0uY29sb3J9fSlcblx0XHRcdFx0XHRcdFx0c3VtICs9IGRhdGFNc2dcblx0XHRcdFx0XHRcdFx0aWYobWF4ID09IDAgfHwgbWF4IDwgZGF0YU1zZyl7XG5cdFx0XHRcdFx0XHRcdFx0bWF4ID0gZGF0YU1zZ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IGRhdGFNc2cpe1xuXHRcdFx0XHRcdFx0XHRcdG1pbiA9IGRhdGFNc2dcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdGF2ZyA9IHN1bSAvIGRhdGEubGVuZ3RoXG5cdFx0XHRcdFx0XHRhdmcgPSBwYXJzZUZsb2F0KGF2Zy50b0ZpeGVkKDIpKVxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0udHlwZSA9ICdsaW5lJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmxpbmVTdHlsZSA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubGluZVN0eWxlLmNvbG9yID0gJyNjY2MnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IGF2Z1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gcGFyc2VJbnQobWluKS0xO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWF4ID0gcGFyc2VJbnQobWF4KSArIDE7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5zcGxpdE51bWJlciA9IDE7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi50aXRsZSA9IHtcblx0XHRcdFx0XHRcdFx0dGV4dCA6bWluICsgJy0nICsgbWF4LFxuXHRcdFx0XHRcdFx0XHRzdWJ0ZXh0OiAn4oSDJyxcblx0XHRcdFx0XHRcdFx0bGVmdDogJ2NlbnRlcidcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYm9keVRlbXBlcmF0dXJlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdibG9vZE94eWdlbic6XG5cdFx0XHRcdFx0XHRcdGRhdGEubWFwKCh2LGkpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZGF0YU1zZyA9IHYuZGF0YV9tc2cuZmlsdGVyKGl0ZW0gPT4gaXRlbSA+IDApO1xuXHRcdFx0XHRcdFx0XHRcdGlmKHRpbWVBcnJbMV0gJSAxMCA9PSAwKXtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBrZXkgPSB2LmhvdXJfbWludXRlXG5cdFx0XHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbDpkYXRhTXNnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLC4uLmRhdGFNc2ddO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gdGltZUFyclswXSsnOicrKCh0aW1lQXJyWzFdIC0gNSkgPT0gMD8nMDAnOih0aW1lQXJyWzFdIC0gNSkpXG5cdFx0XHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbDpkYXRhTXNnLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLC4uLmRhdGFNc2ddO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGRhdGFNc2cubWFwKCh2MixpMikgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYodjIgPiAwKXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0YXJyLnB1c2godjIpXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChkYXRhQXJyLmhhc093blByb3BlcnR5KGtleSkpIHsgLy8g56Gu5L+da2V55piv5a+56LGh6Ieq6Lqr55qE5bGe5oCnXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdGhpcy5nZXRBdmVyYWdlKGRhdGFBcnJba2V5XS52YWwpXSxpdGVtU3R5bGU6IHtjb2xvcjogdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3J9fSlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGtleSAsIGRhdGFBcnJba2V5XSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKGFyci5sZW5ndGggPiAwKXtcblx0XHRcdFx0XHRcdFx0XHRtaW4gPSBNYXRoLm1pbiguLi5hcnIpXG5cdFx0XHRcdFx0XHRcdFx0bWF4ID0gTWF0aC5tYXgoLi4uYXJyKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLmF4aXNMYWJlbC5mb3JtYXR0ZXIgPSAne3ZhbHVlfSUnO1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IHRoaXMuZ2V0QXZlcmFnZShhcnIpXG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzBdLnZhbHVlID0gdGhpcy5nZXRBdmVyYWdlKGFycilcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLnN5bWJvbCA9ICdub25lJ1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5wb3NpdGlvbiA9J2luc2lkZUVuZFRvcCdcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmZvcm1hdHRlciA9IGZ1bmN0aW9uKGRhdGEpe1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBkYXRhLnZhbHVlICsgJyUnXG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YSwxMjMpXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5kaXN0YW5jZSA9WzEwLDVdXG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnRpdGxlID0ge1xuXHRcdFx0XHRcdFx0XHRcdHRleHQgOm1pbiArICctJyArIG1heCxcblx0XHRcdFx0XHRcdFx0XHRzdWJ0ZXh0OiAnJScsXG5cdFx0XHRcdFx0XHRcdFx0bGVmdDogJ2NlbnRlcidcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuc3BsaXROdW1iZXIgPSAyO1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYm9keVRlbXBlcmF0dXJlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1pbiA9IG1pbjtcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWF4ID0gMTAwO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdibG9vZEdsdWNvc2UnOlxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0aWYodGltZUFyclsxXSA8IDMwKXtcblx0XHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gdGltZUFyclswXSsnOicrJzAwJ1xuXHRcdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWw6W3YuZGF0YV9tc2ddLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmcm9tOjBcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS52YWwgPSBbLi4uZGF0YUFycltrZXldLnZhbCx2LmRhdGFfbXNnXTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdGxldCBrZXkgPSB0aW1lQXJyWzBdKyc6JysnMzAnXG5cdFx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbDpbdi5kYXRhX21zZ10sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coZGF0YUFycltrZXldLnZhbClcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS52YWwgPSBbLi4uZGF0YUFycltrZXldLnZhbCx2LmRhdGFfbXNnXTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Ly8gbGV0IGZsb2F0RGF0YSA9IHRoaXMubWFrZUZsb2F0SG91cnNNaW51dGVzKHRpbWVBcnJbMF0sdGltZUFyclsxXSlcblx0XHRcdFx0XHRcdFx0Ly8gZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx2LmRhdGFfbXNnXSxpdGVtU3R5bGU6IHtjb2xvcjogdGhpcy5kYXRhQ29uZmlnW3RoaXMudHlwZV0uY29sb3J9fSlcblx0XHRcdFx0XHRcdFx0c3VtICs9IHYuZGF0YV9tc2dcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGlmKG1heCA9PSAwIHx8IG1heCA8IHYuZGF0YV9tc2cpe1xuXHRcdFx0XHRcdFx0XHRcdG1heCA9IHYuZGF0YV9tc2dcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZihtaW4gPT0gMCB8fCBtaW4gPiB2LmRhdGFfbXNnKXtcblx0XHRcdFx0XHRcdFx0XHRtaW4gPSB2LmRhdGFfbXNnXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGF2ZyA9IHN1bSAvIGRhdGEubGVuZ3RoXG5cdFx0XHRcdFx0XHRhdmcgPSBwYXJzZUZsb2F0KGF2Zy50b0ZpeGVkKDIpKVxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGtleSAsIGRhdGFBcnJba2V5XSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5kYXRhID0gZWNoYXJ0c0RhdGFcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzBdLnlBeGlzID0gYXZnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi50aXRsZSA9IHtcblx0XHRcdFx0XHRcdFx0dGV4dCA6bWluICsgJy0nICsgbWF4LFxuXHRcdFx0XHRcdFx0XHRzdWJ0ZXh0OiAn5q+r5pGp5bCUL+WNhycsXG5cdFx0XHRcdFx0XHRcdGxlZnQ6ICdjZW50ZXInXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kR2x1Y29zZS50aXRsZSA9IG1pbiArICctJyArIG1heFxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRsZXQgZGF0YU1zZyA9IHYuZGF0YV9tc2c7XG5cdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyID0gdi5ob3VyX21pbnV0ZS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRmb3IobGV0IGkgPSAwO2k8NTtpKyspe1xuXHRcdFx0XHRcdFx0XHRcdGxldCByZWFsX2RhdGEgPSBkYXRhTXNnW2ldXG5cdFx0XHRcdFx0XHRcdFx0aWYocmVhbF9kYXRhIDw9IDApe1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGxlbiArPSAxO1xuXHRcdFx0XHRcdFx0XHRcdC8vIGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyWzBdLHBhcnNlSW50KCB0aW1lQXJyWzFdKSArIGkpXG5cdFx0XHRcdFx0XHRcdFx0Ly8gZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSxyZWFsX2RhdGFdLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdHN1bSArPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHRpZihtYXggPT0gMCB8fCBtYXggPCByZWFsX2RhdGEpe1xuXHRcdFx0XHRcdFx0XHRcdFx0bWF4ID0gcmVhbF9kYXRhXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IHJlYWxfZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRtaW4gPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0YXZnID0gc3VtIC8gbGVuXG5cdFx0XHRcdFx0XHRhdmcgPSBwYXJzZUZsb2F0KGF2Zy50b0ZpeGVkKDIpKVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMF0ueUF4aXMgPSBhdmdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5saW5lU3R5bGUuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnRpdGxlID0ge1xuXHRcdFx0XHRcdFx0XHR0ZXh0IDptaW4gKyAnLScgKyBtYXgsXG5cdFx0XHRcdFx0XHRcdHN1YnRleHQ6ICclJyxcblx0XHRcdFx0XHRcdFx0bGVmdDogJ2NlbnRlcidcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RHbHVjb3NlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5heGlzTGFiZWwuZm9ybWF0dGVyID0gJ3t2YWx1ZX0lJztcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLnNwbGl0TnVtYmVyID0gMztcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1pbiA9IDk1O1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWF4ID0gMTAwO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnYmxvb2RQcmVzc3VyZSc6XG5cdFx0XHRcdFx0XHRsZXQgbWF4MiA9IDA7XG5cdFx0XHRcdFx0XHRsZXQgbWluMiA9IDA7XG5cdFx0XHRcdFx0XHRsZXQgc3VtMiA9IDA7XG5cdFx0XHRcdFx0XHRsZXQgZWNoYXJ0c0RhdGEyID0gW11cblx0XHRcdFx0XHRcdGRhdGEubWFwKCh2LGkpID0+IHtcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIgPSB2LmhvdXJfbWludXRlLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdGxldCBrZXkgPSB0aW1lQXJyWzBdKyc6JysnMDAnXG5cdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbDpbdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaF0sXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWwyOlt2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVMb3ddLFxuXHRcdFx0XHRcdFx0XHRcdFx0ZnJvbTowXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwsdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaF07XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbDIgPSBbLi4uZGF0YUFycltrZXldLnZhbDIsdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93XTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFyclswXSx0aW1lQXJyWzFdKVxuXHRcdFx0XHRcdFx0XHQvLyBlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHYuZGF0YV9tc2ddLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRzdW0gKz0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaFxuXHRcdFx0XHRcdFx0XHRzdW0yICs9IHYuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUxvd1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYobWF4ID09IDAgfHwgbWF4IDwgdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaCl7XG5cdFx0XHRcdFx0XHRcdFx0bWF4ID0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IHYuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUhpZ2gpe1xuXHRcdFx0XHRcdFx0XHRcdG1pbiA9IHYuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUhpZ2hcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZihtYXgyID09IDAgfHwgbWF4MiA8IHYuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUxvdyl7XG5cdFx0XHRcdFx0XHRcdFx0bWF4MiA9IHYuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUxvd1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1pbjIgPT0gMCB8fCBtaW4yID4gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93KXtcblx0XHRcdFx0XHRcdFx0XHRtaW4yID0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRhdmcgPSBzdW0gLyBkYXRhLmxlbmd0aFxuXHRcdFx0XHRcdFx0bGV0IGF2ZzIgPSBzdW0yIC8gZGF0YS5sZW5ndGhcblx0XHRcdFx0XHRcdGF2ZyA9IHBhcnNlSW50KGF2Zylcblx0XHRcdFx0XHRcdGF2ZzIgPSBwYXJzZUludChhdmcyKVxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coYXZnLCdhZycpXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhhdmcyLCdhZzInKVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZGF0YUFycilcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdGhpcy5nZXRBdmVyYWdlKGRhdGFBcnJba2V5XS52YWwyKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yMX19KVxuXHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGtleSAsIGRhdGFBcnJba2V5XSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5kYXRhID0gZWNoYXJ0c0RhdGFcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnNlcmllc1sxXS5kYXRhID0gZWNoYXJ0c0RhdGEyXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IGF2Z1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0gPSB7fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0ubGluZVN0eWxlID0ge31cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzFdLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yMVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0ubGFiZWwgPSB7fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0ubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcjFcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzFdLnlBeGlzID0gYXZnMlxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5vcHRpb24uc2VyaWVzWzFdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHQvLyB0aGlzLm9wdGlvbi5zZXJpZXNbMV0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdHRleHQgOifmlLbnvKnljosnK21pbiArICctJyArIG1heCArICcgICAnKyAn6IiS5byg5Y6L77yaJyArbWluMiArICctJyArIG1heDIsXG5cdFx0XHRcdFx0XHRcdC8vIHN1YnRleHQ6ICfmr6vmkanlsJQv5Y2HJyxcblx0XHRcdFx0XHRcdFx0bGVmdDogJ2NlbnRlcidcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RHbHVjb3NlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHQvLyB0aGlzLm9wdGlvbi55QXhpcy5taW4gPSBwYXJzZUludChtaW4yKSAtIDU7XG5cdFx0XHRcdFx0XHQvLyB0aGlzLm9wdGlvbi55QXhpcy5tYXggPSBwYXJzZUludChtYXgpICsgNTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0Y2FzZSAncHVsc2VSZWF0Jzpcblx0XHRcdFx0XHRcdC8vIFtkYXRhWzBdXSxcblx0XHRcdFx0XHRcdGRhdGEubWFwKCh2LGkpID0+IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gdi5kYXRhX21zZztcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIgPSB2LmhvdXJfbWludXRlLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdGxldCBtYXhMZW5ndGggPSAoZGF0YU1zZy5sZW5ndGggPiA1PzU6ZGF0YU1zZy5sZW5ndGgpXG5cdFx0XHRcdFx0XHRcdGxldCByZWFkRGF0YUFyciA9IFtdO1xuXHRcdFx0XHRcdFx0XHRmb3IobGV0IGkgPSAwO2k8bWF4TGVuZ3RoO2krKyl7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHJlYWxfZGF0YSA9IGRhdGFNc2dbaV1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRpZigocmVhbF9kYXRhIDwgMzAgfHwgcmVhbF9kYXRhID49IDIwMCkpe1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHJlYWREYXRhQXJyLnB1c2gocmVhbF9kYXRhKVxuXHRcdFx0XHRcdFx0XHRcdGxlbiArPSAxO1xuXHRcdFx0XHRcdFx0XHRcdHN1bSArPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHRpZihtYXggPT0gMCB8fCBtYXggPCByZWFsX2RhdGEpe1xuXHRcdFx0XHRcdFx0XHRcdFx0bWF4ID0gcmVhbF9kYXRhXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IHJlYWxfZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRtaW4gPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGlmKHRpbWVBcnJbMV0gPCAzMCl7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHRpbWVBcnJbMF0rJzonKycwMCdcblx0XHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsOnJlYWREYXRhQXJyLmZpbHRlcihpdGVtID0+IChpdGVtID4gMzAgfHwgaXRlbSAgPD0gMjAwKSksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MFxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLC4uLnJlYWREYXRhQXJyLmZpbHRlcihpdGVtID0+IChpdGVtID4gMzAgfHwgaXRlbSAgPD0gMjAwKSldO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHRpbWVBcnJbMF0rJzonKyczMCdcblx0XHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsOnJlYWREYXRhQXJyLmZpbHRlcihpdGVtID0+IChpdGVtID4gMzAgfHwgaXRlbSAgPD0gMjAwKSksXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MFxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLC4uLnJlYWREYXRhQXJyLmZpbHRlcihpdGVtID0+IChpdGVtID4gMzAgfHwgaXRlbSAgPD0gMjAwKSldO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdGF2ZyA9IHN1bSAvIGxlblxuXHRcdFx0XHRcdFx0YXZnID0gcGFyc2VJbnQoYXZnKVxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGtleSAsIGRhdGFBcnJba2V5XSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMF0ueUF4aXMgPSBhdmdcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdHRleHQgOm1pbiArICctJyArIG1heCxcblx0XHRcdFx0XHRcdFx0c3VidGV4dDogJ+asoS/liIYnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZEdsdWNvc2UudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnlBeGlzLmF4aXNMYWJlbC5mb3JtYXR0ZXIgPSAne3ZhbHVlfSUnO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuc3BsaXROdW1iZXIgPSAxO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gMzA7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5tYXggPSA5MDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdibG9vZExpcXVpZCc6XG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gdi5kYXRhX21zZztcblx0XHRcdFx0XHRcdFx0bGV0IHJlYWxfZGF0YSA9IGRhdGFNc2cudXJpY0FjaWRWYWwvMTBcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIgPSB2LmhvdXJfbWludXRlLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRpZih0aW1lQXJyWzFdICUgMTAgPT0gMCl7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGtleSA9IHYuaG91cl9taW51dGVcblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGtleSA9IHRpbWVBcnJbMF0rJzonKygodGltZUFyclsxXSAtIDUpID09IDA/JzAwJzoodGltZUFyclsxXSAtIDUpKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdHZhbDpbcmVhbF9kYXRhXSxcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS52YWwgPSBbLi4uZGF0YUFycltrZXldLnZhbCxyZWFsX2RhdGFdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHN1bSArPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0aWYobWF4ID09IDAgfHwgbWF4IDwgcmVhbF9kYXRhKXtcblx0XHRcdFx0XHRcdFx0XHRtYXggPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZihtaW4gPT0gMCB8fCBtaW4gPiByZWFsX2RhdGEpe1xuXHRcdFx0XHRcdFx0XHRcdG1pbiA9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxlbiArPSAxO1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGF2ZyA9IHN1bSAvIGxlblxuXHRcdFx0XHRcdFx0YXZnID0gcGFyc2VGbG9hdChhdmcudG9GaXhlZCgyKSlcblx0XHRcdFx0XHRcdGZvciAobGV0IGtleSBpbiBkYXRhQXJyKSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRsZXQgbmV4dEtleSA9IHRoaXMuc3VidHJhY3RNaW51dGVzKGtleSwxMClcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0aWYoIWRhdGFBcnIuaGFzT3duUHJvcGVydHkobmV4dEtleSkpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaChudWxsKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHQvL3RvcCAvIGxlZnQgLyByaWdodCAvIGJvdHRvbSAvIGluc2lkZSAvIGluc2lkZUxlZnQgLyBpbnNpZGVSaWdodCAvIGluc2lkZVRvcCAvIGluc2lkZUJvdHRvbSAvIGluc2lkZVRvcExlZnQgLyBpbnNpZGVCb3R0b21MZWZ0IC8gaW5zaWRlVG9wUmlnaHQgLyBpbnNpZGVCb3R0b21SaWdodFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLnBvc2l0aW9uID0naW5zaWRlRW5kVG9wJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMF0ueUF4aXMgPSBhdmdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5saW5lU3R5bGUuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS50eXBlID0gJ2xpbmUnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uc3ltYm9sID0gJ25vbmUnLFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLnNtb290aCA9IHRydWUgXG5cdFx0XHRcdFx0XHQgXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uaXRlbVN0eWxlPSB7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAncmdiKDI1NSwgNzAsIDEzMSknXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uYXJlYVN0eWxlID0ge1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbXG5cdFx0XHRcdFx0XHRcdCAge1xuXHRcdFx0XHRcdFx0XHRcdG9mZnNldDogMCxcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJ3JnYigyNTQsIDE3NCwgMTczKSdcblx0XHRcdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdFx0XHQgIHtcblx0XHRcdFx0XHRcdFx0XHRvZmZzZXQ6IDEsXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICdyZ2IoMjU1LCAyNTUsIDI0OCknXG5cdFx0XHRcdFx0XHRcdCAgfVxuXHRcdFx0XHRcdFx0XHRdKVxuXHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnNlcmllc1swXS50eXBlID0gJ3RoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdHRleHQgOm1pbiArICctJyArIG1heCxcblx0XHRcdFx0XHRcdFx0c3VidGV4dDogJ+W+ruaRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJyxcblx0XHRcdFx0XHRcdFx0dGV4dFN0eWxlOntcblx0XHRcdFx0XHRcdFx0XHQgZm9udFdlaWdodDpcImxpZ2h0ZXJcIixcblx0XHRcdFx0XHRcdFx0XHQgZm9udFNpemU6MjRcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZEdsdWNvc2UudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuYXhpc0xhYmVsLmZvcm1hdHRlciA9IGZ1bmN0aW9uKHYsaSl7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuc3BsaXROdW1iZXIgPSAzO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gMDtcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1heCA9IE1hdGgucm91bmQobWF4KSArIDE7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnYmxvb2RMaXF1aWRBbGwnOlxuXHRcdFx0XHRcdFx0bGV0IG9yVG90YWwgPSB7XG5cdFx0XHRcdFx0XHRcdGNob2xlc3Rlcm9sOltdLFxuXHRcdFx0XHRcdFx0XHRoaWdoRGVuc2l0eTpbXSxcblx0XHRcdFx0XHRcdFx0bG93RGVuc2l0eTpbXSxcblx0XHRcdFx0XHRcdFx0dHJpYWN5bGdseWNlcm9sOltdLFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRsZXQgZGF0YU1zZyA9IHYuZGF0YV9tc2c7XG5cdFx0XHRcdFx0XHRcdGxldCByZWFsX2RhdGEgPSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2hvbGVzdGVyb2w6KGRhdGFNc2cuY2hvbGVzdGVyb2wvMTAwKS50b0ZpeGVkKDIpLFxuXHRcdFx0XHRcdFx0XHRcdGhpZ2hEZW5zaXR5OihkYXRhTXNnLmhpZ2hEZW5zaXR5LzEwMCkudG9GaXhlZCgyKSxcblx0XHRcdFx0XHRcdFx0XHRsb3dEZW5zaXR5OihkYXRhTXNnLmxvd0RlbnNpdHkvMTAwKS50b0ZpeGVkKDIpLFxuXHRcdFx0XHRcdFx0XHRcdHRyaWFjeWxnbHljZXJvbDooZGF0YU1zZy50cmlhY3lsZ2x5Y2Vyb2wvMTAwKS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0b3JUb3RhbC5jaG9sZXN0ZXJvbC5wdXNoKHBhcnNlRmxvYXQocmVhbF9kYXRhLmNob2xlc3Rlcm9sKSlcblx0XHRcdFx0XHRcdFx0b3JUb3RhbC5oaWdoRGVuc2l0eS5wdXNoKHBhcnNlRmxvYXQocmVhbF9kYXRhLmhpZ2hEZW5zaXR5KSlcblx0XHRcdFx0XHRcdFx0b3JUb3RhbC5sb3dEZW5zaXR5LnB1c2gocGFyc2VGbG9hdChyZWFsX2RhdGEubG93RGVuc2l0eSkpXG5cdFx0XHRcdFx0XHRcdG9yVG90YWwudHJpYWN5bGdseWNlcm9sLnB1c2gocGFyc2VGbG9hdChyZWFsX2RhdGEudHJpYWN5bGdseWNlcm9sKSlcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIgPSB2LmhvdXJfbWludXRlLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdGlmKHRpbWVBcnJbMV0gJSAxMCA9PSAwKXtcblx0XHRcdFx0XHRcdFx0XHR2YXIga2V5ID0gdi5ob3VyX21pbnV0ZVxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHR2YXIga2V5ID0gdGltZUFyclswXSsnOicrKCh0aW1lQXJyWzFdIC0gNSkgPT0gMD8nMDAnOih0aW1lQXJyWzFdIC0gNSkpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsOltyZWFsX2RhdGEuY2hvbGVzdGVyb2xdLFxuXHRcdFx0XHRcdFx0XHRcdFx0aGlnaERlbnNpdHk6W3JlYWxfZGF0YS5oaWdoRGVuc2l0eV0sXG5cdFx0XHRcdFx0XHRcdFx0XHRsb3dEZW5zaXR5OltyZWFsX2RhdGEubG93RGVuc2l0eV0sXG5cdFx0XHRcdFx0XHRcdFx0XHR0cmlhY3lsZ2x5Y2Vyb2w6W3JlYWxfZGF0YS50cmlhY3lsZ2x5Y2Vyb2xdLFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLHJlYWxfZGF0YS5jaG9sZXN0ZXJvbF07XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLmhpZ2hEZW5zaXR5ID0gWy4uLmRhdGFBcnJba2V5XS5oaWdoRGVuc2l0eSxyZWFsX2RhdGEuaGlnaERlbnNpdHldO1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS5sb3dEZW5zaXR5ID0gWy4uLmRhdGFBcnJba2V5XS5sb3dEZW5zaXR5LHJlYWxfZGF0YS5sb3dEZW5zaXR5XTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udHJpYWN5bGdseWNlcm9sID0gWy4uLmRhdGFBcnJba2V5XS50cmlhY3lsZ2x5Y2Vyb2wscmVhbF9kYXRhLnRyaWFjeWxnbHljZXJvbF07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0bGV0IGVjaGFydHNEYXRhMSA9IFtdO1xuXHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEyID0gW107XG5cdFx0XHRcdFx0XHRsZXQgZWNoYXJ0c0RhdGEzID0gW107XG5cdFx0XHRcdFx0XHRsZXQgZWNoYXJ0c0RhdGE4ID0gW10gLy8g5rWL6K+V55SoXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRsZXQgdGltZUFycjIgPSBrZXkuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFycjJbMF0sdGltZUFycjJbMV0pXG5cdFx0XHRcdFx0XHRcdFx0bGV0IG5leHRLZXkgPSB0aGlzLnN1YnRyYWN0TWludXRlcyhrZXksMTApXG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldfSlcblx0XHRcdFx0XHRcdFx0XHRpZighZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKG51bGwpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhMS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0uaGlnaERlbnNpdHkpXX0pXG5cdFx0XHRcdFx0XHRcdFx0aWYoIWRhdGFBcnIuaGFzT3duUHJvcGVydHkobmV4dEtleSkpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGExLnB1c2gobnVsbClcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEyLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdGhpcy5nZXRBdmVyYWdlKGRhdGFBcnJba2V5XS5sb3dEZW5zaXR5KV19KVxuXHRcdFx0XHRcdFx0XHRcdGlmKCAhZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTIucHVzaChudWxsKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTMucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnRyaWFjeWxnbHljZXJvbCldfSlcblx0XHRcdFx0XHRcdFx0XHRpZiggIWRhdGFBcnIuaGFzT3duUHJvcGVydHkobmV4dEtleSkpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEzLnB1c2gobnVsbClcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZWNoYXJ0c0RhdGE4KVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ubGVnZW5kID0ge1xuXHRcdFx0XHRcdFx0XHRkYXRhOlsn5oC76IOG5Zu66YaHJywn55SY5rK55LiJ6YWvJywn6auY5a+G5bqm6ISC6JuL55m9Jywn5L2O5a+G5bqm6ISC6JuL55m9J11cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIOaAu+iDhuWbuumGh1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLnR5cGUgPSAnbGluZSdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5zeW1ib2wgPSAnbm9uZScsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uc21vb3RoID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm5hbWUgPSB0aGlzLm9wdGlvbi5sZWdlbmQuZGF0YVswXVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzBdLmNvbG9yXG5cdFx0XHRcdFx0XHQvLyDnlJjmsrnkuInpha9cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1sxXSA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMV0uZGF0YSA9IGVjaGFydHNEYXRhM1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzFdLnR5cGUgPSAnbGluZSdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1sxXS5zeW1ib2wgPSAnbm9uZScsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMV0uc21vb3RoID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzFdLm5hbWUgPSB0aGlzLm9wdGlvbi5sZWdlbmQuZGF0YVsxXVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzFdLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzFdLmNvbG9yXG5cdFx0XHRcdFx0XHQvLyDpq5hcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1syXSA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMl0uZGF0YSA9IGVjaGFydHNEYXRhMVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzJdLnR5cGUgPSAnbGluZSdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1syXS5zeW1ib2wgPSAnbm9uZScsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMl0uc21vb3RoID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzJdLm5hbWUgPSB0aGlzLm9wdGlvbi5sZWdlbmQuZGF0YVsyXVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzJdLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzJdLmNvbG9yXG5cdFx0XHRcdFx0XHQvLyDkvY5cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1szXSA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbM10uZGF0YSA9IGVjaGFydHNEYXRhMlxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzNdLnR5cGUgPSAnbGluZSdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1szXS5zeW1ib2wgPSAnbm9uZScsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbM10uc21vb3RoID0gdHJ1ZVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzNdLm5hbWUgPSB0aGlzLm9wdGlvbi5sZWdlbmQuZGF0YVszXVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzNdLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzNdLmNvbG9yXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZSA9IFtdXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RHbHVjb3NlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMF0uYXZlcmFnZSA9IHRoaXMuZ2V0QXZlcmFnZShvclRvdGFsLmNob2xlc3Rlcm9sKS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMV0uYXZlcmFnZSA9IHRoaXMuZ2V0QXZlcmFnZShvclRvdGFsLnRyaWFjeWxnbHljZXJvbCkudG9GaXhlZCgyKVxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzJdLmF2ZXJhZ2UgPSB0aGlzLmdldEF2ZXJhZ2Uob3JUb3RhbC5oaWdoRGVuc2l0eSkudG9GaXhlZCgyKVxuXHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzNdLmF2ZXJhZ2UgPSB0aGlzLmdldEF2ZXJhZ2Uob3JUb3RhbC5sb3dEZW5zaXR5KS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRpZihvclRvdGFsLmNob2xlc3Rlcm9sLmxlbmd0aCA+IDApe1xuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMF0udmFsdWUgPSBNYXRoLm1pbiguLi5vclRvdGFsLmNob2xlc3Rlcm9sKS50b0ZpeGVkKDIpICsgJy0nICsgTWF0aC5tYXgoLi4ub3JUb3RhbC5jaG9sZXN0ZXJvbCkudG9GaXhlZCgyKVxuXHRcdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMV0udmFsdWUgPSBNYXRoLm1pbiguLi5vclRvdGFsLnRyaWFjeWxnbHljZXJvbCkudG9GaXhlZCgyKSArICctJyArIE1hdGgubWF4KC4uLm9yVG90YWwudHJpYWN5bGdseWNlcm9sKS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVsyXS52YWx1ZSA9IE1hdGgubWluKC4uLm9yVG90YWwuaGlnaERlbnNpdHkpLnRvRml4ZWQoMikgKyAnLScgKyBNYXRoLm1heCguLi5vclRvdGFsLmhpZ2hEZW5zaXR5KS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVszXS52YWx1ZSA9IE1hdGgubWluKC4uLm9yVG90YWwubG93RGVuc2l0eSkudG9GaXhlZCgyKSArICctJyArIE1hdGgubWF4KC4uLm9yVG90YWwubG93RGVuc2l0eSkudG9GaXhlZCgyKVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLnNwbGl0TnVtYmVyID0gMztcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1pbiA9IDA7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5tYXggPSA2O1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzLm9wdGlvbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XG4uY29udGVudHMge1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luLXRvcDoyMHJweDtcblx0LmxlZnQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi50b3RhbF9ib3h7XG5cdGhlaWdodDogNDAwcnB4O1xuXHRtYXJnaW46IDBycHggMTAwcnB4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdHBhZGRpbmctYm90dG9tOiA4MHJweDtcblx0LmIxe1xuXHRcdHdpZHRoOiA0MCU7XG5cdFx0aGVpZ2h0OiAyMDBycHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMjBycHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcnB4O1xuXHR9XG59XG4uYm9keS1zdHlsZSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7XG59XG4udGl0bGV7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdC50aXRsZS1kYXRhe1xuXHRcdGZvbnQtc2l6ZTogNjBycHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHJweDtcblx0fVxufVxuLmZseHtcblx0ZGlzcGxheTogZmxleDtcbn1cbi5qYy1lbmR7XG5cdGp1c3RpZnktY29udGVudDogZW5kO1xufVxuLmpjLXN0YXJ0e1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbn1cbi5hY3tcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5qY3tcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uamNzYntcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmZkX3Jvd3tcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLnZpZGVvIHtcblx0d2lkdGg6IDgwJTtcblx0cGFkZGluZzogMHJweCAyMHJweDtcbn1cblxuLmNoYXJ0cyB7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdHBhZGRpbmc6IDIwcHggMHB4O1xuXHRtYXJnaW46IDEwMHJweCA1MHJweCAwcnB4IDUwcnB4O1xufVxuXG4ucGFnZS12aWV3IHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0bWFyZ2luOiAwcnB4IDEwMHJweDtcblx0Ym9yZGVyOiAxcnB4IHNvbGlkIGdyYXk7XG59XG5cbi5zcG9ydC10aXRsZSB7XG5cdGZvbnQtc2l6ZTogNTBycHg7XG59XG5cbi5zcG9ydC1qdmxpIHtcblx0Zm9udC1zaXplOiA1MHJweDtcbn1cbjwvc3R5bGU+Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///170\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ 4);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 48));\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 52));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 50));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\nvar echarts = _interopRequireWildcard(__webpack_require__(/*! @/uni_modules/lime-echart/static/echarts.min */ 67));\nvar _vuex = __webpack_require__(/*! vuex */ 65);\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar _default2 = {\n name: \"echarts-data\",\n data: function data() {\n return {\n time: new Date().toISOString().substring(0, 10),\n dataConfig: {\n bloodGlucose: {\n title: '123123',\n name: '血糖',\n color: \"#fb8544\",\n unit: '毫摩尔/升',\n cankaoData: [{\n name: '空腹/餐前',\n data: [0, 3.9, 6.1, 15],\n adjustment: [0.05, 0.00, -0.05],\n max: 15\n }, {\n name: '餐后1小时',\n data: [0, 6.7, 9.4, 15],\n adjustment: [0.04, 0.00, -0.04],\n max: 15\n }, {\n name: '餐后2小时',\n data: [0, 4.4, 7.8, 15],\n adjustment: [0.04, 0.00, -0.04],\n max: 15\n }]\n },\n stepIndex: {\n name: '每日运动',\n color: \"#29cf6f\",\n unit: '毫摩尔/升'\n },\n bloodOxygen: {\n title: '123123',\n name: '血氧',\n color: \"#bf32fc\",\n unit: '%',\n cankaoData: false\n },\n bodyTemperature: {\n title: 'bodyTemperature',\n name: '体温',\n color: \"#2ec8d8\",\n unit: '℃',\n cankaoData: false\n },\n bloodPressure: {\n title: 'bloodPressure',\n name: '血压',\n color: \"#fb8544\",\n color1: \"#00c3da\",\n unit: '℃',\n cankaoData: false\n },\n pulseReat: {\n title: '123123',\n name: '心率',\n color: \"#fd5656\",\n unit: '次/分',\n cankaoData: false\n },\n bloodLiquid: {\n title: '123123',\n name: '尿酸',\n color: \"#f00\",\n unit: '微摩尔/升',\n cankaoData: [{\n name: '尿酸',\n data: [0, 150, 420, 1000],\n adjustment: [0.06, 0.00, -0.06],\n max: 1000\n }]\n },\n bloodLiquidAll: {\n title: '123123',\n name: '血脂',\n unit: '微摩尔/升',\n overviewData: {\n name: '血脂概况',\n tb_head: ['', '单日测量范围', '平均值'],\n data: [{\n name: '总胆固醇',\n value: '0-0',\n average: 0,\n color: '#46b4ff',\n bgColor: '#e1f3fd'\n }, {\n name: '甘油三酯',\n value: '0-0',\n average: 0,\n color: '#29cf6c',\n bgColor: '#e2fff3'\n }, {\n name: '高密度脂蛋白',\n value: '0-0',\n average: 0,\n color: '#fcc05d',\n bgColor: '#fef5e3'\n }, {\n name: '低密度脂蛋白',\n value: '0-0',\n average: 0,\n color: '#fa4e33',\n bgColor: '#fee5e1'\n }]\n },\n cankaoData: [{\n name: '总胆固醇',\n data: [0, 2.8, 5.17, 20],\n adjustment: [0.05, 0.02, -0.05],\n max: 10\n }, {\n name: '甘油三酯',\n data: [0, 0.56, 1.7, 20],\n adjustment: [0.06, -0.02, -0.04],\n max: 3\n }, {\n name: '高密度脂蛋白',\n data: [0, 0.96, 1.15, 20],\n adjustment: [0.04, 0.00, -0.04],\n max: 3\n }, {\n name: '低密度脂蛋白',\n data: [0, 3.1, 20],\n adjustment: [0.04, 0.00, -0.04],\n max: 20\n }]\n }\n },\n option: {\n // tooltip: {\n // \ttrigger: 'item',\n // \tformatter: function (params) {\n // \t\t// params 是数据的相关信息,可以根据需要进行处理\n // \t\tconsole.log(params)\n // \t\tif(params.componentType == 'series'){\n // \t\t\treturn `
\n // \t\t\t\t\t

${params.seriesName}

\n // \t\t\t\t\t

${params.name}: ${params.value[1]}

\n // \t\t\t\t
`\n // \t\t}\n // \t\treturn '';\n // \t},\n // \t// renderMode:'html'\n // \t// axisPointer: {\n // \t// type: 'line',\n // \t// label: {\n // \t// \tbackgroundColor: '#6a7985'\n // \t// }\n // \t// },\n\n // },\n xAxis: {\n splitLine: {\n show: false\n },\n type: 'value',\n max: 4,\n min: 0,\n axisLabel: {\n show: true,\n splitNumber: 2,\n formatter: function formatter(value, index) {\n var arr = ['12am', '6am', '12pm', '6pm', '12am'];\n return arr[Math.floor(index)];\n }\n }\n },\n yAxis: {\n splitLine: {\n show: true,\n lineStyle: {\n // 使用深浅的间隔色\n color: [\"#ccc\"],\n type: \"dashed\"\n }\n },\n axisTick: {\n show: false\n },\n axisLine: {\n show: false // 设置y轴线不显示\n },\n\n axisLabel: {},\n position: \"right\",\n splitNumber: 3\n },\n series: [{\n symbolSize: 5,\n data: [],\n markLine: {\n data: [{\n show: false,\n yAxis: 2.5 // 在 y 值为 100 的位置添加水平参考线\n }],\n\n lineStyle: {\n color: '#ccc',\n cap: \"butt\"\n },\n label: {\n color: '#ccc'\n }\n },\n type: 'scatter'\n }]\n }\n };\n },\n props: {\n pageData: {\n default: function _default() {\n return {};\n },\n type: Object\n }\n },\n mounted: function mounted() {\n this.pageData.type = this.getpageType;\n },\n computed: _objectSpread({}, (0, _vuex.mapGetters)({\n getActiceDevice: \"api/getActiceDevice\",\n getpageType: \"api/getpageType\"\n })),\n methods: {\n init: function init() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n var option;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return _this.$refs.chartRef.init(echarts);\n case 2:\n _this.chart = _context.sent;\n _context.next = 5;\n return _this.getDataList();\n case 5:\n option = _context.sent;\n _this.chart.setOption(option);\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n getDataList: function getDataList() {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n var type, res;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n type = _this2.pageData.type;\n if (type == 'bloodLiquidAll') {\n type = 'bloodLiquid';\n }\n _context2.next = 4;\n return _this2.$store.dispatch('api/getDeviceListDays', {\n type: type,\n device_real_time: _this2.time,\n device_id: _this2.getActiceDevice.device_id\n });\n case 4:\n res = _context2.sent;\n return _context2.abrupt(\"return\", _this2.makeOptionConfig(res.data));\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n getAverage: function getAverage(arr) {\n if (arr.length === 0) return 0; // 如果数组为空,则返回0\n var sum = arr.reduce(function (accumulator, currentValue) {\n return accumulator + currentValue;\n });\n return sum / arr.length; // 计算平均值\n },\n subtractMinutes: function subtractMinutes(timeStr, minutes) {\n var parts = timeStr.split(':');\n var hours = parseInt(parts[0], 10);\n var minutesLeft = parseInt(parts[1], 10);\n var date = new Date();\n date.setHours(hours, minutesLeft, 0, 0); // 设置时、分、秒、毫秒\n date.setMinutes(date.getMinutes() - minutes); // 减去指定的分钟数\n\n // 格式化为HH:MM\n var newHours = date.getHours().toString().padStart(2, '0');\n var newMinutes = date.getMinutes().toString().padStart(2, '0');\n return newHours + ':' + newMinutes;\n },\n makeFloatHoursMinutes: function makeFloatHoursMinutes(hours, minutes) {\n var total = hours * 3600 + minutes * 60;\n var floatData = total / 86400 * 4;\n return floatData.toFixed(2);\n },\n back: function back() {\n this.$emit('back', 1);\n },\n // 全部数据\n goAllPath: function goAllPath() {\n this.$emit('allData', 3);\n },\n /// git dev test\n makeOptionConfig: function makeOptionConfig(data) {\n __f__(\"log\", data, \" at components/echarts-data/echarts-data.vue:438\");\n var echartsData = [];\n var sum = 0;\n var max = 0;\n var min = 0;\n var avg = 0;\n var len = 0;\n var arr = [];\n var dataArr = {};\n this.option.series[0].markLine.symbol = 'none';\n this.option.series[0].markLine.label.position = 'insideEndTop';\n __f__(\"log\", this.pageData.type, '900000000000', \" at components/echarts-data/echarts-data.vue:450\");\n switch (this.pageData.type) {\n case 'stepIndex':\n __f__(\"log\", '步数', \" at components/echarts-data/echarts-data.vue:453\");\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = '';\n if (timeArr[1] < 30) {\n key = timeArr[0] + ':' + '00';\n } else {\n key = timeArr[0] + ':' + '30';\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: v.data_msg.step,\n from: 1\n };\n } else {\n dataArr[key].val += v.data_msg.step;\n }\n });\n for (var key in dataArr) {\n if (dataArr.hasOwnProperty(key)) {\n // 确保key是对象自身的属性\n var timeArr2 = key.split(':');\n var floatData = this.makeFloatHoursMinutes(timeArr2[0], timeArr2[1]);\n echartsData.push({\n value: [floatData, dataArr[key].val],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n __f__(\"log\", echartsData, \" at components/echarts-data/echarts-data.vue:481\");\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine = [];\n this.option.series[0].type = 'bar';\n this.option.series[0].barMaxWidth = '10';\n this.option.title = {\n text: this.pageData.data_msg.step + '步',\n // subtext: '毫摩尔/升',\n left: 'center'\n };\n break;\n case 'bodyTemperature':\n __f__(\"log\", data, \" at components/echarts-data/echarts-data.vue:493\");\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = timeArr[0] + ':' + '00';\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [parseFloat(v.data_msg)],\n from: 0\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [parseFloat(v.data_msg)]);\n }\n var dataMsg = parseFloat(v.data_msg);\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,dataMsg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += dataMsg;\n if (max == 0 || max < dataMsg) {\n max = dataMsg;\n }\n if (min == 0 || min > dataMsg) {\n min = dataMsg;\n }\n });\n avg = sum / data.length;\n avg = parseFloat(avg.toFixed(2));\n for (var _key in dataArr) {\n if (dataArr.hasOwnProperty(_key)) {\n // 确保key是对象自身的属性\n var _timeArr = _key.split(':');\n var _floatData = this.makeFloatHoursMinutes(_timeArr[0], _timeArr[1]);\n echartsData.push({\n value: [_floatData, this.getAverage(dataArr[_key].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n }\n }\n this.option.series[0].data = echartsData;\n this.option.series[0].type = 'line';\n this.option.series[0].lineStyle = {};\n this.option.series[0].lineStyle.color = '#ccc';\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.yAxis.min = parseInt(min) - 1;\n this.option.yAxis.max = parseInt(max) + 1;\n this.option.yAxis.splitNumber = 1;\n this.option.title = {\n text: min + '-' + max,\n subtext: '℃',\n left: 'center'\n };\n this.dataConfig.bodyTemperature.title = min + '-' + max;\n break;\n case 'bloodOxygen':\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var dataMsg = v.data_msg.filter(function (item) {\n return item > 0;\n });\n if (timeArr[1] % 10 == 0) {\n var _key2 = v.hour_minute;\n if (dataArr[_key2] == undefined) {\n dataArr[_key2] = {\n val: dataMsg,\n from: 0\n };\n } else {\n dataArr[_key2].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key2].val), (0, _toConsumableArray2.default)(dataMsg));\n }\n } else {\n var _key3 = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n if (dataArr[_key3] == undefined) {\n dataArr[_key3] = {\n val: dataMsg,\n from: 1\n };\n } else {\n dataArr[_key3].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key3].val), (0, _toConsumableArray2.default)(dataMsg));\n }\n }\n dataMsg.map(function (v2, i2) {\n if (v2 > 0) {\n arr.push(v2);\n }\n });\n });\n for (var _key4 in dataArr) {\n if (dataArr.hasOwnProperty(_key4)) {\n // 确保key是对象自身的属性\n var _timeArr2 = _key4.split(':');\n var _floatData2 = this.makeFloatHoursMinutes(_timeArr2[0], _timeArr2[1]);\n echartsData.push({\n value: [_floatData2, this.getAverage(dataArr[_key4].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n if (arr.length > 0) {\n min = Math.min.apply(Math, arr);\n max = Math.max.apply(Math, arr);\n }\n this.option.series[0].data = echartsData;\n this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.series[0].markLine.data[0].yAxis = this.getAverage(arr);\n this.option.series[0].markLine.data[0].value = this.getAverage(arr);\n this.option.series[0].markLine.symbol = 'none';\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.position = 'insideEndTop';\n this.option.series[0].markLine.label.formatter = function (data) {\n return data.value + '%';\n // console.log(data,123)\n };\n // this.option.series[0].markLine.label.distance =[10,5]\n this.option.title = {\n text: min + '-' + max,\n subtext: '%',\n left: 'center'\n };\n this.option.yAxis.splitNumber = 2;\n this.dataConfig.bodyTemperature.title = min + '-' + max;\n this.option.yAxis.min = min;\n this.option.yAxis.max = 100;\n break;\n case 'bloodGlucose':\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] < 30) {\n var _key5 = timeArr[0] + ':' + '00';\n if (dataArr[_key5] == undefined) {\n dataArr[_key5] = {\n val: [v.data_msg],\n from: 0\n };\n } else {\n dataArr[_key5].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key5].val), [v.data_msg]);\n }\n } else {\n var _key6 = timeArr[0] + ':' + '30';\n if (dataArr[_key6] == undefined) {\n dataArr[_key6] = {\n val: [v.data_msg],\n from: 1\n };\n } else {\n // console.log(dataArr[key].val)\n dataArr[_key6].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key6].val), [v.data_msg]);\n }\n }\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,v.data_msg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += v.data_msg;\n if (max == 0 || max < v.data_msg) {\n max = v.data_msg;\n }\n if (min == 0 || min > v.data_msg) {\n min = v.data_msg;\n }\n });\n avg = sum / data.length;\n avg = parseFloat(avg.toFixed(2));\n for (var _key7 in dataArr) {\n if (dataArr.hasOwnProperty(_key7)) {\n // 确保key是对象自身的属性\n var _timeArr3 = _key7.split(':');\n var _floatData3 = this.makeFloatHoursMinutes(_timeArr3[0], _timeArr3[1]);\n echartsData.push({\n value: [_floatData3, this.getAverage(dataArr[_key7].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '毫摩尔/升',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n break;\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var timeArr = v.hour_minute.split(':');\n for (var _i = 0; _i < 5; _i++) {\n var real_data = dataMsg[_i];\n if (real_data <= 0) {\n break;\n }\n len += 1;\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],parseInt( timeArr[1]) + i)\n // echartsData.push({value:[floatData,real_data],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n }\n });\n avg = sum / len;\n avg = parseFloat(avg.toFixed(2));\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '%',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 95;\n this.option.yAxis.max = 100;\n break;\n case 'bloodPressure':\n var max2 = 0;\n var min2 = 0;\n var sum2 = 0;\n var echartsData2 = [];\n data.map(function (v, i) {\n var timeArr = v.hour_minute.split(':');\n var key = timeArr[0] + ':' + '00';\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [v.data_msg.bloodPressureHigh],\n val2: [v.data_msg.bloodPressureLow],\n from: 0\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [v.data_msg.bloodPressureHigh]);\n dataArr[key].val2 = [].concat((0, _toConsumableArray2.default)(dataArr[key].val2), [v.data_msg.bloodPressureLow]);\n }\n // let floatData = this.makeFloatHoursMinutes(timeArr[0],timeArr[1])\n // echartsData.push({value:[floatData,v.data_msg],itemStyle: {color: this.dataConfig[this.type].color}})\n sum += v.data_msg.bloodPressureHigh;\n sum2 += v.data_msg.bloodPressureLow;\n if (max == 0 || max < v.data_msg.bloodPressureHigh) {\n max = v.data_msg.bloodPressureHigh;\n }\n if (min == 0 || min > v.data_msg.bloodPressureHigh) {\n min = v.data_msg.bloodPressureHigh;\n }\n if (max2 == 0 || max2 < v.data_msg.bloodPressureLow) {\n max2 = v.data_msg.bloodPressureLow;\n }\n if (min2 == 0 || min2 > v.data_msg.bloodPressureLow) {\n min2 = v.data_msg.bloodPressureLow;\n }\n });\n avg = sum / data.length;\n var avg2 = sum2 / data.length;\n avg = parseInt(avg);\n avg2 = parseInt(avg2);\n // console.log(avg,'ag')\n // console.log(avg2,'ag2')\n __f__(\"log\", dataArr, \" at components/echarts-data/echarts-data.vue:757\");\n for (var _key8 in dataArr) {\n if (dataArr.hasOwnProperty(_key8)) {\n // 确保key是对象自身的属性\n var _timeArr4 = _key8.split(':');\n var _floatData4 = this.makeFloatHoursMinutes(_timeArr4[0], _timeArr4[1]);\n echartsData.push({\n value: [_floatData4, this.getAverage(dataArr[_key8].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n echartsData.push({\n value: [_floatData4, this.getAverage(dataArr[_key8].val2)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color1\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n // this.option.series[1].data = echartsData2\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.data[1] = {};\n this.option.series[0].markLine.data[1].lineStyle = {};\n this.option.series[0].markLine.data[1].lineStyle.color = this.dataConfig[this.pageData.type].color1;\n this.option.series[0].markLine.data[1].label = {};\n this.option.series[0].markLine.data[1].label.color = this.dataConfig[this.pageData.type].color1;\n this.option.series[0].markLine.data[1].yAxis = avg2;\n // this.option.series[1].markLine.lineStyle.color = this.dataConfig[this.type].color\n // this.option.series[1].markLine.label.color = this.dataConfig[this.type].color\n this.option.title = {\n text: '收缩压' + min + '-' + max + ' ' + '舒张压:' + min2 + '-' + max2,\n // subtext: '毫摩尔/升',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n // this.option.yAxis.min = parseInt(min2) - 5;\n // this.option.yAxis.max = parseInt(max) + 5;\n break;\n case 'pulseReat':\n // [data[0]],\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var timeArr = v.hour_minute.split(':');\n var maxLength = dataMsg.length > 5 ? 5 : dataMsg.length;\n var readDataArr = [];\n for (var _i2 = 0; _i2 < maxLength; _i2++) {\n var real_data = dataMsg[_i2];\n if (real_data < 30 || real_data >= 200) {\n continue;\n }\n readDataArr.push(real_data);\n len += 1;\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n }\n if (timeArr[1] < 30) {\n var _key9 = timeArr[0] + ':' + '00';\n if (dataArr[_key9] == undefined) {\n dataArr[_key9] = {\n val: readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n }),\n from: 0\n };\n } else {\n dataArr[_key9].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key9].val), (0, _toConsumableArray2.default)(readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n })));\n }\n } else {\n var _key10 = timeArr[0] + ':' + '30';\n if (dataArr[_key10] == undefined) {\n dataArr[_key10] = {\n val: readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n }),\n from: 0\n };\n } else {\n dataArr[_key10].val = [].concat((0, _toConsumableArray2.default)(dataArr[_key10].val), (0, _toConsumableArray2.default)(readDataArr.filter(function (item) {\n return item > 30 || item <= 200;\n })));\n }\n }\n });\n avg = sum / len;\n avg = parseInt(avg);\n for (var _key11 in dataArr) {\n if (dataArr.hasOwnProperty(_key11)) {\n // 确保key是对象自身的属性\n var _timeArr5 = _key11.split(':');\n var _floatData5 = this.makeFloatHoursMinutes(_timeArr5[0], _timeArr5[1]);\n echartsData.push({\n value: [_floatData5, this.getAverage(dataArr[_key11].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n // console.log(key , dataArr[key]);\n }\n }\n\n this.option.series[0].data = echartsData;\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.title = {\n text: min + '-' + max,\n subtext: '次/分',\n left: 'center'\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n // this.option.yAxis.axisLabel.formatter = '{value}%';\n this.option.yAxis.splitNumber = 1;\n this.option.yAxis.min = 30;\n this.option.yAxis.max = 90;\n break;\n case 'bloodLiquid':\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var real_data = dataMsg.uricAcidVal / 10;\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] % 10 == 0) {\n var key = v.hour_minute;\n } else {\n var key = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [real_data]\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [real_data]);\n }\n sum += real_data;\n if (max == 0 || max < real_data) {\n max = real_data;\n }\n if (min == 0 || min > real_data) {\n min = real_data;\n }\n len += 1;\n });\n avg = sum / len;\n avg = parseFloat(avg.toFixed(2));\n for (var _key12 in dataArr) {\n if (dataArr.hasOwnProperty(_key12)) {\n // 确保key是对象自身的属性\n var _timeArr6 = _key12.split(':');\n var _floatData6 = this.makeFloatHoursMinutes(_timeArr6[0], _timeArr6[1]);\n var nextKey = this.subtractMinutes(_key12, 10);\n echartsData.push({\n value: [_floatData6, this.getAverage(dataArr[_key12].val)],\n itemStyle: {\n color: this.dataConfig[this.pageData.type].color\n }\n });\n if (!dataArr.hasOwnProperty(nextKey)) {\n echartsData.push(null);\n }\n }\n }\n this.option.series[0].data = echartsData;\n //top / left / right / bottom / inside / insideLeft / insideRight / insideTop / insideBottom / insideTopLeft / insideBottomLeft / insideTopRight / insideBottomRight\n this.option.series[0].markLine.label.position = 'insideEndTop';\n this.option.series[0].markLine.data[0].yAxis = avg;\n this.option.series[0].markLine.lineStyle.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].markLine.label.color = this.dataConfig[this.pageData.type].color;\n this.option.series[0].type = 'line';\n this.option.series[0].symbol = 'none', this.option.series[0].smooth = true;\n this.option.series[0].itemStyle = {\n color: 'rgb(255, 70, 131)'\n };\n this.option.series[0].areaStyle = {\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{\n offset: 0,\n color: 'rgb(254, 174, 173)'\n }, {\n offset: 1,\n color: 'rgb(255, 255, 248)'\n }])\n };\n\n // this.option.series[0].type = 'this.dataConfig[this.type].color'\n this.option.title = {\n text: min + '-' + max,\n subtext: '微摩尔/升',\n left: 'center',\n textStyle: {\n fontWeight: \"lighter\",\n fontSize: 24\n }\n };\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.option.yAxis.axisLabel.formatter = function (v, i) {\n return v;\n };\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 0;\n this.option.yAxis.max = Math.round(max) + 1;\n break;\n case 'bloodLiquidAll':\n var orTotal = {\n cholesterol: [],\n highDensity: [],\n lowDensity: [],\n triacylglycerol: []\n };\n data.map(function (v, i) {\n var dataMsg = v.data_msg;\n var real_data = {\n cholesterol: (dataMsg.cholesterol / 100).toFixed(2),\n highDensity: (dataMsg.highDensity / 100).toFixed(2),\n lowDensity: (dataMsg.lowDensity / 100).toFixed(2),\n triacylglycerol: (dataMsg.triacylglycerol / 100).toFixed(2)\n };\n orTotal.cholesterol.push(parseFloat(real_data.cholesterol));\n orTotal.highDensity.push(parseFloat(real_data.highDensity));\n orTotal.lowDensity.push(parseFloat(real_data.lowDensity));\n orTotal.triacylglycerol.push(parseFloat(real_data.triacylglycerol));\n var timeArr = v.hour_minute.split(':');\n if (timeArr[1] % 10 == 0) {\n var key = v.hour_minute;\n } else {\n var key = timeArr[0] + ':' + (timeArr[1] - 5 == 0 ? '00' : timeArr[1] - 5);\n }\n if (dataArr[key] == undefined) {\n dataArr[key] = {\n val: [real_data.cholesterol],\n highDensity: [real_data.highDensity],\n lowDensity: [real_data.lowDensity],\n triacylglycerol: [real_data.triacylglycerol]\n };\n } else {\n dataArr[key].val = [].concat((0, _toConsumableArray2.default)(dataArr[key].val), [real_data.cholesterol]);\n dataArr[key].highDensity = [].concat((0, _toConsumableArray2.default)(dataArr[key].highDensity), [real_data.highDensity]);\n dataArr[key].lowDensity = [].concat((0, _toConsumableArray2.default)(dataArr[key].lowDensity), [real_data.lowDensity]);\n dataArr[key].triacylglycerol = [].concat((0, _toConsumableArray2.default)(dataArr[key].triacylglycerol), [real_data.triacylglycerol]);\n }\n });\n var echartsData1 = [];\n echartsData2 = [];\n var echartsData3 = [];\n var echartsData8 = []; // 测试用\n for (var _key13 in dataArr) {\n if (dataArr.hasOwnProperty(_key13)) {\n // 确保key是对象自身的属性\n var _timeArr7 = _key13.split(':');\n var _floatData7 = this.makeFloatHoursMinutes(_timeArr7[0], _timeArr7[1]);\n var _nextKey = this.subtractMinutes(_key13, 10);\n echartsData.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].val)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData.push(null);\n }\n echartsData1.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].highDensity)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData1.push(null);\n }\n echartsData2.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].lowDensity)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData2.push(null);\n }\n echartsData3.push({\n value: [_floatData7, this.getAverage(dataArr[_key13].triacylglycerol)]\n });\n if (!dataArr.hasOwnProperty(_nextKey)) {\n echartsData3.push(null);\n }\n\n // console.log(key , dataArr[key]);\n }\n }\n\n __f__(\"log\", echartsData8, \" at components/echarts-data/echarts-data.vue:1037\");\n this.option.legend = {\n data: ['总胆固醇', '甘油三酯', '高密度脂蛋白', '低密度脂蛋白']\n };\n // 总胆固醇\n this.option.series[0].data = echartsData;\n this.option.series[0].type = 'line';\n this.option.series[0].symbol = 'none', this.option.series[0].smooth = true;\n this.option.series[0].name = this.option.legend.data[0];\n this.option.series[0].color = this.dataConfig.bloodLiquidAll.overviewData.data[0].color;\n // 甘油三酯\n this.option.series[1] = {};\n this.option.series[1].data = echartsData3;\n this.option.series[1].type = 'line';\n this.option.series[1].symbol = 'none', this.option.series[1].smooth = true;\n this.option.series[1].name = this.option.legend.data[1];\n this.option.series[1].color = this.dataConfig.bloodLiquidAll.overviewData.data[1].color;\n // 高\n this.option.series[2] = {};\n this.option.series[2].data = echartsData1;\n this.option.series[2].type = 'line';\n this.option.series[2].symbol = 'none', this.option.series[2].smooth = true;\n this.option.series[2].name = this.option.legend.data[2];\n this.option.series[2].color = this.dataConfig.bloodLiquidAll.overviewData.data[2].color;\n // 低\n this.option.series[3] = {};\n this.option.series[3].data = echartsData2;\n this.option.series[3].type = 'line';\n this.option.series[3].symbol = 'none', this.option.series[3].smooth = true;\n this.option.series[3].name = this.option.legend.data[3];\n this.option.series[3].color = this.dataConfig.bloodLiquidAll.overviewData.data[3].color;\n this.option.series[0].markLine = [];\n this.dataConfig.bloodGlucose.title = min + '-' + max;\n this.dataConfig.bloodLiquidAll.overviewData.data[0].average = this.getAverage(orTotal.cholesterol).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[1].average = this.getAverage(orTotal.triacylglycerol).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[2].average = this.getAverage(orTotal.highDensity).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[3].average = this.getAverage(orTotal.lowDensity).toFixed(2);\n if (orTotal.cholesterol.length > 0) {\n this.dataConfig.bloodLiquidAll.overviewData.data[0].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.cholesterol)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.cholesterol)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[1].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.triacylglycerol)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.triacylglycerol)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[2].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.highDensity)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.highDensity)).toFixed(2);\n this.dataConfig.bloodLiquidAll.overviewData.data[3].value = Math.min.apply(Math, (0, _toConsumableArray2.default)(orTotal.lowDensity)).toFixed(2) + '-' + Math.max.apply(Math, (0, _toConsumableArray2.default)(orTotal.lowDensity)).toFixed(2);\n }\n this.option.yAxis.splitNumber = 3;\n this.option.yAxis.min = 0;\n this.option.yAxis.max = 6;\n break;\n }\n return this.option;\n }\n }\n};\nexports.default = _default2;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9lY2hhcnRzLWRhdGEvZWNoYXJ0cy1kYXRhLnZ1ZSJdLCJuYW1lcyI6WyJuYW1lIiwiZGF0YSIsInRpbWUiLCJkYXRhQ29uZmlnIiwiYmxvb2RHbHVjb3NlIiwidGl0bGUiLCJjb2xvciIsInVuaXQiLCJjYW5rYW9EYXRhIiwiYWRqdXN0bWVudCIsIm1heCIsInN0ZXBJbmRleCIsImJsb29kT3h5Z2VuIiwiYm9keVRlbXBlcmF0dXJlIiwiYmxvb2RQcmVzc3VyZSIsImNvbG9yMSIsInB1bHNlUmVhdCIsImJsb29kTGlxdWlkIiwiYmxvb2RMaXF1aWRBbGwiLCJvdmVydmlld0RhdGEiLCJ0Yl9oZWFkIiwidmFsdWUiLCJhdmVyYWdlIiwiYmdDb2xvciIsIm9wdGlvbiIsInhBeGlzIiwic3BsaXRMaW5lIiwic2hvdyIsInR5cGUiLCJtaW4iLCJheGlzTGFiZWwiLCJzcGxpdE51bWJlciIsImZvcm1hdHRlciIsInlBeGlzIiwibGluZVN0eWxlIiwiYXhpc1RpY2siLCJheGlzTGluZSIsInBvc2l0aW9uIiwic2VyaWVzIiwic3ltYm9sU2l6ZSIsIm1hcmtMaW5lIiwiY2FwIiwibGFiZWwiLCJwcm9wcyIsInBhZ2VEYXRhIiwiZGVmYXVsdCIsIm1vdW50ZWQiLCJjb21wdXRlZCIsImdldEFjdGljZURldmljZSIsImdldHBhZ2VUeXBlIiwibWV0aG9kcyIsImluaXQiLCJnZXREYXRhTGlzdCIsImRldmljZV9yZWFsX3RpbWUiLCJkZXZpY2VfaWQiLCJyZXMiLCJnZXRBdmVyYWdlIiwic3VidHJhY3RNaW51dGVzIiwiZGF0ZSIsIm1ha2VGbG9hdEhvdXJzTWludXRlcyIsImJhY2siLCJnb0FsbFBhdGgiLCJtYWtlT3B0aW9uQ29uZmlnIiwia2V5IiwiZGF0YUFyciIsInZhbCIsImZyb20iLCJlY2hhcnRzRGF0YSIsIml0ZW1TdHlsZSIsInRleHQiLCJsZWZ0Iiwic3VtIiwiYXZnIiwic3VidGV4dCIsImRhdGFNc2ciLCJhcnIiLCJsZW4iLCJ2YWwyIiwic3VtMiIsIm1heDIiLCJtaW4yIiwiYXZnMiIsInJlYWREYXRhQXJyIiwib2Zmc2V0IiwidGV4dFN0eWxlIiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwiY2hvbGVzdGVyb2wiLCJoaWdoRGVuc2l0eSIsImxvd0RlbnNpdHkiLCJ0cmlhY3lsZ2x5Y2Vyb2wiLCJvclRvdGFsIiwiZWNoYXJ0c0RhdGEyIiwiZWNoYXJ0c0RhdGExIiwiZWNoYXJ0c0RhdGEzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUF1RUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBQ0E7RUFDQUE7RUFDQUM7SUFDQTtNQUNBQztNQUNBQztRQUNBQztVQUNBQztVQUNBTDtVQUNBTTtVQUNBQztVQUNBQyxhQUNBO1lBQ0FSO1lBQ0FDLE9BQ0EsZ0JBQ0E7WUFDQVEsYUFDQSxNQUNBLE1BQ0EsTUFDQTtZQUNBQztVQUNBLEdBQ0E7WUFDQVY7WUFDQUMsT0FDQSxnQkFDQTtZQUNBUSxhQUNBLE1BQ0EsTUFDQSxNQUNBO1lBQ0FDO1VBQ0EsR0FDQTtZQUNBVjtZQUNBQyxPQUNBLGdCQUNBO1lBQ0FRLGFBQ0EsTUFDQSxNQUNBLE1BQ0E7WUFDQUM7VUFDQTtRQUVBO1FBQ0FDO1VBQ0FYO1VBQ0FNO1VBQ0FDO1FBQ0E7UUFDQUs7VUFDQVA7VUFDQUw7VUFDQU07VUFDQUM7VUFDQUM7UUFFQTtRQUNBSztVQUNBUjtVQUNBTDtVQUNBTTtVQUNBQztVQUNBQztRQUNBO1FBQ0FNO1VBQ0FUO1VBQ0FMO1VBQ0FNO1VBQ0FTO1VBQ0FSO1VBQ0FDO1FBQ0E7UUFDQVE7VUFDQVg7VUFDQUw7VUFDQU07VUFDQUM7VUFDQUM7UUFFQTtRQUNBUztVQUNBWjtVQUNBTDtVQUNBTTtVQUNBQztVQUNBQyxhQUNBO1lBQ0FSO1lBQ0FDLE9BQ0Esa0JBQ0E7WUFDQVEsYUFDQSxNQUNBLE1BQ0EsTUFDQTtZQUNBQztVQUNBO1FBRUE7UUFDQVE7VUFDQWI7VUFDQUw7VUFFQU87VUFDQVk7WUFDQW5CO1lBQ0FvQixVQUNB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QUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBK0Q7WUFDQTtZQUNBQztVQUNBO1VBQ0E7UUFDQTtVQUNBO1VBQ0FyRTtZQUNBO1lBQ0E7WUFDQTtjQUNBK0Q7Z0JBQ0FDO2dCQUNBQztjQUNBO1lBQ0E7Y0FDQUY7WUFDQTtZQUNBO1lBQ0E7WUFDQTtZQUNBTztZQUNBO2NBQ0E3RDtZQUNBO1lBQ0E7Y0FDQW1CO1lBQ0E7VUFDQTtVQUNBMkM7VUFDQUE7VUFDQTtZQUNBO2NBQUE7Y0FDQTtjQUNBO2NBQ0FMO2dCQUFBOUM7Z0JBQUErQztrQkFBQTlEO2dCQUFBO2NBQUE7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBK0Q7WUFDQUk7WUFDQUg7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBckU7WUFDQTtZQUNBO2NBQUE7WUFBQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQStEO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Y0FDQTtnQkFDQUY7Y0FDQTtZQUNBO2NBRUE7Y0FDQTtnQkFDQUE7a0JBQ0FDO2tCQUNBQztnQkFDQTtjQUNBO2dCQUNBRjtjQUNBO1lBRUE7WUFJQVU7Y0FDQTtnQkFDQUM7Y0FDQTtZQUVBO1VBRUE7VUFDQTtZQUNBO2NBQUE7Y0FDQTtjQUNBO2NBQ0FSO2dCQUFBOUM7Z0JBQUErQztrQkFBQTlEO2dCQUFBO2NBQUE7Y0FDQTtZQUNBO1VBQ0E7O1VBQ0E7WUFDQXVCO1lBQ0FuQjtVQUNBO1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUVBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBMkQ7WUFDQUk7WUFDQUg7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBckU7WUFDQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQStEO2tCQUNBQztrQkFDQUM7Z0JBQ0E7Y0FDQTtnQkFDQUY7Y0FDQTtZQUNBO2NBQ0E7Y0FDQTtnQkFDQUE7a0JBQ0FDO2tCQUNBQztnQkFDQTtjQUNBO2dCQUNBO2dCQUNBRjtjQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0FPO1lBRUE7Y0FDQTdEO1lBQ0E7WUFDQTtjQUNBbUI7WUFDQTtVQUNBO1VBRUEyQztVQUNBQTtVQUNBO1lBQ0E7Y0FBQTtjQUNBO2NBQ0E7Y0FDQUw7Z0JBQUE5QztnQkFBQStDO2tCQUFBOUQ7Z0JBQUE7Y0FBQTtjQUNBO1lBQ0E7VUFDQTs7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0ErRDtZQUNBSTtZQUNBSDtVQUNBO1VBQ0E7VUFDQTtVQUVBckU7WUFFQTtZQUNBO1lBQ0E7Y0FDQTtjQUNBO2dCQUNBO2NBQ0E7Y0FDQTJFO2NBQ0E7Y0FDQTtjQUNBTDtjQUNBO2dCQUNBN0Q7Y0FDQTtjQUNBO2dCQUNBbUI7Y0FDQTtZQUNBO1VBRUE7VUFDQTJDO1VBQ0FBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtZQUNBSDtZQUNBSTtZQUNBSDtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBckU7WUFDQTtZQUNBO1lBQ0E7Y0FDQStEO2dCQUNBQztnQkFDQVk7Z0JBQ0FYO2NBQ0E7WUFDQTtjQUNBRjtjQUNBQTtZQUNBO1lBQ0E7WUFDQTtZQUNBTztZQUNBTztZQUVBO2NBQ0FwRTtZQUNBO1lBQ0E7Y0FDQW1CO1lBQ0E7WUFDQTtjQUNBa0Q7WUFDQTtZQUNBO2NBQ0FDO1lBQ0E7VUFDQTtVQUNBUjtVQUNBO1VBQ0FBO1VBQ0FTO1VBQ0E7VUFDQTtVQUNBO1VBRUE7WUFDQTtjQUFBO2NBQ0E7Y0FDQTtjQUNBZDtnQkFBQTlDO2dCQUFBK0M7a0JBQUE5RDtnQkFBQTtjQUFBO2NBQ0E2RDtnQkFBQTlDO2dCQUFBK0M7a0JBQUE5RDtnQkFBQTtjQUFBO2NBQ0E7WUFDQTtVQUNBOztVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7WUFDQStEO1lBQ0E7WUFDQUM7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1FBRUE7VUFDQTtVQUNBckU7WUFFQTtZQUNBO1lBQ0E7WUFDQTtZQUNBO2NBQ0E7Y0FFQTtnQkFDQTtjQUNBO2NBRUFpRjtjQUNBTjtjQUNBTDtjQUNBO2dCQUNBN0Q7Y0FDQTtjQUNBO2dCQUNBbUI7Y0FDQTtZQUNBO1lBRUE7Y0FDQTtjQUNBO2dCQUNBbUM7a0JBQ0FDO29CQUFBO2tCQUFBO2tCQUNBQztnQkFDQTtjQUNBO2dCQUNBRjtrQkFBQTtnQkFBQTtjQUNBO1lBRUE7Y0FDQTtjQUNBO2dCQUNBQTtrQkFDQUM7b0JBQUE7a0JBQUE7a0JBQ0FDO2dCQUNBO2NBQ0E7Z0JBQ0FGO2tCQUFBO2dCQUFBO2NBQ0E7WUFFQTtVQUlBO1VBQ0FRO1VBQ0FBO1VBQ0E7WUFDQTtjQUFBO2NBQ0E7Y0FDQTtjQUNBTDtnQkFBQTlDO2dCQUFBK0M7a0JBQUE5RDtnQkFBQTtjQUFBO2NBQ0E7WUFDQTtVQUNBOztVQUVBO1VBQ0E7VUFFQTtVQUNBO1VBQ0E7WUFDQStEO1lBQ0FJO1lBQ0FIO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBckU7WUFDQTtZQUNBO1lBQ0E7WUFFQTtjQUNBO1lBQ0E7Y0FDQTtZQUNBO1lBQ0E7Y0FDQStEO2dCQUNBQztjQUNBO1lBQ0E7Y0FDQUQ7WUFDQTtZQUNBTztZQUNBO2NBQ0E3RDtZQUNBO1lBQ0E7Y0FDQW1CO1lBQ0E7WUFDQStDO1VBRUE7VUFFQUo7VUFDQUE7VUFDQTtZQUVBO2NBQUE7Y0FDQTtjQUNBO2NBQ0E7Y0FFQUw7Z0JBQUE5QztnQkFBQStDO2tCQUFBOUQ7Z0JBQUE7Y0FBQTtjQUNBO2dCQUNBNkQ7Y0FDQTtZQUNBO1VBQ0E7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBLHVDQUNBO1VBRUE7WUFDQTdEO1VBQ0E7VUFDQTtZQUNBQSx1REFDQTtjQUNBNkU7Y0FDQTdFO1lBQ0EsR0FDQTtjQUNBNkU7Y0FDQTdFO1lBQ0EsRUFDQTtVQUNBOztVQUVBO1VBQ0E7WUFDQStEO1lBQ0FJO1lBQ0FIO1lBQ0FjO2NBQ0FDO2NBQ0FDO1lBQ0E7VUFDQTtVQUNBO1VBRUE7WUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7UUFDQTtVQUNBO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1VBQ0E7VUFDQXpGO1lBQ0E7WUFDQTtjQUNBc0Y7Y0FDQUM7Y0FDQUM7Y0FDQUM7WUFDQTtZQUNBQztZQUNBQTtZQUNBQTtZQUNBQTtZQUNBO1lBQ0E7Y0FDQTtZQUNBO2NBQ0E7WUFDQTtZQUNBO2NBQ0EzQjtnQkFDQUM7Z0JBQ0F1QjtnQkFDQUM7Z0JBQ0FDO2NBQ0E7WUFDQTtjQUNBMUI7Y0FDQUE7Y0FDQUE7Y0FDQUE7WUFDQTtVQUdBO1VBRUE7VUFDQTRCO1VBQ0E7VUFDQTtVQUNBO1lBRUE7Y0FBQTtjQUNBO2NBQ0E7Y0FDQTtjQUVBekI7Z0JBQUE5QztjQUFBO2NBQ0E7Z0JBQ0E4QztjQUNBO2NBRUEwQjtnQkFBQXhFO2NBQUE7Y0FDQTtnQkFDQXdFO2NBQ0E7Y0FFQUQ7Z0JBQUF2RTtjQUFBO2NBQ0E7Z0JBQ0F1RTtjQUNBO2NBRUFFO2dCQUFBekU7Y0FBQTtjQUNBO2dCQUNBeUU7Y0FDQTs7Y0FFQTtZQUNBO1VBQ0E7O1VBQ0E7VUFDQTtZQUNBN0Y7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBLHVDQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0EsdUNBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQSx1Q0FDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBLHVDQUNBO1VBQ0E7VUFDQTtVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1lBQ0E7WUFDQTtZQUNBO1lBQ0E7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO01BQUE7TUFFQTtJQUNBO0VBQ0E7QUFDQTtBQUFBLDRCIiwiZmlsZSI6IjE3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PHZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJjb250ZW50c1wiPlxuXHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0XCIgdi1pZj1cInBhZ2VEYXRhLnR5cGVcIj5cblx0XHRcdFx0PHRtLW5hdi1iYXJcblx0XHRcdFx0XHRsZWZ0LWljb249XCJhcnJvdy1sZWZ0XCIgXG5cdFx0XHRcdFx0OnRpdGxlPVwiZGF0YUNvbmZpZ1twYWdlRGF0YS50eXBlXS5uYW1lXCIgXG5cdFx0XHRcdFx0QGNsaWNrTGVmdD1cImJhY2tcIiBcblx0XHRcdFx0XHQ6cmlnaHRUZXh0PVwiYOWFqOmDqOaVsOaNrmBcIlxuXHRcdFx0XHRcdEBjbGlja1JpZ2h0PVwiZ29BbGxQYXRoXCIvPlxuXHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBqY3NiIGFjXCIgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O2JhY2tncm91bmQtY29sb3I6ICNmZmY7cGFkZGluZzogMjBycHg7XCI+XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZTogNDBycHg7Zm9udC13ZWlnaHQ6IGJvbGQ7XCI+PC92aWV3PlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJjb2xvcjogI2I4YjhiODtmb250LXNpemU6IDI0cnB4O1wiPlxuXHRcdFx0XHRcdFx0e3t0aW1lfX1cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PHZpZXcgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O2JhY2tncm91bmQtY29sb3I6ICNmZmY7XCI+PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwYWdlLXZpZXdcIiB2LWlmPVwidGhpcy5wYWdlRGF0YS5kYXRhX21zZ1wiPlxuXHRcdFx0XHRcdDwhLS0g5Zu+6KGoIC0tPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2hhcnRzXCI+XG5cdFx0XHRcdFx0XHQ8bC1lY2hhcnQgcmVmPVwiY2hhcnRSZWZcIiBAZmluaXNoZWQ9XCJpbml0XCI+PC9sLWVjaGFydD5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PG92ZXJ2aWV3IHYtaWY9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLm92ZXJ2aWV3RGF0YVwiIDpvdmVydmlld0RhdGE9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLm92ZXJ2aWV3RGF0YVwiPjwvb3ZlcnZpZXc+XG5cdFx0XHRcdFx0PGNhbmthbyB2LWlmPVwiZGF0YUNvbmZpZ1twYWdlRGF0YS50eXBlXS5jYW5rYW9EYXRhXCIgOmNhbmthb0RhdGE9XCJkYXRhQ29uZmlnW3BhZ2VEYXRhLnR5cGVdLmNhbmthb0RhdGFcIiA+PC9jYW5rYW8+XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggdG90YWxfYm94XCIgdi1pZj1cInBhZ2VEYXRhLnR5cGUgPT0gJ3N0ZXBJbmRleCcgJiYgcGFnZURhdGEuZGF0YV9tc2dcIj5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZGlzdGFuY2UgYjFcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHhcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiZm9udC1zaXplOiA0OHJweDtmb250LXdlaWdodDogNjAwO1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgcGFnZURhdGEuZGF0YV9tc2cuZGlzdGFuY2UvMTAwMCB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNwb3J0LXRpdGxlXCIgc3R5bGU9XCJmb250LXNpemU6IDM0cnB4O21hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1sZWZ0OiA0cnB4O2ZvbnQtd2VpZ2h0OiAzMDA7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHTlhazph4xcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJzcG9ydC1qdmxpXCIgc3R5bGU9XCJmb250LXNpemU6IDQwcnB4O2NvbG9yOiAjOTk5O1wiPlxuXHRcdFx0XHRcdFx0XHRcdOi3neemu1xuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmx4XCIgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ltYWdlL2p1bGkuanBnXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiY2Fsb3JpZSBiMVwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJmb250LXNpemU6IDQ4cnB4O2ZvbnQtd2VpZ2h0OiA2MDA7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBwYWdlRGF0YS5kYXRhX21zZy5jYWxvcmllIC8gMTAgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzRycHg7bWFyZ2luLXRvcDogMTBycHg7bWFyZ2luLWxlZnQ6IDRycHg7Zm9udC13ZWlnaHQ6IDMwMDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOWNg+WNoVxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiZm9udC1zaXplOiA0MHJweDtjb2xvcjogIzk5OTtcIj5cblx0XHRcdFx0XHRcdFx0XHTljaHot6/ph4xcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseFwiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBlbmQ7XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pbWFnZS9rYWx2bGkuanBnXCIgc3R5bGU9XCJ3aWR0aDogMzAwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cblx0XHQ8L3ZpZXc+XG5cdFx0PHZpZXcgY2xhc3M9XCJlbmRcIj5cblx0XHRcdOWIsOW6leS6hlxuXHRcdDwvdmlldz5cblx0PC92aWV3PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAnQC91bmlfbW9kdWxlcy9saW1lLWVjaGFydC9zdGF0aWMvZWNoYXJ0cy5taW4nO1xuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRuYW1lOlwiZWNoYXJ0cy1kYXRhXCIsXG5cdFx0ZGF0YSgpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zdWJzdHJpbmcoMCwgMTApLFxuXHRcdFx0XHRkYXRhQ29uZmlnOntcblx0XHRcdFx0XHRibG9vZEdsdWNvc2U6e1xuXHRcdFx0XHRcdFx0dGl0bGU6JzEyMzEyMycsXG5cdFx0XHRcdFx0XHRuYW1lOifooYDns5YnLFxuXHRcdFx0XHRcdFx0Y29sb3I6XCIjZmI4NTQ0XCIsXG5cdFx0XHRcdFx0XHR1bml0Oifmr6vmkanlsJQv5Y2HJyxcblx0XHRcdFx0XHRcdGNhbmthb0RhdGE6W1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZTon56m66IW5L+mkkOWJjScsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDMuOSw2LjEsMTVcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNSxcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjE1XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOifppJDlkI4x5bCP5pe2Jyxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOltcblx0XHRcdFx0XHRcdFx0XHRcdDAsNi43LDkuNCwxNVxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0YWRqdXN0bWVudDpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjA0LFxuXHRcdFx0XHRcdFx0XHRcdFx0MC4wMCxcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjA0XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRtYXg6MTVcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+mkkOWQjjLlsI/ml7YnLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCw0LjQsNy44LDE1XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRhZGp1c3RtZW50Oltcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDQsXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjAwLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDRcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDoxNVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRzdGVwSW5kZXg6e1xuXHRcdFx0XHRcdFx0bmFtZTon5q+P5pel6L+Q5YqoJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiIzI5Y2Y2ZlwiLFxuXHRcdFx0XHRcdFx0dW5pdDon5q+r5pGp5bCUL+WNhycsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZE94eWdlbjp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOawpycsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNiZjMyZmNcIixcblx0XHRcdFx0XHRcdHVuaXQ6JyUnLFxuXHRcdFx0XHRcdFx0Y2Fua2FvRGF0YTpmYWxzZSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Ym9keVRlbXBlcmF0dXJlOntcblx0XHRcdFx0XHRcdHRpdGxlOidib2R5VGVtcGVyYXR1cmUnLFxuXHRcdFx0XHRcdFx0bmFtZTon5L2T5ripJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiIzJlYzhkOFwiLFxuXHRcdFx0XHRcdFx0dW5pdDon4oSDJyxcblx0XHRcdFx0XHRcdGNhbmthb0RhdGE6ZmFsc2UsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZFByZXNzdXJlOntcblx0XHRcdFx0XHRcdHRpdGxlOidibG9vZFByZXNzdXJlJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOWOiycsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNmYjg1NDRcIixcblx0XHRcdFx0XHRcdGNvbG9yMTpcIiMwMGMzZGFcIixcblx0XHRcdFx0XHRcdHVuaXQ6J+KEgycsXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOmZhbHNlLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cHVsc2VSZWF0Ontcblx0XHRcdFx0XHRcdHRpdGxlOicxMjMxMjMnLFxuXHRcdFx0XHRcdFx0bmFtZTon5b+D546HJyxcblx0XHRcdFx0XHRcdGNvbG9yOlwiI2ZkNTY1NlwiLFxuXHRcdFx0XHRcdFx0dW5pdDon5qyhL+WIhicsXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOmZhbHNlLFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZExpcXVpZDp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+Wwv+mFuCcsXG5cdFx0XHRcdFx0XHRjb2xvcjpcIiNmMDBcIixcblx0XHRcdFx0XHRcdHVuaXQ6J+W+ruaRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0Y2Fua2FvRGF0YTpbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiflsL/phbgnLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCwxNTAsNDIwLDEwMDBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNixcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNlxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjEwMDBcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRibG9vZExpcXVpZEFsbDp7XG5cdFx0XHRcdFx0XHR0aXRsZTonMTIzMTIzJyxcblx0XHRcdFx0XHRcdG5hbWU6J+ihgOiEgicsXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHVuaXQ6J+W+ruaRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0b3ZlcnZpZXdEYXRhOntcblx0XHRcdFx0XHRcdFx0bmFtZTon6KGA6ISC5qaC5Ya1Jyxcblx0XHRcdFx0XHRcdFx0dGJfaGVhZDpbXG5cdFx0XHRcdFx0XHRcdFx0JycsXG5cdFx0XHRcdFx0XHRcdFx0J+WNleaXpea1i+mHj+iMg+WbtCcsXG5cdFx0XHRcdFx0XHRcdFx0J+W5s+Wdh+WAvCdcblx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTon5oC76IOG5Zu66YaHJyxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOicwLTAnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YXZlcmFnZTowLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6JyM0NmI0ZmYnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YmdDb2xvcjonI2UxZjNmZCdcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6J+eUmOayueS4iemFrycsXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZTonMC0wJyxcblx0XHRcdFx0XHRcdFx0XHRcdGF2ZXJhZ2U6MCxcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOicjMjljZjZjJyxcblx0XHRcdFx0XHRcdFx0XHRcdGJnQ29sb3I6JyNlMmZmZjMnXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOifpq5jlr4bluqbohILom4vnmb0nLFxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU6JzAtMCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRhdmVyYWdlOjAsXG5cdFx0XHRcdFx0XHRcdFx0XHRjb2xvcjonI2ZjYzA1ZCcsXG5cdFx0XHRcdFx0XHRcdFx0XHRiZ0NvbG9yOicjZmVmNWUzJ1xuXHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTon5L2O5a+G5bqm6ISC6JuL55m9Jyxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlOicwLTAnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YXZlcmFnZTowLFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6JyNmYTRlMzMnLFxuXHRcdFx0XHRcdFx0XHRcdFx0YmdDb2xvcjonI2ZlZTVlMSdcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRjYW5rYW9EYXRhOltcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+aAu+iDhuWbuumGhycsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDIuOCw1LjE3LDIwXG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRhZGp1c3RtZW50Oltcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDUsXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjAyLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDVcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDoxMFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZTon55SY5rK55LiJ6YWvJyxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOltcblx0XHRcdFx0XHRcdFx0XHRcdDAsMC41NiwxLjcsMjBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNixcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjAyLFxuXHRcdFx0XHRcdFx0XHRcdFx0LTAuMDRcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdG1heDozXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lOifpq5jlr4bluqbohILom4vnmb0nLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MCwwLjk2LDEuMTUsMjBcblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdGFkanVzdG1lbnQ6W1xuXHRcdFx0XHRcdFx0XHRcdFx0MC4wNCxcblx0XHRcdFx0XHRcdFx0XHRcdDAuMDAsXG5cdFx0XHRcdFx0XHRcdFx0XHQtMC4wNFxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0bWF4OjNcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG5hbWU6J+S9juWvhuW6puiEguibi+eZvScsXG5cdFx0XHRcdFx0XHRcdFx0ZGF0YTpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLDMuMSwyMFxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0YWRqdXN0bWVudDpbXG5cdFx0XHRcdFx0XHRcdFx0XHQwLjA0LFxuXHRcdFx0XHRcdFx0XHRcdFx0MC4wMCxcblx0XHRcdFx0XHRcdFx0XHRcdC0wLjA0XG5cdFx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdFx0XHRtYXg6MjBcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0b3B0aW9uOntcblx0XHRcdFx0XHQvLyB0b29sdGlwOiB7XG5cdFx0XHRcdFx0Ly8gXHR0cmlnZ2VyOiAnaXRlbScsXG5cdFx0XHRcdFx0Ly8gXHRmb3JtYXR0ZXI6IGZ1bmN0aW9uIChwYXJhbXMpIHtcblx0XHRcdFx0XHQvLyBcdFx0Ly8gcGFyYW1zIOaYr+aVsOaNrueahOebuOWFs+S/oeaBr++8jOWPr+S7peagueaNrumcgOimgei/m+ihjOWkhOeQhlxuXHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZyhwYXJhbXMpXG5cdFx0XHRcdFx0Ly8gXHRcdGlmKHBhcmFtcy5jb21wb25lbnRUeXBlID09ICdzZXJpZXMnKXtcblx0XHRcdFx0XHQvLyBcdFx0XHRyZXR1cm4gYDxodG1sPjxkaXYgc3R5bGU9XCJ3aWR0aDoxMHB4XCI+XG5cdFx0XHRcdFx0Ly8gXHRcdFx0XHRcdDxwPiR7cGFyYW1zLnNlcmllc05hbWV9PC9wPlxuXHRcdFx0XHRcdC8vIFx0XHRcdFx0XHQ8cD4ke3BhcmFtcy5uYW1lfTogJHtwYXJhbXMudmFsdWVbMV19PC9wPlxuXHRcdFx0XHRcdC8vIFx0XHRcdFx0PC9kaXY+PC9odG1sPmBcblx0XHRcdFx0XHQvLyBcdFx0fVxuXHRcdFx0XHRcdC8vIFx0XHRyZXR1cm4gJyc7XG5cdFx0XHRcdFx0Ly8gXHR9LFxuXHRcdFx0XHRcdC8vIFx0Ly8gcmVuZGVyTW9kZTonaHRtbCdcblx0XHRcdFx0XHQvLyBcdC8vIGF4aXNQb2ludGVyOiB7XG5cdFx0XHRcdFx0Ly8gXHQvLyAgIHR5cGU6ICdsaW5lJyxcblx0XHRcdFx0XHQvLyBcdC8vICAgbGFiZWw6IHtcblx0XHRcdFx0XHQvLyBcdC8vIFx0YmFja2dyb3VuZENvbG9yOiAnIzZhNzk4NSdcblx0XHRcdFx0XHQvLyBcdC8vICAgfVxuXHRcdFx0XHRcdC8vIFx0Ly8gfSxcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0Ly8gICB9LFxuXHRcdFx0XHQgIHhBeGlzOiB7XG5cdFx0XHRcdFx0c3BsaXRMaW5lOntcblx0XHRcdFx0XHQgIHNob3c6ZmFsc2Vcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHR5cGU6J3ZhbHVlJyxcblx0XHRcdFx0XHRtYXg6NCxcblx0XHRcdFx0XHRtaW46MCxcblx0XHRcdFx0XHRheGlzTGFiZWw6IHtcblx0XHRcdFx0XHRcdHNob3c6IHRydWUsXG5cdFx0XHRcdFx0XHRzcGxpdE51bWJlcjoyLFxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGFyciA9IFsnMTJhbScsICc2YW0nLCAnMTJwbScsICc2cG0nLCAnMTJhbSddXG5cdFx0XHRcdFx0XHRcdHJldHVybiBhcnJbIE1hdGguZmxvb3IoaW5kZXgpXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdCAgfSxcblx0XHRcdFx0IFxuXHRcdFx0XHQgIHlBeGlzOiB7XG5cdFx0XHRcdFx0ICBzcGxpdExpbmU6e1xuXHRcdFx0XHRcdFx0c2hvdzp0cnVlLFxuXHRcdFx0XHRcdFx0bGluZVN0eWxlOiB7XG5cdFx0XHRcdFx0XHRcdC8vIOS9v+eUqOa3sea1heeahOmXtOmalOiJslxuXHRcdFx0XHRcdFx0XHRjb2xvcjogW1wiI2NjY1wiXSxcblx0XHRcdFx0XHRcdFx0dHlwZTpcImRhc2hlZFwiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgYXhpc1RpY2s6IHtcblx0XHRcdFx0XHRcdCAgc2hvdzogZmFsc2Vcblx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdFx0ICBheGlzTGluZToge1xuXHRcdFx0XHRcdFx0ICBzaG93OiBmYWxzZSAvLyDorr7nva556L2057q/5LiN5pi+56S6XG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgYXhpc0xhYmVsOiB7fSxcblx0XHRcdFx0XHQgIHBvc2l0aW9uOlwicmlnaHRcIixcblx0XHRcdFx0XHQgIHNwbGl0TnVtYmVyOjNcblx0XHRcdFx0XHQgIFxuXHRcdFx0XHQgIH0sXG5cdFx0XHRcdCAgc2VyaWVzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdCAgc3ltYm9sU2l6ZTogNSxcblx0XHRcdFx0XHQgIGRhdGE6IFxuXHRcdFx0XHRcdCAgW1xuXHRcdFx0XHRcdCAgXSxcblx0XHRcdFx0XHQgIFxuXHRcdFx0XHRcdCAgbWFya0xpbmU6IHtcblx0XHRcdFx0XHQgICAgICBkYXRhOiBbXG5cdFx0XHRcdFx0ICAgICAgICAgIHtcblx0XHRcdFx0XHRcdFx0XHQgIHNob3c6ZmFsc2UsXG5cdFx0XHRcdFx0ICAgICAgICAgICAgICB5QXhpczogMi41LCAvLyDlnKggeSDlgLzkuLogMTAwIOeahOS9jee9rua3u+WKoOawtOW5s+WPguiAg+e6v1xuXHRcdFx0XHRcdCAgICAgICAgICB9LFxuXHRcdFx0XHRcdFx0XHQgIFxuXHRcdFx0XHRcdCAgICAgIF0sXG5cdFx0XHRcdFx0XHQgIGxpbmVTdHlsZTp7XG5cdFx0XHRcdFx0XHRcdCAgY29sb3I6JyNjY2MnLFxuXHRcdFx0XHRcdFx0XHQgIGNhcDpcImJ1dHRcIlxuXHRcdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdFx0ICBsYWJlbDp7XG5cdFx0XHRcdFx0XHRcdCBjb2xvcjonI2NjYycsXG5cdFx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdFx0ICB9LFxuXHRcdFx0XHRcdCAgdHlwZTogJ3NjYXR0ZXInLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XG5cdFx0XHRcdCAgXSxcblx0XHRcdFx0ICBcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0cHJvcHM6IHtcblx0XHRcdHBhZ2VEYXRhOiB7XG5cdFx0XHRcdGRlZmF1bHQ6ICgpID0+ICh7fSksXG5cdFx0XHRcdHR5cGU6IE9iamVjdFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0bW91bnRlZCgpIHtcblx0XHRcdHRoaXMucGFnZURhdGEudHlwZSA9IHRoaXMuZ2V0cGFnZVR5cGU7XG5cdFx0fSxcblx0XHRjb21wdXRlZDoge1xuXHRcdFx0Li4ubWFwR2V0dGVycyh7XG5cdFx0XHRcdGdldEFjdGljZURldmljZTogXCJhcGkvZ2V0QWN0aWNlRGV2aWNlXCIsXG5cdFx0XHRcdGdldHBhZ2VUeXBlOiBcImFwaS9nZXRwYWdlVHlwZVwiLFxuXHRcdFx0fSlcblx0XHR9LFxuXHRcdG1ldGhvZHM6IHtcblx0XHRcdGFzeW5jIGluaXQoKSB7XG5cdFx0XHRcdHRoaXMuY2hhcnQgPSBhd2FpdCB0aGlzLiRyZWZzLmNoYXJ0UmVmLmluaXQoZWNoYXJ0cyk7XG5cdFx0XHRcdGxldCBvcHRpb24gPSBhd2FpdCB0aGlzLmdldERhdGFMaXN0KCk7XG5cdFx0XHRcdHRoaXMuY2hhcnQuc2V0T3B0aW9uKG9wdGlvbilcblx0XHRcdH0sXG5cdFx0XHRhc3luYyBnZXREYXRhTGlzdCgpe1xuXHRcdFx0XHRsZXQgdHlwZSA9IHRoaXMucGFnZURhdGEudHlwZVxuXHRcdFx0XHRcblx0XHRcdFx0aWYodHlwZSA9PSAnYmxvb2RMaXF1aWRBbGwnKSB7XG5cdFx0XHRcdFx0dHlwZSA9ICdibG9vZExpcXVpZCdcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0bGV0IHJlcyA9IGF3YWl0IHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhcGkvZ2V0RGV2aWNlTGlzdERheXMnLCB7XG5cdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRkZXZpY2VfcmVhbF90aW1lOiB0aGlzLnRpbWUsXG5cdFx0XHRcdFx0ZGV2aWNlX2lkOnRoaXMuZ2V0QWN0aWNlRGV2aWNlLmRldmljZV9pZFxuXHRcdFx0XHR9KVxuXHRcdFx0XHRcblx0XHRcdFx0cmV0dXJuIHRoaXMubWFrZU9wdGlvbkNvbmZpZyhyZXMuZGF0YSk7XG5cdFx0XHR9LFxuXHRcdFx0Z2V0QXZlcmFnZShhcnIpIHtcblx0XHRcdCAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7IC8vIOWmguaenOaVsOe7hOS4uuepuu+8jOWImei/lOWbnjBcblx0XHRcdCAgICBjb25zdCBzdW0gPSBhcnIucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnRWYWx1ZSk7XG5cdFx0XHQgICAgcmV0dXJuIHN1bSAvIGFyci5sZW5ndGg7IC8vIOiuoeeul+W5s+Wdh+WAvFxuXHRcdFx0fSxcblx0XHRcdHN1YnRyYWN0TWludXRlcyh0aW1lU3RyLCBtaW51dGVzKSB7XG5cdFx0XHQgIGNvbnN0IHBhcnRzID0gdGltZVN0ci5zcGxpdCgnOicpO1xuXHRcdFx0ICBjb25zdCBob3VycyA9IHBhcnNlSW50KHBhcnRzWzBdLCAxMCk7XG5cdFx0XHQgIGNvbnN0IG1pbnV0ZXNMZWZ0ID0gcGFyc2VJbnQocGFydHNbMV0sIDEwKTtcblx0XHRcdCBcblx0XHRcdCAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG5cdFx0XHQgIGRhdGUuc2V0SG91cnMoaG91cnMsIG1pbnV0ZXNMZWZ0LCAwLCAwKTsgLy8g6K6+572u5pe244CB5YiG44CB56eS44CB5q+r56eSXG5cdFx0XHQgIGRhdGUuc2V0TWludXRlcyhkYXRlLmdldE1pbnV0ZXMoKSAtIG1pbnV0ZXMpOyAvLyDlh4/ljrvmjIflrprnmoTliIbpkp/mlbBcblx0XHRcdCBcblx0XHRcdCAgLy8g5qC85byP5YyW5Li6SEg6TU1cblx0XHRcdCAgY29uc3QgbmV3SG91cnMgPSBkYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuXHRcdFx0ICBjb25zdCBuZXdNaW51dGVzID0gZGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuXHRcdFx0ICByZXR1cm4gbmV3SG91cnMgKyAnOicgKyBuZXdNaW51dGVzO1xuXHRcdFx0fSxcblx0XHRcdG1ha2VGbG9hdEhvdXJzTWludXRlcyhob3VycywgbWludXRlcykge1xuXHRcdFx0XHRcblx0XHRcdCAgICBsZXQgdG90YWwgPSBob3VycyAqIDM2MDAgKyBtaW51dGVzICogNjA7XG5cdFx0XHRcdGxldCBmbG9hdERhdGEgPSAgdG90YWwgLyA4NjQwMCAqIDRcblx0XHRcdFx0cmV0dXJuIGZsb2F0RGF0YS50b0ZpeGVkKDIpO1xuXHRcdFx0fSxcblx0XHRcdGJhY2soKSB7XG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2JhY2snLCAxKVxuXHRcdFx0fSxcblx0XHRcdFxuXHRcdFx0Ly8g5YWo6YOo5pWw5o2uXG5cdFx0XHRnb0FsbFBhdGgoKSB7XG5cdFx0XHRcdHRoaXMuJGVtaXQoJ2FsbERhdGEnLCAzKVxuXHRcdFx0fSxcblx0XHRcdC8vLyBnaXQgZGV2IHRlc3Rcblx0XHRcdG1ha2VPcHRpb25Db25maWcoZGF0YSl7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpXG5cdFx0XHRcdGxldCBlY2hhcnRzRGF0YSA9IFtdO1xuXHRcdFx0XHRsZXQgc3VtID0gMDtcblx0XHRcdFx0bGV0IG1heCA9IDA7XG5cdFx0XHRcdGxldCBtaW4gPSAwO1xuXHRcdFx0XHRsZXQgYXZnID0gMDtcblx0XHRcdFx0bGV0IGxlbiA9IDA7XG5cdFx0XHRcdGxldCBhcnIgPSBbXTtcblx0XHRcdFx0bGV0IGRhdGFBcnIgPSB7fTtcblx0XHRcdFx0XG5cdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5zeW1ib2wgPSAnbm9uZSdcblx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLnBvc2l0aW9uID0naW5zaWRlRW5kVG9wJ1xuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLnBhZ2VEYXRhLnR5cGUsICc5MDAwMDAwMDAwMDAnKVxuXHRcdFx0XHRzd2l0Y2godGhpcy5wYWdlRGF0YS50eXBlKXtcblx0XHRcdFx0XHRjYXNlICdzdGVwSW5kZXgnOlxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+atpeaVsCcpXG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyID0gdi5ob3VyX21pbnV0ZS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gJyc7XG5cdFx0XHRcdFx0XHRcdGlmKHRpbWVBcnJbMV0gPCAzMCl7XG5cdFx0XHRcdFx0XHRcdFx0a2V5ID0gdGltZUFyclswXSsnOicrJzAwJ1xuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRrZXkgPSB0aW1lQXJyWzBdKyc6JysnMzAnXG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsOnYuZGF0YV9tc2cuc3RlcCxcblx0XHRcdFx0XHRcdFx0XHRcdGZyb206MVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCArPSB2LmRhdGFfbXNnLnN0ZXA7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLChkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZWNoYXJ0c0RhdGEpXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUgPSBbXVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLnR5cGUgPSAnYmFyJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmJhck1heFdpZHRoID0gJzEwJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdHRleHQgOnRoaXMucGFnZURhdGEuZGF0YV9tc2cuc3RlcCArICfmraUnLFxuXHRcdFx0XHRcdFx0XHQvLyBzdWJ0ZXh0OiAn5q+r5pGp5bCUL+WNhycsXG5cdFx0XHRcdFx0XHRcdGxlZnQ6ICdjZW50ZXInXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnYm9keVRlbXBlcmF0dXJlJzpcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKGRhdGEpXG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyID0gdi5ob3VyX21pbnV0ZS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gdGltZUFyclswXSsnOicrJzAwJ1xuXHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWw6W3BhcnNlRmxvYXQodi5kYXRhX21zZyldLFxuXHRcdFx0XHRcdFx0XHRcdFx0ZnJvbTowXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwscGFyc2VGbG9hdCh2LmRhdGFfbXNnKV07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0bGV0IGRhdGFNc2cgPSBwYXJzZUZsb2F0KHYuZGF0YV9tc2cpO1xuXHRcdFx0XHRcdFx0XHQvLyBsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFyclswXSx0aW1lQXJyWzFdKVxuXHRcdFx0XHRcdFx0XHQvLyBlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLGRhdGFNc2ddLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRzdW0gKz0gZGF0YU1zZ1xuXHRcdFx0XHRcdFx0XHRpZihtYXggPT0gMCB8fCBtYXggPCBkYXRhTXNnKXtcblx0XHRcdFx0XHRcdFx0XHRtYXggPSBkYXRhTXNnXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYobWluID09IDAgfHwgbWluID4gZGF0YU1zZyl7XG5cdFx0XHRcdFx0XHRcdFx0bWluID0gZGF0YU1zZ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0YXZnID0gc3VtIC8gZGF0YS5sZW5ndGhcblx0XHRcdFx0XHRcdGF2ZyA9IHBhcnNlRmxvYXQoYXZnLnRvRml4ZWQoMikpXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5kYXRhID0gZWNoYXJ0c0RhdGFcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS50eXBlID0gJ2xpbmUnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubGluZVN0eWxlID0ge31cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5saW5lU3R5bGUuY29sb3IgPSAnI2NjYydcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzBdLnlBeGlzID0gYXZnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5taW4gPSBwYXJzZUludChtaW4pLTE7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5tYXggPSBwYXJzZUludChtYXgpICsgMTtcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLnNwbGl0TnVtYmVyID0gMTtcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnRpdGxlID0ge1xuXHRcdFx0XHRcdFx0XHR0ZXh0IDptaW4gKyAnLScgKyBtYXgsXG5cdFx0XHRcdFx0XHRcdHN1YnRleHQ6ICfihIMnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ib2R5VGVtcGVyYXR1cmUudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ2Jsb29kT3h5Z2VuJzpcblx0XHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyID0gdi5ob3VyX21pbnV0ZS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gdi5kYXRhX21zZy5maWx0ZXIoaXRlbSA9PiBpdGVtID4gMCk7XG5cdFx0XHRcdFx0XHRcdFx0aWYodGltZUFyclsxXSAlIDEwID09IDApe1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHYuaG91cl9taW51dGVcblx0XHRcdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsOmRhdGFNc2csXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbTowXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwsLi4uZGF0YU1zZ107XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBrZXkgPSB0aW1lQXJyWzBdKyc6JysoKHRpbWVBcnJbMV0gLSA1KSA9PSAwPycwMCc6KHRpbWVBcnJbMV0gLSA1KSlcblx0XHRcdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsOmRhdGFNc2csXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbToxXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwsLi4uZGF0YU1zZ107XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YU1zZy5tYXAoKHYyLGkyKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZih2MiA+IDApe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRhcnIucHVzaCh2Milcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGtleSBpbiBkYXRhQXJyKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGRhdGFBcnIuaGFzT3duUHJvcGVydHkoa2V5KSkgeyAvLyDnoa7kv51rZXnmmK/lr7nosaHoh6rouqvnmoTlsZ7mgKdcblx0XHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGZsb2F0RGF0YSA9IHRoaXMubWFrZUZsb2F0SG91cnNNaW51dGVzKHRpbWVBcnIyWzBdLHRpbWVBcnIyWzFdKVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbCldLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYoYXJyLmxlbmd0aCA+IDApe1xuXHRcdFx0XHRcdFx0XHRcdG1pbiA9IE1hdGgubWluKC4uLmFycilcblx0XHRcdFx0XHRcdFx0XHRtYXggPSBNYXRoLm1heCguLi5hcnIpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5kYXRhID0gZWNoYXJ0c0RhdGFcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuYXhpc0xhYmVsLmZvcm1hdHRlciA9ICd7dmFsdWV9JSc7XG5cdFx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzBdLnlBeGlzID0gdGhpcy5nZXRBdmVyYWdlKGFycilcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMF0udmFsdWUgPSB0aGlzLmdldEF2ZXJhZ2UoYXJyKVxuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuc3ltYm9sID0gJ25vbmUnXG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLnBvc2l0aW9uID0naW5zaWRlRW5kVG9wJ1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuZm9ybWF0dGVyID0gZnVuY3Rpb24oZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGRhdGEudmFsdWUgKyAnJSdcblx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhLDEyMylcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0Ly8gdGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmRpc3RhbmNlID1bMTAsNV1cblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdFx0dGV4dCA6bWluICsgJy0nICsgbWF4LFxuXHRcdFx0XHRcdFx0XHRcdHN1YnRleHQ6ICclJyxcblx0XHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5zcGxpdE51bWJlciA9IDI7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ib2R5VGVtcGVyYXR1cmUudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gbWluO1xuXHRcdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5tYXggPSAxMDA7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ2Jsb29kR2x1Y29zZSc6XG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyID0gdi5ob3VyX21pbnV0ZS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRpZih0aW1lQXJyWzFdIDwgMzApe1xuXHRcdFx0XHRcdFx0XHRcdGxldCBrZXkgPSB0aW1lQXJyWzBdKyc6JysnMDAnXG5cdFx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbDpbdi5kYXRhX21zZ10sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZyb206MFxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLHYuZGF0YV9tc2ddO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHRpbWVBcnJbMF0rJzonKyczMCdcblx0XHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsOlt2LmRhdGFfbXNnXSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbToxXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhkYXRhQXJyW2tleV0udmFsKVxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLHYuZGF0YV9tc2ddO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyBsZXQgZmxvYXREYXRhID0gdGhpcy5tYWtlRmxvYXRIb3Vyc01pbnV0ZXModGltZUFyclswXSx0aW1lQXJyWzFdKVxuXHRcdFx0XHRcdFx0XHQvLyBlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHYuZGF0YV9tc2ddLGl0ZW1TdHlsZToge2NvbG9yOiB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvcn19KVxuXHRcdFx0XHRcdFx0XHRzdW0gKz0gdi5kYXRhX21zZ1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYobWF4ID09IDAgfHwgbWF4IDwgdi5kYXRhX21zZyl7XG5cdFx0XHRcdFx0XHRcdFx0bWF4ID0gdi5kYXRhX21zZ1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IHYuZGF0YV9tc2cpe1xuXHRcdFx0XHRcdFx0XHRcdG1pbiA9IHYuZGF0YV9tc2dcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0YXZnID0gc3VtIC8gZGF0YS5sZW5ndGhcblx0XHRcdFx0XHRcdGF2ZyA9IHBhcnNlRmxvYXQoYXZnLnRvRml4ZWQoMikpXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMF0ueUF4aXMgPSBhdmdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5saW5lU3R5bGUuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxhYmVsLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnRpdGxlID0ge1xuXHRcdFx0XHRcdFx0XHR0ZXh0IDptaW4gKyAnLScgKyBtYXgsXG5cdFx0XHRcdFx0XHRcdHN1YnRleHQ6ICfmr6vmkanlsJQv5Y2HJyxcblx0XHRcdFx0XHRcdFx0bGVmdDogJ2NlbnRlcidcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RHbHVjb3NlLnRpdGxlID0gbWluICsgJy0nICsgbWF4XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdGRhdGEubWFwKCh2LGkpID0+IHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gdi5kYXRhX21zZztcblx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIgPSB2LmhvdXJfbWludXRlLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7aTw1O2krKyl7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHJlYWxfZGF0YSA9IGRhdGFNc2dbaV1cblx0XHRcdFx0XHRcdFx0XHRpZihyZWFsX2RhdGEgPD0gMCl7XG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0bGVuICs9IDE7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gbGV0IGZsb2F0RGF0YSA9IHRoaXMubWFrZUZsb2F0SG91cnNNaW51dGVzKHRpbWVBcnJbMF0scGFyc2VJbnQoIHRpbWVBcnJbMV0pICsgaSlcblx0XHRcdFx0XHRcdFx0XHQvLyBlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHJlYWxfZGF0YV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0c3VtICs9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHRcdGlmKG1heCA9PSAwIHx8IG1heCA8IHJlYWxfZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXggPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0aWYobWluID09IDAgfHwgbWluID4gcmVhbF9kYXRhKXtcblx0XHRcdFx0XHRcdFx0XHRcdG1pbiA9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRhdmcgPSBzdW0gLyBsZW5cblx0XHRcdFx0XHRcdGF2ZyA9IHBhcnNlRmxvYXQoYXZnLnRvRml4ZWQoMikpXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IGF2Z1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24udGl0bGUgPSB7XG5cdFx0XHRcdFx0XHRcdHRleHQgOm1pbiArICctJyArIG1heCxcblx0XHRcdFx0XHRcdFx0c3VidGV4dDogJyUnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZEdsdWNvc2UudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLmF4aXNMYWJlbC5mb3JtYXR0ZXIgPSAne3ZhbHVlfSUnO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuc3BsaXROdW1iZXIgPSAzO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gOTU7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5tYXggPSAxMDA7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdibG9vZFByZXNzdXJlJzpcblx0XHRcdFx0XHRcdGxldCBtYXgyID0gMDtcblx0XHRcdFx0XHRcdGxldCBtaW4yID0gMDtcblx0XHRcdFx0XHRcdGxldCBzdW0yID0gMDtcblx0XHRcdFx0XHRcdGxldCBlY2hhcnRzRGF0YTIgPSBbXVxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0bGV0IGtleSA9IHRpbWVBcnJbMF0rJzonKycwMCdcblx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsOlt2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoXSxcblx0XHRcdFx0XHRcdFx0XHRcdHZhbDI6W3YuZGF0YV9tc2cuYmxvb2RQcmVzc3VyZUxvd10sXG5cdFx0XHRcdFx0XHRcdFx0XHRmcm9tOjBcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS52YWwgPSBbLi4uZGF0YUFycltrZXldLnZhbCx2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoXTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsMiA9IFsuLi5kYXRhQXJyW2tleV0udmFsMix2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVMb3ddO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyWzBdLHRpbWVBcnJbMV0pXG5cdFx0XHRcdFx0XHRcdC8vIGVjaGFydHNEYXRhLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdi5kYXRhX21zZ10saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdHN1bSArPSB2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoXG5cdFx0XHRcdFx0XHRcdHN1bTIgKz0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRpZihtYXggPT0gMCB8fCBtYXggPCB2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoKXtcblx0XHRcdFx0XHRcdFx0XHRtYXggPSB2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVIaWdoXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYobWluID09IDAgfHwgbWluID4gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaCl7XG5cdFx0XHRcdFx0XHRcdFx0bWluID0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlSGlnaFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1heDIgPT0gMCB8fCBtYXgyIDwgdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93KXtcblx0XHRcdFx0XHRcdFx0XHRtYXgyID0gdi5kYXRhX21zZy5ibG9vZFByZXNzdXJlTG93XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYobWluMiA9PSAwIHx8IG1pbjIgPiB2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVMb3cpe1xuXHRcdFx0XHRcdFx0XHRcdG1pbjIgPSB2LmRhdGFfbXNnLmJsb29kUHJlc3N1cmVMb3dcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdGF2ZyA9IHN1bSAvIGRhdGEubGVuZ3RoXG5cdFx0XHRcdFx0XHRsZXQgYXZnMiA9IHN1bTIgLyBkYXRhLmxlbmd0aFxuXHRcdFx0XHRcdFx0YXZnID0gcGFyc2VJbnQoYXZnKVxuXHRcdFx0XHRcdFx0YXZnMiA9IHBhcnNlSW50KGF2ZzIpXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhhdmcsJ2FnJylcblx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGF2ZzIsJ2FnMicpXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhQXJyKVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGEucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLnZhbDIpXSxpdGVtU3R5bGU6IHtjb2xvcjogdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3IxfX0pXG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLmRhdGEgPSBlY2hhcnRzRGF0YVxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5vcHRpb24uc2VyaWVzWzFdLmRhdGEgPSBlY2hhcnRzRGF0YTJcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5kYXRhWzBdLnlBeGlzID0gYXZnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVsxXSA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVsxXS5saW5lU3R5bGUgPSB7fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0ubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3IxXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVsxXS5sYWJlbCA9IHt9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVsxXS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yMVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmRhdGFbMV0ueUF4aXMgPSBhdmcyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLm9wdGlvbi5zZXJpZXNbMV0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnNlcmllc1sxXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi50aXRsZSA9IHtcblx0XHRcdFx0XHRcdFx0dGV4dCA6J+aUtue8qeWOiycrbWluICsgJy0nICsgbWF4ICsgJyAgICcrICfoiJLlvKDljovvvJonICttaW4yICsgJy0nICsgbWF4Mixcblx0XHRcdFx0XHRcdFx0Ly8gc3VidGV4dDogJ+avq+aRqeWwlC/ljYcnLFxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAnY2VudGVyJ1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZEdsdWNvc2UudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnlBeGlzLm1pbiA9IHBhcnNlSW50KG1pbjIpIC0gNTtcblx0XHRcdFx0XHRcdC8vIHRoaXMub3B0aW9uLnlBeGlzLm1heCA9IHBhcnNlSW50KG1heCkgKyA1O1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRjYXNlICdwdWxzZVJlYXQnOlxuXHRcdFx0XHRcdFx0Ly8gW2RhdGFbMF1dLFxuXHRcdFx0XHRcdFx0ZGF0YS5tYXAoKHYsaSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0bGV0IGRhdGFNc2cgPSB2LmRhdGFfbXNnO1xuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0bGV0IG1heExlbmd0aCA9IChkYXRhTXNnLmxlbmd0aCA+IDU/NTpkYXRhTXNnLmxlbmd0aClcblx0XHRcdFx0XHRcdFx0bGV0IHJlYWREYXRhQXJyID0gW107XG5cdFx0XHRcdFx0XHRcdGZvcihsZXQgaSA9IDA7aTxtYXhMZW5ndGg7aSsrKXtcblx0XHRcdFx0XHRcdFx0XHRsZXQgcmVhbF9kYXRhID0gZGF0YU1zZ1tpXVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGlmKChyZWFsX2RhdGEgPCAzMCB8fCByZWFsX2RhdGEgPj0gMjAwKSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0cmVhZERhdGFBcnIucHVzaChyZWFsX2RhdGEpXG5cdFx0XHRcdFx0XHRcdFx0bGVuICs9IDE7XG5cdFx0XHRcdFx0XHRcdFx0c3VtICs9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHRcdGlmKG1heCA9PSAwIHx8IG1heCA8IHJlYWxfZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXggPSByZWFsX2RhdGFcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0aWYobWluID09IDAgfHwgbWluID4gcmVhbF9kYXRhKXtcblx0XHRcdFx0XHRcdFx0XHRcdG1pbiA9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0aWYodGltZUFyclsxXSA8IDMwKXtcblx0XHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gdGltZUFyclswXSsnOicrJzAwJ1xuXHRcdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWw6cmVhZERhdGFBcnIuZmlsdGVyKGl0ZW0gPT4gKGl0ZW0gPiAzMCB8fCBpdGVtICA8PSAyMDApKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbTowXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwsLi4ucmVhZERhdGFBcnIuZmlsdGVyKGl0ZW0gPT4gKGl0ZW0gPiAzMCB8fCBpdGVtICA8PSAyMDApKV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRsZXQga2V5ID0gdGltZUFyclswXSsnOicrJzMwJ1xuXHRcdFx0XHRcdFx0XHRcdGlmKGRhdGFBcnJba2V5XSA9PSB1bmRlZmluZWQpe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWw6cmVhZERhdGFBcnIuZmlsdGVyKGl0ZW0gPT4gKGl0ZW0gPiAzMCB8fCBpdGVtICA8PSAyMDApKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbTowXG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwsLi4ucmVhZERhdGFBcnIuZmlsdGVyKGl0ZW0gPT4gKGl0ZW0gPiAzMCB8fCBpdGVtICA8PSAyMDApKV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0YXZnID0gc3VtIC8gbGVuXG5cdFx0XHRcdFx0XHRhdmcgPSBwYXJzZUludChhdmcpXG5cdFx0XHRcdFx0XHRmb3IgKGxldCBrZXkgaW4gZGF0YUFycikge1xuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV0saXRlbVN0eWxlOiB7Y29sb3I6IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yfX0pXG5cdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coa2V5ICwgZGF0YUFycltrZXldKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IGF2Z1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGluZVN0eWxlLmNvbG9yID0gdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3Jcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5tYXJrTGluZS5sYWJlbC5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi50aXRsZSA9IHtcblx0XHRcdFx0XHRcdFx0dGV4dCA6bWluICsgJy0nICsgbWF4LFxuXHRcdFx0XHRcdFx0XHRzdWJ0ZXh0OiAn5qyhL+WIhicsXG5cdFx0XHRcdFx0XHRcdGxlZnQ6ICdjZW50ZXInXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kR2x1Y29zZS50aXRsZSA9IG1pbiArICctJyArIG1heFxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5vcHRpb24ueUF4aXMuYXhpc0xhYmVsLmZvcm1hdHRlciA9ICd7dmFsdWV9JSc7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5zcGxpdE51bWJlciA9IDE7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5taW4gPSAzMDtcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1heCA9IDkwO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ2Jsb29kTGlxdWlkJzpcblx0XHRcdFx0XHRcdGRhdGEubWFwKCh2LGkpID0+IHtcblx0XHRcdFx0XHRcdFx0bGV0IGRhdGFNc2cgPSB2LmRhdGFfbXNnO1xuXHRcdFx0XHRcdFx0XHRsZXQgcmVhbF9kYXRhID0gZGF0YU1zZy51cmljQWNpZFZhbC8xMFxuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGlmKHRpbWVBcnJbMV0gJSAxMCA9PSAwKXtcblx0XHRcdFx0XHRcdFx0XHR2YXIga2V5ID0gdi5ob3VyX21pbnV0ZVxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHR2YXIga2V5ID0gdGltZUFyclswXSsnOicrKCh0aW1lQXJyWzFdIC0gNSkgPT0gMD8nMDAnOih0aW1lQXJyWzFdIC0gNSkpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0aWYoZGF0YUFycltrZXldID09IHVuZGVmaW5lZCl7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldID0ge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFsOltyZWFsX2RhdGFdLFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fWVsc2V7XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLnZhbCA9IFsuLi5kYXRhQXJyW2tleV0udmFsLHJlYWxfZGF0YV07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0c3VtICs9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHRpZihtYXggPT0gMCB8fCBtYXggPCByZWFsX2RhdGEpe1xuXHRcdFx0XHRcdFx0XHRcdG1heCA9IHJlYWxfZGF0YVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGlmKG1pbiA9PSAwIHx8IG1pbiA+IHJlYWxfZGF0YSl7XG5cdFx0XHRcdFx0XHRcdFx0bWluID0gcmVhbF9kYXRhXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0bGVuICs9IDE7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0YXZnID0gc3VtIC8gbGVuXG5cdFx0XHRcdFx0XHRhdmcgPSBwYXJzZUZsb2F0KGF2Zy50b0ZpeGVkKDIpKVxuXHRcdFx0XHRcdFx0Zm9yIChsZXQga2V5IGluIGRhdGFBcnIpIHtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGlmIChkYXRhQXJyLmhhc093blByb3BlcnR5KGtleSkpIHsgLy8g56Gu5L+da2V55piv5a+56LGh6Ieq6Lqr55qE5bGe5oCnXG5cdFx0XHRcdFx0XHRcdFx0bGV0IHRpbWVBcnIyID0ga2V5LnNwbGl0KCc6Jyk7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGZsb2F0RGF0YSA9IHRoaXMubWFrZUZsb2F0SG91cnNNaW51dGVzKHRpbWVBcnIyWzBdLHRpbWVBcnIyWzFdKVxuXHRcdFx0XHRcdFx0XHRcdGxldCBuZXh0S2V5ID0gdGhpcy5zdWJ0cmFjdE1pbnV0ZXMoa2V5LDEwKVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdGhpcy5nZXRBdmVyYWdlKGRhdGFBcnJba2V5XS52YWwpXSxpdGVtU3R5bGU6IHtjb2xvcjogdGhpcy5kYXRhQ29uZmlnW3RoaXMucGFnZURhdGEudHlwZV0uY29sb3J9fSlcblx0XHRcdFx0XHRcdFx0XHRpZighZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKG51bGwpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5kYXRhID0gZWNoYXJ0c0RhdGFcblx0XHRcdFx0XHRcdC8vdG9wIC8gbGVmdCAvIHJpZ2h0IC8gYm90dG9tIC8gaW5zaWRlIC8gaW5zaWRlTGVmdCAvIGluc2lkZVJpZ2h0IC8gaW5zaWRlVG9wIC8gaW5zaWRlQm90dG9tIC8gaW5zaWRlVG9wTGVmdCAvIGluc2lkZUJvdHRvbUxlZnQgLyBpbnNpZGVUb3BSaWdodCAvIGluc2lkZUJvdHRvbVJpZ2h0XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwucG9zaXRpb24gPSdpbnNpZGVFbmRUb3AnXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUuZGF0YVswXS55QXhpcyA9IGF2Z1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lLmxpbmVTdHlsZS5jb2xvciA9IHRoaXMuZGF0YUNvbmZpZ1t0aGlzLnBhZ2VEYXRhLnR5cGVdLmNvbG9yXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubWFya0xpbmUubGFiZWwuY29sb3IgPSB0aGlzLmRhdGFDb25maWdbdGhpcy5wYWdlRGF0YS50eXBlXS5jb2xvclxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLnR5cGUgPSAnbGluZSdcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5zeW1ib2wgPSAnbm9uZScsXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uc21vb3RoID0gdHJ1ZSBcblx0XHRcdFx0XHRcdCBcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5pdGVtU3R5bGU9IHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICdyZ2IoMjU1LCA3MCwgMTMxKSdcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5hcmVhU3R5bGUgPSB7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFtcblx0XHRcdFx0XHRcdFx0ICB7XG5cdFx0XHRcdFx0XHRcdFx0b2Zmc2V0OiAwLFxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAncmdiKDI1NCwgMTc0LCAxNzMpJ1xuXHRcdFx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdFx0XHRcdCAge1xuXHRcdFx0XHRcdFx0XHRcdG9mZnNldDogMSxcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJ3JnYigyNTUsIDI1NSwgMjQ4KSdcblx0XHRcdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0XHRcdF0pXG5cdFx0XHRcdFx0XHQgIH1cblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5vcHRpb24uc2VyaWVzWzBdLnR5cGUgPSAndGhpcy5kYXRhQ29uZmlnW3RoaXMudHlwZV0uY29sb3InXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi50aXRsZSA9IHtcblx0XHRcdFx0XHRcdFx0dGV4dCA6bWluICsgJy0nICsgbWF4LFxuXHRcdFx0XHRcdFx0XHRzdWJ0ZXh0OiAn5b6u5pGp5bCUL+WNhycsXG5cdFx0XHRcdFx0XHRcdGxlZnQ6ICdjZW50ZXInLFxuXHRcdFx0XHRcdFx0XHR0ZXh0U3R5bGU6e1xuXHRcdFx0XHRcdFx0XHRcdCBmb250V2VpZ2h0OlwibGlnaHRlclwiLFxuXHRcdFx0XHRcdFx0XHRcdCBmb250U2l6ZToyNFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kR2x1Y29zZS50aXRsZSA9IG1pbiArICctJyArIG1heFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5heGlzTGFiZWwuZm9ybWF0dGVyID0gZnVuY3Rpb24odixpKXtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHY7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5zcGxpdE51bWJlciA9IDM7XG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi55QXhpcy5taW4gPSAwO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWF4ID0gTWF0aC5yb3VuZChtYXgpICsgMTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdibG9vZExpcXVpZEFsbCc6XG5cdFx0XHRcdFx0XHRsZXQgb3JUb3RhbCA9IHtcblx0XHRcdFx0XHRcdFx0Y2hvbGVzdGVyb2w6W10sXG5cdFx0XHRcdFx0XHRcdGhpZ2hEZW5zaXR5OltdLFxuXHRcdFx0XHRcdFx0XHRsb3dEZW5zaXR5OltdLFxuXHRcdFx0XHRcdFx0XHR0cmlhY3lsZ2x5Y2Vyb2w6W10sXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRkYXRhLm1hcCgodixpKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGxldCBkYXRhTXNnID0gdi5kYXRhX21zZztcblx0XHRcdFx0XHRcdFx0bGV0IHJlYWxfZGF0YSA9IHtcblx0XHRcdFx0XHRcdFx0XHRjaG9sZXN0ZXJvbDooZGF0YU1zZy5jaG9sZXN0ZXJvbC8xMDApLnRvRml4ZWQoMiksXG5cdFx0XHRcdFx0XHRcdFx0aGlnaERlbnNpdHk6KGRhdGFNc2cuaGlnaERlbnNpdHkvMTAwKS50b0ZpeGVkKDIpLFxuXHRcdFx0XHRcdFx0XHRcdGxvd0RlbnNpdHk6KGRhdGFNc2cubG93RGVuc2l0eS8xMDApLnRvRml4ZWQoMiksXG5cdFx0XHRcdFx0XHRcdFx0dHJpYWN5bGdseWNlcm9sOihkYXRhTXNnLnRyaWFjeWxnbHljZXJvbC8xMDApLnRvRml4ZWQoMilcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRvclRvdGFsLmNob2xlc3Rlcm9sLnB1c2gocGFyc2VGbG9hdChyZWFsX2RhdGEuY2hvbGVzdGVyb2wpKVxuXHRcdFx0XHRcdFx0XHRvclRvdGFsLmhpZ2hEZW5zaXR5LnB1c2gocGFyc2VGbG9hdChyZWFsX2RhdGEuaGlnaERlbnNpdHkpKVxuXHRcdFx0XHRcdFx0XHRvclRvdGFsLmxvd0RlbnNpdHkucHVzaChwYXJzZUZsb2F0KHJlYWxfZGF0YS5sb3dEZW5zaXR5KSlcblx0XHRcdFx0XHRcdFx0b3JUb3RhbC50cmlhY3lsZ2x5Y2Vyb2wucHVzaChwYXJzZUZsb2F0KHJlYWxfZGF0YS50cmlhY3lsZ2x5Y2Vyb2wpKVxuXHRcdFx0XHRcdFx0XHRsZXQgdGltZUFyciA9IHYuaG91cl9taW51dGUuc3BsaXQoJzonKTtcblx0XHRcdFx0XHRcdFx0aWYodGltZUFyclsxXSAlIDEwID09IDApe1xuXHRcdFx0XHRcdFx0XHRcdHZhciBrZXkgPSB2LmhvdXJfbWludXRlXG5cdFx0XHRcdFx0XHRcdH1lbHNle1xuXHRcdFx0XHRcdFx0XHRcdHZhciBrZXkgPSB0aW1lQXJyWzBdKyc6JysoKHRpbWVBcnJbMV0gLSA1KSA9PSAwPycwMCc6KHRpbWVBcnJbMV0gLSA1KSlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRpZihkYXRhQXJyW2tleV0gPT0gdW5kZWZpbmVkKXtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR2YWw6W3JlYWxfZGF0YS5jaG9sZXN0ZXJvbF0sXG5cdFx0XHRcdFx0XHRcdFx0XHRoaWdoRGVuc2l0eTpbcmVhbF9kYXRhLmhpZ2hEZW5zaXR5XSxcblx0XHRcdFx0XHRcdFx0XHRcdGxvd0RlbnNpdHk6W3JlYWxfZGF0YS5sb3dEZW5zaXR5XSxcblx0XHRcdFx0XHRcdFx0XHRcdHRyaWFjeWxnbHljZXJvbDpbcmVhbF9kYXRhLnRyaWFjeWxnbHljZXJvbF0sXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0udmFsID0gWy4uLmRhdGFBcnJba2V5XS52YWwscmVhbF9kYXRhLmNob2xlc3Rlcm9sXTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXJyW2tleV0uaGlnaERlbnNpdHkgPSBbLi4uZGF0YUFycltrZXldLmhpZ2hEZW5zaXR5LHJlYWxfZGF0YS5oaWdoRGVuc2l0eV07XG5cdFx0XHRcdFx0XHRcdFx0ZGF0YUFycltrZXldLmxvd0RlbnNpdHkgPSBbLi4uZGF0YUFycltrZXldLmxvd0RlbnNpdHkscmVhbF9kYXRhLmxvd0RlbnNpdHldO1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBcnJba2V5XS50cmlhY3lsZ2x5Y2Vyb2wgPSBbLi4uZGF0YUFycltrZXldLnRyaWFjeWxnbHljZXJvbCxyZWFsX2RhdGEudHJpYWN5bGdseWNlcm9sXTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRsZXQgZWNoYXJ0c0RhdGExID0gW107XG5cdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTIgPSBbXTtcblx0XHRcdFx0XHRcdGxldCBlY2hhcnRzRGF0YTMgPSBbXTtcblx0XHRcdFx0XHRcdGxldCBlY2hhcnRzRGF0YTggPSBbXSAvLyDmtYvor5XnlKhcblx0XHRcdFx0XHRcdGZvciAobGV0IGtleSBpbiBkYXRhQXJyKSB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7IC8vIOehruS/nWtleeaYr+WvueixoeiHqui6q+eahOWxnuaAp1xuXHRcdFx0XHRcdFx0XHRcdGxldCB0aW1lQXJyMiA9IGtleS5zcGxpdCgnOicpO1xuXHRcdFx0XHRcdFx0XHRcdGxldCBmbG9hdERhdGEgPSB0aGlzLm1ha2VGbG9hdEhvdXJzTWludXRlcyh0aW1lQXJyMlswXSx0aW1lQXJyMlsxXSlcblx0XHRcdFx0XHRcdFx0XHRsZXQgbmV4dEtleSA9IHRoaXMuc3VidHJhY3RNaW51dGVzKGtleSwxMClcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YS5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udmFsKV19KVxuXHRcdFx0XHRcdFx0XHRcdGlmKCFkYXRhQXJyLmhhc093blByb3BlcnR5KG5leHRLZXkpKXtcblx0XHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhLnB1c2gobnVsbClcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0ZWNoYXJ0c0RhdGExLnB1c2goe3ZhbHVlOltmbG9hdERhdGEsdGhpcy5nZXRBdmVyYWdlKGRhdGFBcnJba2V5XS5oaWdoRGVuc2l0eSldfSlcblx0XHRcdFx0XHRcdFx0XHRpZighZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTEucHVzaChudWxsKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTIucHVzaCh7dmFsdWU6W2Zsb2F0RGF0YSx0aGlzLmdldEF2ZXJhZ2UoZGF0YUFycltrZXldLmxvd0RlbnNpdHkpXX0pXG5cdFx0XHRcdFx0XHRcdFx0aWYoICFkYXRhQXJyLmhhc093blByb3BlcnR5KG5leHRLZXkpKXtcblx0XHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhMi5wdXNoKG51bGwpXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdGVjaGFydHNEYXRhMy5wdXNoKHt2YWx1ZTpbZmxvYXREYXRhLHRoaXMuZ2V0QXZlcmFnZShkYXRhQXJyW2tleV0udHJpYWN5bGdseWNlcm9sKV19KVxuXHRcdFx0XHRcdFx0XHRcdGlmKCAhZGF0YUFyci5oYXNPd25Qcm9wZXJ0eShuZXh0S2V5KSl7XG5cdFx0XHRcdFx0XHRcdFx0XHRlY2hhcnRzRGF0YTMucHVzaChudWxsKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhrZXkgLCBkYXRhQXJyW2tleV0pO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhlY2hhcnRzRGF0YTgpXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5sZWdlbmQgPSB7XG5cdFx0XHRcdFx0XHRcdGRhdGE6WyfmgLvog4blm7rphocnLCfnlJjmsrnkuInpha8nLCfpq5jlr4bluqbohILom4vnmb0nLCfkvY7lr4bluqbohILom4vnmb0nXVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8g5oC76IOG5Zu66YaHXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uZGF0YSA9IGVjaGFydHNEYXRhXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0udHlwZSA9ICdsaW5lJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLnN5bWJvbCA9ICdub25lJyxcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1swXS5zbW9vdGggPSB0cnVlXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0ubmFtZSA9IHRoaXMub3B0aW9uLmxlZ2VuZC5kYXRhWzBdXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMF0uY29sb3IgPSB0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMF0uY29sb3Jcblx0XHRcdFx0XHRcdC8vIOeUmOayueS4iemFr1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzFdID0ge31cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1sxXS5kYXRhID0gZWNoYXJ0c0RhdGEzXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMV0udHlwZSA9ICdsaW5lJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzFdLnN5bWJvbCA9ICdub25lJyxcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1sxXS5zbW9vdGggPSB0cnVlXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMV0ubmFtZSA9IHRoaXMub3B0aW9uLmxlZ2VuZC5kYXRhWzFdXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMV0uY29sb3IgPSB0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMV0uY29sb3Jcblx0XHRcdFx0XHRcdC8vIOmrmFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzJdID0ge31cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1syXS5kYXRhID0gZWNoYXJ0c0RhdGExXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMl0udHlwZSA9ICdsaW5lJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzJdLnN5bWJvbCA9ICdub25lJyxcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1syXS5zbW9vdGggPSB0cnVlXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMl0ubmFtZSA9IHRoaXMub3B0aW9uLmxlZ2VuZC5kYXRhWzJdXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbMl0uY29sb3IgPSB0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMl0uY29sb3Jcblx0XHRcdFx0XHRcdC8vIOS9jlxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzNdID0ge31cblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1szXS5kYXRhID0gZWNoYXJ0c0RhdGEyXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbM10udHlwZSA9ICdsaW5lJ1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzNdLnN5bWJvbCA9ICdub25lJyxcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnNlcmllc1szXS5zbW9vdGggPSB0cnVlXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbM10ubmFtZSA9IHRoaXMub3B0aW9uLmxlZ2VuZC5kYXRhWzNdXG5cdFx0XHRcdFx0XHR0aGlzLm9wdGlvbi5zZXJpZXNbM10uY29sb3IgPSB0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbM10uY29sb3Jcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24uc2VyaWVzWzBdLm1hcmtMaW5lID0gW11cblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZEdsdWNvc2UudGl0bGUgPSBtaW4gKyAnLScgKyBtYXhcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVswXS5hdmVyYWdlID0gdGhpcy5nZXRBdmVyYWdlKG9yVG90YWwuY2hvbGVzdGVyb2wpLnRvRml4ZWQoMilcblx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVsxXS5hdmVyYWdlID0gdGhpcy5nZXRBdmVyYWdlKG9yVG90YWwudHJpYWN5bGdseWNlcm9sKS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbMl0uYXZlcmFnZSA9IHRoaXMuZ2V0QXZlcmFnZShvclRvdGFsLmhpZ2hEZW5zaXR5KS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHR0aGlzLmRhdGFDb25maWcuYmxvb2RMaXF1aWRBbGwub3ZlcnZpZXdEYXRhLmRhdGFbM10uYXZlcmFnZSA9IHRoaXMuZ2V0QXZlcmFnZShvclRvdGFsLmxvd0RlbnNpdHkpLnRvRml4ZWQoMilcblx0XHRcdFx0XHRcdGlmKG9yVG90YWwuY2hvbGVzdGVyb2wubGVuZ3RoID4gMCl7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVswXS52YWx1ZSA9IE1hdGgubWluKC4uLm9yVG90YWwuY2hvbGVzdGVyb2wpLnRvRml4ZWQoMikgKyAnLScgKyBNYXRoLm1heCguLi5vclRvdGFsLmNob2xlc3Rlcm9sKS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRcdHRoaXMuZGF0YUNvbmZpZy5ibG9vZExpcXVpZEFsbC5vdmVydmlld0RhdGEuZGF0YVsxXS52YWx1ZSA9IE1hdGgubWluKC4uLm9yVG90YWwudHJpYWN5bGdseWNlcm9sKS50b0ZpeGVkKDIpICsgJy0nICsgTWF0aC5tYXgoLi4ub3JUb3RhbC50cmlhY3lsZ2x5Y2Vyb2wpLnRvRml4ZWQoMilcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzJdLnZhbHVlID0gTWF0aC5taW4oLi4ub3JUb3RhbC5oaWdoRGVuc2l0eSkudG9GaXhlZCgyKSArICctJyArIE1hdGgubWF4KC4uLm9yVG90YWwuaGlnaERlbnNpdHkpLnRvRml4ZWQoMilcblx0XHRcdFx0XHRcdFx0dGhpcy5kYXRhQ29uZmlnLmJsb29kTGlxdWlkQWxsLm92ZXJ2aWV3RGF0YS5kYXRhWzNdLnZhbHVlID0gTWF0aC5taW4oLi4ub3JUb3RhbC5sb3dEZW5zaXR5KS50b0ZpeGVkKDIpICsgJy0nICsgTWF0aC5tYXgoLi4ub3JUb3RhbC5sb3dEZW5zaXR5KS50b0ZpeGVkKDIpXG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMuc3BsaXROdW1iZXIgPSAzO1xuXHRcdFx0XHRcdFx0dGhpcy5vcHRpb24ueUF4aXMubWluID0gMDtcblx0XHRcdFx0XHRcdHRoaXMub3B0aW9uLnlBeGlzLm1heCA9IDY7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXMub3B0aW9uO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cbi5jb250ZW50cyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tdG9wOjIwcnB4O1xuXHQubGVmdCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLnRvdGFsX2JveHtcblx0aGVpZ2h0OiA0MDBycHg7XG5cdG1hcmdpbjogMHJweCAxMDBycHg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0cGFkZGluZy1ib3R0b206IDgwcnB4O1xuXHQuYjF7XG5cdFx0d2lkdGg6IDQwJTtcblx0XHRoZWlnaHQ6IDIwMHJweDtcblx0XHRib3JkZXItcmFkaXVzOiAyMHJweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdG1hcmdpbi1yaWdodDogMjBycHg7XG5cdH1cbn1cbi5ib2R5LXN0eWxlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNjtcbn1cbi50aXRsZXtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0LnRpdGxlLWRhdGF7XG5cdFx0Zm9udC1zaXplOiA2MHJweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcnB4O1xuXHR9XG59XG4uZmx4e1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuLmpjLWVuZHtcblx0anVzdGlmeS1jb250ZW50OiBlbmQ7XG59XG4uamMtc3RhcnR7XG5cdGp1c3RpZnktY29udGVudDogZW5kO1xufVxuLmFje1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmpje1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5qY3Nie1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uZmRfcm93e1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4udmlkZW8ge1xuXHR3aWR0aDogODAlO1xuXHRwYWRkaW5nOiAwcnB4IDIwcnB4O1xufVxuXG4uY2hhcnRzIHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0cGFkZGluZzogMjBweCAwcHg7XG5cdG1hcmdpbjogMTAwcnB4IDUwcnB4IDBycHggNTBycHg7XG59XG5cbi5wYWdlLXZpZXcge1xuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHRtYXJnaW46IDBycHggMTAwcnB4O1xuXHRib3JkZXI6IDFycHggc29saWQgZ3JheTtcbn1cblxuLnNwb3J0LXRpdGxlIHtcblx0Zm9udC1zaXplOiA1MHJweDtcbn1cblxuLnNwb3J0LWp2bGkge1xuXHRmb250LXNpemU6IDUwcnB4O1xufVxuPC9zdHlsZT4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///170\n"); /***/ }), /* 171 */ @@ -15138,7 +15138,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _App /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 52));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: \"pop-info\",\n data: function data() {\n var _ref;\n return _ref = {\n typeIndex: 1,\n dataInfo: {},\n bodyDesc: {},\n arr: ['BMI', 'bodyFatPercentage', 'leanBodyMass', 'muscleRate', 'muscleMass', 'subcutaneousFat', 'bodyMoisture', 'skeletalMuscleRate', 'boneMass', 'proteinAmount', 'basalMetabolicRate'],\n title: '',\n list: [],\n height: 300,\n width: 3000,\n centerY: 200,\n pLeft: '0'\n }, (0, _defineProperty2.default)(_ref, \"dataInfo\", {}), (0, _defineProperty2.default)(_ref, \"xinlv\", {\n jisuan: [{\n times: 0,\n unit: '次/分',\n desc: '平均心率',\n cankao: ''\n }, {\n times: 0,\n unit: '次/分',\n desc: '最高心率',\n cankao: ''\n }, {\n times: 0,\n unit: '次/分',\n desc: '最低心率',\n cankao: ''\n }],\n cankao: [{\n times: 0,\n unit: '%',\n desc: '正常',\n cankao: '(60~100次/分)'\n }, {\n times: 0,\n unit: '%',\n desc: '心率偏快',\n cankao: '>100次/分)'\n }, {\n times: 0,\n unit: '%',\n desc: '心率偏慢',\n cankao: '(<60次/分)'\n }]\n }), (0, _defineProperty2.default)(_ref, \"ybx\", {\n hrv: {\n name: 'HRV',\n max: 210,\n unit: '毫秒',\n min: 0,\n val: 0\n },\n sdnn: {\n name: 'SDNN',\n max: 180,\n unit: '毫秒',\n min: 102,\n val: 0\n },\n rmssd: {\n name: 'RMSSD',\n max: 39,\n unit: '毫秒',\n min: 15,\n val: 0\n }\n }), (0, _defineProperty2.default)(_ref, \"xdt\", {\n pwv: {\n name: 'PWV',\n max: 15,\n unit: 'm/s',\n min: 6,\n val: 0\n },\n qtc: {\n name: 'QTc',\n max: 400,\n unit: '毫秒',\n min: 260,\n val: 0\n },\n qsrf: {\n name: 'QRS 波振幅',\n max: 1.5,\n unit: 'mV',\n min: 0.05,\n val: 0\n },\n qsrx: {\n name: 'QRS 波时限',\n max: 120,\n unit: '毫秒',\n min: 80,\n val: 0\n },\n qsrfx: {\n name: 'QRS 主波方向',\n max: 0,\n unit: '向上,向下',\n min: 0,\n val: 0\n },\n st: {\n name: 'ST 段振幅',\n max: 0.1,\n unit: 'mV',\n min: -0.05,\n val: 0\n }\n }), _ref;\n },\n methods: {\n close: function close() {\n this.$refs.popup.close();\n },\n open: function open(val) {\n var _this = this;\n val == 1 ? this.typeIndex = 1 : this.typeIndex = 2;\n // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']\n this.$refs.popup.open('bottom');\n if (val == 1) {\n var dataKey = 'infoData'; // 同上面设置的key\n var get = uni.getStorageSync(dataKey);\n if (!get) {\n uni.showToast({\n title: \"读取数据失败\"\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: -1\n });\n }, 2000);\n return;\n }\n var data = JSON.parse(get);\n __f__(\"log\", data, \" at components/ecg-info/ecg-info.vue:377\");\n this.dataInfo = data;\n this.changeData(this.dataInfo);\n this.list = this.dataInfo.data_msg.list;\n\n // 绘制\n setTimeout(function () {\n _this.list = _this.list.filter(function (val) {\n return val !== 0;\n });\n var ctx = uni.createCanvasContext('ecg', _this);\n ctx.setStrokeStyle('#d5d5d5'); //\n ctx.setLineWidth(1); // 线条宽度\n for (var x = 0.5; x < 3000; x += 15) {\n ctx.moveTo(x, 0);\n // 结束点\n ctx.lineTo(x, 3000);\n // 描边,不调用stroke则看不到画的内容\n ctx.stroke();\n }\n for (var y = 0.5; y < 3000; y += 15) {\n ctx.moveTo(0, y);\n // 结束点\n ctx.lineTo(3000, y);\n // 描边,不调用stroke则看不到画的内容\n ctx.stroke();\n }\n // ctx.fill();\n ctx.draw();\n _this.drawCurve();\n }, 1000);\n } else {\n var _dataKey = 'bodyData'; // 同上面设置的key\n var _get = uni.getStorageSync(_dataKey);\n if (!_get) {\n uni.showToast({\n title: \"读取数据失败\"\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: -1\n });\n }, 2000);\n return;\n }\n var _data = JSON.parse(_get);\n this.dataInfo = _data;\n __f__(\"log\", this.dataInfo, \" at components/ecg-info/ecg-info.vue:423\");\n // this.getUserInfo()\n this.bodyDesc = this.$utils.getBodyKeyInfo(this.dataInfo.data_msg.BMI, 'BMI');\n // uni.removeStorageSync(dataKey);\n }\n },\n drawCurve: function drawCurve() {\n var ctx = uni.createCanvasContext('myCanvas', this);\n var list = this.list;\n var centerY = this.centerY;\n var width = this.width;\n var xScale = width / (list.length - 1); // 计算每个数据点占据的宽度\n var yScale = centerY / (Math.max.apply(Math, (0, _toConsumableArray2.default)(list)) - Math.min.apply(Math, (0, _toConsumableArray2.default)(list)));\n // yScale *= 3\n var x = 0;\n var y = centerY / 2 - list[0] * yScale;\n ctx.beginPath(); // 开始绘制\n ctx.moveTo(x, y);\n ctx.setStrokeStyle('#c96d79'); // 设置线条颜色\n ctx.setLineWidth(2); // 设置线条宽度\n for (var i = 1; i < list.length; i++) {\n var _x = i * xScale;\n var _y = centerY / 2 - list[i] / 2 * yScale; // 负数在中心下方,正数在中心上方\n ctx.lineTo(_x, _y);\n }\n ctx.stroke(); // 绘制线条\n // ctx.fill();\n ctx.draw(false);\n\n // 绘制到canvas上,不需要等待上一步绘制完成\n },\n changeData: function changeData(data) {\n var HRV = [];\n var QT = [];\n var heart = [];\n var pwv = [];\n var resRate = [];\n this.xinlv.jisuan[0].times = data.data_msg.meanHeartRate == undefined ? data.data_msg.heartRate : data.data_msg.meanHeartRate;\n if (data.data_msg.wavefrom == undefined) {\n return;\n }\n data.data_msg.wavefrom.map(function (v, i) {\n if (!(v instanceof Array)) {\n if (v.HRV != 0) {\n HRV.push(v.HRV);\n }\n if (v.QT != 0) {\n QT.push(v.QT);\n }\n if (v.heart != 0 && v.heart != null) {\n heart.push(v.heart);\n }\n if (v.pwv != 0) {\n pwv.push(v.pwv);\n }\n if (v.resRate != 0) {\n resRate.push(v.resRate);\n }\n }\n });\n this.xinlv.jisuan[1].times = Math.max.apply(Math, heart);\n this.xinlv.jisuan[2].times = Math.min.apply(Math, heart);\n // 获取心率每个区间的数据数量\n var heart_zc = heart.filter(function (value) {\n return value >= 60 && value <= 100;\n }).length;\n var heart_fast = heart.filter(function (value) {\n return value > 100;\n }).length;\n var heart_slow = heart.filter(function (value) {\n return value < 60;\n }).length;\n var heart_length = heart.length;\n this.xinlv.cankao[0].times = (heart_zc / heart_length).toFixed(2) * 100;\n this.xinlv.cankao[1].times = (heart_fast / heart_length).toFixed(2) * 100;\n this.xinlv.cankao[2].times = (heart_slow / heart_length).toFixed(2) * 100;\n if (this.xinlv.cankao[0].times > 50) {\n this.title = '窦性心率';\n } else if (this.xinlv.cankao[1].times >= 50) {\n this.title = '心率偏快';\n } else if (this.xinlv.cankao[2].times >= 50) {\n this.title = '心率偏慢';\n } else {\n this.title = '窦性心率不齐';\n }\n if (data.diseaseRisk != undefined && data.diseaseRisk >= 30 && this.xinlv.cankao[0].times > 50) {\n this.title = '窦性心率不齐';\n }\n if (data.data_msg.hrv != undefined) {\n this.ybx.hrv.val = data.data_msg.hrv;\n this.ybx.sdnn.val = data.data_msg.diseaseSdnn;\n this.ybx.rmssd.val = data.data_msg.diseaseRmssd;\n this.xdt.pwv.val = (data.data_msg.pwvMeanVal / 10).toFixed(2);\n this.xdt.qtc.val = data.data_msg.QTC;\n this.xdt.qsrf.val = (data.data_msg.qrsAmp / 100).toFixed(2);\n this.xdt.qsrx.val = data.data_msg.qrsTime;\n this.xdt.qsrfx.val = data.data_msg.leadOffType == 0 ? '向上' : '向下';\n this.xdt.st.val = (data.data_msg.stMeanVal / 100).toFixed(2);\n } else {\n __f__(\"log\", 'is undefined', \" at components/ecg-info/ecg-info.vue:522\");\n this.ybx.hrv.val = data.data_msg.averageHRV;\n this.xdt.qtc.val = data.data_msg.averageTimeInterval;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9lY2ctaW5mby9lY2ctaW5mby52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJ0eXBlSW5kZXgiLCJkYXRhSW5mbyIsImJvZHlEZXNjIiwiYXJyIiwidGl0bGUiLCJsaXN0IiwiaGVpZ2h0Iiwid2lkdGgiLCJjZW50ZXJZIiwicExlZnQiLCJqaXN1YW4iLCJ0aW1lcyIsInVuaXQiLCJkZXNjIiwiY2Fua2FvIiwiaHJ2IiwibWF4IiwibWluIiwidmFsIiwic2RubiIsInJtc3NkIiwicHd2IiwicXRjIiwicXNyZiIsInFzcngiLCJxc3JmeCIsInN0IiwibWV0aG9kcyIsImNsb3NlIiwib3BlbiIsInVuaSIsInNldFRpbWVvdXQiLCJkZWx0YSIsImN0eCIsImRyYXdDdXJ2ZSIsImNoYW5nZURhdGEiLCJkYXRhX21zZyIsIkhSViIsIlFUIiwiaGVhcnQiLCJyZXNSYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBaU5BO0VBQ0FBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQyxNQUNBLE9BQ0EscUJBQ0EsZ0JBQ0EsY0FDQSxjQUNBLG1CQUNBLGdCQUNBLHNCQUNBLFlBQ0EsaUJBQ0EscUJBQ0E7TUFHQUM7TUFDQUM7TUFFQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFBQSxtREFDQSxrREFDQTtNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUg7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0EsRUFDQTtNQUNBQTtRQUNBSDtRQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUg7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7SUFHQSwrQ0FFQTtNQUNBQztRQUNBakI7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQXJCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO01BQ0FFO1FBQ0F0QjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtJQUNBLCtDQUNBO01BQ0FHO1FBQ0F2QjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtNQUNBSTtRQUNBeEI7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQUs7UUFDQXpCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO01BQ0FNO1FBQ0ExQjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtNQUNBTztRQUNBM0I7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQVE7UUFDQTVCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO0lBQ0E7RUFFQTtFQUVBUztJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBWDtNQUNBO01BQ0E7TUFFQTtRQUNBO1FBQ0E7UUFFQTtVQUNBWTtZQUNBMUI7VUFDQTtVQUNBMkI7WUFDQUQ7Y0FDQUU7WUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQUQ7VUFDQTtZQUFBO1VBQUE7VUFDQTtVQUNBRTtVQUNBQTtVQUNBO1lBQ0FBO1lBQ0E7WUFDQUE7WUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBQTtZQUNBO1lBQ0FBO1VBQ0E7VUFDQTtVQUNBQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFFQTtVQUNBSDtZQUNBMUI7VUFDQTtVQUNBMkI7WUFDQUQ7Y0FDQUU7WUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUU7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQUQ7TUFDQUE7TUFDQUE7TUFDQUE7TUFDQTtRQUNBO1FBQ0E7UUFDQUE7TUFFQTtNQUNBQTtNQUNBO01BQ0FBOztNQUVBO0lBQ0E7SUFFQUU7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0EsdUdBQ0FDO01BQ0E7UUFDQTtNQUNBO01BQ0FyQztRQUVBO1VBQ0E7WUFDQXNDO1VBQ0E7VUFDQTtZQUNBQztVQUNBO1VBQ0E7WUFDQUM7VUFDQTtVQUNBO1lBQ0FsQjtVQUNBO1VBQ0E7WUFDQW1CO1VBQ0E7UUFDQTtNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIyMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCIgc3R5bGU9XCJ3aWR0aDogNjAlO1wiPlxyXG5cdFx0PHVuaS1wb3B1cCByZWY9XCJwb3B1cFwiIHR5cGU9XCJib3R0b21cIiBib3JkZXItcmFkaXVzPVwiMTBweCAxMHB4IDAgMFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtbWFpblwiIHYtaWY9XCJ0eXBlSW5kZXggPT0gMVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtY2xvc2VcIiBAY2xpY2s9XCJjbG9zZSgpXCI+XG5cdFx0XHRcdFx0XHRcdMOXXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImR4eGxcIj5cblx0XHRcdFx0XHRcdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwibXlTY29sbFwiIHNjcm9sbC14IDpzaG93LXNjcm9sbGJhcj1cInRydWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveDFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxjYW52YXMgY2FudmFzLWlkPVwiZWNnXCIgc3R5bGU9XCJ3aWR0aDogMzAwMHB4OyBoZWlnaHQ6IDMwMHB4O1wiPjwvY2FudmFzPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveDJcIiA6c3R5bGU9XCJ7J2xlZnQnOiBwTGVmdCArICdweCd9XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y2FudmFzIGNhbnZhcy1pZD1cIm15Q2FudmFzXCIgc3R5bGU9XCJ3aWR0aDogMzAwMHB4OyBoZWlnaHQ6IDMwMHB4O1wiPjwvY2FudmFzPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGlzdFwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWMgXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1yaWdodDogMTBycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veGlubHYtc21hbGwucG5nXCIgc3R5bGU9XCJ3aWR0aDogNDBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOW/g+eOh1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfc2Igc2xfYm94IGZseF93cFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWxsXCIgdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4geGlubHYuamlzdWFuXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInNsX2JveF93elwiPnt7aXRlbS50aW1lcz9pdGVtLnRpbWVzOjB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzbF9ib3hfdW5pdFwiPnt7aXRlbS51bml0fX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNsX2JveF9kZXNjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7aXRlbS5kZXNjfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2xfYm94X2Nhbmthb1wiIHYtaWY9XCJpdGVtLmNhbmthb1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uY2Fua2FvfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhbGxcIiB2LWZvcj1cIihpdGVtLGluZGV4KSBpbiB4aW5sdi5jYW5rYW9cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwic2xfYm94X3d6XCI+e3tpdGVtLnRpbWVzLnRvRml4ZWQoMil9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzbF9ib3hfdW5pdFwiPnt7aXRlbS51bml0fX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNsX2JveF9kZXNjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7aXRlbS5kZXNjfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2xfYm94X2Nhbmthb1wiIHYtaWY9XCJpdGVtLmNhbmthb1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uY2Fua2FvfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGlzdFwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWMgXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1yaWdodDogMTBycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veGlubHYtc21hbGwucG5nXCIgc3R5bGU9XCJ3aWR0aDogNDBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOW/g+eOh+WPmOW8guaAp1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieWJ4LmhydlwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieWJ4LnNkbm5cIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInlieC5ybXNzZFwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjIFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHJweDttYXJnaW4tcmlnaHQ6IDEwcnB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3hpbmx2LXNtYWxsLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDQwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImNvbG9yOiByZWQ7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHTlv4PnlLXlm75cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5wd3ZcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5xdGNcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5xc3JmXCI+PC94ZHQ+XG5cdFx0XHRcdFx0XHRcdFx0PHhkdCA6ZGF0YXM9XCJ4ZHQucXNyeFwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieGR0LnFzcmZ4XCI+PC94ZHQ+XG5cdFx0XHRcdFx0XHRcdFx0PHhkdCA6ZGF0YXM9XCJ4ZHQuc3RcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImhlaWdodDogMjBycHg7XCI+PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtbWFpblwiIHYtaWY9XCJ0eXBlSW5kZXggPT0gMlwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtY2xvc2VcIiBAY2xpY2s9XCJjbG9zZSgpXCI+XG5cdFx0XHRcdFx0XHRcdMOXXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO3BhZGRpbmc6IDMwcnB4IDAgMCAzMHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uZm9udCBpY29uLXdvZGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6c3R5bGU9XCInZm9udC1zaXplOiA1MHJweDttYXJnaW4tcmlnaHQ6MTBycHg7Y29sb3I6JyArIGJvZHlEZXNjLmNvbG9yIFwiPjwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7Ym9keURlc2MubmFtZX19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaW1hZ2UvYm9keS5wbmdcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0X3Bvc2l0aW9uIHBvc3Rpb24gXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NfYm94XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmx4IGZseF9hY1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGRhdGFJbmZvLmRhdGFfbXNnLmJhc2FsTWV0YWJvbGljUmF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WNoVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTln7rnoYDku6PosKJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy5ib25lTWFzcyB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WFi1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTpqqjph41cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy53YXRlckNvbnRlbnQgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bml0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHTljYPlhYtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx05rC05YiGXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRfcG9zaXRpb24gcG9zdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy5mYXRNYXNzIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx05Y2D5YWLXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdOiEguiCqlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NfYm94XCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwO21hcmdpbi10b3A6IDE3NHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cucHJvdGVpbkFtb3VudCB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WFi1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTom4vnmb3otKhcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvc3Rpb24gY2VudGVyX3Bvc2lvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cudXNlckluZm8uZ2VuZGVyID09ICcyJz8n5aWzJzon55S3JyB9feaAp++8jHt7IGRhdGFJbmZvLmRhdGFfbXNnLnVzZXJJbmZvLndlaWdodCAgfX3ljYPlhYtcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3N0aW9uIHJpZ2h0X2NlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cudXNlckluZm8uaGVpZ2h0ICB9feWOmOexs1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJhZGl1c19ib3hcIiBzdHlsZT1cInBhZGRpbmc6IDA7bWFyZ2luOiAzMHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHYtZm9yPVwiKHYsaSkgaW4gYXJyXCIgOmtleT1cImlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxib2R5X2luZm9fY29tcG9uZW50cyA6a2V5X25hbWU9XCJ2XCIgOnZhbHVlPVwicGFyc2VGbG9hdChkYXRhSW5mby5kYXRhX21zZ1t2XSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvYm9keV9pbmZvX2NvbXBvbmVudHM+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O1wiPlxuXHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcnB4O1wiPjwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogXCJwb3AtaW5mb1wiLFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHR0eXBlSW5kZXg6IDEsXHJcblx0XHRcdFx0ZGF0YUluZm86IHt9LFxyXG5cdFx0XHRcdGJvZHlEZXNjOiB7fSxcclxuXHRcdFx0XHRhcnI6IFtcclxuXHRcdFx0XHRcdCdCTUknLFxyXG5cdFx0XHRcdFx0J2JvZHlGYXRQZXJjZW50YWdlJyxcclxuXHRcdFx0XHRcdCdsZWFuQm9keU1hc3MnLFxyXG5cdFx0XHRcdFx0J211c2NsZVJhdGUnLFxyXG5cdFx0XHRcdFx0J211c2NsZU1hc3MnLFxyXG5cdFx0XHRcdFx0J3N1YmN1dGFuZW91c0ZhdCcsXHJcblx0XHRcdFx0XHQnYm9keU1vaXN0dXJlJyxcclxuXHRcdFx0XHRcdCdza2VsZXRhbE11c2NsZVJhdGUnLFxyXG5cdFx0XHRcdFx0J2JvbmVNYXNzJyxcclxuXHRcdFx0XHRcdCdwcm90ZWluQW1vdW50JyxcclxuXHRcdFx0XHRcdCdiYXNhbE1ldGFib2xpY1JhdGUnLFxyXG5cdFx0XHRcdF0sXHJcblxyXG5cclxuXHRcdFx0XHR0aXRsZTogJycsXHJcblx0XHRcdFx0bGlzdDogW10sXHJcblxyXG5cdFx0XHRcdGhlaWdodDogMzAwLFxyXG5cdFx0XHRcdHdpZHRoOiAzMDAwLFxyXG5cdFx0XHRcdGNlbnRlclk6IDIwMCxcclxuXHRcdFx0XHRwTGVmdDogJzAnLFxyXG5cdFx0XHRcdGRhdGFJbmZvOiB7fSxcclxuXHRcdFx0XHR4aW5sdjoge1xyXG5cdFx0XHRcdFx0amlzdWFuOiBbe1xyXG5cdFx0XHRcdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdFx0XHRcdHVuaXQ6ICfmrKEv5YiGJyxcclxuXHRcdFx0XHRcdFx0XHRkZXNjOiAn5bmz5Z2H5b+D546HJyxcclxuXHRcdFx0XHRcdFx0XHRjYW5rYW86ICcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0aW1lczogMCxcclxuXHRcdFx0XHRcdFx0XHR1bml0OiAn5qyhL+WIhicsXHJcblx0XHRcdFx0XHRcdFx0ZGVzYzogJ+acgOmrmOW/g+eOhycsXHJcblx0XHRcdFx0XHRcdFx0Y2Fua2FvOiAnJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGltZXM6IDAsXHJcblx0XHRcdFx0XHRcdFx0dW5pdDogJ+asoS/liIYnLFxyXG5cdFx0XHRcdFx0XHRcdGRlc2M6ICfmnIDkvY7lv4PnjocnLFxyXG5cdFx0XHRcdFx0XHRcdGNhbmthbzogJydcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdGNhbmthbzogW3tcclxuXHRcdFx0XHRcdFx0XHR0aW1lczogMCxcclxuXHRcdFx0XHRcdFx0XHR1bml0OiAnJScsXHJcblx0XHRcdFx0XHRcdFx0ZGVzYzogJ+ato+W4uCcsXHJcblx0XHRcdFx0XHRcdFx0Y2Fua2FvOiAnKDYwfjEwMOasoS/liIYpJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGltZXM6IDAsXHJcblx0XHRcdFx0XHRcdFx0dW5pdDogJyUnLFxyXG5cdFx0XHRcdFx0XHRcdGRlc2M6ICflv4PnjoflgY/lv6snLFxyXG5cdFx0XHRcdFx0XHRcdGNhbmthbzogJz4xMDDmrKEv5YiGKSdcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdFx0XHRcdHVuaXQ6ICclJyxcclxuXHRcdFx0XHRcdFx0XHRkZXNjOiAn5b+D546H5YGP5oWiJyxcclxuXHRcdFx0XHRcdFx0XHRjYW5rYW86ICcoPDYw5qyhL+WIhiknXHJcblx0XHRcdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8vIOW/g+eOh+W8guWPmOaAp1xyXG5cdFx0XHRcdHlieDoge1xyXG5cdFx0XHRcdFx0aHJ2OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdIUlYnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDIxMCxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ+avq+enkicsXHJcblx0XHRcdFx0XHRcdG1pbjogMCxcclxuXHRcdFx0XHRcdFx0dmFsOiAwXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c2Rubjoge1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnU0ROTicsXHJcblx0XHRcdFx0XHRcdG1heDogMTgwLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAn5q+r56eSJyxcclxuXHRcdFx0XHRcdFx0bWluOiAxMDIsXHJcblx0XHRcdFx0XHRcdHZhbDogMFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHJtc3NkOiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdSTVNTRCcsXHJcblx0XHRcdFx0XHRcdG1heDogMzksXHJcblx0XHRcdFx0XHRcdHVuaXQ6ICfmr6vnp5InLFxyXG5cdFx0XHRcdFx0XHRtaW46IDE1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHhkdDoge1xyXG5cdFx0XHRcdFx0cHd2OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdQV1YnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDE1LFxyXG5cdFx0XHRcdFx0XHR1bml0OiAnbS9zJyxcclxuXHRcdFx0XHRcdFx0bWluOiA2LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxdGM6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1FUYycsXHJcblx0XHRcdFx0XHRcdG1heDogNDAwLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAn5q+r56eSJyxcclxuXHRcdFx0XHRcdFx0bWluOiAyNjAsXHJcblx0XHRcdFx0XHRcdHZhbDogMFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHFzcmY6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1FSUyDms6LmjK/luYUnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDEuNSxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ21WJyxcclxuXHRcdFx0XHRcdFx0bWluOiAwLjA1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxc3J4OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdRUlMg5rOi5pe26ZmQJyxcclxuXHRcdFx0XHRcdFx0bWF4OiAxMjAsXHJcblx0XHRcdFx0XHRcdHVuaXQ6ICfmr6vnp5InLFxyXG5cdFx0XHRcdFx0XHRtaW46IDgwLFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxc3JmeDoge1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnUVJTIOS4u+azouaWueWQkScsXHJcblx0XHRcdFx0XHRcdG1heDogMCxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ+WQkeS4iu+8jOWQkeS4iycsXHJcblx0XHRcdFx0XHRcdG1pbjogMCxcclxuXHRcdFx0XHRcdFx0dmFsOiAwXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3Q6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1NUIOauteaMr+W5hScsXHJcblx0XHRcdFx0XHRcdG1heDogMC4xLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAnbVYnLFxyXG5cdFx0XHRcdFx0XHRtaW46IC0wLjA1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRjbG9zZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0b3Blbih2YWwpIHtcclxuXHRcdFx0XHR2YWwgPT0gMSA/IHRoaXMudHlwZUluZGV4ID0gMSA6IHRoaXMudHlwZUluZGV4ID0gMjtcclxuXHRcdFx0XHQvLyDpgJrov4fnu4Tku7blrprkuYnnmoRyZWbosIPnlKh1bmktcG9wdXDmlrnms5UgLOWmguaenOS8oOWFpeWPguaVsCDvvIx0eXBlIOWxnuaAp+WwhuWkseaViCDvvIzku4XmlK/mjIEgWyd0b3AnLCdsZWZ0JywnYm90dG9tJywncmlnaHQnLCdjZW50ZXInXVxyXG5cdFx0XHRcdHRoaXMuJHJlZnMucG9wdXAub3BlbignYm90dG9tJylcclxuXHJcblx0XHRcdFx0aWYgKHZhbCA9PSAxKSB7XHJcblx0XHRcdFx0XHRjb25zdCBkYXRhS2V5ID0gJ2luZm9EYXRhJzsgLy8g5ZCM5LiK6Z2i6K6+572u55qEa2V5XHJcblx0XHRcdFx0XHRsZXQgZ2V0ID0gdW5pLmdldFN0b3JhZ2VTeW5jKGRhdGFLZXkpXHJcblxyXG5cdFx0XHRcdFx0aWYgKCFnZXQpIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi6K+75Y+W5pWw5o2u5aSx6LSlXCJcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XHJcblx0XHRcdFx0XHRcdFx0XHRkZWx0YTogLTFcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9LCAyMDAwKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGdldCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKVxyXG5cdFx0XHRcdFx0dGhpcy5kYXRhSW5mbyA9IGRhdGE7XHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURhdGEodGhpcy5kYXRhSW5mbylcclxuXHRcdFx0XHRcdHRoaXMubGlzdCA9IHRoaXMuZGF0YUluZm8uZGF0YV9tc2cubGlzdDtcclxuXHJcblx0XHRcdFx0XHQvLyDnu5jliLZcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSB0aGlzLmxpc3QuZmlsdGVyKHZhbCA9PiB2YWwgIT09IDApXHJcblx0XHRcdFx0XHRcdGNvbnN0IGN0eCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KCdlY2cnLCB0aGlzKTtcclxuXHRcdFx0XHRcdFx0Y3R4LnNldFN0cm9rZVN0eWxlKCcjZDVkNWQ1JykgLy9cclxuXHRcdFx0XHRcdFx0Y3R4LnNldExpbmVXaWR0aCgxKSAvLyDnur/mnaHlrr3luqZcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgeCA9IDAuNTsgeCA8IDMwMDA7IHggKz0gMTUpIHtcclxuXHRcdFx0XHRcdFx0XHRjdHgubW92ZVRvKHgsIDApXHJcblx0XHRcdFx0XHRcdFx0Ly8g57uT5p2f54K5XHJcblx0XHRcdFx0XHRcdFx0Y3R4LmxpbmVUbyh4LCAzMDAwKVxyXG5cdFx0XHRcdFx0XHRcdC8vIOaPj+i+ue+8jOS4jeiwg+eUqHN0cm9rZeWImeeci+S4jeWIsOeUu+eahOWGheWuuVxyXG5cdFx0XHRcdFx0XHRcdGN0eC5zdHJva2UoKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGZvciAodmFyIHkgPSAwLjU7IHkgPCAzMDAwOyB5ICs9IDE1KSB7XHJcblx0XHRcdFx0XHRcdFx0Y3R4Lm1vdmVUbygwLCB5KVxyXG5cdFx0XHRcdFx0XHRcdC8vIOe7k+adn+eCuVxyXG5cdFx0XHRcdFx0XHRcdGN0eC5saW5lVG8oMzAwMCwgeSlcclxuXHRcdFx0XHRcdFx0XHQvLyDmj4/ovrnvvIzkuI3osIPnlKhzdHJva2XliJnnnIvkuI3liLDnlLvnmoTlhoXlrrlcclxuXHRcdFx0XHRcdFx0XHRjdHguc3Ryb2tlKClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQvLyBjdHguZmlsbCgpO1xyXG5cdFx0XHRcdFx0XHRjdHguZHJhdygpXHJcblx0XHRcdFx0XHRcdHRoaXMuZHJhd0N1cnZlKClcclxuXHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNvbnN0IGRhdGFLZXkgPSAnYm9keURhdGEnOyAvLyDlkIzkuIrpnaLorr7nva7nmoRrZXlcclxuXHRcdFx0XHRcdGxldCBnZXQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoZGF0YUtleSlcclxuXHJcblx0XHRcdFx0XHRpZiAoIWdldCkge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLor7vlj5bmlbDmja7lpLHotKVcIlxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdFx0XHRcdGRlbHRhOiAtMVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0sIDIwMDApXHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZ2V0KTtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YUluZm8gPSBkYXRhO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5kYXRhSW5mbylcclxuXHRcdFx0XHRcdC8vIHRoaXMuZ2V0VXNlckluZm8oKVxyXG5cdFx0XHRcdFx0dGhpcy5ib2R5RGVzYyA9IHRoaXMuJHV0aWxzLmdldEJvZHlLZXlJbmZvKHRoaXMuZGF0YUluZm8uZGF0YV9tc2cuQk1JLCAnQk1JJylcclxuXHRcdFx0XHRcdC8vIHVuaS5yZW1vdmVTdG9yYWdlU3luYyhkYXRhS2V5KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRkcmF3Q3VydmUoKSB7XHJcblx0XHRcdFx0bGV0IGN0eCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KCdteUNhbnZhcycsIHRoaXMpXHJcblx0XHRcdFx0bGV0IGxpc3QgPSB0aGlzLmxpc3Q7XHJcblx0XHRcdFx0bGV0IGNlbnRlclkgPSB0aGlzLmNlbnRlclk7XHJcblx0XHRcdFx0bGV0IHdpZHRoID0gdGhpcy53aWR0aDtcclxuXHRcdFx0XHRsZXQgeFNjYWxlID0gd2lkdGggLyAobGlzdC5sZW5ndGggLSAxKTsgLy8g6K6h566X5q+P5Liq5pWw5o2u54K55Y2g5o2u55qE5a695bqmXHJcblx0XHRcdFx0bGV0IHlTY2FsZSA9IGNlbnRlclkgLyAoTWF0aC5tYXgoLi4ubGlzdCkgLSBNYXRoLm1pbiguLi5saXN0KSlcclxuXHRcdFx0XHQvLyB5U2NhbGUgKj0gM1xyXG5cdFx0XHRcdGxldCB4ID0gMDtcclxuXHRcdFx0XHRsZXQgeSA9IGNlbnRlclkgLyAyIC0gKGxpc3RbMF0gKiB5U2NhbGUpXHJcblx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpOyAvLyDlvIDlp4vnu5jliLZcclxuXHRcdFx0XHRjdHgubW92ZVRvKHgsIHkpO1xyXG5cdFx0XHRcdGN0eC5zZXRTdHJva2VTdHlsZSgnI2M5NmQ3OScpOyAvLyDorr7nva7nur/mnaHpopzoibJcclxuXHRcdFx0XHRjdHguc2V0TGluZVdpZHRoKDIpOyAvLyDorr7nva7nur/mnaHlrr3luqZcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMTsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGxldCB4ID0gaSAqIHhTY2FsZTtcclxuXHRcdFx0XHRcdGxldCB5ID0gY2VudGVyWSAvIDIgLSAoKGxpc3RbaV0gLyAyKSAqIHlTY2FsZSk7IC8vIOi0n+aVsOWcqOS4reW/g+S4i+aWue+8jOato+aVsOWcqOS4reW/g+S4iuaWuVxyXG5cdFx0XHRcdFx0Y3R4LmxpbmVUbyh4LCB5KTtcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGN0eC5zdHJva2UoKSAvLyDnu5jliLbnur/mnaFcclxuXHRcdFx0XHQvLyBjdHguZmlsbCgpO1xyXG5cdFx0XHRcdGN0eC5kcmF3KGZhbHNlKTtcclxuXHJcblx0XHRcdFx0Ly8g57uY5Yi25YiwY2FudmFz5LiK77yM5LiN6ZyA6KaB562J5b6F5LiK5LiA5q2l57uY5Yi25a6M5oiQXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRjaGFuZ2VEYXRhKGRhdGEpIHtcclxuXHRcdFx0XHRsZXQgSFJWID0gW11cclxuXHRcdFx0XHRsZXQgUVQgPSBbXVxyXG5cdFx0XHRcdGxldCBoZWFydCA9IFtdXHJcblx0XHRcdFx0bGV0IHB3diA9IFtdXHJcblx0XHRcdFx0bGV0IHJlc1JhdGUgPSBbXVxyXG5cdFx0XHRcdHRoaXMueGlubHYuamlzdWFuWzBdLnRpbWVzID0gZGF0YS5kYXRhX21zZy5tZWFuSGVhcnRSYXRlID09IHVuZGVmaW5lZCA/IGRhdGEuZGF0YV9tc2cuaGVhcnRSYXRlIDogZGF0YVxyXG5cdFx0XHRcdFx0LmRhdGFfbXNnLm1lYW5IZWFydFJhdGVcclxuXHRcdFx0XHRpZiAoZGF0YS5kYXRhX21zZy53YXZlZnJvbSA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkYXRhLmRhdGFfbXNnLndhdmVmcm9tLm1hcCgodiwgaSkgPT4ge1xyXG5cclxuXHRcdFx0XHRcdGlmICghKHYgaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHYuSFJWICE9IDApIHtcclxuXHRcdFx0XHRcdFx0XHRIUlYucHVzaCh2LkhSVilcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAodi5RVCAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0UVQucHVzaCh2LlFUKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh2LmhlYXJ0ICE9IDAgJiYgdi5oZWFydCAhPSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdFx0aGVhcnQucHVzaCh2LmhlYXJ0KVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh2LnB3diAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0cHd2LnB1c2godi5wd3YpXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKHYucmVzUmF0ZSAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0cmVzUmF0ZS5wdXNoKHYucmVzUmF0ZSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHRoaXMueGlubHYuamlzdWFuWzFdLnRpbWVzID0gTWF0aC5tYXgoLi4uaGVhcnQpXHJcblx0XHRcdFx0dGhpcy54aW5sdi5qaXN1YW5bMl0udGltZXMgPSBNYXRoLm1pbiguLi5oZWFydClcclxuXHRcdFx0XHQvLyDojrflj5blv4Pnjofmr4/kuKrljLrpl7TnmoTmlbDmja7mlbDph49cclxuXHRcdFx0XHRsZXQgaGVhcnRfemMgPSBoZWFydC5maWx0ZXIodmFsdWUgPT4gKHZhbHVlID49IDYwICYmIHZhbHVlIDw9IDEwMCkpLmxlbmd0aDtcclxuXHRcdFx0XHRsZXQgaGVhcnRfZmFzdCA9IGhlYXJ0LmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA+IDEwMCkubGVuZ3RoO1xyXG5cdFx0XHRcdGxldCBoZWFydF9zbG93ID0gaGVhcnQuZmlsdGVyKHZhbHVlID0+IHZhbHVlIDwgNjApLmxlbmd0aDtcclxuXHRcdFx0XHRsZXQgaGVhcnRfbGVuZ3RoID0gaGVhcnQubGVuZ3RoXHJcblx0XHRcdFx0dGhpcy54aW5sdi5jYW5rYW9bMF0udGltZXMgPSAoaGVhcnRfemMgLyBoZWFydF9sZW5ndGgpLnRvRml4ZWQoMikgKiAxMDBcclxuXHRcdFx0XHR0aGlzLnhpbmx2LmNhbmthb1sxXS50aW1lcyA9IChoZWFydF9mYXN0IC8gaGVhcnRfbGVuZ3RoKS50b0ZpeGVkKDIpICogMTAwXHJcblx0XHRcdFx0dGhpcy54aW5sdi5jYW5rYW9bMl0udGltZXMgPSAoaGVhcnRfc2xvdyAvIGhlYXJ0X2xlbmd0aCkudG9GaXhlZCgyKSAqIDEwMFxyXG5cdFx0XHRcdGlmICh0aGlzLnhpbmx2LmNhbmthb1swXS50aW1lcyA+IDUwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRpdGxlID0gJ+eqpuaAp+W/g+eOhyc7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnhpbmx2LmNhbmthb1sxXS50aW1lcyA+PSA1MCkge1xyXG5cdFx0XHRcdFx0dGhpcy50aXRsZSA9ICflv4PnjoflgY/lv6snO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy54aW5sdi5jYW5rYW9bMl0udGltZXMgPj0gNTApIHtcclxuXHRcdFx0XHRcdHRoaXMudGl0bGUgPSAn5b+D546H5YGP5oWiJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy50aXRsZSA9ICfnqqbmgKflv4PnjofkuI3pvZAnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoZGF0YS5kaXNlYXNlUmlzayAhPSB1bmRlZmluZWQgJiYgZGF0YS5kaXNlYXNlUmlzayA+PSAzMCAmJiB0aGlzLnhpbmx2LmNhbmthb1swXS50aW1lcyA+IDUwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRpdGxlID0gJ+eqpuaAp+W/g+eOh+S4jem9kCc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhLmRhdGFfbXNnLmhydiAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMueWJ4Lmhydi52YWwgPSBkYXRhLmRhdGFfbXNnLmhydlxyXG5cdFx0XHRcdFx0dGhpcy55Ynguc2Rubi52YWwgPSBkYXRhLmRhdGFfbXNnLmRpc2Vhc2VTZG5uXHJcblx0XHRcdFx0XHR0aGlzLnlieC5ybXNzZC52YWwgPSBkYXRhLmRhdGFfbXNnLmRpc2Vhc2VSbXNzZFxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucHd2LnZhbCA9IChkYXRhLmRhdGFfbXNnLnB3dk1lYW5WYWwgLyAxMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucXRjLnZhbCA9IGRhdGEuZGF0YV9tc2cuUVRDXHJcblx0XHRcdFx0XHR0aGlzLnhkdC5xc3JmLnZhbCA9IChkYXRhLmRhdGFfbXNnLnFyc0FtcCAvIDEwMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucXNyeC52YWwgPSBkYXRhLmRhdGFfbXNnLnFyc1RpbWVcclxuXHRcdFx0XHRcdHRoaXMueGR0LnFzcmZ4LnZhbCA9IGRhdGEuZGF0YV9tc2cubGVhZE9mZlR5cGUgPT0gMCA/ICflkJHkuIonIDogJ+WQkeS4iydcclxuXHRcdFx0XHRcdHRoaXMueGR0LnN0LnZhbCA9IChkYXRhLmRhdGFfbXNnLnN0TWVhblZhbCAvIDEwMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnaXMgdW5kZWZpbmVkJylcclxuXHRcdFx0XHRcdHRoaXMueWJ4Lmhydi52YWwgPSBkYXRhLmRhdGFfbXNnLmF2ZXJhZ2VIUlZcclxuXHRcdFx0XHRcdHRoaXMueGR0LnF0Yy52YWwgPSBkYXRhLmRhdGFfbXNnLmF2ZXJhZ2VUaW1lSW50ZXJ2YWxcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdC5wb3AtY2xvc2Uge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuXHRcdGZvbnQtc2l6ZTogMTAwcnB4O1xyXG5cdFx0cGFkZGluZy1yaWdodDogNTBycHg7XHJcblx0fVxuXHRcclxuXHQucG9wLW1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0XHRwYWRkaW5nOiA1MHJweDtcblx0fVxuXHRcblx0LnBvcHMge1xuXHRcdGJvcmRlcjogMXJweCBzb2xpZCBncmF5O1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcnB4O1xuXHRcdG1hcmdpbjogNTBycHg7XG5cdFx0bWFyZ2luLXRvcDogMTAwcnB4O1xuXHR9XHJcblxyXG5cdC5ib3gxIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDBweDtcclxuXHRcdHdpZHRoOiAzMDAwcnB4O1xyXG5cdH1cclxuXHJcblx0LmJveDIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogMHB4O1xyXG5cdFx0d2lkdGg6IDMwMDBycHg7XHJcblx0fVxyXG5cclxuXHQubXlTY29sbCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzk2cnB4O1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdC5saXN0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHRtYXJnaW46IDMwcnB4IDMwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XHJcblx0fVxyXG5cclxuXHQuZHh4bCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0cGFkZGluZzogMjBycHg7XHJcblx0XHRwYWRkaW5nLXRvcDogNDBycHg7XHJcblx0fVxyXG5cclxuXHQuc2xfYm94IHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHQuYWxsIHtcclxuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAvIDMpO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiA0MHJweDtcclxuXHRcdH1cclxuXHJcblx0XHQuc2xfYm94X2NhbmthbyxcclxuXHRcdC5zbF9ib3hfZGVzYyB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0XHRcdGNvbG9yOiAjOTk5O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zbF9ib3hfdW5pdCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNsX2JveF93eiB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTBycHg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMzBycHg7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0LnBvcC1jbG9zZSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0Zm9udC1zaXplOiAxMDBycHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiA1MHJweDtcblx0XHRtYXJnaW4tdG9wOiA1MHJweDtcclxuXHR9XHJcblxyXG5cdC5wb3AtbWFpbiB7XHJcblx0XHR3aWR0aDogNjAlO1xyXG5cdFx0aGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRvdmVyZmxvdy15OiBzY3JvbGw7XHJcblx0fVxyXG5cclxuXHQuYm94MSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiAwcHg7XHJcblx0XHR3aWR0aDogMzAwMHJweDtcclxuXHR9XHJcblxyXG5cdC5ib3gyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDBweDtcclxuXHRcdHdpZHRoOiAzMDAwcnB4O1xyXG5cdH1cclxuXHJcblx0Lm15U2NvbGwge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDM5NnJweDtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0fVxyXG5cclxuXHQubGlzdCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdFx0bWFyZ2luOiAzMHJweCAzMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xyXG5cdH1cclxuXHJcblx0LmR4eGwge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdHBhZGRpbmc6IDIwcnB4O1xyXG5cdFx0cGFkZGluZy10b3A6IDQwcnB4O1xyXG5cdH1cclxuXHJcblx0LnNsX2JveCB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0LmFsbCB7XHJcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcclxuXHRcdFx0bWFyZ2luLXRvcDogNDBycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNsX2JveF9jYW5rYW8sXHJcblx0XHQuc2xfYm94X2Rlc2Mge1xyXG5cdFx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0XHRjb2xvcjogIzk5OTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2xfYm94X3VuaXQge1xyXG5cdFx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zbF9ib3hfd3oge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcnB4O1xyXG5cdFx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+XG5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuLnBvc3Rpb257XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5sZWZ0X3Bvc2l0aW9ue1xuXHRsZWZ0OiA0MHJweDtcblx0dG9wOjEyJVxufVxuLnJpZ2h0X3Bvc2l0aW9ue1xuXHRyaWdodDogNDBycHg7XG5cdHRvcDoxNSVcbn1cbi5yaWdodF9jZW50ZXJ7XG5cdHJpZ2h0OiAxNjBycHg7XG5cdHRvcDo0MiU7XG5cdGZvbnQtc2l6ZTogMjZycHg7XG59XG4uY2VudGVyX3Bvc2lvbntcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym90dG9tOiAyMHJweDtcbn1cbi5kZXNjX2JveHtcblx0bWFyZ2luLWJvdHRvbTogNjRycHg7XG5cdC50dHtcblx0XHRmb250LXNpemU6IDMwcnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdG1hcmdpbi1yaWdodDogMTBycHg7XG5cdH1cblx0LnVuaXR7XG5cdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRjb2xvcjogIzY2Njtcblx0fVxuXHQubmFtZXtcblx0XHRmb250LXNpemU6IDI0cnB4O1xuXHRcdGNvbG9yOiAjOTk5O1xuXHR9XG59XG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///215\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 52));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 2));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: \"pop-info\",\n data: function data() {\n var _ref;\n return _ref = {\n typeIndex: 1,\n dataInfo: {},\n bodyDesc: {},\n arr: ['BMI', 'bodyFatPercentage', 'leanBodyMass', 'muscleRate', 'muscleMass', 'subcutaneousFat', 'bodyMoisture', 'skeletalMuscleRate', 'boneMass', 'proteinAmount', 'basalMetabolicRate'],\n title: '',\n list: [],\n height: 300,\n width: 3000,\n centerY: 200,\n pLeft: '0'\n }, (0, _defineProperty2.default)(_ref, \"dataInfo\", {}), (0, _defineProperty2.default)(_ref, \"xinlv\", {\n jisuan: [{\n times: 0,\n unit: '次/分',\n desc: '平均心率',\n cankao: ''\n }, {\n times: 0,\n unit: '次/分',\n desc: '最高心率',\n cankao: ''\n }, {\n times: 0,\n unit: '次/分',\n desc: '最低心率',\n cankao: ''\n }],\n cankao: [{\n times: 0,\n unit: '%',\n desc: '正常',\n cankao: '(60~100次/分)'\n }, {\n times: 0,\n unit: '%',\n desc: '心率偏快',\n cankao: '>100次/分)'\n }, {\n times: 0,\n unit: '%',\n desc: '心率偏慢',\n cankao: '(<60次/分)'\n }]\n }), (0, _defineProperty2.default)(_ref, \"ybx\", {\n hrv: {\n name: 'HRV',\n max: 210,\n unit: '毫秒',\n min: 0,\n val: 0\n },\n sdnn: {\n name: 'SDNN',\n max: 180,\n unit: '毫秒',\n min: 102,\n val: 0\n },\n rmssd: {\n name: 'RMSSD',\n max: 39,\n unit: '毫秒',\n min: 15,\n val: 0\n }\n }), (0, _defineProperty2.default)(_ref, \"xdt\", {\n pwv: {\n name: 'PWV',\n max: 15,\n unit: 'm/s',\n min: 6,\n val: 0\n },\n qtc: {\n name: 'QTc',\n max: 400,\n unit: '毫秒',\n min: 260,\n val: 0\n },\n qsrf: {\n name: 'QRS 波振幅',\n max: 1.5,\n unit: 'mV',\n min: 0.05,\n val: 0\n },\n qsrx: {\n name: 'QRS 波时限',\n max: 120,\n unit: '毫秒',\n min: 80,\n val: 0\n },\n qsrfx: {\n name: 'QRS 主波方向',\n max: 0,\n unit: '向上,向下',\n min: 0,\n val: 0\n },\n st: {\n name: 'ST 段振幅',\n max: 0.1,\n unit: 'mV',\n min: -0.05,\n val: 0\n }\n }), _ref;\n },\n methods: {\n close: function close() {\n this.$refs.popup.close();\n },\n open: function open(val) {\n var _this = this;\n val == 1 ? this.typeIndex = 1 : this.typeIndex = 2;\n // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']\n this.$refs.popup.open('bottom');\n if (val == 1) {\n var dataKey = 'infoData'; // 同上面设置的key\n var get = uni.getStorageSync(dataKey);\n if (!get) {\n uni.showToast({\n title: \"读取数据失败\"\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: -1\n });\n }, 2000);\n return;\n }\n var data = JSON.parse(get);\n __f__(\"log\", data, \" at components/ecg-info/ecg-info.vue:377\");\n this.dataInfo = data;\n this.changeData(this.dataInfo);\n this.list = this.dataInfo.data_msg.list;\n\n // 绘制\n setTimeout(function () {\n _this.list = _this.list.filter(function (val) {\n return val !== 0;\n });\n var ctx = uni.createCanvasContext('ecg', _this);\n ctx.setStrokeStyle('#d5d5d5'); //\n ctx.setLineWidth(1); // 线条宽度\n for (var x = 0.5; x < 3000; x += 15) {\n ctx.moveTo(x, 0);\n // 结束点\n ctx.lineTo(x, 3000);\n // 描边,不调用stroke则看不到画的内容\n ctx.stroke();\n }\n for (var y = 0.5; y < 3000; y += 15) {\n ctx.moveTo(0, y);\n // 结束点\n ctx.lineTo(3000, y);\n // 描边,不调用stroke则看不到画的内容\n ctx.stroke();\n }\n // ctx.fill();\n ctx.draw();\n _this.drawCurve();\n }, 1000);\n } else {\n var _dataKey = 'bodyData'; // 同上面设置的key\n var _get = uni.getStorageSync(_dataKey);\n if (!_get) {\n uni.showToast({\n title: \"读取数据失败\"\n });\n setTimeout(function () {\n uni.navigateBack({\n delta: -1\n });\n }, 2000);\n return;\n }\n var _data = JSON.parse(_get);\n this.dataInfo = _data;\n __f__(\"log\", this.dataInfo, \" at components/ecg-info/ecg-info.vue:423\");\n // this.getUserInfo()\n this.bodyDesc = this.$utils.getBodyKeyInfo(this.dataInfo.data_msg.BMI, 'BMI');\n // uni.removeStorageSync(dataKey);\n }\n },\n drawCurve: function drawCurve() {\n var ctx = uni.createCanvasContext('myCanvas', this);\n var list = this.list;\n var centerY = this.centerY;\n var width = this.width;\n var xScale = width / (list.length - 1); // 计算每个数据点占据的宽度\n var yScale = centerY / (Math.max.apply(Math, (0, _toConsumableArray2.default)(list)) - Math.min.apply(Math, (0, _toConsumableArray2.default)(list)));\n // yScale *= 3\n var x = 0;\n var y = centerY / 2 - list[0] * yScale;\n ctx.beginPath(); // 开始绘制\n ctx.moveTo(x, y);\n ctx.setStrokeStyle('#c96d79'); // 设置线条颜色\n ctx.setLineWidth(2); // 设置线条宽度\n for (var i = 1; i < list.length; i++) {\n var _x = i * xScale;\n var _y = centerY / 2 - list[i] / 2 * yScale; // 负数在中心下方,正数在中心上方\n ctx.lineTo(_x, _y);\n }\n ctx.stroke(); // 绘制线条\n // ctx.fill();\n ctx.draw(false);\n\n // 绘制到canvas上,不需要等待上一步绘制完成\n },\n changeData: function changeData(data) {\n var HRV = [];\n var QT = [];\n var heart = [];\n var pwv = [];\n var resRate = [];\n this.xinlv.jisuan[0].times = data.data_msg.meanHeartRate == undefined ? data.data_msg.heartRate : data.data_msg.meanHeartRate;\n if (data.data_msg.wavefrom == undefined) {\n return;\n }\n data.data_msg.wavefrom.map(function (v, i) {\n if (!(v instanceof Array)) {\n if (v.HRV != 0) {\n HRV.push(v.HRV);\n }\n if (v.QT != 0) {\n QT.push(v.QT);\n }\n if (v.heart != 0 && v.heart != null) {\n heart.push(v.heart);\n }\n if (v.pwv != 0) {\n pwv.push(v.pwv);\n }\n if (v.resRate != 0) {\n resRate.push(v.resRate);\n }\n }\n });\n this.xinlv.jisuan[1].times = Math.max.apply(Math, heart);\n this.xinlv.jisuan[2].times = Math.min.apply(Math, heart);\n // 获取心率每个区间的数据数量\n var heart_zc = heart.filter(function (value) {\n return value >= 60 && value <= 100;\n }).length;\n var heart_fast = heart.filter(function (value) {\n return value > 100;\n }).length;\n var heart_slow = heart.filter(function (value) {\n return value < 60;\n }).length;\n var heart_length = heart.length;\n this.xinlv.cankao[0].times = (heart_zc / heart_length).toFixed(2) * 100;\n this.xinlv.cankao[1].times = (heart_fast / heart_length).toFixed(2) * 100;\n this.xinlv.cankao[2].times = (heart_slow / heart_length).toFixed(2) * 100;\n if (this.xinlv.cankao[0].times > 50) {\n this.title = '窦性心率';\n } else if (this.xinlv.cankao[1].times >= 50) {\n this.title = '心率偏快';\n } else if (this.xinlv.cankao[2].times >= 50) {\n this.title = '心率偏慢';\n } else {\n this.title = '窦性心率不齐';\n }\n if (data.diseaseRisk != undefined && data.diseaseRisk >= 30 && this.xinlv.cankao[0].times > 50) {\n this.title = '窦性心率不齐';\n }\n if (data.data_msg.hrv != undefined) {\n this.ybx.hrv.val = data.data_msg.hrv;\n this.ybx.sdnn.val = data.data_msg.diseaseSdnn;\n this.ybx.rmssd.val = data.data_msg.diseaseRmssd;\n this.xdt.pwv.val = (data.data_msg.pwvMeanVal / 10).toFixed(2);\n this.xdt.qtc.val = data.data_msg.QTC;\n this.xdt.qsrf.val = (data.data_msg.qrsAmp / 100).toFixed(2);\n this.xdt.qsrx.val = data.data_msg.qrsTime;\n this.xdt.qsrfx.val = data.data_msg.leadOffType == 0 ? '向上' : '向下';\n this.xdt.st.val = (data.data_msg.stMeanVal / 100).toFixed(2);\n } else {\n __f__(\"log\", 'is undefined', \" at components/ecg-info/ecg-info.vue:522\");\n this.ybx.hrv.val = data.data_msg.averageHRV;\n this.xdt.qtc.val = data.data_msg.averageTimeInterval;\n }\n }\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29tcG9uZW50cy9lY2ctaW5mby9lY2ctaW5mby52dWUiXSwibmFtZXMiOlsibmFtZSIsImRhdGEiLCJ0eXBlSW5kZXgiLCJkYXRhSW5mbyIsImJvZHlEZXNjIiwiYXJyIiwidGl0bGUiLCJsaXN0IiwiaGVpZ2h0Iiwid2lkdGgiLCJjZW50ZXJZIiwicExlZnQiLCJqaXN1YW4iLCJ0aW1lcyIsInVuaXQiLCJkZXNjIiwiY2Fua2FvIiwiaHJ2IiwibWF4IiwibWluIiwidmFsIiwic2RubiIsInJtc3NkIiwicHd2IiwicXRjIiwicXNyZiIsInFzcngiLCJxc3JmeCIsInN0IiwibWV0aG9kcyIsImNsb3NlIiwib3BlbiIsInVuaSIsInNldFRpbWVvdXQiLCJkZWx0YSIsImN0eCIsImRyYXdDdXJ2ZSIsImNoYW5nZURhdGEiLCJkYXRhX21zZyIsIkhSViIsIlFUIiwiaGVhcnQiLCJyZXNSYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBaU5BO0VBQ0FBO0VBQ0FDO0lBQUE7SUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQyxNQUNBLE9BQ0EscUJBQ0EsZ0JBQ0EsY0FDQSxjQUNBLG1CQUNBLGdCQUNBLHNCQUNBLFlBQ0EsaUJBQ0EscUJBQ0E7TUFHQUM7TUFDQUM7TUFFQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFBQSxtREFDQSxrREFDQTtNQUNBQztRQUNBQztRQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUg7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0EsRUFDQTtNQUNBQTtRQUNBSDtRQUNBQztRQUNBQztRQUNBQztNQUNBLEdBQ0E7UUFDQUg7UUFDQUM7UUFDQUM7UUFDQUM7TUFDQSxHQUNBO1FBQ0FIO1FBQ0FDO1FBQ0FDO1FBQ0FDO01BQ0E7SUFHQSwrQ0FFQTtNQUNBQztRQUNBakI7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQUM7UUFDQXJCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO01BQ0FFO1FBQ0F0QjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtJQUNBLCtDQUNBO01BQ0FHO1FBQ0F2QjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtNQUNBSTtRQUNBeEI7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQUs7UUFDQXpCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO01BQ0FNO1FBQ0ExQjtRQUNBa0I7UUFDQUo7UUFDQUs7UUFDQUM7TUFDQTtNQUNBTztRQUNBM0I7UUFDQWtCO1FBQ0FKO1FBQ0FLO1FBQ0FDO01BQ0E7TUFDQVE7UUFDQTVCO1FBQ0FrQjtRQUNBSjtRQUNBSztRQUNBQztNQUNBO0lBQ0E7RUFFQTtFQUVBUztJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUNBWDtNQUNBO01BQ0E7TUFFQTtRQUNBO1FBQ0E7UUFFQTtVQUNBWTtZQUNBMUI7VUFDQTtVQUNBMkI7WUFDQUQ7Y0FDQUU7WUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQUQ7VUFDQTtZQUFBO1VBQUE7VUFDQTtVQUNBRTtVQUNBQTtVQUNBO1lBQ0FBO1lBQ0E7WUFDQUE7WUFDQTtZQUNBQTtVQUNBO1VBQ0E7WUFDQUE7WUFDQTtZQUNBQTtZQUNBO1lBQ0FBO1VBQ0E7VUFDQTtVQUNBQTtVQUNBO1FBQ0E7TUFDQTtRQUNBO1FBQ0E7UUFFQTtVQUNBSDtZQUNBMUI7VUFDQTtVQUNBMkI7WUFDQUQ7Y0FDQUU7WUFDQTtVQUNBO1VBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO0lBQ0E7SUFFQUU7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQUQ7TUFDQUE7TUFDQUE7TUFDQUE7TUFDQTtRQUNBO1FBQ0E7UUFDQUE7TUFFQTtNQUNBQTtNQUNBO01BQ0FBOztNQUVBO0lBQ0E7SUFFQUU7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0EsdUdBQ0FDO01BQ0E7UUFDQTtNQUNBO01BQ0FyQztRQUVBO1VBQ0E7WUFDQXNDO1VBQ0E7VUFDQTtZQUNBQztVQUNBO1VBQ0E7WUFDQUM7VUFDQTtVQUNBO1lBQ0FsQjtVQUNBO1VBQ0E7WUFDQW1CO1VBQ0E7UUFDQTtNQUVBO01BQ0E7TUFDQTtNQUNBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7UUFBQTtNQUFBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7UUFDQTtNQUNBO1FBQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO01BQ0E7TUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtNQUNBO1FBQ0E7UUFDQTtRQUNBO01BQ0E7SUFDQTtFQUNBO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIyMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcblx0PHZpZXcgY2xhc3M9XCJjb250ZW50XCIgc3R5bGU9XCJ3aWR0aDogNjAlO1wiPlxyXG5cdFx0PHVuaS1wb3B1cCByZWY9XCJwb3B1cFwiIHR5cGU9XCJib3R0b21cIiBib3JkZXItcmFkaXVzPVwiMTBweCAxMHB4IDAgMFwiPlxyXG5cdFx0XHQ8dmlldyBjbGFzcz1cIm1haW5cIj5cblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtbWFpblwiIHYtaWY9XCJ0eXBlSW5kZXggPT0gMVwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtY2xvc2VcIiBAY2xpY2s9XCJjbG9zZSgpXCI+XG5cdFx0XHRcdFx0XHRcdMOXXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImR4eGxcIj5cblx0XHRcdFx0XHRcdFx0PHNjcm9sbC12aWV3IGNsYXNzPVwibXlTY29sbFwiIHNjcm9sbC14IDpzaG93LXNjcm9sbGJhcj1cInRydWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveDFcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxjYW52YXMgY2FudmFzLWlkPVwiZWNnXCIgc3R5bGU9XCJ3aWR0aDogMzAwMHB4OyBoZWlnaHQ6IDMwMHB4O1wiPjwvY2FudmFzPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImJveDJcIiA6c3R5bGU9XCJ7J2xlZnQnOiBwTGVmdCArICdweCd9XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y2FudmFzIGNhbnZhcy1pZD1cIm15Q2FudmFzXCIgc3R5bGU9XCJ3aWR0aDogMzAwMHB4OyBoZWlnaHQ6IDMwMHB4O1wiPjwvY2FudmFzPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC9zY3JvbGwtdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGlzdFwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWMgXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1yaWdodDogMTBycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veGlubHYtc21hbGwucG5nXCIgc3R5bGU9XCJ3aWR0aDogNDBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOW/g+eOh1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfc2Igc2xfYm94IGZseF93cFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiYWxsXCIgdi1mb3I9XCIoaXRlbSxpbmRleCkgaW4geGlubHYuamlzdWFuXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInNsX2JveF93elwiPnt7aXRlbS50aW1lcz9pdGVtLnRpbWVzOjB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzbF9ib3hfdW5pdFwiPnt7aXRlbS51bml0fX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNsX2JveF9kZXNjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7aXRlbS5kZXNjfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2xfYm94X2Nhbmthb1wiIHYtaWY9XCJpdGVtLmNhbmthb1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uY2Fua2FvfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJhbGxcIiB2LWZvcj1cIihpdGVtLGluZGV4KSBpbiB4aW5sdi5jYW5rYW9cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwic2xfYm94X3d6XCI+e3tpdGVtLnRpbWVzLnRvRml4ZWQoMil9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJzbF9ib3hfdW5pdFwiPnt7aXRlbS51bml0fX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInNsX2JveF9kZXNjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7aXRlbS5kZXNjfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwic2xfYm94X2Nhbmthb1wiIHYtaWY9XCJpdGVtLmNhbmthb1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7e2l0ZW0uY2Fua2FvfX1cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibGlzdFwiPlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWMgXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcnB4O21hcmdpbi1yaWdodDogMTBycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW1hZ2Ugc3JjPVwiLi4vLi4vc3RhdGljL2ljb24veGlubHYtc21hbGwucG5nXCIgc3R5bGU9XCJ3aWR0aDogNDBycHg7XCIgbW9kZT1cIndpZHRoRml4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdOW/g+eOh+WPmOW8guaAp1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieWJ4LmhydlwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieWJ4LnNkbm5cIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInlieC5ybXNzZFwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImxpc3RcIj5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjIFwiPlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHJweDttYXJnaW4tcmlnaHQ6IDEwcnB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGltYWdlIHNyYz1cIi4uLy4uL3N0YXRpYy9pY29uL3hpbmx2LXNtYWxsLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDQwcnB4O1wiIG1vZGU9XCJ3aWR0aEZpeFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9pbWFnZT5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImNvbG9yOiByZWQ7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHTlv4PnlLXlm75cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5wd3ZcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5xdGNcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0XHQ8eGR0IDpkYXRhcz1cInhkdC5xc3JmXCI+PC94ZHQ+XG5cdFx0XHRcdFx0XHRcdFx0PHhkdCA6ZGF0YXM9XCJ4ZHQucXNyeFwiPjwveGR0PlxuXHRcdFx0XHRcdFx0XHRcdDx4ZHQgOmRhdGFzPVwieGR0LnFzcmZ4XCI+PC94ZHQ+XG5cdFx0XHRcdFx0XHRcdFx0PHhkdCA6ZGF0YXM9XCJ4ZHQuc3RcIj48L3hkdD5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIiBzdHlsZT1cImhlaWdodDogMjBycHg7XCI+PC92aWV3PlxuXHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtbWFpblwiIHYtaWY9XCJ0eXBlSW5kZXggPT0gMlwiPlxuXHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicG9wc1wiPlxuXHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3AtY2xvc2VcIiBAY2xpY2s9XCJjbG9zZSgpXCI+XG5cdFx0XHRcdFx0XHRcdMOXXG5cdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHQ8dmlldz5cblx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO3BhZGRpbmc6IDMwcnB4IDAgMCAzMHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRleHQgY2xhc3M9XCJpY29uZm9udCBpY29uLXdvZGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ6c3R5bGU9XCInZm9udC1zaXplOiA1MHJweDttYXJnaW4tcmlnaHQ6MTBycHg7Y29sb3I6JyArIGJvZHlEZXNjLmNvbG9yIFwiPjwvdGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZXh0Pnt7Ym9keURlc2MubmFtZX19PC90ZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbWFnZSBzcmM9XCIuLi8uLi9zdGF0aWMvaW1hZ2UvYm9keS5wbmdcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIG1vZGU9XCJ3aWR0aEZpeFwiPjwvaW1hZ2U+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJsZWZ0X3Bvc2l0aW9uIHBvc3Rpb24gXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NfYm94XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiZmx4IGZseF9hY1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidHRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGRhdGFJbmZvLmRhdGFfbXNnLmJhc2FsTWV0YWJvbGljUmF0ZSB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WNoVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTln7rnoYDku6PosKJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy5ib25lTWFzcyB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WFi1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTpqqjph41cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy53YXRlckNvbnRlbnQgfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ1bml0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHTljYPlhYtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJuYW1lXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx05rC05YiGXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwicmlnaHRfcG9zaXRpb24gcG9zdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJkZXNjX2JveFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImZseCBmbHhfYWNcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInR0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBkYXRhSW5mby5kYXRhX21zZy5mYXRNYXNzIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwidW5pdFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx05Y2D5YWLXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwibmFtZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdOiEguiCqlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cImRlc2NfYm94XCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwO21hcmdpbi10b3A6IDE3NHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJmbHggZmx4X2FjXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJ0dFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cucHJvdGVpbkFtb3VudCB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInVuaXRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdOWNg+WFi1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIm5hbWVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHTom4vnmb3otKhcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInBvc3Rpb24gY2VudGVyX3Bvc2lvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cudXNlckluZm8uZ2VuZGVyID09ICcyJz8n5aWzJzon55S3JyB9feaAp++8jHt7IGRhdGFJbmZvLmRhdGFfbXNnLnVzZXJJbmZvLndlaWdodCAgfX3ljYPlhYtcblx0XHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdFx0PHZpZXcgY2xhc3M9XCJwb3N0aW9uIHJpZ2h0X2NlbnRlclwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgZGF0YUluZm8uZGF0YV9tc2cudXNlckluZm8uaGVpZ2h0ICB9feWOmOexs1xuXHRcdFx0XHRcdFx0XHRcdDwvdmlldz5cblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cInJhZGl1c19ib3hcIiBzdHlsZT1cInBhZGRpbmc6IDA7bWFyZ2luOiAzMHJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHQ8dmlldyBjbGFzcz1cIlwiIHYtZm9yPVwiKHYsaSkgaW4gYXJyXCIgOmtleT1cImlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxib2R5X2luZm9fY29tcG9uZW50cyA6a2V5X25hbWU9XCJ2XCIgOnZhbHVlPVwicGFyc2VGbG9hdChkYXRhSW5mby5kYXRhX21zZ1t2XSlcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvYm9keV9pbmZvX2NvbXBvbmVudHM+XG5cdFx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDQwcnB4O1wiPlxuXHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcdFx0PC92aWV3PlxuXHRcdFx0XHRcblx0XHRcdFx0XHRcdDx2aWV3IGNsYXNzPVwiXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcnB4O1wiPjwvdmlldz5cblx0XHRcdFx0XHQ8L3ZpZXc+XG5cdFx0XHRcdDwvdmlldz5cblx0XHRcdDwvdmlldz5cclxuXHRcdDwvdW5pLXBvcHVwPlxyXG5cdDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0bmFtZTogXCJwb3AtaW5mb1wiLFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHR0eXBlSW5kZXg6IDEsXHJcblx0XHRcdFx0ZGF0YUluZm86IHt9LFxyXG5cdFx0XHRcdGJvZHlEZXNjOiB7fSxcclxuXHRcdFx0XHRhcnI6IFtcclxuXHRcdFx0XHRcdCdCTUknLFxyXG5cdFx0XHRcdFx0J2JvZHlGYXRQZXJjZW50YWdlJyxcclxuXHRcdFx0XHRcdCdsZWFuQm9keU1hc3MnLFxyXG5cdFx0XHRcdFx0J211c2NsZVJhdGUnLFxyXG5cdFx0XHRcdFx0J211c2NsZU1hc3MnLFxyXG5cdFx0XHRcdFx0J3N1YmN1dGFuZW91c0ZhdCcsXHJcblx0XHRcdFx0XHQnYm9keU1vaXN0dXJlJyxcclxuXHRcdFx0XHRcdCdza2VsZXRhbE11c2NsZVJhdGUnLFxyXG5cdFx0XHRcdFx0J2JvbmVNYXNzJyxcclxuXHRcdFx0XHRcdCdwcm90ZWluQW1vdW50JyxcclxuXHRcdFx0XHRcdCdiYXNhbE1ldGFib2xpY1JhdGUnLFxyXG5cdFx0XHRcdF0sXHJcblxyXG5cclxuXHRcdFx0XHR0aXRsZTogJycsXHJcblx0XHRcdFx0bGlzdDogW10sXHJcblxyXG5cdFx0XHRcdGhlaWdodDogMzAwLFxyXG5cdFx0XHRcdHdpZHRoOiAzMDAwLFxyXG5cdFx0XHRcdGNlbnRlclk6IDIwMCxcclxuXHRcdFx0XHRwTGVmdDogJzAnLFxyXG5cdFx0XHRcdGRhdGFJbmZvOiB7fSxcclxuXHRcdFx0XHR4aW5sdjoge1xyXG5cdFx0XHRcdFx0amlzdWFuOiBbe1xyXG5cdFx0XHRcdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdFx0XHRcdHVuaXQ6ICfmrKEv5YiGJyxcclxuXHRcdFx0XHRcdFx0XHRkZXNjOiAn5bmz5Z2H5b+D546HJyxcclxuXHRcdFx0XHRcdFx0XHRjYW5rYW86ICcnXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHR0aW1lczogMCxcclxuXHRcdFx0XHRcdFx0XHR1bml0OiAn5qyhL+WIhicsXHJcblx0XHRcdFx0XHRcdFx0ZGVzYzogJ+acgOmrmOW/g+eOhycsXHJcblx0XHRcdFx0XHRcdFx0Y2Fua2FvOiAnJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGltZXM6IDAsXHJcblx0XHRcdFx0XHRcdFx0dW5pdDogJ+asoS/liIYnLFxyXG5cdFx0XHRcdFx0XHRcdGRlc2M6ICfmnIDkvY7lv4PnjocnLFxyXG5cdFx0XHRcdFx0XHRcdGNhbmthbzogJydcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdGNhbmthbzogW3tcclxuXHRcdFx0XHRcdFx0XHR0aW1lczogMCxcclxuXHRcdFx0XHRcdFx0XHR1bml0OiAnJScsXHJcblx0XHRcdFx0XHRcdFx0ZGVzYzogJ+ato+W4uCcsXHJcblx0XHRcdFx0XHRcdFx0Y2Fua2FvOiAnKDYwfjEwMOasoS/liIYpJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0dGltZXM6IDAsXHJcblx0XHRcdFx0XHRcdFx0dW5pdDogJyUnLFxyXG5cdFx0XHRcdFx0XHRcdGRlc2M6ICflv4PnjoflgY/lv6snLFxyXG5cdFx0XHRcdFx0XHRcdGNhbmthbzogJz4xMDDmrKEv5YiGKSdcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdHRpbWVzOiAwLFxyXG5cdFx0XHRcdFx0XHRcdHVuaXQ6ICclJyxcclxuXHRcdFx0XHRcdFx0XHRkZXNjOiAn5b+D546H5YGP5oWiJyxcclxuXHRcdFx0XHRcdFx0XHRjYW5rYW86ICcoPDYw5qyhL+WIhiknXHJcblx0XHRcdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8vIOW/g+eOh+W8guWPmOaAp1xyXG5cdFx0XHRcdHlieDoge1xyXG5cdFx0XHRcdFx0aHJ2OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdIUlYnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDIxMCxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ+avq+enkicsXHJcblx0XHRcdFx0XHRcdG1pbjogMCxcclxuXHRcdFx0XHRcdFx0dmFsOiAwXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c2Rubjoge1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnU0ROTicsXHJcblx0XHRcdFx0XHRcdG1heDogMTgwLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAn5q+r56eSJyxcclxuXHRcdFx0XHRcdFx0bWluOiAxMDIsXHJcblx0XHRcdFx0XHRcdHZhbDogMFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHJtc3NkOiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdSTVNTRCcsXHJcblx0XHRcdFx0XHRcdG1heDogMzksXHJcblx0XHRcdFx0XHRcdHVuaXQ6ICfmr6vnp5InLFxyXG5cdFx0XHRcdFx0XHRtaW46IDE1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHhkdDoge1xyXG5cdFx0XHRcdFx0cHd2OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdQV1YnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDE1LFxyXG5cdFx0XHRcdFx0XHR1bml0OiAnbS9zJyxcclxuXHRcdFx0XHRcdFx0bWluOiA2LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxdGM6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1FUYycsXHJcblx0XHRcdFx0XHRcdG1heDogNDAwLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAn5q+r56eSJyxcclxuXHRcdFx0XHRcdFx0bWluOiAyNjAsXHJcblx0XHRcdFx0XHRcdHZhbDogMFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHFzcmY6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1FSUyDms6LmjK/luYUnLFxyXG5cdFx0XHRcdFx0XHRtYXg6IDEuNSxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ21WJyxcclxuXHRcdFx0XHRcdFx0bWluOiAwLjA1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxc3J4OiB7XHJcblx0XHRcdFx0XHRcdG5hbWU6ICdRUlMg5rOi5pe26ZmQJyxcclxuXHRcdFx0XHRcdFx0bWF4OiAxMjAsXHJcblx0XHRcdFx0XHRcdHVuaXQ6ICfmr6vnp5InLFxyXG5cdFx0XHRcdFx0XHRtaW46IDgwLFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRxc3JmeDoge1xyXG5cdFx0XHRcdFx0XHRuYW1lOiAnUVJTIOS4u+azouaWueWQkScsXHJcblx0XHRcdFx0XHRcdG1heDogMCxcclxuXHRcdFx0XHRcdFx0dW5pdDogJ+WQkeS4iu+8jOWQkeS4iycsXHJcblx0XHRcdFx0XHRcdG1pbjogMCxcclxuXHRcdFx0XHRcdFx0dmFsOiAwXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3Q6IHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1NUIOauteaMr+W5hScsXHJcblx0XHRcdFx0XHRcdG1heDogMC4xLFxyXG5cdFx0XHRcdFx0XHR1bml0OiAnbVYnLFxyXG5cdFx0XHRcdFx0XHRtaW46IC0wLjA1LFxyXG5cdFx0XHRcdFx0XHR2YWw6IDBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRjbG9zZSgpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnBvcHVwLmNsb3NlKClcclxuXHRcdFx0fSxcclxuXHRcdFx0b3Blbih2YWwpIHtcclxuXHRcdFx0XHR2YWwgPT0gMSA/IHRoaXMudHlwZUluZGV4ID0gMSA6IHRoaXMudHlwZUluZGV4ID0gMjtcclxuXHRcdFx0XHQvLyDpgJrov4fnu4Tku7blrprkuYnnmoRyZWbosIPnlKh1bmktcG9wdXDmlrnms5UgLOWmguaenOS8oOWFpeWPguaVsCDvvIx0eXBlIOWxnuaAp+WwhuWkseaViCDvvIzku4XmlK/mjIEgWyd0b3AnLCdsZWZ0JywnYm90dG9tJywncmlnaHQnLCdjZW50ZXInXVxyXG5cdFx0XHRcdHRoaXMuJHJlZnMucG9wdXAub3BlbignYm90dG9tJylcclxuXHJcblx0XHRcdFx0aWYgKHZhbCA9PSAxKSB7XHJcblx0XHRcdFx0XHRjb25zdCBkYXRhS2V5ID0gJ2luZm9EYXRhJzsgLy8g5ZCM5LiK6Z2i6K6+572u55qEa2V5XHJcblx0XHRcdFx0XHRsZXQgZ2V0ID0gdW5pLmdldFN0b3JhZ2VTeW5jKGRhdGFLZXkpXHJcblxyXG5cdFx0XHRcdFx0aWYgKCFnZXQpIHtcclxuXHRcdFx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XHJcblx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi6K+75Y+W5pWw5o2u5aSx6LSlXCJcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dW5pLm5hdmlnYXRlQmFjayh7XHJcblx0XHRcdFx0XHRcdFx0XHRkZWx0YTogLTFcclxuXHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHR9LCAyMDAwKVxyXG5cdFx0XHRcdFx0XHRyZXR1cm5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGdldCk7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhkYXRhKVxyXG5cdFx0XHRcdFx0dGhpcy5kYXRhSW5mbyA9IGRhdGE7XHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURhdGEodGhpcy5kYXRhSW5mbylcclxuXHRcdFx0XHRcdHRoaXMubGlzdCA9IHRoaXMuZGF0YUluZm8uZGF0YV9tc2cubGlzdDtcclxuXHJcblx0XHRcdFx0XHQvLyDnu5jliLZcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSB0aGlzLmxpc3QuZmlsdGVyKHZhbCA9PiB2YWwgIT09IDApXHJcblx0XHRcdFx0XHRcdGNvbnN0IGN0eCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KCdlY2cnLCB0aGlzKTtcclxuXHRcdFx0XHRcdFx0Y3R4LnNldFN0cm9rZVN0eWxlKCcjZDVkNWQ1JykgLy9cclxuXHRcdFx0XHRcdFx0Y3R4LnNldExpbmVXaWR0aCgxKSAvLyDnur/mnaHlrr3luqZcclxuXHRcdFx0XHRcdFx0Zm9yICh2YXIgeCA9IDAuNTsgeCA8IDMwMDA7IHggKz0gMTUpIHtcclxuXHRcdFx0XHRcdFx0XHRjdHgubW92ZVRvKHgsIDApXHJcblx0XHRcdFx0XHRcdFx0Ly8g57uT5p2f54K5XHJcblx0XHRcdFx0XHRcdFx0Y3R4LmxpbmVUbyh4LCAzMDAwKVxyXG5cdFx0XHRcdFx0XHRcdC8vIOaPj+i+ue+8jOS4jeiwg+eUqHN0cm9rZeWImeeci+S4jeWIsOeUu+eahOWGheWuuVxyXG5cdFx0XHRcdFx0XHRcdGN0eC5zdHJva2UoKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGZvciAodmFyIHkgPSAwLjU7IHkgPCAzMDAwOyB5ICs9IDE1KSB7XHJcblx0XHRcdFx0XHRcdFx0Y3R4Lm1vdmVUbygwLCB5KVxyXG5cdFx0XHRcdFx0XHRcdC8vIOe7k+adn+eCuVxyXG5cdFx0XHRcdFx0XHRcdGN0eC5saW5lVG8oMzAwMCwgeSlcclxuXHRcdFx0XHRcdFx0XHQvLyDmj4/ovrnvvIzkuI3osIPnlKhzdHJva2XliJnnnIvkuI3liLDnlLvnmoTlhoXlrrlcclxuXHRcdFx0XHRcdFx0XHRjdHguc3Ryb2tlKClcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQvLyBjdHguZmlsbCgpO1xyXG5cdFx0XHRcdFx0XHRjdHguZHJhdygpXHJcblx0XHRcdFx0XHRcdHRoaXMuZHJhd0N1cnZlKClcclxuXHRcdFx0XHRcdH0sIDEwMDApXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNvbnN0IGRhdGFLZXkgPSAnYm9keURhdGEnOyAvLyDlkIzkuIrpnaLorr7nva7nmoRrZXlcclxuXHRcdFx0XHRcdGxldCBnZXQgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoZGF0YUtleSlcclxuXHJcblx0XHRcdFx0XHRpZiAoIWdldCkge1xyXG5cdFx0XHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcclxuXHRcdFx0XHRcdFx0XHR0aXRsZTogXCLor7vlj5bmlbDmja7lpLHotKVcIlxyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR1bmkubmF2aWdhdGVCYWNrKHtcclxuXHRcdFx0XHRcdFx0XHRcdGRlbHRhOiAtMVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdH0sIDIwMDApXHJcblx0XHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZ2V0KTtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YUluZm8gPSBkYXRhO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5kYXRhSW5mbylcclxuXHRcdFx0XHRcdC8vIHRoaXMuZ2V0VXNlckluZm8oKVxyXG5cdFx0XHRcdFx0dGhpcy5ib2R5RGVzYyA9IHRoaXMuJHV0aWxzLmdldEJvZHlLZXlJbmZvKHRoaXMuZGF0YUluZm8uZGF0YV9tc2cuQk1JLCAnQk1JJylcclxuXHRcdFx0XHRcdC8vIHVuaS5yZW1vdmVTdG9yYWdlU3luYyhkYXRhS2V5KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRkcmF3Q3VydmUoKSB7XHJcblx0XHRcdFx0bGV0IGN0eCA9IHVuaS5jcmVhdGVDYW52YXNDb250ZXh0KCdteUNhbnZhcycsIHRoaXMpXHJcblx0XHRcdFx0bGV0IGxpc3QgPSB0aGlzLmxpc3Q7XHJcblx0XHRcdFx0bGV0IGNlbnRlclkgPSB0aGlzLmNlbnRlclk7XHJcblx0XHRcdFx0bGV0IHdpZHRoID0gdGhpcy53aWR0aDtcclxuXHRcdFx0XHRsZXQgeFNjYWxlID0gd2lkdGggLyAobGlzdC5sZW5ndGggLSAxKTsgLy8g6K6h566X5q+P5Liq5pWw5o2u54K55Y2g5o2u55qE5a695bqmXHJcblx0XHRcdFx0bGV0IHlTY2FsZSA9IGNlbnRlclkgLyAoTWF0aC5tYXgoLi4ubGlzdCkgLSBNYXRoLm1pbiguLi5saXN0KSlcclxuXHRcdFx0XHQvLyB5U2NhbGUgKj0gM1xyXG5cdFx0XHRcdGxldCB4ID0gMDtcclxuXHRcdFx0XHRsZXQgeSA9IGNlbnRlclkgLyAyIC0gKGxpc3RbMF0gKiB5U2NhbGUpXHJcblx0XHRcdFx0Y3R4LmJlZ2luUGF0aCgpOyAvLyDlvIDlp4vnu5jliLZcclxuXHRcdFx0XHRjdHgubW92ZVRvKHgsIHkpO1xyXG5cdFx0XHRcdGN0eC5zZXRTdHJva2VTdHlsZSgnI2M5NmQ3OScpOyAvLyDorr7nva7nur/mnaHpopzoibJcclxuXHRcdFx0XHRjdHguc2V0TGluZVdpZHRoKDIpOyAvLyDorr7nva7nur/mnaHlrr3luqZcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gMTsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0XHRcdGxldCB4ID0gaSAqIHhTY2FsZTtcclxuXHRcdFx0XHRcdGxldCB5ID0gY2VudGVyWSAvIDIgLSAoKGxpc3RbaV0gLyAyKSAqIHlTY2FsZSk7IC8vIOi0n+aVsOWcqOS4reW/g+S4i+aWue+8jOato+aVsOWcqOS4reW/g+S4iuaWuVxyXG5cdFx0XHRcdFx0Y3R4LmxpbmVUbyh4LCB5KTtcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGN0eC5zdHJva2UoKSAvLyDnu5jliLbnur/mnaFcclxuXHRcdFx0XHQvLyBjdHguZmlsbCgpO1xyXG5cdFx0XHRcdGN0eC5kcmF3KGZhbHNlKTtcclxuXHJcblx0XHRcdFx0Ly8g57uY5Yi25YiwY2FudmFz5LiK77yM5LiN6ZyA6KaB562J5b6F5LiK5LiA5q2l57uY5Yi25a6M5oiQXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRjaGFuZ2VEYXRhKGRhdGEpIHtcclxuXHRcdFx0XHRsZXQgSFJWID0gW11cclxuXHRcdFx0XHRsZXQgUVQgPSBbXVxyXG5cdFx0XHRcdGxldCBoZWFydCA9IFtdXHJcblx0XHRcdFx0bGV0IHB3diA9IFtdXHJcblx0XHRcdFx0bGV0IHJlc1JhdGUgPSBbXVxyXG5cdFx0XHRcdHRoaXMueGlubHYuamlzdWFuWzBdLnRpbWVzID0gZGF0YS5kYXRhX21zZy5tZWFuSGVhcnRSYXRlID09IHVuZGVmaW5lZCA/IGRhdGEuZGF0YV9tc2cuaGVhcnRSYXRlIDogZGF0YVxyXG5cdFx0XHRcdFx0LmRhdGFfbXNnLm1lYW5IZWFydFJhdGVcclxuXHRcdFx0XHRpZiAoZGF0YS5kYXRhX21zZy53YXZlZnJvbSA9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHJldHVyblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkYXRhLmRhdGFfbXNnLndhdmVmcm9tLm1hcCgodiwgaSkgPT4ge1xyXG5cclxuXHRcdFx0XHRcdGlmICghKHYgaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuXHRcdFx0XHRcdFx0aWYgKHYuSFJWICE9IDApIHtcclxuXHRcdFx0XHRcdFx0XHRIUlYucHVzaCh2LkhSVilcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRpZiAodi5RVCAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0UVQucHVzaCh2LlFUKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh2LmhlYXJ0ICE9IDAgJiYgdi5oZWFydCAhPSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdFx0aGVhcnQucHVzaCh2LmhlYXJ0KVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGlmICh2LnB3diAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0cHd2LnB1c2godi5wd3YpXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKHYucmVzUmF0ZSAhPSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0cmVzUmF0ZS5wdXNoKHYucmVzUmF0ZSlcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdHRoaXMueGlubHYuamlzdWFuWzFdLnRpbWVzID0gTWF0aC5tYXgoLi4uaGVhcnQpXHJcblx0XHRcdFx0dGhpcy54aW5sdi5qaXN1YW5bMl0udGltZXMgPSBNYXRoLm1pbiguLi5oZWFydClcclxuXHRcdFx0XHQvLyDojrflj5blv4Pnjofmr4/kuKrljLrpl7TnmoTmlbDmja7mlbDph49cclxuXHRcdFx0XHRsZXQgaGVhcnRfemMgPSBoZWFydC5maWx0ZXIodmFsdWUgPT4gKHZhbHVlID49IDYwICYmIHZhbHVlIDw9IDEwMCkpLmxlbmd0aDtcclxuXHRcdFx0XHRsZXQgaGVhcnRfZmFzdCA9IGhlYXJ0LmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSA+IDEwMCkubGVuZ3RoO1xyXG5cdFx0XHRcdGxldCBoZWFydF9zbG93ID0gaGVhcnQuZmlsdGVyKHZhbHVlID0+IHZhbHVlIDwgNjApLmxlbmd0aDtcclxuXHRcdFx0XHRsZXQgaGVhcnRfbGVuZ3RoID0gaGVhcnQubGVuZ3RoXHJcblx0XHRcdFx0dGhpcy54aW5sdi5jYW5rYW9bMF0udGltZXMgPSAoaGVhcnRfemMgLyBoZWFydF9sZW5ndGgpLnRvRml4ZWQoMikgKiAxMDBcclxuXHRcdFx0XHR0aGlzLnhpbmx2LmNhbmthb1sxXS50aW1lcyA9IChoZWFydF9mYXN0IC8gaGVhcnRfbGVuZ3RoKS50b0ZpeGVkKDIpICogMTAwXHJcblx0XHRcdFx0dGhpcy54aW5sdi5jYW5rYW9bMl0udGltZXMgPSAoaGVhcnRfc2xvdyAvIGhlYXJ0X2xlbmd0aCkudG9GaXhlZCgyKSAqIDEwMFxyXG5cdFx0XHRcdGlmICh0aGlzLnhpbmx2LmNhbmthb1swXS50aW1lcyA+IDUwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRpdGxlID0gJ+eqpuaAp+W/g+eOhyc7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnhpbmx2LmNhbmthb1sxXS50aW1lcyA+PSA1MCkge1xyXG5cdFx0XHRcdFx0dGhpcy50aXRsZSA9ICflv4PnjoflgY/lv6snO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy54aW5sdi5jYW5rYW9bMl0udGltZXMgPj0gNTApIHtcclxuXHRcdFx0XHRcdHRoaXMudGl0bGUgPSAn5b+D546H5YGP5oWiJztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy50aXRsZSA9ICfnqqbmgKflv4PnjofkuI3pvZAnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoZGF0YS5kaXNlYXNlUmlzayAhPSB1bmRlZmluZWQgJiYgZGF0YS5kaXNlYXNlUmlzayA+PSAzMCAmJiB0aGlzLnhpbmx2LmNhbmthb1swXS50aW1lcyA+IDUwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRpdGxlID0gJ+eqpuaAp+W/g+eOh+S4jem9kCc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhLmRhdGFfbXNnLmhydiAhPSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMueWJ4Lmhydi52YWwgPSBkYXRhLmRhdGFfbXNnLmhydlxyXG5cdFx0XHRcdFx0dGhpcy55Ynguc2Rubi52YWwgPSBkYXRhLmRhdGFfbXNnLmRpc2Vhc2VTZG5uXHJcblx0XHRcdFx0XHR0aGlzLnlieC5ybXNzZC52YWwgPSBkYXRhLmRhdGFfbXNnLmRpc2Vhc2VSbXNzZFxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucHd2LnZhbCA9IChkYXRhLmRhdGFfbXNnLnB3dk1lYW5WYWwgLyAxMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucXRjLnZhbCA9IGRhdGEuZGF0YV9tc2cuUVRDXHJcblx0XHRcdFx0XHR0aGlzLnhkdC5xc3JmLnZhbCA9IChkYXRhLmRhdGFfbXNnLnFyc0FtcCAvIDEwMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdFx0dGhpcy54ZHQucXNyeC52YWwgPSBkYXRhLmRhdGFfbXNnLnFyc1RpbWVcclxuXHRcdFx0XHRcdHRoaXMueGR0LnFzcmZ4LnZhbCA9IGRhdGEuZGF0YV9tc2cubGVhZE9mZlR5cGUgPT0gMCA/ICflkJHkuIonIDogJ+WQkeS4iydcclxuXHRcdFx0XHRcdHRoaXMueGR0LnN0LnZhbCA9IChkYXRhLmRhdGFfbXNnLnN0TWVhblZhbCAvIDEwMCkudG9GaXhlZCgyKVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygnaXMgdW5kZWZpbmVkJylcclxuXHRcdFx0XHRcdHRoaXMueWJ4Lmhydi52YWwgPSBkYXRhLmRhdGFfbXNnLmF2ZXJhZ2VIUlZcclxuXHRcdFx0XHRcdHRoaXMueGR0LnF0Yy52YWwgPSBkYXRhLmRhdGFfbXNnLmF2ZXJhZ2VUaW1lSW50ZXJ2YWxcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5cdC5wb3AtY2xvc2Uge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuXHRcdGZvbnQtc2l6ZTogMTAwcnB4O1xyXG5cdFx0cGFkZGluZy1yaWdodDogNTBycHg7XHJcblx0fVxuXHRcclxuXHQucG9wLW1haW4ge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMHZoO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0XHRwYWRkaW5nOiA1MHJweDtcblx0fVxuXHRcblx0LnBvcHMge1xuXHRcdGJvcmRlcjogMXJweCBzb2xpZCBncmF5O1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcnB4O1xuXHRcdG1hcmdpbjogNTBycHggMjAwcnB4O1xuXHRcdG1hcmdpbi10b3A6IDEwMHJweDtcblx0XHRwYWRkaW5nOiAwcnB4IDUwcnB4O1xuXHR9XHJcblxyXG5cdC5ib3gxIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDBweDtcclxuXHRcdHdpZHRoOiAzMDAwcnB4O1xyXG5cdH1cclxuXHJcblx0LmJveDIge1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0bGVmdDogMHB4O1xyXG5cdFx0d2lkdGg6IDMwMDBycHg7XHJcblx0fVxyXG5cclxuXHQubXlTY29sbCB7XHJcblx0XHR3aWR0aDogMTAwJTtcclxuXHRcdGhlaWdodDogMzk2cnB4O1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR9XHJcblxyXG5cdC5saXN0IHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0cGFkZGluZzogMzBycHg7XHJcblx0XHRtYXJnaW46IDMwcnB4IDMwcnB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMzBycHg7XHJcblx0fVxyXG5cclxuXHQuZHh4bCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0cGFkZGluZzogMjBycHg7XHJcblx0XHRwYWRkaW5nLXRvcDogNDBycHg7XHJcblx0fVxyXG5cclxuXHQuc2xfYm94IHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHQuYWxsIHtcclxuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAvIDMpO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiA0MHJweDtcclxuXHRcdH1cclxuXHJcblx0XHQuc2xfYm94X2NhbmthbyxcclxuXHRcdC5zbF9ib3hfZGVzYyB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjRycHg7XHJcblx0XHRcdGNvbG9yOiAjOTk5O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zbF9ib3hfdW5pdCB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjZycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNsX2JveF93eiB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTBycHg7XHJcblx0XHRcdGZvbnQtc2l6ZTogMzBycHg7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0fVxyXG5cdH1cclxuPC9zdHlsZT5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0LnBvcC1jbG9zZSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xyXG5cdFx0Zm9udC1zaXplOiAxMDBycHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiA1MHJweDtcblx0XHRtYXJnaW4tdG9wOiA1MHJweDtcclxuXHR9XHJcblxyXG5cdC5wb3AtbWFpbiB7XHJcblx0XHR3aWR0aDogNjAlO1xyXG5cdFx0aGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcblx0XHRvdmVyZmxvdy15OiBzY3JvbGw7XHJcblx0fVxyXG5cclxuXHQuYm94MSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiAwcHg7XHJcblx0XHR3aWR0aDogMzAwMHJweDtcclxuXHR9XHJcblxyXG5cdC5ib3gyIHtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdGxlZnQ6IDBweDtcclxuXHRcdHdpZHRoOiAzMDAwcnB4O1xyXG5cdH1cclxuXHJcblx0Lm15U2NvbGwge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRoZWlnaHQ6IDM5NnJweDtcclxuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0fVxyXG5cclxuXHQubGlzdCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdHBhZGRpbmc6IDMwcnB4O1xyXG5cdFx0bWFyZ2luOiAzMHJweCAzMHJweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDMwcnB4O1xyXG5cdH1cclxuXHJcblx0LmR4eGwge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuXHRcdHBhZGRpbmc6IDIwcnB4O1xyXG5cdFx0cGFkZGluZy10b3A6IDQwcnB4O1xyXG5cdH1cclxuXHJcblx0LnNsX2JveCB7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0LmFsbCB7XHJcblx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcclxuXHRcdFx0bWFyZ2luLXRvcDogNDBycHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnNsX2JveF9jYW5rYW8sXHJcblx0XHQuc2xfYm94X2Rlc2Mge1xyXG5cdFx0XHRmb250LXNpemU6IDI0cnB4O1xyXG5cdFx0XHRjb2xvcjogIzk5OTtcclxuXHRcdH1cclxuXHJcblx0XHQuc2xfYm94X3VuaXQge1xyXG5cdFx0XHRmb250LXNpemU6IDI2cnB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5zbF9ib3hfd3oge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcnB4O1xyXG5cdFx0XHRmb250LXNpemU6IDMwcnB4O1xyXG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdH1cclxuXHR9XHJcbjwvc3R5bGU+XG5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuLnBvc3Rpb257XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5sZWZ0X3Bvc2l0aW9ue1xuXHRsZWZ0OiA0MHJweDtcblx0dG9wOjEyJVxufVxuLnJpZ2h0X3Bvc2l0aW9ue1xuXHRyaWdodDogNDBycHg7XG5cdHRvcDoxNSVcbn1cbi5yaWdodF9jZW50ZXJ7XG5cdHJpZ2h0OiAxNjBycHg7XG5cdHRvcDo0MiU7XG5cdGZvbnQtc2l6ZTogMjZycHg7XG59XG4uY2VudGVyX3Bvc2lvbntcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym90dG9tOiAyMHJweDtcbn1cbi5kZXNjX2JveHtcblx0bWFyZ2luLWJvdHRvbTogNjRycHg7XG5cdC50dHtcblx0XHRmb250LXNpemU6IDMwcnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdG1hcmdpbi1yaWdodDogMTBycHg7XG5cdH1cblx0LnVuaXR7XG5cdFx0Zm9udC1zaXplOiAyNHJweDtcblx0XHRjb2xvcjogIzY2Njtcblx0fVxuXHQubmFtZXtcblx0XHRmb250LXNpemU6IDI0cnB4O1xuXHRcdGNvbG9yOiAjOTk5O1xuXHR9XG59XG48L3N0eWxlPlxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///215\n"); /***/ }), /* 216 */ @@ -20003,7 +20003,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../store/index.js */ 148));\nvar _utils = _interopRequireDefault(__webpack_require__(/*! ../utils/utils.js */ 146));\nvar _api = __webpack_require__(/*! ./api.js */ 151);\nvar HOST = location && location.origin;\nvar _default = function _default() {\n var readBaseUrl = Object({\"NODE_ENV\":\"development\",\"VUE_APP_DARK_MODE\":\"false\",\"VUE_APP_NAME\":\"中鼎云医\",\"VUE_APP_PLATFORM\":\"app-plus\",\"BASE_URL\":\"/\"}).bcUrl;\n // 初始化请求配置\n uni.$u.http.setConfig(function (config) {\n if (readBaseUrl) {\n config.baseURL = readBaseUrl; // 测试地址\n }\n\n config.baseURL = _api.baseUrl; // 测试地址\n\n return config;\n });\n\n // 请求拦截\n uni.$u.http.interceptors.request.use(function (config) {\n // 可使用async await 做异步操作\n\n if (!config.baseURL) {\n config.url = '/' + config.url;\n }\n config.data = config.data || {};\n config.baseURL = 'https://ai.agrimedia.cn/'; // 不使用请求代理 上线记得注释掉 ***********************************************************\n\n var apiToken = _index.default.getters['api/getApiToken'];\n var serverTime = parseInt(Date.now() / 1000) - _index.default.getters['api/getServerTime'];\n config.header.systemType = 0;\n config.header.ApiToken = apiToken;\n // config.header.systemSn = utils.getSunmiSerial()\n config.header.timestamp = serverTime;\n var ob = config.method == 'GET' ? config.params : config.data;\n var custom = config.custom.hideLoading || false;\n if (!custom) {\n uni.showLoading({\n mask: true,\n title: \"加载中...\"\n });\n }\n return config;\n }, function (config) {\n // 可使用async await 做异步操作\n return Promise.reject(config);\n });\n\n // 响应拦截\n uni.$u.http.interceptors.response.use(function (response) {\n var _response$config;\n uni.hideLoading({});\n\n /* 对响应成功做点什么 可使用async await 做异步操作*/\n var data = response.data;\n var custom = (_response$config = response.config) === null || _response$config === void 0 ? void 0 : _response$config.custom;\n if (data.code !== 200) {\n if (data.code === 401 || data.code === 1005) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n\n // setTimeout(e => {\n // \tutils.goPath('/pages/login/login');\n // },1000)\n } else if (data.code === 400) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n } else if (data.code === 0) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n } else if (data.code === 7776) {\n _index.default.commit('api/setActiceDevice', {});\n }\n if (custom.toast !== false) {\n uni.$u.toast(data.msg);\n }\n if (data.code == 7777) {\n _index.default.commit('api/setApiToken', '');\n uni.showToast({\n mask: true,\n title: '请重新登录',\n icon: 'none'\n });\n setTimeout(function () {\n uni.reLaunch({\n url: '/pages/login/login'\n });\n }, 1000);\n }\n __f__(\"log\", response.config.url, \" at config/request.js:108\");\n return Promise.reject(data);\n }\n return data.data === undefined ? {} : data.data;\n }, function (response) {\n uni.showToast({\n mask: true,\n title: '服务器响应失败' + response.statusCode,\n icon: 'none'\n });\n return Promise.reject(response);\n });\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL3JlcXVlc3QuanMiXSwibmFtZXMiOlsiSE9TVCIsImxvY2F0aW9uIiwib3JpZ2luIiwicmVhZEJhc2VVcmwiLCJwcm9jZXNzIiwiYmNVcmwiLCJ1bmkiLCIkdSIsImh0dHAiLCJzZXRDb25maWciLCJjb25maWciLCJiYXNlVVJMIiwiYmFzZVVybCIsImludGVyY2VwdG9ycyIsInJlcXVlc3QiLCJ1c2UiLCJ1cmwiLCJkYXRhIiwiYXBpVG9rZW4iLCJzdG9yZSIsImdldHRlcnMiLCJzZXJ2ZXJUaW1lIiwicGFyc2VJbnQiLCJEYXRlIiwibm93IiwiaGVhZGVyIiwic3lzdGVtVHlwZSIsIkFwaVRva2VuIiwidGltZXN0YW1wIiwib2IiLCJtZXRob2QiLCJwYXJhbXMiLCJjdXN0b20iLCJoaWRlTG9hZGluZyIsInNob3dMb2FkaW5nIiwibWFzayIsInRpdGxlIiwiUHJvbWlzZSIsInJlamVjdCIsInJlc3BvbnNlIiwiY29kZSIsInNob3dUb2FzdCIsIm1zZyIsImljb24iLCJjb21taXQiLCJ0b2FzdCIsInNldFRpbWVvdXQiLCJyZUxhdW5jaCIsInVuZGVmaW5lZCIsInN0YXR1c0NvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRUE7QUFFQSxJQUFNQSxJQUFJLEdBQUdDLFFBQVEsSUFBSUEsUUFBUSxDQUFDQyxNQUFNO0FBQUEsZUFDekIsb0JBQU07RUFDcEIsSUFBSUMsV0FBVyxHQUFHQyxpSUFBVyxDQUFDQyxLQUFLO0VBQ25DO0VBQ0FDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxVQUFDQyxNQUFNLEVBQUs7SUFDakMsSUFBR1AsV0FBVyxFQUFFO01BQ2ZPLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHUixXQUFXLENBQUMsQ0FBRTtJQUNoQzs7SUFHQ08sTUFBTSxDQUFDQyxPQUFPLEdBQUdDLFlBQU8sQ0FBQyxDQUFFOztJQUU1QixPQUFPRixNQUFNO0VBQ2QsQ0FBQyxDQUFD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QUFFO0lBQ1AsQ0FBQyxDQUFDO0lBQ0YsT0FBT04sT0FBTyxDQUFDQyxNQUFNLENBQUNDLFFBQVEsQ0FBQztFQUNoQyxDQUFDLENBQUM7QUFDSCxDQUFDO0FBQUEsMkIiLCJmaWxlIjoiNDIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0b3JlIGZyb20gXCIuLi9zdG9yZS9pbmRleC5qc1wiO1xuaW1wb3J0IHV0aWxzIGZyb20gXCIuLi91dGlscy91dGlscy5qc1wiO1xuXG5pbXBvcnQgeyBiYXNlVXJsIH0gZnJvbSBcIi4vYXBpLmpzXCI7XG5cbmNvbnN0IEhPU1QgPSBsb2NhdGlvbiAmJiBsb2NhdGlvbi5vcmlnaW4gXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG5cdGxldCByZWFkQmFzZVVybCA9IHByb2Nlc3MuZW52LmJjVXJsXG5cdC8vIOWIneWni+WMluivt+axgumFjee9rlxuXHR1bmkuJHUuaHR0cC5zZXRDb25maWcoKGNvbmZpZykgPT4ge1xuXHRcdGlmKHJlYWRCYXNlVXJsICl7XG5cdFx0XHRjb25maWcuYmFzZVVSTCA9IHJlYWRCYXNlVXJsOyAgLy8g5rWL6K+V5Zyw5Z2AXG5cdFx0fVxuXHRcdFxuXG5cdFx0XHRjb25maWcuYmFzZVVSTCA9IGJhc2VVcmw7ICAvLyDmtYvor5XlnLDlnYBcblxuXHRcdHJldHVybiBjb25maWdcblx0fSk7XG5cdFxuXHRcblx0Ly8g6K+35rGC5oum5oiqXG5cdHVuaS4kdS5odHRwLmludGVyY2VwdG9ycy5yZXF1ZXN0LnVzZSgoY29uZmlnKSA9PiB7IC8vIOWPr+S9v+eUqGFzeW5jIGF3YWl0IOWBmuW8guatpeaTjeS9nFxuXHRcdFxuXHRcdFxuXHRcdGlmKCFjb25maWcuYmFzZVVSTCl7XG5cdFx0XHRjb25maWcudXJsID0gJy8nK2NvbmZpZy51cmxcblx0XHR9XG5cdFx0XG5cdFx0Y29uZmlnLmRhdGEgPSBjb25maWcuZGF0YSB8fCB7fTtcblx0XHRjb25maWcuYmFzZVVSTCA9ICdodHRwczovL2FpLmFncmltZWRpYS5jbi8nOyAgLy8g5LiN5L2/55So6K+35rGC5Luj55CGICDkuIrnur/orrDlvpfms6jph4rmjokgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0XHRcblx0XHRsZXQgYXBpVG9rZW4gPSBzdG9yZS5nZXR0ZXJzWydhcGkvZ2V0QXBpVG9rZW4nXVxuXHRcdGxldCBzZXJ2ZXJUaW1lID0gKHBhcnNlSW50KERhdGUubm93KCkgLzEwMDApIC0gc3RvcmUuZ2V0dGVyc1snYXBpL2dldFNlcnZlclRpbWUnXSlcblx0XHRcblx0XHRjb25maWcuaGVhZGVyLnN5c3RlbVR5cGUgPSAwO1xuXHRcdGNvbmZpZy5oZWFkZXIuQXBpVG9rZW4gPSBhcGlUb2tlblxuXHRcdC8vIGNvbmZpZy5oZWFkZXIuc3lzdGVtU24gPSB1dGlscy5nZXRTdW5taVNlcmlhbCgpXG5cdFx0Y29uZmlnLmhlYWRlci50aW1lc3RhbXAgPSBzZXJ2ZXJUaW1lXG5cdFx0bGV0IG9iID0gKGNvbmZpZy5tZXRob2QgPT0gJ0dFVCc/IGNvbmZpZy5wYXJhbXMgOiBjb25maWcuZGF0YSlcblx0XHRjb25zdCBjdXN0b20gPSBjb25maWcuY3VzdG9tLmhpZGVMb2FkaW5nIHx8IGZhbHNlXG5cdFx0aWYoIWN1c3RvbSl7XG5cdFx0XHR1bmkuc2hvd0xvYWRpbmcoe1xuXHRcdFx0XHRtYXNrOiB0cnVlLFxuXHRcdFx0XHR0aXRsZTpcIuWKoOi9veS4rS4uLlwiXG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0XG5cdFx0cmV0dXJuIGNvbmZpZ1xuXHR9LCBjb25maWcgPT4geyAvLyDlj6/kvb/nlKhhc3luYyBhd2FpdCDlgZrlvILmraXmk43kvZxcblx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoY29uZmlnKVxuXHR9KVxuXG5cdC8vIOWTjeW6lOaLpuaIqlxuXHR1bmkuJHUuaHR0cC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKChyZXNwb25zZSkgPT4ge1xuXHRcdFxuXHRcdHVuaS5oaWRlTG9hZGluZyh7fSk7XG5cdFx0XG5cdFx0Lyog5a+55ZON5bqU5oiQ5Yqf5YGa54K55LuA5LmIIOWPr+S9v+eUqGFzeW5jIGF3YWl0IOWBmuW8guatpeaTjeS9nCovXG5cdFx0Y29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGFcblx0XHRjb25zdCBjdXN0b20gPSByZXNwb25zZS5jb25maWc/LmN1c3RvbVxuXHRcdFxuXHRcdGlmIChkYXRhLmNvZGUgIT09IDIwMCkge1xuXHRcdFx0aWYgKGRhdGEuY29kZSA9PT0gNDAxIHx8IGRhdGEuY29kZSA9PT0gMTAwNSkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRtYXNrOiB0cnVlLFxuXHRcdFx0XHRcdHRpdGxlOmRhdGEubXNnLFxuXHRcdFx0XHRcdGljb246J25vbmUnXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRcblx0XHRcdFx0Ly8gc2V0VGltZW91dChlID0+IHtcblx0XHRcdFx0Ly8gXHR1dGlscy5nb1BhdGgoJy9wYWdlcy9sb2dpbi9sb2dpbicpO1xuXHRcdFx0XHQvLyB9LDEwMDApXG5cdFx0XHR9IGVsc2UgaWYgKGRhdGEuY29kZSA9PT0gNDAwKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdG1hc2s6IHRydWUsXG5cdFx0XHRcdFx0dGl0bGU6IGRhdGEubXNnLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0fSBlbHNlIGlmIChkYXRhLmNvZGUgPT09IDApIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0bWFzazogdHJ1ZSxcblx0XHRcdFx0XHR0aXRsZTogZGF0YS5tc2csXG5cdFx0XHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0XHRcdH0pXG5cdFx0XHR9ZWxzZSBpZiAoZGF0YS5jb2RlID09PSA3Nzc2KSB7XG5cdFx0XHRcdHN0b3JlLmNvbW1pdCgnYXBpL3NldEFjdGljZURldmljZScsIHt9KVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRpZiAoY3VzdG9tLnRvYXN0ICE9PSBmYWxzZSkge1xuXHRcdFx0XHR1bmkuJHUudG9hc3QoZGF0YS5tc2cpXG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGlmIChkYXRhLmNvZGUgPT0gNzc3Nykge1xuXHRcdFx0XHRzdG9yZS5jb21taXQoJ2FwaS9zZXRBcGlUb2tlbicsJycpXG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdG1hc2s6IHRydWUsXG5cdFx0XHRcdFx0dGl0bGU6ICfor7fph43mlrDnmbvlvZUnLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR1bmkucmVMYXVuY2goe1xuXHRcdFx0XHRcdFx0dXJsOiAnL3BhZ2VzL2xvZ2luL2xvZ2luJ1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0sIDEwMDApXG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGNvbnNvbGUubG9nKHJlc3BvbnNlLmNvbmZpZy51cmwpXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoZGF0YSlcblx0XHR9XG5cdFx0cmV0dXJuIGRhdGEuZGF0YSA9PT0gdW5kZWZpbmVkID8ge30gOiBkYXRhLmRhdGE7XG5cdH0sIChyZXNwb25zZSkgPT4ge1xuXHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0bWFzazogdHJ1ZSxcblx0XHRcdHRpdGxlOiAn5pyN5Yqh5Zmo5ZON5bqU5aSx6LSlJyArIHJlc3BvbnNlLnN0YXR1c0NvZGUsXG5cdFx0XHRpY29uOiAnbm9uZSdcblx0XHR9KVxuXHRcdHJldHVybiBQcm9taXNlLnJlamVjdChyZXNwb25zZSlcblx0fSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///423\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 1);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../store/index.js */ 148));\nvar _utils = _interopRequireDefault(__webpack_require__(/*! ../utils/utils.js */ 146));\nvar _api = __webpack_require__(/*! ./api.js */ 151);\nvar HOST = location && location.origin;\nvar _default = function _default() {\n var readBaseUrl = Object({\"NODE_ENV\":\"development\",\"VUE_APP_DARK_MODE\":\"false\",\"VUE_APP_NAME\":\"中鼎云医\",\"VUE_APP_PLATFORM\":\"app-plus\",\"BASE_URL\":\"/\"}).bcUrl;\n // 初始化请求配置\n uni.$u.http.setConfig(function (config) {\n if (readBaseUrl) {\n config.baseURL = readBaseUrl; // 测试地址\n }\n\n config.baseURL = _api.baseUrl; // 测试地址\n\n return config;\n });\n\n // 请求拦截\n uni.$u.http.interceptors.request.use(function (config) {\n // 可使用async await 做异步操作\n\n if (!config.baseURL) {\n config.url = '/' + config.url;\n }\n config.data = config.data || {};\n // config.baseURL = 'https://ai.agrimedia.cn/'; // 不使用请求代理 上线记得注释掉 ***********************************************************\n // config.baseURL = 'http://test.sc2.agrimedia.cn';\n\n var apiToken = _index.default.getters['api/getApiToken'];\n var serverTime = parseInt(Date.now() / 1000) - _index.default.getters['api/getServerTime'];\n config.header.systemType = 0;\n config.header.ApiToken = apiToken;\n // config.header.systemSn = utils.getSunmiSerial()\n config.header.timestamp = serverTime;\n var ob = config.method == 'GET' ? config.params : config.data;\n var custom = config.custom.hideLoading || false;\n if (!custom) {\n uni.showLoading({\n mask: true,\n title: \"加载中...\"\n });\n }\n return config;\n }, function (config) {\n // 可使用async await 做异步操作\n return Promise.reject(config);\n });\n\n // 响应拦截\n uni.$u.http.interceptors.response.use(function (response) {\n var _response$config;\n uni.hideLoading({});\n\n /* 对响应成功做点什么 可使用async await 做异步操作*/\n var data = response.data;\n var custom = (_response$config = response.config) === null || _response$config === void 0 ? void 0 : _response$config.custom;\n if (data.code !== 200) {\n if (data.code === 401 || data.code === 1005) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n\n // setTimeout(e => {\n // \tutils.goPath('/pages/login/login');\n // },1000)\n } else if (data.code === 400) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n } else if (data.code === 0) {\n uni.showToast({\n mask: true,\n title: data.msg,\n icon: 'none'\n });\n } else if (data.code === 7776) {\n _index.default.commit('api/setActiceDevice', {});\n }\n if (custom.toast !== false) {\n uni.$u.toast(data.msg);\n }\n if (data.code == 7777) {\n _index.default.commit('api/setApiToken', '');\n uni.showToast({\n mask: true,\n title: '请重新登录',\n icon: 'none'\n });\n setTimeout(function () {\n uni.reLaunch({\n url: '/pages/login/login'\n });\n }, 1000);\n }\n __f__(\"log\", response.config.url, \" at config/request.js:109\");\n return Promise.reject(data);\n }\n return data.data === undefined ? {} : data.data;\n }, function (response) {\n uni.showToast({\n mask: true,\n title: '服务器响应失败' + response.statusCode,\n icon: 'none'\n });\n return Promise.reject(response);\n });\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 15)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vY29uZmlnL3JlcXVlc3QuanMiXSwibmFtZXMiOlsiSE9TVCIsImxvY2F0aW9uIiwib3JpZ2luIiwicmVhZEJhc2VVcmwiLCJwcm9jZXNzIiwiYmNVcmwiLCJ1bmkiLCIkdSIsImh0dHAiLCJzZXRDb25maWciLCJjb25maWciLCJiYXNlVVJMIiwiYmFzZVVybCIsImludGVyY2VwdG9ycyIsInJlcXVlc3QiLCJ1c2UiLCJ1cmwiLCJkYXRhIiwiYXBpVG9rZW4iLCJzdG9yZSIsImdldHRlcnMiLCJzZXJ2ZXJUaW1lIiwicGFyc2VJbnQiLCJEYXRlIiwibm93IiwiaGVhZGVyIiwic3lzdGVtVHlwZSIsIkFwaVRva2VuIiwidGltZXN0YW1wIiwib2IiLCJtZXRob2QiLCJwYXJhbXMiLCJjdXN0b20iLCJoaWRlTG9hZGluZyIsInNob3dMb2FkaW5nIiwibWFzayIsInRpdGxlIiwiUHJvbWlzZSIsInJlamVjdCIsInJlc3BvbnNlIiwiY29kZSIsInNob3dUb2FzdCIsIm1zZyIsImljb24iLCJjb21taXQiLCJ0b2FzdCIsInNldFRpbWVvdXQiLCJyZUxhdW5jaCIsInVuZGVmaW5lZCIsInN0YXR1c0NvZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRUE7QUFFQSxJQUFNQSxJQUFJLEdBQUdDLFFBQVEsSUFBSUEsUUFBUSxDQUFDQyxNQUFNO0FBQUEsZUFDekIsb0JBQU07RUFDcEIsSUFBSUMsV0FBVyxHQUFHQyxpSUFBVyxDQUFDQyxLQUFLO0VBQ25DO0VBQ0FDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxVQUFDQyxNQUFNLEVBQUs7SUFDakMsSUFBR1AsV0FBVyxFQUFFO01BQ2ZPLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHUixXQUFXLENBQUMsQ0FBRTtJQUNoQzs7SUFHQ08sTUFBTSxDQUFDQyxPQUFPLEdBQUdDLFlBQU8sQ0FBQyxDQUFFOztJQUU1QixPQUFPRixNQUFNO0VBQ2QsQ0FBQyxDQUFDOztFQUdGO0VBQ0FKLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxJQUFJLENBQUNLLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHLENBQUMsVUFBQ0wsTUFBTSxFQUFLO0lBQUU7O0lBR2xELElBQUcsQ0FBQ0EsTUFBTSxDQUFDQyxPQUFPLEVBQUM7TUFDbEJELE1BQU0sQ0FBQ00sR0FBRyxHQUFHLEdBQUcsR0FBQ04sTUFBTSxDQUFDTSxHQUFHO0lBQzVCO0lBRUFOLE1BQU0sQ0FBQ08sSUFBSSxHQUFHUCxNQUFNLENBQUNPLElBQUksSUFBSSxDQUFDLENBQUM7SUFDL0I7SUFDQTs7SUFFQSxJQUFJQyxRQUFRLEdBQUdDLGNBQUssQ0FBQ0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQy9DLElBQUlDLFVBQVUsR0FBSUMsUUFBUSxDQUFDQyxJQUFJLENBQUNDLEdBQUcsRUFBRSxHQUFFLElBQUksQ0FBQyxHQUFHTCxjQUFLLENBQUNDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBRTtJQUVsRlYsTUFBTSxDQUFDZSxNQUFNLENBQUNDLFVBQVUsR0FBRyxDQUFDO0lBQzVCaEIsTUFBTSxDQUFDZSxNQUFNLENBQUNFLFFBQVEsR0FBR1QsUUFBUTtJQUNqQztJQUNBUixNQUFNLENBQUNlLE1BQU0sQ0FBQ0csU0FBUyxHQUFHUCxVQUFVO0lBQ3BDLElBQUlRLEVBQUUsR0FBSW5CLE1BQU0sQ0FBQ29CLE1BQU0sSUFBSSxLQUFLLEdBQUVwQixNQUFNLENBQUNxQixNQUFNLEdBQUdyQixNQUFNLENBQUNPLElBQUs7SUFDOUQsSUFBTWUsTUFBTSxHQUFHdEIsTUFBTSxDQUFDc0IsTUFBTSxDQUFDQyxXQUFXLElBQUksS0FBSztJQUNqRCxJQUFHLENBQUNELE1BQU0sRUFBQztNQUNWMUIsR0FBRyxDQUFDNEIsV0FBVyxDQUFDO1FBQ2ZDLElBQUksRUFBRSxJQUFJO1FBQ1ZDLEtBQUssRUFBQztNQUNQLENBQUMsQ0FBQztJQUNIO0lBRUEsT0FBTzFCLE1BQU07RUFDZCxDQUFDLEVBQUUsVUFBQUEsTUFBTSxFQUFJO0lBQUU7SUFDZCxPQUFPMkIsT0FBTyxDQUFDQyxNQUFNLENBQUM1QixNQUFNLENBQUM7RUFDOUIsQ0FBQyxDQUFDOztFQUVGO0VBQ0FKLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxJQUFJLENBQUNLLFlBQVksQ0FBQzBCLFFBQVEsQ0FBQ3hCLEdBQUcsQ0FBQyxVQUFDd0IsUUFBUSxFQUFLO0lBQUE7SUFFbkRqQyxHQUFHLENBQUMyQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7O0lBRW5CO0lBQ0EsSUFBTWhCLElBQUksR0FBR3NCLFFBQVEsQ0FBQ3RCLElBQUk7SUFDMUIsSUFBTWUsTUFBTSx1QkFBR08sUUFBUSxDQUFDN0IsTUFBTSxxREFBZixpQkFBaUJzQixNQUFNO0lBRXRDLElBQUlmLElBQUksQ0FBQ3VCLElBQUksS0FBSyxHQUFHLEVBQUU7TUFDdEIsSUFBSXZCLElBQUksQ0FBQ3VCLElBQUksS0FBSyxHQUFHLElBQUl2QixJQUFJLENBQUN1QixJQUFJLEtBQUssSUFBSSxFQUFFO1FBQzVDbEMsR0FBRyxDQUFDbUMsU0FBUyxDQUFDO1VBQ2JOLElBQUksRUFBRSxJQUFJO1VBQ1ZDLEtBQUssRUFBQ25CLElBQUksQ0FBQ3lCLEdBQUc7VUFDZEMsSUFBSSxFQUFDO1FBQ04sQ0FBQyxDQUFDOztRQUVGO1FBQ0E7UUFDQTtNQUNELENBQUMsTUFBTSxJQUFJMUIsSUFBSSxDQUFDdUIsSUFBSSxLQUFLLEdBQUcsRUFBRTtRQUM3QmxDLEdBQUcsQ0FBQ21DLFNBQVMsQ0FBQztVQUNiTixJQUFJLEVBQUUsSUFBSTtVQUNWQyxLQUFLLEVBQUVuQixJQUFJLENBQUN5QixHQUFHO1VBQ2ZDLElBQUksRUFBRTtRQUNQLENBQUMsQ0FBQztNQUNILENBQUMsTUFBTSxJQUFJMUIsSUFBSSxDQUFDdUIsSUFBSSxLQUFLLENBQUMsRUFBRTtRQUMzQmxDLEdBQUcsQ0FBQ21DLFNBQVMsQ0FBQztVQUNiTixJQUFJLEVBQUUsSUFBSTtVQUNWQyxLQUFLLEVBQUVuQixJQUFJLENBQUN5QixHQUFHO1VBQ2ZDLElBQUksRUFBRTtRQUNQLENBQUMsQ0FBQztNQUNILENBQUMsTUFBSyxJQUFJMUIsSUFBSSxDQUFDdUIsSUFBSSxLQUFLLElBQUksRUFBRTtRQUM3QnJCLGNBQUssQ0FBQ3lCLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztNQUN4QztNQUVBLElBQUlaLE1BQU0sQ0FBQ2EsS0FBSyxLQUFLLEtBQUssRUFBRTtRQUMzQnZDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDc0MsS0FBSyxDQUFDNUIsSUFBSSxDQUFDeUIsR0FBRyxDQUFDO01BQ3ZCO01BRUEsSUFBSXpCLElBQUksQ0FBQ3VCLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDdEJyQixjQUFLLENBQUN5QixNQUFNLENBQUMsaUJBQWlCLEVBQUMsRUFBRSxDQUFDO1FBQ2xDdEMsR0FBRyxDQUFDbUMsU0FBUyxDQUFDO1VBQ2JOLElBQUksRUFBRSxJQUFJO1VBQ1ZDLEtBQUssRUFBRSxPQUFPO1VBQ2RPLElBQUksRUFBRTtRQUNQLENBQUMsQ0FBQztRQUNGRyxVQUFVLENBQUMsWUFBTTtVQUNoQnhDLEdBQUcsQ0FBQ3lDLFFBQVEsQ0FBQztZQUNaL0IsR0FBRyxFQUFFO1VBQ04sQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQztNQUNUO01BRUEsYUFBWXVCLFFBQVEsQ0FBQzdCLE1BQU0sQ0FBQ00sR0FBRztNQUMvQixPQUFPcUIsT0FBTyxDQUFDQyxNQUFNLENBQUNyQixJQUFJLENBQUM7SUFDNUI7SUFDQSxPQUFPQSxJQUFJLENBQUNBLElBQUksS0FBSytCLFNBQVMsR0FBRyxDQUFDLENBQUMsR0FBRy9CLElBQUksQ0FBQ0EsSUFBSTtFQUNoRCxDQUFDLEVBQUUsVUFBQ3NCLFFBQVEsRUFBSztJQUNoQmpDLEdBQUcsQ0FBQ21DLFNBQVMsQ0FBQztNQUNiTixJQUFJLEVBQUUsSUFBSTtNQUNWQyxLQUFLLEVBQUUsU0FBUyxHQUFHRyxRQUFRLENBQUNVLFVBQVU7TUFDdENOLElBQUksRUFBRTtJQUNQLENBQUMsQ0FBQztJQUNGLE9BQU9OLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLENBQUM7RUFDaEMsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUFBLDJCIiwiZmlsZSI6IjQyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdG9yZSBmcm9tIFwiLi4vc3RvcmUvaW5kZXguanNcIjtcbmltcG9ydCB1dGlscyBmcm9tIFwiLi4vdXRpbHMvdXRpbHMuanNcIjtcblxuaW1wb3J0IHsgYmFzZVVybCB9IGZyb20gXCIuL2FwaS5qc1wiO1xuXG5jb25zdCBIT1NUID0gbG9jYXRpb24gJiYgbG9jYXRpb24ub3JpZ2luIFxuZXhwb3J0IGRlZmF1bHQgKCkgPT4ge1xuXHRsZXQgcmVhZEJhc2VVcmwgPSBwcm9jZXNzLmVudi5iY1VybFxuXHQvLyDliJ3lp4vljJbor7fmsYLphY3nva5cblx0dW5pLiR1Lmh0dHAuc2V0Q29uZmlnKChjb25maWcpID0+IHtcblx0XHRpZihyZWFkQmFzZVVybCApe1xuXHRcdFx0Y29uZmlnLmJhc2VVUkwgPSByZWFkQmFzZVVybDsgIC8vIOa1i+ivleWcsOWdgFxuXHRcdH1cblx0XHRcblxuXHRcdFx0Y29uZmlnLmJhc2VVUkwgPSBiYXNlVXJsOyAgLy8g5rWL6K+V5Zyw5Z2AXG5cblx0XHRyZXR1cm4gY29uZmlnXG5cdH0pO1xuXHRcblx0XG5cdC8vIOivt+axguaLpuaIqlxuXHR1bmkuJHUuaHR0cC5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoKGNvbmZpZykgPT4geyAvLyDlj6/kvb/nlKhhc3luYyBhd2FpdCDlgZrlvILmraXmk43kvZxcblx0XHRcblx0XHRcblx0XHRpZighY29uZmlnLmJhc2VVUkwpe1xuXHRcdFx0Y29uZmlnLnVybCA9ICcvJytjb25maWcudXJsXG5cdFx0fVxuXHRcdFxuXHRcdGNvbmZpZy5kYXRhID0gY29uZmlnLmRhdGEgfHwge307XG5cdFx0Ly8gY29uZmlnLmJhc2VVUkwgPSAnaHR0cHM6Ly9haS5hZ3JpbWVkaWEuY24vJzsgIC8vIOS4jeS9v+eUqOivt+axguS7o+eQhiAg5LiK57q/6K6w5b6X5rOo6YeK5o6JICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdFx0Ly8gY29uZmlnLmJhc2VVUkwgPSAnaHR0cDovL3Rlc3Quc2MyLmFncmltZWRpYS5jbic7XG5cdFx0XG5cdFx0bGV0IGFwaVRva2VuID0gc3RvcmUuZ2V0dGVyc1snYXBpL2dldEFwaVRva2VuJ11cblx0XHRsZXQgc2VydmVyVGltZSA9IChwYXJzZUludChEYXRlLm5vdygpIC8xMDAwKSAtIHN0b3JlLmdldHRlcnNbJ2FwaS9nZXRTZXJ2ZXJUaW1lJ10pXG5cdFx0XG5cdFx0Y29uZmlnLmhlYWRlci5zeXN0ZW1UeXBlID0gMDtcblx0XHRjb25maWcuaGVhZGVyLkFwaVRva2VuID0gYXBpVG9rZW5cblx0XHQvLyBjb25maWcuaGVhZGVyLnN5c3RlbVNuID0gdXRpbHMuZ2V0U3VubWlTZXJpYWwoKVxuXHRcdGNvbmZpZy5oZWFkZXIudGltZXN0YW1wID0gc2VydmVyVGltZVxuXHRcdGxldCBvYiA9IChjb25maWcubWV0aG9kID09ICdHRVQnPyBjb25maWcucGFyYW1zIDogY29uZmlnLmRhdGEpXG5cdFx0Y29uc3QgY3VzdG9tID0gY29uZmlnLmN1c3RvbS5oaWRlTG9hZGluZyB8fCBmYWxzZVxuXHRcdGlmKCFjdXN0b20pe1xuXHRcdFx0dW5pLnNob3dMb2FkaW5nKHtcblx0XHRcdFx0bWFzazogdHJ1ZSxcblx0XHRcdFx0dGl0bGU6XCLliqDovb3kuK0uLi5cIlxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiBjb25maWdcblx0fSwgY29uZmlnID0+IHsgLy8g5Y+v5L2/55SoYXN5bmMgYXdhaXQg5YGa5byC5q2l5pON5L2cXG5cdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGNvbmZpZylcblx0fSlcblxuXHQvLyDlk43lupTmi6bmiKpcblx0dW5pLiR1Lmh0dHAuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZSgocmVzcG9uc2UpID0+IHtcblx0XHRcblx0XHR1bmkuaGlkZUxvYWRpbmcoe30pO1xuXHRcdFxuXHRcdC8qIOWvueWTjeW6lOaIkOWKn+WBmueCueS7gOS5iCDlj6/kvb/nlKhhc3luYyBhd2FpdCDlgZrlvILmraXmk43kvZwqL1xuXHRcdGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhXG5cdFx0Y29uc3QgY3VzdG9tID0gcmVzcG9uc2UuY29uZmlnPy5jdXN0b21cblx0XHRcblx0XHRpZiAoZGF0YS5jb2RlICE9PSAyMDApIHtcblx0XHRcdGlmIChkYXRhLmNvZGUgPT09IDQwMSB8fCBkYXRhLmNvZGUgPT09IDEwMDUpIHtcblx0XHRcdFx0dW5pLnNob3dUb2FzdCh7XG5cdFx0XHRcdFx0bWFzazogdHJ1ZSxcblx0XHRcdFx0XHR0aXRsZTpkYXRhLm1zZyxcblx0XHRcdFx0XHRpY29uOidub25lJ1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0XG5cdFx0XHRcdC8vIHNldFRpbWVvdXQoZSA9PiB7XG5cdFx0XHRcdC8vIFx0dXRpbHMuZ29QYXRoKCcvcGFnZXMvbG9naW4vbG9naW4nKTtcblx0XHRcdFx0Ly8gfSwxMDAwKVxuXHRcdFx0fSBlbHNlIGlmIChkYXRhLmNvZGUgPT09IDQwMCkge1xuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRtYXNrOiB0cnVlLFxuXHRcdFx0XHRcdHRpdGxlOiBkYXRhLm1zZyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdH0gZWxzZSBpZiAoZGF0YS5jb2RlID09PSAwKSB7XG5cdFx0XHRcdHVuaS5zaG93VG9hc3Qoe1xuXHRcdFx0XHRcdG1hc2s6IHRydWUsXG5cdFx0XHRcdFx0dGl0bGU6IGRhdGEubXNnLFxuXHRcdFx0XHRcdGljb246ICdub25lJ1xuXHRcdFx0XHR9KVxuXHRcdFx0fWVsc2UgaWYgKGRhdGEuY29kZSA9PT0gNzc3Nikge1xuXHRcdFx0XHRzdG9yZS5jb21taXQoJ2FwaS9zZXRBY3RpY2VEZXZpY2UnLCB7fSlcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0aWYgKGN1c3RvbS50b2FzdCAhPT0gZmFsc2UpIHtcblx0XHRcdFx0dW5pLiR1LnRvYXN0KGRhdGEubXNnKVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRpZiAoZGF0YS5jb2RlID09IDc3NzcpIHtcblx0XHRcdFx0c3RvcmUuY29tbWl0KCdhcGkvc2V0QXBpVG9rZW4nLCcnKVxuXHRcdFx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdFx0XHRtYXNrOiB0cnVlLFxuXHRcdFx0XHRcdHRpdGxlOiAn6K+36YeN5paw55m75b2VJyxcblx0XHRcdFx0XHRpY29uOiAnbm9uZSdcblx0XHRcdFx0fSlcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0dW5pLnJlTGF1bmNoKHtcblx0XHRcdFx0XHRcdHVybDogJy9wYWdlcy9sb2dpbi9sb2dpbidcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9LCAxMDAwKVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRjb25zb2xlLmxvZyhyZXNwb25zZS5jb25maWcudXJsKVxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGRhdGEpXG5cdFx0fVxuXHRcdHJldHVybiBkYXRhLmRhdGEgPT09IHVuZGVmaW5lZCA/IHt9IDogZGF0YS5kYXRhO1xuXHR9LCAocmVzcG9uc2UpID0+IHtcblx0XHR1bmkuc2hvd1RvYXN0KHtcblx0XHRcdG1hc2s6IHRydWUsXG5cdFx0XHR0aXRsZTogJ+acjeWKoeWZqOWTjeW6lOWksei0pScgKyByZXNwb25zZS5zdGF0dXNDb2RlLFxuXHRcdFx0aWNvbjogJ25vbmUnXG5cdFx0fSlcblx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QocmVzcG9uc2UpXG5cdH0pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///423\n"); /***/ }) ],[[0,"app-config"]]]); \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js index f7bc271..a539704 100644 --- a/unpackage/dist/dev/app-plus/app-view.js +++ b/unpackage/dist/dev/app-plus/app-view.js @@ -12460,7 +12460,7 @@ if(false) {} var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 13); exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.i, "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\n *\n */\n/**\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\n *\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\n */\n/* 颜色变量 */\n/* 行为相关颜色 */\n/* 文字基本颜色 */\n/* 背景颜色 */\n/* 边框颜色 */\n/* 尺寸变量 */\n/* 文字尺寸 */\n/* 图片尺寸 */\n/* Border Radius */\n/* 水平间距 */\n/* 垂直间距 */\n/* 透明度 */\n/* 文章场景相关 */\n.end[data-v-0b42eb78] {\n text-align: center;\n margin-top: 50rpx;\n margin-bottom: 100rpx;\n opacity: .5;\n}\n.pop-close[data-v-0b42eb78] {\n display: flex;\n flex-direction: row-reverse;\n font-size: 100rpx;\n padding-right: 50rpx;\n}\n.pop-main[data-v-0b42eb78] {\n width: 100%;\n height: 100vh;\n background-color: #fff;\n overflow-y: scroll;\n padding: 50rpx;\n}\n.pops[data-v-0b42eb78] {\n border: 1rpx solid gray;\n border-radius: 20rpx;\n margin: 50rpx;\n margin-top: 100rpx;\n}\n.box1[data-v-0b42eb78] {\n position: absolute;\n left: 0px;\n width: 3000rpx;\n}\n.box2[data-v-0b42eb78] {\n position: absolute;\n left: 0px;\n width: 3000rpx;\n}\n.myScoll[data-v-0b42eb78] {\n width: 100%;\n height: 396rpx;\n white-space: nowrap;\n position: relative;\n}\n.list[data-v-0b42eb78] {\n background-color: #fff;\n overflow: hidden;\n padding: 30rpx;\n margin: 30rpx 30rpx;\n border-radius: 30rpx;\n}\n.dxxl[data-v-0b42eb78] {\n background-color: #fff;\n padding: 20rpx;\n padding-top: 40rpx;\n}\n.sl_box[data-v-0b42eb78] {\n text-align: center;\n}\n.sl_box .all[data-v-0b42eb78] {\n width: calc(100% / 3);\n margin-top: 40rpx;\n}\n.sl_box .sl_box_cankao[data-v-0b42eb78],\n.sl_box .sl_box_desc[data-v-0b42eb78] {\n font-size: 24rpx;\n color: #999;\n}\n.sl_box .sl_box_unit[data-v-0b42eb78] {\n font-size: 26rpx;\n}\n.sl_box .sl_box_wz[data-v-0b42eb78] {\n margin-right: 10rpx;\n font-size: 30rpx;\n font-weight: bold;\n}\n", ""]); +exports.push([module.i, "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App\n *\n */\n/**\n * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能\n *\n * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件\n */\n/* 颜色变量 */\n/* 行为相关颜色 */\n/* 文字基本颜色 */\n/* 背景颜色 */\n/* 边框颜色 */\n/* 尺寸变量 */\n/* 文字尺寸 */\n/* 图片尺寸 */\n/* Border Radius */\n/* 水平间距 */\n/* 垂直间距 */\n/* 透明度 */\n/* 文章场景相关 */\n.end[data-v-0b42eb78] {\n text-align: center;\n margin-top: 50rpx;\n margin-bottom: 100rpx;\n opacity: .5;\n}\n.pop-close[data-v-0b42eb78] {\n display: flex;\n flex-direction: row-reverse;\n font-size: 100rpx;\n padding-right: 50rpx;\n}\n.pop-main[data-v-0b42eb78] {\n width: 100%;\n height: 100vh;\n background-color: #fff;\n overflow-y: scroll;\n padding: 50rpx;\n}\n.pops[data-v-0b42eb78] {\n border: 1rpx solid gray;\n border-radius: 20rpx;\n margin: 50rpx 200rpx;\n margin-top: 100rpx;\n padding: 0rpx 50rpx;\n}\n.box1[data-v-0b42eb78] {\n position: absolute;\n left: 0px;\n width: 3000rpx;\n}\n.box2[data-v-0b42eb78] {\n position: absolute;\n left: 0px;\n width: 3000rpx;\n}\n.myScoll[data-v-0b42eb78] {\n width: 100%;\n height: 396rpx;\n white-space: nowrap;\n position: relative;\n}\n.list[data-v-0b42eb78] {\n background-color: #fff;\n overflow: hidden;\n padding: 30rpx;\n margin: 30rpx 30rpx;\n border-radius: 30rpx;\n}\n.dxxl[data-v-0b42eb78] {\n background-color: #fff;\n padding: 20rpx;\n padding-top: 40rpx;\n}\n.sl_box[data-v-0b42eb78] {\n text-align: center;\n}\n.sl_box .all[data-v-0b42eb78] {\n width: calc(100% / 3);\n margin-top: 40rpx;\n}\n.sl_box .sl_box_cankao[data-v-0b42eb78],\n.sl_box .sl_box_desc[data-v-0b42eb78] {\n font-size: 24rpx;\n color: #999;\n}\n.sl_box .sl_box_unit[data-v-0b42eb78] {\n font-size: 26rpx;\n}\n.sl_box .sl_box_wz[data-v-0b42eb78] {\n margin-right: 10rpx;\n font-size: 30rpx;\n font-weight: bold;\n}\n", ""]); // Exports module.exports = exports; diff --git a/unpackage/dist/dev/app-plus/hybrid/html/ai.html b/unpackage/dist/dev/app-plus/hybrid/html/ai.html index ab5bb89..23e42b7 100644 --- a/unpackage/dist/dev/app-plus/hybrid/html/ai.html +++ b/unpackage/dist/dev/app-plus/hybrid/html/ai.html @@ -65,7 +65,6 @@ var scrollWidth = document.getElementById(p).offsetWidth; var textWidth = document.getElementById(s).offsetWidth; var i = scrollWidth; - console.log(scrollWidth, textWidth); function change() { i--; if (i < -textWidth) { @@ -309,7 +308,7 @@ // 判断关键字是否存在 const result = parseHealthQuery(params.msg); - + console.log(result, '判断关键字是否存在') if (result) { DetailDay(result.dataKey, result.date).then(res => { let TargetData = res.data.data; @@ -321,7 +320,7 @@ }) } - Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的${result.dataKey}数据为${JSON.stringify(TargetData)},(data_msg为值,hour_minute为检测时间) #限制:回复用户的内容中不要出现“[]”。#限制:回复不要带英文,要都转化成汉语。#限制:回复内容控制在150字。#限制:忽略“压力指数、疲劳指数、心肌炎风险、冠心病风险和动脉硬化”等数据。` + Question = `请模仿全科医生的口吻与我: ${user}对话,我最近测量的${result.dataKey}数据为${JSON.stringify(TargetData)}, #提示:data_msg为值,hour_minute为检测时间。#提示:“[]”表示数据为空,请在小程序上传数据。#限制:回复不要带英文,要都转化成汉语。#限制:回复内容控制在150字。#限制:忽略“压力指数、疲劳指数、心肌炎风险、冠心病风险和动脉硬化”等数据。` console.log(Question, '=========================') /* @@ -541,7 +540,6 @@ startRec.style.display = 'none'; endRec.style.display = 'none'; - console.log(endRec.style) showModal() }); @@ -659,7 +657,10 @@ totalTime --; if (totalTime <= 0) { // 停止倒计时 - console.log('计算结束') + startRec.style.display = 'block'; + endRec.style.display = 'none'; + statusTxt.value = ''; + voiceTxt.innerText = ''; clearInterval(countdown); replayVideoSegment(0, 60); } @@ -723,12 +724,16 @@ SleepDatas: "睡眠", bloodOxygen: "血氧", bloodPressure: '血压', - bloodLiquid: "血脂", meiTuo: '梅脱', pulseReat: '心率', bodyTemperature: '体温', ECGData: '心电图', - bodyData: '身体成分', + bloodLiquid: { + '血脂': true, + '血液成分': true, + '尿酸': true + }, + bodyData: '身体成分', stepIndex: '运动' }; } @@ -749,18 +754,36 @@ targetDate.setDate(day - 2); } - // 格式化日期为 YYYY-MM-DD const formattedDate = `${targetDate.getFullYear()}-${('0' + targetDate.getMonth()).slice(-2)}-${('0' + targetDate.getDate()).slice(-2)}`; - // 查找匹配的数据项键 - for (let key in demoData) { - if (query.includes(demoData[key])) { - return { - dataKey: key, - date: formattedDate - }; - } - } + // 创建一个辅助函数来检查 bloodLiquid 对象是否包含查询字符串 + function isBloodLiquidMatch(bloodLiquidData, query) { + for (let value in bloodLiquidData) { + if (value.includes(query)) { + return true; + } + } + return false; + } + + // 在查询逻辑中使用这个辅助函数 + for (let key in demoData) { + if (typeof demoData[key] === 'object' && key === 'bloodLiquid') { + if (isBloodLiquidMatch(demoData[key], query)) { + const formattedDate = new Date().toISOString().split('T')[0]; + return { + dataKey: key, + date: formattedDate + }; + } + } else if (typeof demoData[key] === 'string' && demoData[key].includes(query)) { + const formattedDate = new Date().toISOString().split('T')[0]; + return { + dataKey: key, + date: formattedDate + }; + } + } // 如果没有找到匹配的数据项,则返回null或错误信息(这里选择返回null) return null;