diff --git a/pages/mine/wallet/recharge/index.vue b/pages/mine/wallet/recharge/index.vue index f5b13b8..74ade5e 100644 --- a/pages/mine/wallet/recharge/index.vue +++ b/pages/mine/wallet/recharge/index.vue @@ -1,883 +1,911 @@ + .commonPageBox { + background-color: #fff !important; + } + \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index 01c978d..d6f89c0 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -25739,7 +25739,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _uTextarea = _interopRequireDefault(__webpack_require__(/*! ../u-textarea/u-textarea.vue */ 332));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ../u-textarea/props.js */ 337));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * 此组件存在的理由是,在nvue下,u--textarea被uni-app官方占用了,u-textarea在nvue中相当于textarea组件\n * 所以在nvue下,取名为u--textarea,内部其实还是u-textarea.vue,只不过做一层中转\n */\nvar _default = {\n name: 'u--textarea',\n mixins: [uni.$u.mpMixin, _props.default, uni.$u.mixin],\n components: {\n uvTextarea: _uTextarea.default\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LS10ZXh0YXJlYS91LS10ZXh0YXJlYS52dWUiXSwibmFtZXMiOlsibmFtZSIsIm1peGlucyIsInVuaSIsIiR1IiwibXBNaXhpbiIsInByb3BzIiwibWl4aW4iLCJjb21wb25lbnRzIiwidXZUZXh0YXJlYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQXNDQTtBQUNBO0FBdkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEEsZUFNZTtFQUNkQSxJQUFJLEVBQUUsYUFBYTtFQUNuQkMsTUFBTSxFQUFFLENBQUNDLEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxPQUFPLEVBQUVDLGNBQUssRUFBRUgsR0FBRyxDQUFDQyxFQUFFLENBQUNHLEtBQUssQ0FBQztFQUM3Q0MsVUFBVSxFQUFFO0lBQ1hDLFVBQVUsRUFBVkE7RUFDRDtBQUNELENBQUM7QUFBQSIsImZpbGUiOiIzMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG4vL1xuLy9cbi8vXG5cbi8qKlxuICog5q2k57uE5Lu25a2Y5Zyo55qE55CG55Sx5piv77yM5ZyobnZ1ZeS4i++8jHUtLXRleHRhcmVh6KKrdW5pLWFwcOWumOaWueWNoOeUqOS6hu+8jHUtdGV4dGFyZWHlnKhudnVl5Lit55u45b2T5LqOdGV4dGFyZWHnu4Tku7ZcbiAqIOaJgOS7peWcqG52dWXkuIvvvIzlj5blkI3kuLp1LS10ZXh0YXJlYe+8jOWGhemDqOWFtuWunui/mOaYr3UtdGV4dGFyZWEudnVl77yM5Y+q5LiN6L+H5YGa5LiA5bGC5Lit6L2sXG4gKi9cbmltcG9ydCB1dlRleHRhcmVhIGZyb20gJy4uL3UtdGV4dGFyZWEvdS10ZXh0YXJlYS52dWUnO1xuaW1wb3J0IHByb3BzIGZyb20gJy4uL3UtdGV4dGFyZWEvcHJvcHMuanMnXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICd1LS10ZXh0YXJlYScsXG5cdG1peGluczogW3VuaS4kdS5tcE1peGluLCBwcm9wcywgdW5pLiR1Lm1peGluXSxcblx0Y29tcG9uZW50czoge1xuXHRcdHV2VGV4dGFyZWFcblx0fSxcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///331\n"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _uTextarea = _interopRequireDefault(__webpack_require__(/*! ../u-textarea/u-textarea.vue */ 332));\nvar _props = _interopRequireDefault(__webpack_require__(/*! ../u-textarea/props.js */ 337));\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/**\n * 此组件存在的理由是,在nvue下,u--textarea被uni-app官方占用了,u-textarea在nvue中相当于textarea组件\n * 所以在nvue下,取名为u--textarea,内部其实还是u-textarea.vue,只不过做一层中转\n */\nvar _default = {\n name: 'u--textarea',\n mixins: [uni.$u.mpMixin, _props.default, uni.$u.mixin],\n components: {\n uvTextarea: _uTextarea.default\n }\n};\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vdW5pX21vZHVsZXMvdXZpZXctdWkvY29tcG9uZW50cy91LS10ZXh0YXJlYS91LS10ZXh0YXJlYS52dWUiXSwibmFtZXMiOlsibmFtZSIsIm1peGlucyIsImNvbXBvbmVudHMiLCJ1dlRleHRhcmVhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBc0NBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFMQTtBQUNBO0FBQ0E7QUFDQTtBQUhBLGVBTUE7RUFDQUE7RUFDQUM7RUFDQUM7SUFDQUM7RUFDQTtBQUNBO0FBQUEiLCJmaWxlIjoiMzMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx1dlRleHRhcmVhXHJcblx0XHQ6dmFsdWU9XCJ2YWx1ZVwiXHJcblx0XHQ6cGxhY2Vob2xkZXI9XCJwbGFjZWhvbGRlclwiXHJcblx0XHQ6aGVpZ2h0PVwiaGVpZ2h0XCJcclxuXHRcdDpjb25maXJtVHlwZT1cImNvbmZpcm1UeXBlXCJcclxuXHRcdDpkaXNhYmxlZD1cImRpc2FibGVkXCJcclxuXHRcdDpjb3VudD1cImNvdW50XCJcclxuXHRcdDpmb2N1cz1cImZvY3VzXCJcclxuXHRcdDphdXRvSGVpZ2h0PVwiYXV0b0hlaWdodFwiXHJcblx0XHQ6Zml4ZWQ9XCJmaXhlZFwiXHJcblx0XHQ6Y3Vyc29yU3BhY2luZz1cImN1cnNvclNwYWNpbmdcIlxyXG5cdFx0OmN1cnNvcj1cImN1cnNvclwiXHJcblx0XHQ6c2hvd0NvbmZpcm1CYXI9XCJzaG93Q29uZmlybUJhclwiXHJcblx0XHQ6c2VsZWN0aW9uU3RhcnQ9XCJzZWxlY3Rpb25TdGFydFwiXHJcblx0XHQ6c2VsZWN0aW9uRW5kPVwic2VsZWN0aW9uRW5kXCJcclxuXHRcdDphZGp1c3RQb3NpdGlvbj1cImFkanVzdFBvc2l0aW9uXCJcclxuXHRcdDpkaXNhYmxlRGVmYXVsdFBhZGRpbmc9XCJkaXNhYmxlRGVmYXVsdFBhZGRpbmdcIlxyXG5cdFx0OmhvbGRLZXlib2FyZD1cImhvbGRLZXlib2FyZFwiXHJcblx0XHQ6bWF4bGVuZ3RoPVwibWF4bGVuZ3RoXCJcclxuXHRcdDpib3JkZXI9XCJib3JkZXJcIlxyXG5cdFx0OmN1c3RvbVN0eWxlPVwiY3VzdG9tU3R5bGVcIlxyXG5cdFx0OmZvcm1hdHRlcj1cImZvcm1hdHRlclwiXHJcblx0XHQ6aWdub3JlQ29tcG9zaXRpb25FdmVudD1cImlnbm9yZUNvbXBvc2l0aW9uRXZlbnRcIlxyXG5cdFx0QGZvY3VzPVwiZSA9PiAkZW1pdCgnZm9jdXMnKVwiXHJcblx0XHRAYmx1cj1cImUgPT4gJGVtaXQoJ2JsdXInKVwiXHJcblx0XHRAbGluZWNoYW5nZT1cImUgPT4gJGVtaXQoJ2xpbmVjaGFuZ2UnLCBlKVwiXHJcblx0XHRAY29uZmlybT1cImUgPT4gJGVtaXQoJ2NvbmZpcm0nKVwiXHJcblx0XHRAaW5wdXQ9XCJlID0+ICRlbWl0KCdpbnB1dCcsIGUpXCJcclxuXHRcdEBrZXlib2FyZGhlaWdodGNoYW5nZT1cImUgPT4gJGVtaXQoJ2tleWJvYXJkaGVpZ2h0Y2hhbmdlJylcIlxyXG5cdD48L3V2VGV4dGFyZWE+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5cdC8qKlxyXG5cdCAqIOatpOe7hOS7tuWtmOWcqOeahOeQhueUseaYr++8jOWcqG52dWXkuIvvvIx1LS10ZXh0YXJlYeiiq3VuaS1hcHDlrpjmlrnljaDnlKjkuobvvIx1LXRleHRhcmVh5ZyobnZ1ZeS4reebuOW9k+S6jnRleHRhcmVh57uE5Lu2XHJcblx0ICog5omA5Lul5ZyobnZ1ZeS4i++8jOWPluWQjeS4unUtLXRleHRhcmVh77yM5YaF6YOo5YW25a6e6L+Y5pivdS10ZXh0YXJlYS52dWXvvIzlj6rkuI3ov4flgZrkuIDlsYLkuK3ovaxcclxuXHQgKi9cclxuXHRpbXBvcnQgdXZUZXh0YXJlYSBmcm9tICcuLi91LXRleHRhcmVhL3UtdGV4dGFyZWEudnVlJztcclxuXHRpbXBvcnQgcHJvcHMgZnJvbSAnLi4vdS10ZXh0YXJlYS9wcm9wcy5qcydcclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiAndS0tdGV4dGFyZWEnLFxyXG5cdFx0bWl4aW5zOiBbdW5pLiR1Lm1wTWl4aW4sIHByb3BzLCB1bmkuJHUubWl4aW5dLFxyXG5cdFx0Y29tcG9uZW50czoge1xyXG5cdFx0XHR1dlRleHRhcmVhXHJcblx0XHR9LFxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///331\n"); /***/ }), /* 332 */ @@ -40868,7 +40868,7 @@ var render = function () { "view", { style: _vm._$s(5, "s", "background:#000"), attrs: { _i: 5 } }, [ - _c("common-video", { + _c("common-video-ios", { ref: "commonVideo", attrs: { currentVideo: _vm.currentVideo, @@ -41019,7 +41019,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _list = _interopRequireDefault(__webpack_require__(/*! @/pages/component/commonComponents/list */ 218));\nvar _mp3Detail = _interopRequireDefault(__webpack_require__(/*! ./mp3Detail.vue */ 569));\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../price/index.vue */ 241));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\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 courseDescription: _list.default,\n //课程说明\n price: _index.default,\n //课程价格\n curriculumMp3: _mp3Detail.default //mp3\n },\n data: function data() {\n return {\n isFullScreen: false,\n screenLoading: false,\n isfresh: false,\n currentCateIndex: 0,\n currentVideo: {},\n videoList: {},\n isOpenMp3: false,\n praise: \"\",\n reward: \"\",\n commentLst: [],\n correlationiList: [\n // { name: \"点赞\", type: 'dianzan', icon: \"thumb-up-fill\", iconType: 'uview', iconSize: 22, color: '$themeColor' },\n //{ name: \"打赏\", type: 'dashang', icon: \"red-packet-fill\", iconType: 'uview', iconSize: 22, color: '#ff3d00' },\n //{ name: \"评论\", type: 'pinglun', icon: \"chat-fill\", iconType: 'uview', iconSize: 22 },\n ],\n options: {},\n videoArrayHW: [],\n videoArray: [],\n relatedCoursesList: [],\n //相关课程\n medicalCasesList: [],\n //相关医案\n curriculumData: {},\n curriculumInfo: {},\n fdButtonStyle: {\n width: \"120rpx\",\n \"border-color\": \"#000\",\n color: \"#000\",\n float: \"right\",\n \"margin-right\": \"20rpx\",\n \"margin-left\": \"30rpx\"\n },\n modalInfo: {},\n show: false,\n playData: {},\n taiHuClassInfo: {},\n searchValue: \"\",\n ordersTabs: [{\n name: \"视频教学\",\n type: \"1\"\n }, {\n name: \"文章简介\",\n type: \"2\"\n }],\n // 一级分类标题1\n cateList: [],\n // 一级分类标题1\n twoCateList: [],\n // 二级分类标题\n dataList: [],\n // 方剂标题\n allDataList: [],\n // 方剂标题\n currentStatusIndex: 0,\n // 当前选中的一级分类\n\n curTwoCateIndex: 0,\n // 当前选中的二级分类\n searchList: [],\n // 搜索结果数组\n showSearchList: false,\n userMes: {},\n // 用户信息\n searchDisable: false,\n // 搜索不可用\n limitShow: false,\n limitTitle: \"提示\",\n limitContent: \"\",\n scrollViewHeight: 0,\n urlList: {\n detail: \"sociology/course/getCourseCatalogueChapterDetail\",\n curriculumInfo: \"app/phone.do?getCourseInfo\"\n }\n };\n },\n onLoad: function onLoad(options) {\n this.options = options;\n this.getCourseDescriptionData();\n // plus.screen.lockOrientation(\"default\");\n this.screenLoading = false;\n this.currentCateIndex = 0;\n\n // plus.screen.unlockOrientation(); //解除锁定屏幕方向\n // plus.screen.lockOrientation(\"portrait-primary\");\n\n // this.getUserInfo()\n // this.getCateList()\n },\n onHide: function onHide() {\n // this.showSearchList = false\n // this.searchList = []\n },\n onShow: function onShow() {},\n computed: _objectSpread({}, (0, _vuex.mapState)([\"userInfo\"])),\n methods: {\n changeScreenLoading: function changeScreenLoading(status) {\n this.screenLoading = status;\n },\n changeScreen: function changeScreen(status) {\n this.isFullScreen = status;\n },\n ordersTabCLi: function ordersTabCLi(data) {\n __f__(\"log\", \"i at line 312:\", data, \" at pages/curriculum/order/curriculum/detail.vue:369\");\n this.currentCateIndex = data.index;\n this.$forceUpdate();\n },\n initVideo: function initVideo() {\n var _this = this;\n this.screenLoading = false;\n this.isfresh = false;\n this.$nextTick(function () {\n _this.isfresh = true;\n setTimeout(function () {\n _this.$refs.commonVideo.init({\n currentVideo: _this.currentVideo,\n currentVideoList: _this.videoArray\n });\n }, 200);\n });\n },\n changeVideo: function changeVideo(data) {\n if (data.id != this.currentVideo.id) {\n clearInterval(this.$store.state.videoTimer);\n __f__(\"log\", \"父页面是否触发了切换视屏呀:\", data.id, this.currentVideo.id, \" at pages/curriculum/order/curriculum/detail.vue:389\");\n this.currentVideo = data;\n // setTimeout(() => {\n\n this.$refs.commonVideo.changeVideo({\n currentVideo: data,\n currentVideoList: this.videoArray\n });\n // }, 200);\n // // handleEnd\n // this.$refs.commonVideo.handleEnd();\n\n // this.currentVideo = data;\n // this.initVideo();\n // this.isOpenMp3 = false;\n }\n\n __f__(\"log\", \"data at line 380111111111111111111:\", data.type, \" at pages/curriculum/order/curriculum/detail.vue:410\");\n\n // var mynavData = JSON.stringify(data); // 这里转换成 字符串\n\n // if (data.type == 0 || data.type == 2) {\n // //0 mp4 2 mp3\n // uni.navigateTo({\n // url: `/pages/curriculum/order/curriculum/videoDetail?data=${mynavData}`,\n // });\n // } else if (data.type == 1) {\n // //视频云点播\n // uni.navigateTo({\n // url: `/pages/curriculum/order/curriculum/videoDetailOss?data=${mynavData}`,\n // });\n // }\n\n // else if (data.type == 2) {\n // //mp3\n // this.isOpenMp3 = true;\n // this.$nextTick(() => {\n // this.$refs.mp3Detail.init({ data: mynavData });\n // });\n // }\n\n // uni.navigateTo({\n // // url: '../bookShop/commodityDetail?id=' + item.id\n // url: `/pages/curriculum/order/curriculum/detail?navTitle=${v.title}&title=${v.title}&oid=${v.oid}`,\n // });\n },\n hancleModalCancel: function hancleModalCancel() {\n this.show = false;\n },\n handleClickMore: function handleClickMore(v, i, status) {\n __f__(\"log\", \"i at line 357:\", i, \" at pages/curriculum/order/curriculum/detail.vue:443\");\n this.$set(this.correlationiList[i], \"isOpen\", status);\n // [i].=!this.correlationiList[i].isOpen;\n },\n hancleModalConfirm: function hancleModalConfirm() {\n var data = {\n values: _objectSpread({\n customerType: \"D\",\n token: uni.getStorageSync(\"token\"),\n customerOid: uni.getStorageSync(\"customerOid\")\n }, this.taiHuClassInfo)\n };\n // $mars.progressBegin('申请中...');\n // $mars.post(customerType, 'applyRelearn', data, function (ret) {\n // api.hideProgress();\n\n // fnLoadDataGrid();\n // });\n },\n //课程详情\n gotoDetail: function gotoDetail(v) {\n __f__(\"log\", v, \" at pages/curriculum/order/curriculum/detail.vue:466\");\n uni.navigateTo({\n // url: '../bookShop/commodityDetail?id=' + item.id\n url: \"/pages/curriculum/order/curriculum/detail?navTitle=\".concat(v.title, \"&title=\").concat(v.title, \"&oid=\").concat(v.oid)\n });\n },\n //相关课程\n goCourseDescription: function goCourseDescription(v) {\n __f__(\"log\", v, \" at pages/curriculum/order/curriculum/detail.vue:474\");\n uni.navigateTo({\n // url: '../bookShop/commodityDetail?id=' + item.id\n url: \"/pages/curriculum/order/curriculum/index?navTitle=\".concat(v.title, \"&title=\").concat(v.title, \"&id=\").concat(v.id)\n });\n },\n getCourseDescriptionData: function getCourseDescriptionData() {\n var _this2 = this;\n var data = {\n id: this.options.id,\n load: false\n // id: \"16457\",\n };\n\n var that = this;\n _requestConfig.default.request({\n // url: \"book/buyOrder/buySave\",\n url: \"sociology/course/getCourseCatalogueChapterDetail\",\n method: \"POST\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {\n var videoArray, videoArrayHW;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n __f__(\"log\", _this2.$store.state, \"11111111111\", \" at pages/curriculum/order/curriculum/detail.vue:500\");\n __f__(\"log\", \"res at line 491:\", res, \" at pages/curriculum/order/curriculum/detail.vue:501\");\n that.curriculumData = res.data.detail;\n that.videoArray = res.data.videos;\n if (that.videoArray.length > 0) {\n _this2.currentVideo = that.videoArray[0];\n _this2.initVideo();\n }\n // if (res.obj.correlatedList && res.obj.correlatedList.length > 0) {\n // this.relatedCoursesList =\n // res.obj.correlatedList && res.obj.correlatedList.length > 0\n // ? res.obj.correlatedList\n // : [];\n // this.medicalCasesList =\n // res.obj.dataList && res.obj.dataList.length > 0\n // ? res.obj.dataList\n // : [];\n // this.commentLst =\n // res.obj.commentLst && res.obj.commentLst.length > 0\n // ? res.obj.commentLst\n // : [];\n\n // this.praise = res.obj.praise\n // ? res.obj.praise\n // .split(\",\")\n // .filter((e) => e != \"\")\n // .join(\",\")\n // : \"\";\n // this.reward = res.obj.reward\n // ? res.obj.reward\n // .split(\",\")\n // .filter((e) => e != \"\")\n // .join(\",\")\n // : \"\";\n // correlatedListEl.innerHTML = courseDot(ret.correlatedList);\n // }\n videoArray = [];\n videoArrayHW = []; // break;\n // switch (that.curriculumData.videoType) {\n // case \"01\":\n // // allDataList\n // // voices\n // that.videoArray = res.obj.videos.split(\",\");\n // that.videoArrayHW = res.obj.videos.split(\",\");\n // if (res.obj.dataLst && res.obj.dataLst.length > 0) {\n // // dataGrid.innerHTML = dot(ret.dataLst);\n // }\n // break;\n // case \"02\":\n // that.videoArray = res.obj.videoId.split(\",\");\n // if (res.obj.dataLst && res.obj.dataLst.length > 0) {\n // // res.obj.dataLst\n // console.log(\"res.obj.dataLst at line 436:\", res.obj.dataLst);\n // }\n // break;\n // // console.log(this.dataList.length, 6666666)\n // break;\n // }\n // if (res.obj.w_videoIds != \"\") {\n // // 海外视频\n // // $mars.initAVDataHW(ret.oid,'1', 'videoHW', ret.w_videoIds, 'taiHuClass/');\n // that.videoArrayHW = res.obj.w_videoIds.split(\",\");\n // // if (ret.dataLst && ret.dataLst.length > 0) {\n // // dataGrid.innerHTML = dot(ret.dataLst);\n // // }\n // // if (ret.correlatedList && ret.correlatedList.length > 0) {\n // // correlatedListEl.innerHTML = courseDot(ret.correlatedList);\n // // }\n // }\n // that.cateList = res.obj.courseTabs\n // that.relatedCoursesList = res.obj.correlatedList\n // await that.handleselectCate({ ...this.cateList[0], index: 0 })\n // socket.init();\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n },\n getPriceData: function getPriceData() {\n var that = this;\n setTimeout(function () {\n that.$nextTick(function () {\n that.$refs.priceDetail.getData();\n });\n }, 100);\n },\n // 检查是有权限使用搜索功能\n checkDisable: function checkDisable() {\n __f__(\"log\", \"点击了\", \" at pages/curriculum/order/curriculum/detail.vue:599\");\n },\n // 显示无权限弹窗\n // showNoRights() {\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t\tthat.clear()\n // \t\t\t}\n // \t\t}\n // \t})\n // },\n // 获取用户详情\n getUserInfo: function getUserInfo() {\n var _this3 = this;\n // 用户详情\n if (this.userInfo.id != undefined) {\n this.$http.post(\"book/user/info/\" + this.userInfo.id).then(function (res) {\n _this3.userMes = res.user;\n _this3.getCateList();\n __f__(\"log\", _this3.userMes, \"呼呼\", \" at pages/curriculum/order/curriculum/detail.vue:623\");\n });\n }\n },\n handleselectCate: function handleselectCate(item, index) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var data, that;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this4.dataList = [];\n data = [];\n __f__(\"log\", item, index, 99999, \" at pages/curriculum/order/curriculum/detail.vue:631\");\n that = _this4; // curriculumInfo\n _this4.$http.post(_this4.urlList.curriculumInfo, {\n customerType: \"D\",\n token: uni.getStorageSync(\"token\"),\n customerOid: uni.getStorageSync(\"customerOid\"),\n oid: item.coid\n }).then( /*#__PURE__*/function () {\n var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(res) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n that.curriculumInfo = res.obj;\n that.dataList = res.obj.courseList;\n\n // socket.init();\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return function (_x2) {\n return _ref2.apply(this, arguments);\n };\n }());\n\n // this.$nextTick(() => {\n // switch (item.type) {\n // case 1:\n // // allDataList\n // this.dataList = that.allDataList.result1Lst\n // break;\n // case 2:\n // this.dataList = that.allDataList.result2Lst\n // break;\n // case 3:\n // this.dataList = that.allDataList.result3Lst\n // break;\n // case 4:\n // this.dataList = that.allDataList.result4Lst.filter(e =>\n // e.oid != '5fcf991c027b11e7ae62008cfae40c18' && e.oid != 'b3d8a938b8e147bc877613bb712a9cb3' && e.oid != '4d4730163135420ea962bfac4805e026' && e.oid != '49fb76ca3d6b43718d78c6aa9a3003c2' && e.oid != 'c7b047ed9246469b9ae2b1013fc3df9c'\n\n // )\n\n // console.log(this.dataList.length, 6666666)\n // break;\n\n // }\n\n // this.currentCateIndex = item.index\n // })\n __f__(\"log\", _this4.allDataList, _this4.dataList, \"1688\", \" at pages/curriculum/order/curriculum/detail.vue:675\");\n // if(this.userMes.tgdzPower == 0){\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"购买 针灸六经法要上册和下册 后方可使用此功能\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t}\n // \t\t}\n // \t})\n // \treturn\n // }\n // if(item.title == \"时辰取穴\"){\n // \tuni.navigateTo({\n // \t\turl: \"../timeAcupoint/timeAcupoint\"\n // \t})\n // \treturn\n // }\n\n // this.currentStatusIndex = index\n\n _this4.searchValue = \"\";\n _this4.searchList = [];\n _this4.showSearchList = false;\n // if (index != 2) {\n\n // uni.createSelectorQuery().select('.statusList').boundingClientRect(function (rect) {\n // \tvar height = rect.height\n // \tconsole.log('元素高度:',);\n\n // }).exec();\n\n // } else {\n // \tthis.getJFList(dictType)\n // }\n return _context3.abrupt(\"return\", data);\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n setOneCateIndex: function setOneCateIndex(item, index) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var that;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _this5.allDataList = [];\n __f__(\"log\", index, 99999, \" at pages/curriculum/order/curriculum/detail.vue:718\");\n that = _this5; // if(this.userMes.tgdzPower == 0){\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"购买 针灸六经法要上册和下册 后方可使用此功能\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t}\n // \t\t}\n // \t})\n // \treturn\n // }\n // if(item.title == \"时辰取穴\"){\n // \tuni.navigateTo({\n // \t\turl: \"../timeAcupoint/timeAcupoint\"\n // \t})\n // \treturn\n // }\n _this5.currentStatusIndex = index;\n // this.currentCateIndex = 0\n\n _this5.searchValue = \"\";\n _this5.searchList = [];\n _this5.showSearchList = false;\n _this5.$nextTick( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return that.getCourseDescriptionData();\n case 2:\n _this5.$forceUpdate();\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n })));\n\n // this.handleselectCate(this.cateList[this.currentCateIndex])\n // if (index != 2) {\n\n // uni.createSelectorQuery().select('.statusList').boundingClientRect(function (rect) {\n // \tvar height = rect.height\n // \tconsole.log('元素高度:',);\n\n // }).exec();\n\n // } else {\n // \tthis.getJFList(dictType)\n // }\n case 8:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n transformData: function transformData(inputData) {\n var result = {};\n inputData.forEach(function (item) {\n var letter = item.letter;\n if (!result[letter]) {\n result[letter] = [];\n }\n result[letter].push(item);\n });\n // const finalResult = Object.keys(result).map(key => ({ [key]: result[key] }));\n return result;\n },\n // getJFList(id) {\n // \t$http.request({\n // \t\turl: \"book/prescript/prescriptListForJF\",\n // \t\tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \t\tdata: {\n // \t\t\tloadAnimate: 'none', // 请求加载动画\n // \t\t\t'categoryId': id\n // \t\t},\n // \t\theader: { //默认 无 说明:请求头\n // \t\t\t'Content-Type': 'application/json'\n // \t\t},\n // \t}).then(res => {\n // \t\tif (res.code == 0 && res.list.length > 0) {\n // \t\t\tthis.twoCateList = []\n // \t\t\tthis.dataList = this.transformData(res.list)\n // \t\t\tconsole.log('JF经方', this.dataList)\n // \t\t} else {\n // \t\t\tthis.twoCateList = []\n // \t\t\tthis.dataList = []\n // \t\t}\n // \t}).catch(e => {\n // \t\tthis.twoCateList = []\n // \t\tthis.dataList = []\n // \t\tconsole.log(e)\n // \t})\n // },\n getCateList: function getCateList(id) {\n id ? \"\" : id = 0;\n this.twoCateList = [];\n this.curTwoCateIndex = 0;\n // 0为获取顶级分类,其他为搜索下级分类,目前的逻辑,顶级是写死的,所以可能只会涉及到搜索第二级\n // $http.request({\n // \turl: \"book/prescript/prescriptCategoryList\",\n // \tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \tdata: {\n // \t\tloadAnimate: 'none', // 请求加载动画\n // \t\t'categoryId': id\n // \t},\n // \theader: { //默认 无 说明:请求头\n // \t\t'Content-Type': 'application/json'\n // \t},\n // }).then(res => {\n // console.log(res, '脉穴分类获取成功')\n // if (res.code == 0 && res.list.length > 0) {\n // this.statusList = res.list\n // this.getTowCateList(this.statusList[0].type)\n // } else {\n // \tthis.statusList = []\n // }\n // }).catch(e => {\n // \tthis.statusList = []\n // \tconsole.log(e)\n // })\n },\n // 放大图片\n previewImage: function previewImage(url) {\n __f__(\"log\", url, \" at pages/curriculum/order/curriculum/detail.vue:837\");\n uni.previewImage({\n urls: [url],\n longPressActions: {\n itemList: [\"很抱歉,暂不支持保存图片到本地\"],\n success: function success(res) {\n // console.log(res,'+++++')\n }\n }\n });\n } // getSearch() {\n // \t$http.request({\n // \t\turl: \"book/prescript/searchPrescript\",\n // \t\tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \t\tdata: {\n // \t\t\tloadAnimate: 'none', // 请求加载动画\n // \t\t\t'keywords': this.searchValue,\n // \t\t\ttype: this.currentStatusIndex + 1\n // \t\t},\n // \t\theader: { //默认 无 说明:请求头\n // \t\t\t'Content-Type': 'application/json'\n // \t\t},\n // \t}).then(res => {\n // \t\tconsole.log(res, '搜索结果')\n // \t\tif (res.code == 0 && res.list.length >= 0) {\n // \t\t\tthis.showSearchList = true\n // \t\t\tthis.searchList = res.list\n // \t\t} else {\n // \t\t\tthis.searchList = []\n // \t\t}\n // \t}).catch(e => {\n // \t\t// this.dataList = []\n // \t\tthis.searchList = []\n // \t\tconsole.log(e)\n // \t})\n // },\n // search(res) {\n // \tconsole.log(res, 'res')\n // \t// uni.showToast({\n // \t// \ttitle: '搜索:' + res,\n // \t// \ticon: 'none'\n // \t// })\n // \tif (res == '') {\n // \t\tthis.showSearchList = false\n // \t\tthis.searchList = []\n // \t} else {\n // \t\tthis.getSearch()\n // \t}\n // },\n // input(res) {\n // \tconsole.log('----input:', res)\n // \tif (res == '') {\n // \t\tthis.searchList = []\n // \t} else {\n // \t\tthis.getSearch()\n // \t}\n // },\n // clear(res) {\n // \tconsole.log('----clear:', res)\n // \t// uni.showToast({\n // \t// \ttitle: 'clear事件,清除值为:',\n // \t// \ticon: 'none'\n // \t// })\n // \tthis.searchValue = ''\n // \tthis.showSearchList = false\n // },\n // blur(res) {\n // \t// console.log('----blur:', res)\n // \t// if (res == '') {\n // \t// \tthis.showSearchList = false\n // \t// \tthis.searchList = []\n // \t// } else {\n // \t// \tthis.getSearch()\n // \t// }\n // },\n // focus(e) {\n // \tconsole.log('----focus:')\n // \t// uni.showToast({\n // \t// \ttitle: 'focus事件,输出值为:' + e.value,\n // \t// \ticon: 'none'\n // \t// })\n // \t// 等于1 就是有权限\n // \t// this.showSearchList = true\n // },\n // cancel(res) {\n // \tuni.showToast({\n // \t\ttitle: '点击取消,输入值为:' + res.value,\n // \t\ticon: 'none'\n // \t})\n // }\n },\n onBackPress: function onBackPress() {\n plus.key.hideSoftKeybord();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY3VycmljdWx1bS9vcmRlci9jdXJyaWN1bHVtL2RldGFpbC52dWUiXSwibmFtZXMiOlsiY29tcG9uZW50cyIsImNvdXJzZURlc2NyaXB0aW9uIiwicHJpY2UiLCJjdXJyaWN1bHVtTXAzIiwiZGF0YSIsImlzRnVsbFNjcmVlbiIsInNjcmVlbkxvYWRpbmciLCJpc2ZyZXNoIiwiY3VycmVudENhdGVJbmRleCIsImN1cnJlbnRWaWRlbyIsInZpZGVvTGlzdCIsImlzT3Blbk1wMyIsInByYWlzZSIsInJld2FyZCIsImNvbW1lbnRMc3QiLCJjb3JyZWxhdGlvbmlMaXN0Iiwib3B0aW9ucyIsInZpZGVvQXJyYXlIVyIsInZpZGVvQXJyYXkiLCJyZWxhdGVkQ291cnNlc0xpc3QiLCJtZWRpY2FsQ2FzZXNMaXN0IiwiY3VycmljdWx1bURhdGEiLCJjdXJyaWN1bHVtSW5mbyIsImZkQnV0dG9uU3R5bGUiLCJ3aWR0aCIsImNvbG9yIiwiZmxvYXQiLCJtb2RhbEluZm8iLCJzaG93IiwicGxheURhdGEiLCJ0YWlIdUNsYXNzSW5mbyIsInNlYXJjaFZhbHVlIiwib3JkZXJzVGFicyIsIm5hbWUiLCJ0eXBlIiwiY2F0ZUxpc3QiLCJ0d29DYXRlTGlzdCIsImRhdGFMaXN0IiwiYWxsRGF0YUxpc3QiLCJjdXJyZW50U3RhdHVzSW5kZXgiLCJjdXJUd29DYXRlSW5kZXgiLCJzZWFyY2hMaXN0Iiwic2hvd1NlYXJjaExpc3QiLCJ1c2VyTWVzIiwic2VhcmNoRGlzYWJsZSIsImxpbWl0U2hvdyIsImxpbWl0VGl0bGUiLCJsaW1pdENvbnRlbnQiLCJzY3JvbGxWaWV3SGVpZ2h0IiwidXJsTGlzdCIsImRldGFpbCIsIm9uTG9hZCIsImdldENvdXJzZURlc2NyaXB0aW9uRGF0YSIsIm9uSGlkZSIsIm9uU2hvdyIsImNvbXB1dGVkIiwibWFwU3RhdGUiLCJtZXRob2RzIiwiY2hhbmdlU2NyZWVuTG9hZGluZyIsInN0YXR1cyIsImNoYW5nZVNjcmVlbiIsIm9yZGVyc1RhYkNMaSIsImluZGV4IiwiJGZvcmNlVXBkYXRlIiwiaW5pdFZpZGVvIiwiJG5leHRUaWNrIiwic2V0VGltZW91dCIsIiRyZWZzIiwiY29tbW9uVmlkZW8iLCJpbml0IiwiY3VycmVudFZpZGVvTGlzdCIsImNoYW5nZVZpZGVvIiwiaWQiLCJjbGVhckludGVydmFsIiwiJHN0b3JlIiwic3RhdGUiLCJ2aWRlb1RpbWVyIiwiaGFuY2xlTW9kYWxDYW5jZWwiLCJoYW5kbGVDbGlja01vcmUiLCJ2IiwiaSIsIiRzZXQiLCJoYW5jbGVNb2RhbENvbmZpcm0iLCJ2YWx1ZXMiLCJjdXN0b21lclR5cGUiLCJ0b2tlbiIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiY3VzdG9tZXJPaWQiLCJnb3RvRGV0YWlsIiwibmF2aWdhdGVUbyIsInVybCIsInRpdGxlIiwib2lkIiwiZ29Db3Vyc2VEZXNjcmlwdGlvbiIsImxvYWQiLCJ0aGF0IiwiJGh0dHAiLCJyZXF1ZXN0IiwibWV0aG9kIiwiaGVhZGVyIiwidGhlbiIsInJlcyIsInZpZGVvcyIsImxlbmd0aCIsImdldFByaWNlRGF0YSIsInByaWNlRGV0YWlsIiwiZ2V0RGF0YSIsImNoZWNrRGlzYWJsZSIsImdldFVzZXJJbmZvIiwidXNlckluZm8iLCJ1bmRlZmluZWQiLCJwb3N0IiwidXNlciIsImdldENhdGVMaXN0IiwiaGFuZGxlc2VsZWN0Q2F0ZSIsIml0ZW0iLCJjb2lkIiwib2JqIiwiY291cnNlTGlzdCIsInNldE9uZUNhdGVJbmRleCIsInRyYW5zZm9ybURhdGEiLCJpbnB1dERhdGEiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGV0dGVyIiwicHVzaCIsInByZXZpZXdJbWFnZSIsInVybHMiLCJsb25nUHJlc3NBY3Rpb25zIiwiaXRlbUxpc3QiLCJzdWNjZXNzIiwib25CYWNrUHJlc3MiLCJwbHVzIiwia2V5IiwiaGlkZVNvZnRLZXlib3JkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBK1BBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBZ0M7QUFBQTtB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QUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNGLENBQUM7RUFDRDhCLFdBQVcseUJBQUc7SUFFWkMsSUFBSSxDQUFDQyxHQUFHLENBQUNDLGVBQWUsRUFBRTtFQUU1QjtBQUNGLENBQUM7QUFBQSwyQiIsImZpbGUiOiI1NjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG5cclxuaW1wb3J0IGNvdXJzZURlc2NyaXB0aW9uIGZyb20gXCJAL3BhZ2VzL2NvbXBvbmVudC9jb21tb25Db21wb25lbnRzL2xpc3RcIjtcclxuaW1wb3J0IGN1cnJpY3VsdW1NcDMgZnJvbSBcIi4vbXAzRGV0YWlsLnZ1ZVwiO1xyXG5pbXBvcnQgcHJpY2UgZnJvbSBcIi4uL3ByaWNlL2luZGV4LnZ1ZVwiO1xyXG5cclxuaW1wb3J0ICRodHRwIGZyb20gXCJAL2NvbmZpZy9yZXF1ZXN0Q29uZmlnLmpzXCI7XHJcbmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSBcInZ1ZXhcIjtcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGNvdXJzZURlc2NyaXB0aW9uLCAvL+ivvueoi+ivtOaYjlxyXG4gICAgcHJpY2UsIC8v6K++56iL5Lu35qC8XHJcbiAgICBjdXJyaWN1bHVtTXAzLCAvL21wM1xyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlzRnVsbFNjcmVlbjogZmFsc2UsXHJcbiAgICAgIHNjcmVlbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICBpc2ZyZXNoOiBmYWxzZSxcclxuICAgICAgY3VycmVudENhdGVJbmRleDogMCxcclxuICAgICAgY3VycmVudFZpZGVvOiB7fSxcclxuICAgICAgdmlkZW9MaXN0OiB7fSxcclxuICAgICAgaXNPcGVuTXAzOiBmYWxzZSxcclxuICAgICAgcHJhaXNlOiBcIlwiLFxyXG4gICAgICByZXdhcmQ6IFwiXCIsXHJcbiAgICAgIGNvbW1lbnRMc3Q6IFtdLFxyXG4gICAgICBjb3JyZWxhdGlvbmlMaXN0OiBbXHJcbiAgICAgICAgLy8geyBuYW1lOiBcIueCuei1nlwiLCB0eXBlOiAnZGlhbnphbicsIGljb246IFwidGh1bWItdXAtZmlsbFwiLCBpY29uVHlwZTogJ3V2aWV3JywgaWNvblNpemU6IDIyLCBjb2xvcjogJyR0aGVtZUNvbG9yJyB9LFxyXG4gICAgICAgIC8veyBuYW1lOiBcIuaJk+i1j1wiLCB0eXBlOiAnZGFzaGFuZycsIGljb246IFwicmVkLXBhY2tldC1maWxsXCIsIGljb25UeXBlOiAndXZpZXcnLCBpY29uU2l6ZTogMjIsIGNvbG9yOiAnI2ZmM2QwMCcgfSxcclxuICAgICAgICAvL3sgbmFtZTogXCLor4TorrpcIiwgdHlwZTogJ3BpbmdsdW4nLCBpY29uOiBcImNoYXQtZmlsbFwiLCBpY29uVHlwZTogJ3V2aWV3JywgaWNvblNpemU6IDIyIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIG9wdGlvbnM6IHt9LFxyXG4gICAgICB2aWRlb0FycmF5SFc6IFtdLFxyXG4gICAgICB2aWRlb0FycmF5OiBbXSxcclxuICAgICAgcmVsYXRlZENvdXJzZXNMaXN0OiBbXSwgLy/nm7jlhbPor77nqItcclxuICAgICAgbWVkaWNhbENhc2VzTGlzdDogW10sIC8v55u45YWz5Yy75qGIXHJcbiAgICAgIGN1cnJpY3VsdW1EYXRhOiB7fSxcclxuICAgICAgY3VycmljdWx1bUluZm86IHt9LFxyXG4gICAgICBmZEJ1dHRvblN0eWxlOiB7XHJcbiAgICAgICAgd2lkdGg6IFwiMTIwcnB4XCIsXHJcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogXCIjMDAwXCIsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMFwiLFxyXG4gICAgICAgIGZsb2F0OiBcInJpZ2h0XCIsXHJcbiAgICAgICAgXCJtYXJnaW4tcmlnaHRcIjogXCIyMHJweFwiLFxyXG4gICAgICAgIFwibWFyZ2luLWxlZnRcIjogXCIzMHJweFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBtb2RhbEluZm86IHt9LFxyXG5cclxuICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgIHBsYXlEYXRhOiB7fSxcclxuICAgICAgdGFpSHVDbGFzc0luZm86IHt9LFxyXG4gICAgICBzZWFyY2hWYWx1ZTogXCJcIixcclxuICAgICAgb3JkZXJzVGFiczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwi6KeG6aKR5pWZ5a2mXCIsXHJcblxyXG4gICAgICAgICAgdHlwZTogXCIxXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIuaWh+eroOeugOS7i1wiLFxyXG4gICAgICAgICAgdHlwZTogXCIyXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSwgLy8g5LiA57qn5YiG57G75qCH6aKYMVxyXG4gICAgICBjYXRlTGlzdDogW10sIC8vIOS4gOe6p+WIhuexu+agh+mimDFcclxuICAgICAgdHdvQ2F0ZUxpc3Q6IFtdLCAvLyDkuoznuqfliIbnsbvmoIfpophcclxuICAgICAgZGF0YUxpc3Q6IFtdLCAvLyDmlrnliYLmoIfpophcclxuICAgICAgYWxsRGF0YUxpc3Q6IFtdLCAvLyDmlrnliYLmoIfpophcclxuICAgICAgY3VycmVudFN0YXR1c0luZGV4OiAwLCAvLyDlvZPliY3pgInkuK3nmoTkuIDnuqfliIbnsbtcclxuXHJcbiAgICAgIGN1clR3b0NhdGVJbmRleDogMCwgLy8g5b2T5YmN6YCJ5Lit55qE5LqM57qn5YiG57G7XHJcbiAgICAgIHNlYXJjaExpc3Q6IFtdLCAvLyDmkJzntKLnu5PmnpzmlbDnu4RcclxuICAgICAgc2hvd1NlYXJjaExpc3Q6IGZhbHNlLFxyXG4gICAgICB1c2VyTWVzOiB7fSwgLy8g55So5oi35L+h5oGvXHJcbiAgICAgIHNlYXJjaERpc2FibGU6IGZhbHNlLCAvLyDmkJzntKLkuI3lj6/nlKhcclxuICAgICAgbGltaXRTaG93OiBmYWxzZSxcclxuICAgICAgbGltaXRUaXRsZTogXCLmj5DnpLpcIixcclxuICAgICAgbGltaXRDb250ZW50OiBcIlwiLFxyXG4gICAgICBzY3JvbGxWaWV3SGVpZ2h0OiAwLFxyXG4gICAgICB1cmxMaXN0OiB7XHJcbiAgICAgICAgZGV0YWlsOiBcInNvY2lvbG9neS9jb3Vyc2UvZ2V0Q291cnNlQ2F0YWxvZ3VlQ2hhcHRlckRldGFpbFwiLFxyXG4gICAgICAgIGN1cnJpY3VsdW1JbmZvOiBcImFwcC9waG9uZS5kbz9nZXRDb3Vyc2VJbmZvXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgb25Mb2FkKG9wdGlvbnMpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmdldENvdXJzZURlc2NyaXB0aW9uRGF0YSgpO1xyXG4gICAgLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwiZGVmYXVsdFwiKTtcclxuICAgIHRoaXMuc2NyZWVuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jdXJyZW50Q2F0ZUluZGV4ID0gMDtcclxuXHJcbiAgICAvLyBwbHVzLnNjcmVlbi51bmxvY2tPcmllbnRhdGlvbigpOyAvL+ino+mZpOmUgeWumuWxj+W5leaWueWQkVxyXG4gICAgLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTtcclxuXHJcbiAgICAvLyB0aGlzLmdldFVzZXJJbmZvKClcclxuICAgIC8vIHRoaXMuZ2V0Q2F0ZUxpc3QoKVxyXG4gIH0sXHJcbiAgb25IaWRlKCkge1xyXG4gICAgLy8gdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlXHJcbiAgICAvLyB0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gIH0sXHJcbiAgb25TaG93KCkge1xyXG5cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdGF0ZShbXCJ1c2VySW5mb1wiXSksXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBjaGFuZ2VTY3JlZW5Mb2FkaW5nKHN0YXR1cykge1xyXG4gICAgICB0aGlzLnNjcmVlbkxvYWRpbmcgPSBzdGF0dXM7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlU2NyZWVuKHN0YXR1cykge1xyXG4gICAgICB0aGlzLmlzRnVsbFNjcmVlbiA9IHN0YXR1cztcclxuICAgIH0sXHJcbiAgICBvcmRlcnNUYWJDTGkoZGF0YSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImkgYXQgbGluZSAzMTI6XCIsIGRhdGEpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRDYXRlSW5kZXggPSBkYXRhLmluZGV4O1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgfSxcclxuICAgIGluaXRWaWRlbygpIHtcclxuICAgICAgdGhpcy5zY3JlZW5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNmcmVzaCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc2ZyZXNoID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuJHJlZnMuY29tbW9uVmlkZW8uaW5pdCh7XHJcbiAgICAgICAgICAgIGN1cnJlbnRWaWRlbzogdGhpcy5jdXJyZW50VmlkZW8sXHJcbiAgICAgICAgICAgIGN1cnJlbnRWaWRlb0xpc3Q6IHRoaXMudmlkZW9BcnJheSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGNoYW5nZVZpZGVvKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEuaWQgIT0gdGhpcy5jdXJyZW50VmlkZW8uaWQpIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgXCLniLbpobXpnaLmmK/lkKbop6blj5HkuobliIfmjaLop4blsY/lkYA6XCIsXHJcbiAgICAgICAgICBkYXRhLmlkLFxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50VmlkZW8uaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZpZGVvID0gZGF0YTtcclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy4kcmVmcy5jb21tb25WaWRlby5jaGFuZ2VWaWRlbyh7XHJcbiAgICAgICAgICBjdXJyZW50VmlkZW86IGRhdGEsXHJcbiAgICAgICAgICBjdXJyZW50VmlkZW9MaXN0OiB0aGlzLnZpZGVvQXJyYXksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gfSwgMjAwKTtcclxuICAgICAgICAvLyAgIC8vIGhhbmRsZUVuZFxyXG4gICAgICAgIC8vICAgdGhpcy4kcmVmcy5jb21tb25WaWRlby5oYW5kbGVFbmQoKTtcclxuXHJcbiAgICAgICAgLy8gICAgIHRoaXMuY3VycmVudFZpZGVvID0gZGF0YTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pbml0VmlkZW8oKTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pc09wZW5NcDMgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhIGF0IGxpbmUgMzgwMTExMTExMTExMTExMTExMTExOlwiLCBkYXRhLnR5cGUpO1xyXG5cclxuICAgICAgLy8gdmFyIG15bmF2RGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOyAvLyDov5nph4zovazmjaLmiJAg5a2X56ym5LiyXHJcblxyXG4gICAgICAvLyBpZiAoZGF0YS50eXBlID09IDAgfHwgZGF0YS50eXBlID09IDIpIHtcclxuICAgICAgLy8gICAvLzAgbXA0IDIgbXAzXHJcbiAgICAgIC8vICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyAgICAgdXJsOiBgL3BhZ2VzL2N1cnJpY3VsdW0vb3JkZXIvY3VycmljdWx1bS92aWRlb0RldGFpbD9kYXRhPSR7bXluYXZEYXRhfWAsXHJcbiAgICAgIC8vICAgfSk7XHJcbiAgICAgIC8vIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IDEpIHtcclxuICAgICAgLy8gICAvL+inhumikeS6keeCueaSrVxyXG4gICAgICAvLyAgIHVuaS5uYXZpZ2F0ZVRvKHtcclxuICAgICAgLy8gICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vdmlkZW9EZXRhaWxPc3M/ZGF0YT0ke215bmF2RGF0YX1gLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICAvLyAgIGVsc2UgaWYgKGRhdGEudHlwZSA9PSAyKSB7XHJcbiAgICAgIC8vICAgICAvL21wM1xyXG4gICAgICAvLyAgICAgdGhpcy5pc09wZW5NcDMgPSB0cnVlO1xyXG4gICAgICAvLyAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAvLyAgICAgICB0aGlzLiRyZWZzLm1wM0RldGFpbC5pbml0KHsgZGF0YTogbXluYXZEYXRhIH0pO1xyXG4gICAgICAvLyAgICAgfSk7XHJcbiAgICAgIC8vICAgfVxyXG5cclxuICAgICAgLy8gICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgIC8vICAgICAvLyB1cmw6ICcuLi9ib29rU2hvcC9jb21tb2RpdHlEZXRhaWw/aWQ9JyArIGl0ZW0uaWRcclxuICAgICAgLy8gICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vZGV0YWlsP25hdlRpdGxlPSR7di50aXRsZX0mdGl0bGU9JHt2LnRpdGxlfSZvaWQ9JHt2Lm9pZH1gLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgfSxcclxuICAgIGhhbmNsZU1vZGFsQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVDbGlja01vcmUodiwgaSwgc3RhdHVzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiaSBhdCBsaW5lIDM1NzpcIiwgaSk7XHJcbiAgICAgIHRoaXMuJHNldCh0aGlzLmNvcnJlbGF0aW9uaUxpc3RbaV0sIFwiaXNPcGVuXCIsIHN0YXR1cyk7XHJcbiAgICAgIC8vIFtpXS49IXRoaXMuY29ycmVsYXRpb25pTGlzdFtpXS5pc09wZW47XHJcbiAgICB9LFxyXG4gICAgaGFuY2xlTW9kYWxDb25maXJtKCkge1xyXG4gICAgICB2YXIgZGF0YSA9IHtcclxuICAgICAgICB2YWx1ZXM6IHtcclxuICAgICAgICAgIGN1c3RvbWVyVHlwZTogXCJEXCIsXHJcbiAgICAgICAgICB0b2tlbjogdW5pLmdldFN0b3JhZ2VTeW5jKFwidG9rZW5cIiksXHJcbiAgICAgICAgICBjdXN0b21lck9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKFwiY3VzdG9tZXJPaWRcIiksXHJcbiAgICAgICAgICAuLi50aGlzLnRhaUh1Q2xhc3NJbmZvLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICAgIC8vICRtYXJzLnByb2dyZXNzQmVnaW4oJ+eUs+ivt+S4rS4uLicpO1xyXG4gICAgICAvLyAkbWFycy5wb3N0KGN1c3RvbWVyVHlwZSwgJ2FwcGx5UmVsZWFybicsIGRhdGEsIGZ1bmN0aW9uIChyZXQpIHtcclxuICAgICAgLy8gICAgIGFwaS5oaWRlUHJvZ3Jlc3MoKTtcclxuXHJcbiAgICAgIC8vICAgICBmbkxvYWREYXRhR3JpZCgpO1xyXG4gICAgICAvLyB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy/or77nqIvor6bmg4VcclxuICAgIGdvdG9EZXRhaWwodikge1xyXG4gICAgICBjb25zb2xlLmxvZyh2KTtcclxuICAgICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAgIC8vIHVybDogJy4uL2Jvb2tTaG9wL2NvbW1vZGl0eURldGFpbD9pZD0nICsgaXRlbS5pZFxyXG4gICAgICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vZGV0YWlsP25hdlRpdGxlPSR7di50aXRsZX0mdGl0bGU9JHt2LnRpdGxlfSZvaWQ9JHt2Lm9pZH1gLFxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvL+ebuOWFs+ivvueoi1xyXG4gICAgZ29Db3Vyc2VEZXNjcmlwdGlvbih2KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHYpO1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgICAgLy8gdXJsOiAnLi4vYm9va1Nob3AvY29tbW9kaXR5RGV0YWlsP2lkPScgKyBpdGVtLmlkXHJcbiAgICAgICAgdXJsOiBgL3BhZ2VzL2N1cnJpY3VsdW0vb3JkZXIvY3VycmljdWx1bS9pbmRleD9uYXZUaXRsZT0ke3YudGl0bGV9JnRpdGxlPSR7di50aXRsZX0maWQ9JHt2LmlkfWAsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGdldENvdXJzZURlc2NyaXB0aW9uRGF0YSgpIHtcclxuICAgICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgaWQ6IHRoaXMub3B0aW9ucy5pZCxcclxuICAgICAgICBsb2FkOiBmYWxzZSxcclxuICAgICAgICAvLyBpZDogXCIxNjQ1N1wiLFxyXG4gICAgICB9O1xyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgICAkaHR0cFxyXG4gICAgICAgIC5yZXF1ZXN0KHtcclxuICAgICAgICAgIC8vIHVybDogXCJib29rL2J1eU9yZGVyL2J1eVNhdmVcIixcclxuICAgICAgICAgIHVybDogXCJzb2Npb2xvZ3kvY291cnNlL2dldENvdXJzZUNhdGFsb2d1ZUNoYXB0ZXJEZXRhaWxcIixcclxuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBoZWFkZXI6IHtcclxuICAgICAgICAgICAgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLiRzdG9yZS5zdGF0ZSwgXCIxMTExMTExMTExMVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVzIGF0IGxpbmUgNDkxOlwiLCByZXMpO1xyXG4gICAgICAgICAgdGhhdC5jdXJyaWN1bHVtRGF0YSA9IHJlcy5kYXRhLmRldGFpbDtcclxuICAgICAgICAgIHRoYXQudmlkZW9BcnJheSA9IHJlcy5kYXRhLnZpZGVvcztcclxuICAgICAgICAgIGlmICh0aGF0LnZpZGVvQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWRlbyA9IHRoYXQudmlkZW9BcnJheVswXTtcclxuICAgICAgICAgICAgdGhpcy5pbml0VmlkZW8oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGlmIChyZXMub2JqLmNvcnJlbGF0ZWRMaXN0ICYmIHJlcy5vYmouY29ycmVsYXRlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnJlbGF0ZWRDb3Vyc2VzTGlzdCA9XHJcbiAgICAgICAgICAvLyAgICAgcmVzLm9iai5jb3JyZWxhdGVkTGlzdCAmJiByZXMub2JqLmNvcnJlbGF0ZWRMaXN0Lmxlbmd0aCA+IDBcclxuICAgICAgICAgIC8vICAgICAgID8gcmVzLm9iai5jb3JyZWxhdGVkTGlzdFxyXG4gICAgICAgICAgLy8gICAgICAgOiBbXTtcclxuICAgICAgICAgIC8vICAgdGhpcy5tZWRpY2FsQ2FzZXNMaXN0ID1cclxuICAgICAgICAgIC8vICAgICByZXMub2JqLmRhdGFMaXN0ICYmIHJlcy5vYmouZGF0YUxpc3QubGVuZ3RoID4gMFxyXG4gICAgICAgICAgLy8gICAgICAgPyByZXMub2JqLmRhdGFMaXN0XHJcbiAgICAgICAgICAvLyAgICAgICA6IFtdO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmNvbW1lbnRMc3QgPVxyXG4gICAgICAgICAgLy8gICAgIHJlcy5vYmouY29tbWVudExzdCAmJiByZXMub2JqLmNvbW1lbnRMc3QubGVuZ3RoID4gMFxyXG4gICAgICAgICAgLy8gICAgICAgPyByZXMub2JqLmNvbW1lbnRMc3RcclxuICAgICAgICAgIC8vICAgICAgIDogW107XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5wcmFpc2UgPSByZXMub2JqLnByYWlzZVxyXG4gICAgICAgICAgLy8gICA/IHJlcy5vYmoucHJhaXNlXHJcbiAgICAgICAgICAvLyAgICAgICAuc3BsaXQoXCLvvIxcIilcclxuICAgICAgICAgIC8vICAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT0gXCJcIilcclxuICAgICAgICAgIC8vICAgICAgIC5qb2luKFwi77yMXCIpXHJcbiAgICAgICAgICAvLyAgIDogXCJcIjtcclxuICAgICAgICAgIC8vICB0aGlzLnJld2FyZCA9IHJlcy5vYmoucmV3YXJkXHJcbiAgICAgICAgICAvLyAgICA/IHJlcy5vYmoucmV3YXJkXHJcbiAgICAgICAgICAvLyAgICAgICAgLnNwbGl0KFwi77yMXCIpXHJcbiAgICAgICAgICAvLyAgICAgICAgLmZpbHRlcigoZSkgPT4gZSAhPSBcIlwiKVxyXG4gICAgICAgICAgLy8gICAgICAgLmpvaW4oXCLvvIxcIilcclxuICAgICAgICAgIC8vICAgOiBcIlwiO1xyXG4gICAgICAgICAgLy8gY29ycmVsYXRlZExpc3RFbC5pbm5lckhUTUwgPSBjb3Vyc2VEb3QocmV0LmNvcnJlbGF0ZWRMaXN0KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIHZhciB2aWRlb0FycmF5ID0gW107XHJcbiAgICAgICAgICB2YXIgdmlkZW9BcnJheUhXID0gW107XHJcblxyXG4gICAgICAgICAgLy8gYnJlYWs7XHJcblxyXG4gICAgICAgICAgLy8gICBzd2l0Y2ggKHRoYXQuY3VycmljdWx1bURhdGEudmlkZW9UeXBlKSB7XHJcbiAgICAgICAgICAvLyAgICAgY2FzZSBcIjAxXCI6XHJcbiAgICAgICAgICAvLyAgICAgICAvLyBhbGxEYXRhTGlzdFxyXG4gICAgICAgICAgLy8gICAgICAgLy8gdm9pY2VzXHJcblxyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5ID0gcmVzLm9iai52aWRlb3Muc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5SFcgPSByZXMub2JqLnZpZGVvcy5zcGxpdChcIixcIik7XHJcblxyXG4gICAgICAgICAgLy8gICAgICAgaWYgKHJlcy5vYmouZGF0YUxzdCAmJiByZXMub2JqLmRhdGFMc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgLy8gICAgICAgICAvLyBkYXRhR3JpZC5pbm5lckhUTUwgPSBkb3QocmV0LmRhdGFMc3QpO1xyXG4gICAgICAgICAgLy8gICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8gICAgIGNhc2UgXCIwMlwiOlxyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5ID0gcmVzLm9iai52aWRlb0lkLnNwbGl0KFwiLFwiKTtcclxuXHJcbiAgICAgICAgICAvLyAgICAgICBpZiAocmVzLm9iai5kYXRhTHN0ICYmIHJlcy5vYmouZGF0YUxzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgICAgIC8vIHJlcy5vYmouZGF0YUxzdFxyXG4gICAgICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhcInJlcy5vYmouZGF0YUxzdCBhdCBsaW5lIDQzNjpcIiwgcmVzLm9iai5kYXRhTHN0KTtcclxuICAgICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvLyAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGFMaXN0Lmxlbmd0aCwgNjY2NjY2NilcclxuICAgICAgICAgIC8vICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8gICB9XHJcblxyXG4gICAgICAgICAgLy8gICBpZiAocmVzLm9iai53X3ZpZGVvSWRzICE9IFwiXCIpIHtcclxuICAgICAgICAgIC8vICAgICAvLyDmtbflpJbop4bpopFcclxuICAgICAgICAgIC8vICAgICAvLyAkbWFycy5pbml0QVZEYXRhSFcocmV0Lm9pZCwnMScsICd2aWRlb0hXJywgcmV0LndfdmlkZW9JZHMsICd0YWlIdUNsYXNzLycpO1xyXG5cclxuICAgICAgICAgIC8vICAgICB0aGF0LnZpZGVvQXJyYXlIVyA9IHJlcy5vYmoud192aWRlb0lkcy5zcGxpdChcIixcIik7XHJcblxyXG4gICAgICAgICAgLy8gICAgIC8vIGlmIChyZXQuZGF0YUxzdCAmJiByZXQuZGF0YUxzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgLy8gICAgIGRhdGFHcmlkLmlubmVySFRNTCA9IGRvdChyZXQuZGF0YUxzdCk7XHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG5cclxuICAgICAgICAgIC8vICAgICAvLyBpZiAocmV0LmNvcnJlbGF0ZWRMaXN0ICYmIHJldC5jb3JyZWxhdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgLy8gICAgIGNvcnJlbGF0ZWRMaXN0RWwuaW5uZXJIVE1MID0gY291cnNlRG90KHJldC5jb3JyZWxhdGVkTGlzdCk7XHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG4gICAgICAgICAgLy8gICB9XHJcblxyXG4gICAgICAgICAgLy8gdGhhdC5jYXRlTGlzdCA9IHJlcy5vYmouY291cnNlVGFic1xyXG4gICAgICAgICAgLy8gdGhhdC5yZWxhdGVkQ291cnNlc0xpc3QgPSByZXMub2JqLmNvcnJlbGF0ZWRMaXN0XHJcbiAgICAgICAgICAvLyBhd2FpdCB0aGF0LmhhbmRsZXNlbGVjdENhdGUoeyAuLi50aGlzLmNhdGVMaXN0WzBdLCBpbmRleDogMCB9KVxyXG4gICAgICAgICAgLy8gc29ja2V0LmluaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBnZXRQcmljZURhdGEoKSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhhdC4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhhdC4kcmVmcy5wcmljZURldGFpbC5nZXREYXRhKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9LFxyXG4gICAgLy8g5qOA5p+l5piv5pyJ5p2D6ZmQ5L2/55So5pCc57Si5Yqf6IO9XHJcbiAgICBjaGVja0Rpc2FibGUoKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi54K55Ye75LqGXCIpO1xyXG4gICAgfSxcclxuICAgIC8vIOaYvuekuuaXoOadg+mZkOW8ueeql1xyXG4gICAgLy8gc2hvd05vUmlnaHRzKCkge1xyXG4gICAgLy8gXHRsZXQgdGhhdCA9IHRoaXNcclxuICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAvLyBcdFx0Y29udGVudDogXCJcIixcclxuICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAvLyBcdFx0c2hvd0NhbmNlbDogZmFsc2UsXHJcbiAgICAvLyBcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgIC8vIFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+eUqOaIt+eCueWHu+ehruWumicpO1xyXG4gICAgLy8gXHRcdFx0XHR0aGF0LmNsZWFyKClcclxuICAgIC8vIFx0XHRcdH1cclxuICAgIC8vIFx0XHR9XHJcbiAgICAvLyBcdH0pXHJcbiAgICAvLyB9LFxyXG4gICAgLy8g6I635Y+W55So5oi36K+m5oOFXHJcbiAgICBnZXRVc2VySW5mbygpIHtcclxuICAgICAgLy8g55So5oi36K+m5oOFXHJcbiAgICAgIGlmICh0aGlzLnVzZXJJbmZvLmlkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuJGh0dHAucG9zdChcImJvb2svdXNlci9pbmZvL1wiICsgdGhpcy51c2VySW5mby5pZCkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVzZXJNZXMgPSByZXMudXNlcjtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2F0ZUxpc3QoKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXNlck1lcywgXCLlkbzlkbxcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgYXN5bmMgaGFuZGxlc2VsZWN0Q2F0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLmRhdGFMaXN0ID0gW107XHJcbiAgICAgIHZhciBkYXRhID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKGl0ZW0sIGluZGV4LCA5OTk5OSk7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuXHJcbiAgICAgIC8vIGN1cnJpY3VsdW1JbmZvXHJcblxyXG4gICAgICB0aGlzLiRodHRwXHJcbiAgICAgICAgLnBvc3QodGhpcy51cmxMaXN0LmN1cnJpY3VsdW1JbmZvLCB7XHJcbiAgICAgICAgICBjdXN0b21lclR5cGU6IFwiRFwiLFxyXG4gICAgICAgICAgdG9rZW46IHVuaS5nZXRTdG9yYWdlU3luYyhcInRva2VuXCIpLFxyXG4gICAgICAgICAgY3VzdG9tZXJPaWQ6IHVuaS5nZXRTdG9yYWdlU3luYyhcImN1c3RvbWVyT2lkXCIpLFxyXG4gICAgICAgICAgb2lkOiBpdGVtLmNvaWQsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGF0LmN1cnJpY3VsdW1JbmZvID0gcmVzLm9iajtcclxuICAgICAgICAgIHRoYXQuZGF0YUxpc3QgPSByZXMub2JqLmNvdXJzZUxpc3Q7XHJcblxyXG4gICAgICAgICAgLy8gc29ja2V0LmluaXQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgLy8gICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgIC8vICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAvLyAgICAgICAgICAgICAvLyBhbGxEYXRhTGlzdFxyXG4gICAgICAvLyAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0ID0gdGhhdC5hbGxEYXRhTGlzdC5yZXN1bHQxTHN0XHJcbiAgICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAvLyAgICAgICAgIGNhc2UgMjpcclxuICAgICAgLy8gICAgICAgICAgICAgdGhpcy5kYXRhTGlzdCA9IHRoYXQuYWxsRGF0YUxpc3QucmVzdWx0MkxzdFxyXG4gICAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgICAgLy8gICAgICAgICBjYXNlIDM6XHJcbiAgICAgIC8vICAgICAgICAgICAgIHRoaXMuZGF0YUxpc3QgPSB0aGF0LmFsbERhdGFMaXN0LnJlc3VsdDNMc3RcclxuICAgICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAvLyAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0ID0gdGhhdC5hbGxEYXRhTGlzdC5yZXN1bHQ0THN0LmZpbHRlcihlID0+XHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICBlLm9pZCAhPSAnNWZjZjk5MWMwMjdiMTFlN2FlNjIwMDhjZmFlNDBjMTgnICYmIGUub2lkICE9ICdiM2Q4YTkzOGI4ZTE0N2JjODc3NjEzYmI3MTJhOWNiMycgJiYgZS5vaWQgIT0gJzRkNDczMDE2MzEzNTQyMGVhOTYyYmZhYzQ4MDVlMDI2JyAmJiBlLm9pZCAhPSAnNDlmYjc2Y2EzZDZiNDM3MThkNzhjNmFhOWEzMDAzYzInICYmIGUub2lkICE9ICdjN2IwNDdlZDkyNDY0NjliOWFlMmIxMDEzZmMzZGY5YydcclxuXHJcbiAgICAgIC8vICAgICAgICAgICAgIClcclxuXHJcbiAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YUxpc3QubGVuZ3RoLCA2NjY2NjY2KVxyXG4gICAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vICAgICB9XHJcblxyXG4gICAgICAvLyAgICAgdGhpcy5jdXJyZW50Q2F0ZUluZGV4ID0gaXRlbS5pbmRleFxyXG4gICAgICAvLyB9KVxyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmFsbERhdGFMaXN0LCB0aGlzLmRhdGFMaXN0LCBcIjE2ODhcIik7XHJcbiAgICAgIC8vIGlmKHRoaXMudXNlck1lcy50Z2R6UG93ZXIgPT0gMCl7XHJcbiAgICAgIC8vIFx0bGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAgIC8vIFx0XHRjb250ZW50OiBcIui0reS5sCDpkojngbjlha3nu4/ms5XopoHkuIrlhozlkozkuIvlhowg5ZCO5pa55Y+v5L2/55So5q2k5Yqf6IO9XCIsXHJcbiAgICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAgIC8vIFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuICAgICAgLy8gXHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG4gICAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgICAgLy8gXHRcdFx0XHQvLyBjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcbiAgICAgIC8vIFx0XHRcdH1cclxuICAgICAgLy8gXHRcdH1cclxuICAgICAgLy8gXHR9KVxyXG4gICAgICAvLyBcdHJldHVyblxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlmKGl0ZW0udGl0bGUgPT0gXCLml7bovrDlj5bnqbRcIil7XHJcbiAgICAgIC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyBcdFx0dXJsOiBcIi4uL3RpbWVBY3Vwb2ludC90aW1lQWN1cG9pbnRcIlxyXG4gICAgICAvLyBcdH0pXHJcbiAgICAgIC8vIFx0cmV0dXJuXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIC8vIHRoaXMuY3VycmVudFN0YXR1c0luZGV4ID0gaW5kZXhcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlYXJjaExpc3QgPSBbXTtcclxuICAgICAgdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlO1xyXG4gICAgICAvLyBpZiAoaW5kZXggIT0gMikge1xyXG5cclxuICAgICAgLy8gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5zZWxlY3QoJy5zdGF0dXNMaXN0JykuYm91bmRpbmdDbGllbnRSZWN0KGZ1bmN0aW9uIChyZWN0KSB7XHJcbiAgICAgIC8vIFx0dmFyIGhlaWdodCA9IHJlY3QuaGVpZ2h0XHJcbiAgICAgIC8vIFx0Y29uc29sZS5sb2coJ+WFg+e0oOmrmOW6pu+8micsKTtcclxuXHJcbiAgICAgIC8vIH0pLmV4ZWMoKTtcclxuXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5nZXRKRkxpc3QoZGljdFR5cGUpXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIHNldE9uZUNhdGVJbmRleChpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLmFsbERhdGFMaXN0ID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKGluZGV4LCA5OTk5OSk7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuXHJcbiAgICAgIC8vIGlmKHRoaXMudXNlck1lcy50Z2R6UG93ZXIgPT0gMCl7XHJcbiAgICAgIC8vIFx0bGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAgIC8vIFx0XHRjb250ZW50OiBcIui0reS5sCDpkojngbjlha3nu4/ms5XopoHkuIrlhozlkozkuIvlhowg5ZCO5pa55Y+v5L2/55So5q2k5Yqf6IO9XCIsXHJcbiAgICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAgIC8vIFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuICAgICAgLy8gXHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG4gICAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgICAgLy8gXHRcdFx0XHQvLyBjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcbiAgICAgIC8vIFx0XHRcdH1cclxuICAgICAgLy8gXHRcdH1cclxuICAgICAgLy8gXHR9KVxyXG4gICAgICAvLyBcdHJldHVyblxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlmKGl0ZW0udGl0bGUgPT0gXCLml7bovrDlj5bnqbRcIil7XHJcbiAgICAgIC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyBcdFx0dXJsOiBcIi4uL3RpbWVBY3Vwb2ludC90aW1lQWN1cG9pbnRcIlxyXG4gICAgICAvLyBcdH0pXHJcbiAgICAgIC8vIFx0cmV0dXJuXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1c0luZGV4ID0gaW5kZXg7XHJcbiAgICAgIC8vIHRoaXMuY3VycmVudENhdGVJbmRleCA9IDBcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlYXJjaExpc3QgPSBbXTtcclxuICAgICAgdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLiRuZXh0VGljayhhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhhdC5nZXRDb3Vyc2VEZXNjcmlwdGlvbkRhdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyB0aGlzLmhhbmRsZXNlbGVjdENhdGUodGhpcy5jYXRlTGlzdFt0aGlzLmN1cnJlbnRDYXRlSW5kZXhdKVxyXG4gICAgICAvLyBpZiAoaW5kZXggIT0gMikge1xyXG5cclxuICAgICAgLy8gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5zZWxlY3QoJy5zdGF0dXNMaXN0JykuYm91bmRpbmdDbGllbnRSZWN0KGZ1bmN0aW9uIChyZWN0KSB7XHJcbiAgICAgIC8vIFx0dmFyIGhlaWdodCA9IHJlY3QuaGVpZ2h0XHJcbiAgICAgIC8vIFx0Y29uc29sZS5sb2coJ+WFg+e0oOmrmOW6pu+8micsKTtcclxuXHJcbiAgICAgIC8vIH0pLmV4ZWMoKTtcclxuXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5nZXRKRkxpc3QoZGljdFR5cGUpXHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcblxyXG4gICAgdHJhbnNmb3JtRGF0YShpbnB1dERhdGEpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICAgIGlucHV0RGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsZXR0ZXIgfSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKCFyZXN1bHRbbGV0dGVyXSkge1xyXG4gICAgICAgICAgcmVzdWx0W2xldHRlcl0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0W2xldHRlcl0ucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIGNvbnN0IGZpbmFsUmVzdWx0ID0gT2JqZWN0LmtleXMocmVzdWx0KS5tYXAoa2V5ID0+ICh7IFtrZXldOiByZXN1bHRba2V5XSB9KSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAgLy8gZ2V0SkZMaXN0KGlkKSB7XHJcbiAgICAvLyBcdCRodHRwLnJlcXVlc3Qoe1xyXG4gICAgLy8gXHRcdHVybDogXCJib29rL3ByZXNjcmlwdC9wcmVzY3JpcHRMaXN0Rm9ySkZcIixcclxuICAgIC8vIFx0XHRtZXRob2Q6IFwiUE9TVFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcbiAgICAvLyBcdFx0ZGF0YToge1xyXG4gICAgLy8gXHRcdFx0bG9hZEFuaW1hdGU6ICdub25lJywgLy8g6K+35rGC5Yqg6L295Yqo55S7XHJcbiAgICAvLyBcdFx0XHQnY2F0ZWdvcnlJZCc6IGlkXHJcbiAgICAvLyBcdFx0fSxcclxuICAgIC8vIFx0XHRoZWFkZXI6IHsgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgLy8gXHRcdFx0J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgLy8gXHRcdH0sXHJcbiAgICAvLyBcdH0pLnRoZW4ocmVzID0+IHtcclxuICAgIC8vIFx0XHRpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyBcdFx0XHR0aGlzLnR3b0NhdGVMaXN0ID0gW11cclxuICAgIC8vIFx0XHRcdHRoaXMuZGF0YUxpc3QgPSB0aGlzLnRyYW5zZm9ybURhdGEocmVzLmxpc3QpXHJcbiAgICAvLyBcdFx0XHRjb25zb2xlLmxvZygnSkbnu4/mlrknLCB0aGlzLmRhdGFMaXN0KVxyXG4gICAgLy8gXHRcdH0gZWxzZSB7XHJcbiAgICAvLyBcdFx0XHR0aGlzLnR3b0NhdGVMaXN0ID0gW11cclxuICAgIC8vIFx0XHRcdHRoaXMuZGF0YUxpc3QgPSBbXVxyXG4gICAgLy8gXHRcdH1cclxuICAgIC8vIFx0fSkuY2F0Y2goZSA9PiB7XHJcbiAgICAvLyBcdFx0dGhpcy50d29DYXRlTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0dGhpcy5kYXRhTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0Y29uc29sZS5sb2coZSlcclxuICAgIC8vIFx0fSlcclxuICAgIC8vIH0sXHJcbiAgICBnZXRDYXRlTGlzdChpZCkge1xyXG4gICAgICBpZCA/IFwiXCIgOiAoaWQgPSAwKTtcclxuICAgICAgdGhpcy50d29DYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmN1clR3b0NhdGVJbmRleCA9IDA7XHJcbiAgICAgIC8vIDDkuLrojrflj5bpobbnuqfliIbnsbvvvIzlhbbku5bkuLrmkJzntKLkuIvnuqfliIbnsbvvvIznm67liY3nmoTpgLvovpHvvIzpobbnuqfmmK/lhpnmrbvnmoTvvIzmiYDku6Xlj6/og73lj6rkvJrmtonlj4rliLDmkJzntKLnrKzkuoznuqdcclxuICAgICAgLy8gJGh0dHAucmVxdWVzdCh7XHJcbiAgICAgIC8vIFx0dXJsOiBcImJvb2svcHJlc2NyaXB0L3ByZXNjcmlwdENhdGVnb3J5TGlzdFwiLFxyXG4gICAgICAvLyBcdG1ldGhvZDogXCJQT1NUXCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgLy8gXHRkYXRhOiB7XHJcbiAgICAgIC8vIFx0XHRsb2FkQW5pbWF0ZTogJ25vbmUnLCAvLyDor7fmsYLliqDovb3liqjnlLtcclxuICAgICAgLy8gXHRcdCdjYXRlZ29yeUlkJzogaWRcclxuICAgICAgLy8gXHR9LFxyXG4gICAgICAvLyBcdGhlYWRlcjogeyAvL+m7mOiupCDml6Ag6K+05piO77ya6K+35rGC5aS0XHJcbiAgICAgIC8vIFx0XHQnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgIC8vIFx0fSxcclxuICAgICAgLy8gfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhyZXMsICfohInnqbTliIbnsbvojrflj5bmiJDlip8nKVxyXG4gICAgICAvLyBpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIHRoaXMuc3RhdHVzTGlzdCA9IHJlcy5saXN0XHJcbiAgICAgIC8vIHRoaXMuZ2V0VG93Q2F0ZUxpc3QodGhpcy5zdGF0dXNMaXN0WzBdLnR5cGUpXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5zdGF0dXNMaXN0ID0gW11cclxuICAgICAgLy8gfVxyXG4gICAgICAvLyB9KS5jYXRjaChlID0+IHtcclxuICAgICAgLy8gXHR0aGlzLnN0YXR1c0xpc3QgPSBbXVxyXG4gICAgICAvLyBcdGNvbnNvbGUubG9nKGUpXHJcbiAgICAgIC8vIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIOaUvuWkp+WbvueJh1xyXG4gICAgcHJldmlld0ltYWdlKHVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyh1cmwpO1xyXG4gICAgICB1bmkucHJldmlld0ltYWdlKHtcclxuICAgICAgICB1cmxzOiBbdXJsXSxcclxuICAgICAgICBsb25nUHJlc3NBY3Rpb25zOiB7XHJcbiAgICAgICAgICBpdGVtTGlzdDogW1wi5b6I5oqx5q2J77yM5pqC5LiN5pSv5oyB5L+d5a2Y5Zu+54mH5Yiw5pys5ZywXCJdLFxyXG4gICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlcykge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMsJysrKysrJylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLy8gZ2V0U2VhcmNoKCkge1xyXG4gICAgLy8gXHQkaHR0cC5yZXF1ZXN0KHtcclxuICAgIC8vIFx0XHR1cmw6IFwiYm9vay9wcmVzY3JpcHQvc2VhcmNoUHJlc2NyaXB0XCIsXHJcbiAgICAvLyBcdFx0bWV0aG9kOiBcIlBPU1RcIiwgLy8gUE9TVOOAgUdFVOOAgVBVVOOAgURFTEVURe+8jOWFt+S9k+ivtOaYjuafpeeci+WumOaWueaWh+aho1xyXG4gICAgLy8gXHRcdGRhdGE6IHtcclxuICAgIC8vIFx0XHRcdGxvYWRBbmltYXRlOiAnbm9uZScsIC8vIOivt+axguWKoOi9veWKqOeUu1xyXG4gICAgLy8gXHRcdFx0J2tleXdvcmRzJzogdGhpcy5zZWFyY2hWYWx1ZSxcclxuICAgIC8vIFx0XHRcdHR5cGU6IHRoaXMuY3VycmVudFN0YXR1c0luZGV4ICsgMVxyXG4gICAgLy8gXHRcdH0sXHJcbiAgICAvLyBcdFx0aGVhZGVyOiB7IC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuICAgIC8vIFx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcclxuICAgIC8vIFx0XHR9LFxyXG4gICAgLy8gXHR9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAvLyBcdFx0Y29uc29sZS5sb2cocmVzLCAn5pCc57Si57uT5p6cJylcclxuICAgIC8vIFx0XHRpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPj0gMCkge1xyXG4gICAgLy8gXHRcdFx0dGhpcy5zaG93U2VhcmNoTGlzdCA9IHRydWVcclxuICAgIC8vIFx0XHRcdHRoaXMuc2VhcmNoTGlzdCA9IHJlcy5saXN0XHJcbiAgICAvLyBcdFx0fSBlbHNlIHtcclxuICAgIC8vIFx0XHRcdHRoaXMuc2VhcmNoTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0fVxyXG4gICAgLy8gXHR9KS5jYXRjaChlID0+IHtcclxuICAgIC8vIFx0XHQvLyB0aGlzLmRhdGFMaXN0ID0gW11cclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHRcdGNvbnNvbGUubG9nKGUpXHJcbiAgICAvLyBcdH0pXHJcbiAgICAvLyB9LFxyXG4gICAgLy8gc2VhcmNoKHJlcykge1xyXG4gICAgLy8gXHRjb25zb2xlLmxvZyhyZXMsICdyZXMnKVxyXG4gICAgLy8gXHQvLyB1bmkuc2hvd1RvYXN0KHtcclxuICAgIC8vIFx0Ly8gXHR0aXRsZTogJ+aQnOe0ou+8micgKyByZXMsXHJcbiAgICAvLyBcdC8vIFx0aWNvbjogJ25vbmUnXHJcbiAgICAvLyBcdC8vIH0pXHJcbiAgICAvLyBcdGlmIChyZXMgPT0gJycpIHtcclxuICAgIC8vIFx0XHR0aGlzLnNob3dTZWFyY2hMaXN0ID0gZmFsc2VcclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHR9IGVsc2Uge1xyXG4gICAgLy8gXHRcdHRoaXMuZ2V0U2VhcmNoKClcclxuICAgIC8vIFx0fVxyXG5cclxuICAgIC8vIH0sXHJcbiAgICAvLyBpbnB1dChyZXMpIHtcclxuICAgIC8vIFx0Y29uc29sZS5sb2coJy0tLS1pbnB1dDonLCByZXMpXHJcbiAgICAvLyBcdGlmIChyZXMgPT0gJycpIHtcclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHR9IGVsc2Uge1xyXG4gICAgLy8gXHRcdHRoaXMuZ2V0U2VhcmNoKClcclxuICAgIC8vIFx0fVxyXG4gICAgLy8gfSxcclxuICAgIC8vIGNsZWFyKHJlcykge1xyXG4gICAgLy8gXHRjb25zb2xlLmxvZygnLS0tLWNsZWFyOicsIHJlcylcclxuICAgIC8vIFx0Ly8gdW5pLnNob3dUb2FzdCh7XHJcbiAgICAvLyBcdC8vIFx0dGl0bGU6ICdjbGVhcuS6i+S7tu+8jOa4hemZpOWAvOS4uu+8micsXHJcbiAgICAvLyBcdC8vIFx0aWNvbjogJ25vbmUnXHJcbiAgICAvLyBcdC8vIH0pXHJcbiAgICAvLyBcdHRoaXMuc2VhcmNoVmFsdWUgPSAnJ1xyXG4gICAgLy8gXHR0aGlzLnNob3dTZWFyY2hMaXN0ID0gZmFsc2VcclxuICAgIC8vIH0sXHJcbiAgICAvLyBibHVyKHJlcykge1xyXG4gICAgLy8gXHQvLyBjb25zb2xlLmxvZygnLS0tLWJsdXI6JywgcmVzKVxyXG4gICAgLy8gXHQvLyBpZiAocmVzID09ICcnKSB7XHJcbiAgICAvLyBcdC8vIFx0dGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlXHJcbiAgICAvLyBcdC8vIFx0dGhpcy5zZWFyY2hMaXN0ID0gW11cclxuICAgIC8vIFx0Ly8gfSBlbHNlIHtcclxuICAgIC8vIFx0Ly8gXHR0aGlzLmdldFNlYXJjaCgpXHJcbiAgICAvLyBcdC8vIH1cclxuICAgIC8vIH0sXHJcbiAgICAvLyBmb2N1cyhlKSB7XHJcbiAgICAvLyBcdGNvbnNvbGUubG9nKCctLS0tZm9jdXM6JylcclxuICAgIC8vIFx0Ly8gdW5pLnNob3dUb2FzdCh7XHJcbiAgICAvLyBcdC8vIFx0dGl0bGU6ICdmb2N1c+S6i+S7tu+8jOi+k+WHuuWAvOS4uu+8micgKyBlLnZhbHVlLFxyXG4gICAgLy8gXHQvLyBcdGljb246ICdub25lJ1xyXG4gICAgLy8gXHQvLyB9KVxyXG4gICAgLy8gXHQvLyDnrYnkuo4xIOWwseaYr+acieadg+mZkFxyXG4gICAgLy8gXHQvLyB0aGlzLnNob3dTZWFyY2hMaXN0ID0gdHJ1ZVxyXG5cclxuICAgIC8vIH0sXHJcbiAgICAvLyBjYW5jZWwocmVzKSB7XHJcbiAgICAvLyBcdHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgLy8gXHRcdHRpdGxlOiAn54K55Ye75Y+W5raI77yM6L6T5YWl5YC85Li677yaJyArIHJlcy52YWx1ZSxcclxuICAgIC8vIFx0XHRpY29uOiAnbm9uZSdcclxuICAgIC8vIFx0fSlcclxuICAgIC8vIH1cclxuICB9LFxyXG4gIG9uQmFja1ByZXNzKCkge1xyXG5cclxuICAgIHBsdXMua2V5LmhpZGVTb2Z0S2V5Ym9yZCgpO1xyXG5cclxuICB9LFxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///568\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _list = _interopRequireDefault(__webpack_require__(/*! @/pages/component/commonComponents/list */ 218));\nvar _mp3Detail = _interopRequireDefault(__webpack_require__(/*! ./mp3Detail.vue */ 569));\nvar _index = _interopRequireDefault(__webpack_require__(/*! ../price/index.vue */ 241));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\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 courseDescription: _list.default,\n //课程说明\n price: _index.default,\n //课程价格\n curriculumMp3: _mp3Detail.default //mp3\n },\n data: function data() {\n return {\n isFullScreen: false,\n screenLoading: false,\n isfresh: false,\n currentCateIndex: 0,\n currentVideo: {},\n videoList: {},\n isOpenMp3: false,\n praise: \"\",\n reward: \"\",\n commentLst: [],\n correlationiList: [\n // { name: \"点赞\", type: 'dianzan', icon: \"thumb-up-fill\", iconType: 'uview', iconSize: 22, color: '$themeColor' },\n //{ name: \"打赏\", type: 'dashang', icon: \"red-packet-fill\", iconType: 'uview', iconSize: 22, color: '#ff3d00' },\n //{ name: \"评论\", type: 'pinglun', icon: \"chat-fill\", iconType: 'uview', iconSize: 22 },\n ],\n options: {},\n videoArrayHW: [],\n videoArray: [],\n relatedCoursesList: [],\n //相关课程\n medicalCasesList: [],\n //相关医案\n curriculumData: {},\n curriculumInfo: {},\n fdButtonStyle: {\n width: \"120rpx\",\n \"border-color\": \"#000\",\n color: \"#000\",\n float: \"right\",\n \"margin-right\": \"20rpx\",\n \"margin-left\": \"30rpx\"\n },\n modalInfo: {},\n show: false,\n playData: {},\n taiHuClassInfo: {},\n searchValue: \"\",\n ordersTabs: [{\n name: \"视频教学\",\n type: \"1\"\n }, {\n name: \"文章简介\",\n type: \"2\"\n }],\n // 一级分类标题1\n cateList: [],\n // 一级分类标题1\n twoCateList: [],\n // 二级分类标题\n dataList: [],\n // 方剂标题\n allDataList: [],\n // 方剂标题\n currentStatusIndex: 0,\n // 当前选中的一级分类\n\n curTwoCateIndex: 0,\n // 当前选中的二级分类\n searchList: [],\n // 搜索结果数组\n showSearchList: false,\n userMes: {},\n // 用户信息\n searchDisable: false,\n // 搜索不可用\n limitShow: false,\n limitTitle: \"提示\",\n limitContent: \"\",\n scrollViewHeight: 0,\n urlList: {\n detail: \"sociology/course/getCourseCatalogueChapterDetail\",\n curriculumInfo: \"app/phone.do?getCourseInfo\"\n }\n };\n },\n onLoad: function onLoad(options) {\n this.options = options;\n this.getCourseDescriptionData();\n // plus.screen.lockOrientation(\"default\");\n this.screenLoading = false;\n this.currentCateIndex = 0;\n\n // plus.screen.unlockOrientation(); //解除锁定屏幕方向\n // plus.screen.lockOrientation(\"portrait-primary\");\n\n // this.getUserInfo()\n // this.getCateList()\n },\n onHide: function onHide() {\n // this.showSearchList = false\n // this.searchList = []\n },\n onShow: function onShow() {},\n computed: _objectSpread({}, (0, _vuex.mapState)([\"userInfo\"])),\n methods: {\n changeScreenLoading: function changeScreenLoading(status) {\n this.screenLoading = status;\n },\n changeScreen: function changeScreen(status) {\n this.isFullScreen = status;\n },\n ordersTabCLi: function ordersTabCLi(data) {\n __f__(\"log\", \"i at line 312:\", data, \" at pages/curriculum/order/curriculum/detail.vue:368\");\n this.currentCateIndex = data.index;\n this.$forceUpdate();\n },\n initVideo: function initVideo() {\n var _this = this;\n this.screenLoading = false;\n this.isfresh = false;\n this.$nextTick(function () {\n _this.isfresh = true;\n setTimeout(function () {\n _this.$refs.commonVideo.init({\n currentVideo: _this.currentVideo,\n currentVideoList: _this.videoArray\n });\n }, 200);\n });\n },\n changeVideo: function changeVideo(data) {\n if (data.id != this.currentVideo.id) {\n clearInterval(this.$store.state.videoTimer);\n __f__(\"log\", \"父页面是否触发了切换视屏呀:\", data.id, this.currentVideo.id, \" at pages/curriculum/order/curriculum/detail.vue:388\");\n this.currentVideo = data;\n // setTimeout(() => {\n\n this.$refs.commonVideo.changeVideo({\n currentVideo: data,\n currentVideoList: this.videoArray\n });\n // }, 200);\n // // handleEnd\n // this.$refs.commonVideo.handleEnd();\n\n // this.currentVideo = data;\n // this.initVideo();\n // this.isOpenMp3 = false;\n }\n\n __f__(\"log\", \"data at line 380111111111111111111:\", data.type, \" at pages/curriculum/order/curriculum/detail.vue:409\");\n\n // var mynavData = JSON.stringify(data); // 这里转换成 字符串\n\n // if (data.type == 0 || data.type == 2) {\n // //0 mp4 2 mp3\n // uni.navigateTo({\n // url: `/pages/curriculum/order/curriculum/videoDetail?data=${mynavData}`,\n // });\n // } else if (data.type == 1) {\n // //视频云点播\n // uni.navigateTo({\n // url: `/pages/curriculum/order/curriculum/videoDetailOss?data=${mynavData}`,\n // });\n // }\n\n // else if (data.type == 2) {\n // //mp3\n // this.isOpenMp3 = true;\n // this.$nextTick(() => {\n // this.$refs.mp3Detail.init({ data: mynavData });\n // });\n // }\n\n // uni.navigateTo({\n // // url: '../bookShop/commodityDetail?id=' + item.id\n // url: `/pages/curriculum/order/curriculum/detail?navTitle=${v.title}&title=${v.title}&oid=${v.oid}`,\n // });\n },\n hancleModalCancel: function hancleModalCancel() {\n this.show = false;\n },\n handleClickMore: function handleClickMore(v, i, status) {\n __f__(\"log\", \"i at line 357:\", i, \" at pages/curriculum/order/curriculum/detail.vue:442\");\n this.$set(this.correlationiList[i], \"isOpen\", status);\n // [i].=!this.correlationiList[i].isOpen;\n },\n hancleModalConfirm: function hancleModalConfirm() {\n var data = {\n values: _objectSpread({\n customerType: \"D\",\n token: uni.getStorageSync(\"token\"),\n customerOid: uni.getStorageSync(\"customerOid\")\n }, this.taiHuClassInfo)\n };\n // $mars.progressBegin('申请中...');\n // $mars.post(customerType, 'applyRelearn', data, function (ret) {\n // api.hideProgress();\n\n // fnLoadDataGrid();\n // });\n },\n //课程详情\n gotoDetail: function gotoDetail(v) {\n __f__(\"log\", v, \" at pages/curriculum/order/curriculum/detail.vue:465\");\n uni.navigateTo({\n // url: '../bookShop/commodityDetail?id=' + item.id\n url: \"/pages/curriculum/order/curriculum/detail?navTitle=\".concat(v.title, \"&title=\").concat(v.title, \"&oid=\").concat(v.oid)\n });\n },\n //相关课程\n goCourseDescription: function goCourseDescription(v) {\n __f__(\"log\", v, \" at pages/curriculum/order/curriculum/detail.vue:473\");\n uni.navigateTo({\n // url: '../bookShop/commodityDetail?id=' + item.id\n url: \"/pages/curriculum/order/curriculum/index?navTitle=\".concat(v.title, \"&title=\").concat(v.title, \"&id=\").concat(v.id)\n });\n },\n getCourseDescriptionData: function getCourseDescriptionData() {\n var _this2 = this;\n var data = {\n id: this.options.id,\n load: false\n // id: \"16457\",\n };\n\n var that = this;\n _requestConfig.default.request({\n // url: \"book/buyOrder/buySave\",\n url: \"sociology/course/getCourseCatalogueChapterDetail\",\n method: \"POST\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {\n var videoArray, videoArrayHW;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n __f__(\"log\", _this2.$store.state, \"11111111111\", \" at pages/curriculum/order/curriculum/detail.vue:499\");\n __f__(\"log\", \"res at line 491:\", res, \" at pages/curriculum/order/curriculum/detail.vue:500\");\n that.curriculumData = res.data.detail;\n that.videoArray = res.data.videos;\n if (that.videoArray.length > 0) {\n _this2.currentVideo = that.videoArray[0];\n _this2.initVideo();\n }\n // if (res.obj.correlatedList && res.obj.correlatedList.length > 0) {\n // this.relatedCoursesList =\n // res.obj.correlatedList && res.obj.correlatedList.length > 0\n // ? res.obj.correlatedList\n // : [];\n // this.medicalCasesList =\n // res.obj.dataList && res.obj.dataList.length > 0\n // ? res.obj.dataList\n // : [];\n // this.commentLst =\n // res.obj.commentLst && res.obj.commentLst.length > 0\n // ? res.obj.commentLst\n // : [];\n\n // this.praise = res.obj.praise\n // ? res.obj.praise\n // .split(\",\")\n // .filter((e) => e != \"\")\n // .join(\",\")\n // : \"\";\n // this.reward = res.obj.reward\n // ? res.obj.reward\n // .split(\",\")\n // .filter((e) => e != \"\")\n // .join(\",\")\n // : \"\";\n // correlatedListEl.innerHTML = courseDot(ret.correlatedList);\n // }\n videoArray = [];\n videoArrayHW = []; // break;\n // switch (that.curriculumData.videoType) {\n // case \"01\":\n // // allDataList\n // // voices\n // that.videoArray = res.obj.videos.split(\",\");\n // that.videoArrayHW = res.obj.videos.split(\",\");\n // if (res.obj.dataLst && res.obj.dataLst.length > 0) {\n // // dataGrid.innerHTML = dot(ret.dataLst);\n // }\n // break;\n // case \"02\":\n // that.videoArray = res.obj.videoId.split(\",\");\n // if (res.obj.dataLst && res.obj.dataLst.length > 0) {\n // // res.obj.dataLst\n // console.log(\"res.obj.dataLst at line 436:\", res.obj.dataLst);\n // }\n // break;\n // // console.log(this.dataList.length, 6666666)\n // break;\n // }\n // if (res.obj.w_videoIds != \"\") {\n // // 海外视频\n // // $mars.initAVDataHW(ret.oid,'1', 'videoHW', ret.w_videoIds, 'taiHuClass/');\n // that.videoArrayHW = res.obj.w_videoIds.split(\",\");\n // // if (ret.dataLst && ret.dataLst.length > 0) {\n // // dataGrid.innerHTML = dot(ret.dataLst);\n // // }\n // // if (ret.correlatedList && ret.correlatedList.length > 0) {\n // // correlatedListEl.innerHTML = courseDot(ret.correlatedList);\n // // }\n // }\n // that.cateList = res.obj.courseTabs\n // that.relatedCoursesList = res.obj.correlatedList\n // await that.handleselectCate({ ...this.cateList[0], index: 0 })\n // socket.init();\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n },\n getPriceData: function getPriceData() {\n var that = this;\n setTimeout(function () {\n that.$nextTick(function () {\n that.$refs.priceDetail.getData();\n });\n }, 100);\n },\n // 检查是有权限使用搜索功能\n checkDisable: function checkDisable() {\n __f__(\"log\", \"点击了\", \" at pages/curriculum/order/curriculum/detail.vue:598\");\n },\n // 显示无权限弹窗\n // showNoRights() {\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t\tthat.clear()\n // \t\t\t}\n // \t\t}\n // \t})\n // },\n // 获取用户详情\n getUserInfo: function getUserInfo() {\n var _this3 = this;\n // 用户详情\n if (this.userInfo.id != undefined) {\n this.$http.post(\"book/user/info/\" + this.userInfo.id).then(function (res) {\n _this3.userMes = res.user;\n _this3.getCateList();\n __f__(\"log\", _this3.userMes, \"呼呼\", \" at pages/curriculum/order/curriculum/detail.vue:622\");\n });\n }\n },\n handleselectCate: function handleselectCate(item, index) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n var data, that;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this4.dataList = [];\n data = [];\n __f__(\"log\", item, index, 99999, \" at pages/curriculum/order/curriculum/detail.vue:630\");\n that = _this4; // curriculumInfo\n _this4.$http.post(_this4.urlList.curriculumInfo, {\n customerType: \"D\",\n token: uni.getStorageSync(\"token\"),\n customerOid: uni.getStorageSync(\"customerOid\"),\n oid: item.coid\n }).then( /*#__PURE__*/function () {\n var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(res) {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n that.curriculumInfo = res.obj;\n that.dataList = res.obj.courseList;\n\n // socket.init();\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return function (_x2) {\n return _ref2.apply(this, arguments);\n };\n }());\n\n // this.$nextTick(() => {\n // switch (item.type) {\n // case 1:\n // // allDataList\n // this.dataList = that.allDataList.result1Lst\n // break;\n // case 2:\n // this.dataList = that.allDataList.result2Lst\n // break;\n // case 3:\n // this.dataList = that.allDataList.result3Lst\n // break;\n // case 4:\n // this.dataList = that.allDataList.result4Lst.filter(e =>\n // e.oid != '5fcf991c027b11e7ae62008cfae40c18' && e.oid != 'b3d8a938b8e147bc877613bb712a9cb3' && e.oid != '4d4730163135420ea962bfac4805e026' && e.oid != '49fb76ca3d6b43718d78c6aa9a3003c2' && e.oid != 'c7b047ed9246469b9ae2b1013fc3df9c'\n\n // )\n\n // console.log(this.dataList.length, 6666666)\n // break;\n\n // }\n\n // this.currentCateIndex = item.index\n // })\n __f__(\"log\", _this4.allDataList, _this4.dataList, \"1688\", \" at pages/curriculum/order/curriculum/detail.vue:674\");\n // if(this.userMes.tgdzPower == 0){\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"购买 针灸六经法要上册和下册 后方可使用此功能\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t}\n // \t\t}\n // \t})\n // \treturn\n // }\n // if(item.title == \"时辰取穴\"){\n // \tuni.navigateTo({\n // \t\turl: \"../timeAcupoint/timeAcupoint\"\n // \t})\n // \treturn\n // }\n\n // this.currentStatusIndex = index\n\n _this4.searchValue = \"\";\n _this4.searchList = [];\n _this4.showSearchList = false;\n // if (index != 2) {\n\n // uni.createSelectorQuery().select('.statusList').boundingClientRect(function (rect) {\n // \tvar height = rect.height\n // \tconsole.log('元素高度:',);\n\n // }).exec();\n\n // } else {\n // \tthis.getJFList(dictType)\n // }\n return _context3.abrupt(\"return\", data);\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n setOneCateIndex: function setOneCateIndex(item, index) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var that;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _this5.allDataList = [];\n __f__(\"log\", index, 99999, \" at pages/curriculum/order/curriculum/detail.vue:717\");\n that = _this5; // if(this.userMes.tgdzPower == 0){\n // \tlet that = this\n // \tuni.showModal({\n // \t\tcontent: \"购买 针灸六经法要上册和下册 后方可使用此功能\",\n // \t\tconfirmText: '好的',\n // \t\tshowCancel: false,\n // \t\tsuccess: function(res) {\n // \t\t\tif (res.confirm) {\n // \t\t\t\t// console.log('用户点击确定');\n // \t\t\t}\n // \t\t}\n // \t})\n // \treturn\n // }\n // if(item.title == \"时辰取穴\"){\n // \tuni.navigateTo({\n // \t\turl: \"../timeAcupoint/timeAcupoint\"\n // \t})\n // \treturn\n // }\n _this5.currentStatusIndex = index;\n // this.currentCateIndex = 0\n\n _this5.searchValue = \"\";\n _this5.searchList = [];\n _this5.showSearchList = false;\n _this5.$nextTick( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return that.getCourseDescriptionData();\n case 2:\n _this5.$forceUpdate();\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n })));\n\n // this.handleselectCate(this.cateList[this.currentCateIndex])\n // if (index != 2) {\n\n // uni.createSelectorQuery().select('.statusList').boundingClientRect(function (rect) {\n // \tvar height = rect.height\n // \tconsole.log('元素高度:',);\n\n // }).exec();\n\n // } else {\n // \tthis.getJFList(dictType)\n // }\n case 8:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n transformData: function transformData(inputData) {\n var result = {};\n inputData.forEach(function (item) {\n var letter = item.letter;\n if (!result[letter]) {\n result[letter] = [];\n }\n result[letter].push(item);\n });\n // const finalResult = Object.keys(result).map(key => ({ [key]: result[key] }));\n return result;\n },\n // getJFList(id) {\n // \t$http.request({\n // \t\turl: \"book/prescript/prescriptListForJF\",\n // \t\tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \t\tdata: {\n // \t\t\tloadAnimate: 'none', // 请求加载动画\n // \t\t\t'categoryId': id\n // \t\t},\n // \t\theader: { //默认 无 说明:请求头\n // \t\t\t'Content-Type': 'application/json'\n // \t\t},\n // \t}).then(res => {\n // \t\tif (res.code == 0 && res.list.length > 0) {\n // \t\t\tthis.twoCateList = []\n // \t\t\tthis.dataList = this.transformData(res.list)\n // \t\t\tconsole.log('JF经方', this.dataList)\n // \t\t} else {\n // \t\t\tthis.twoCateList = []\n // \t\t\tthis.dataList = []\n // \t\t}\n // \t}).catch(e => {\n // \t\tthis.twoCateList = []\n // \t\tthis.dataList = []\n // \t\tconsole.log(e)\n // \t})\n // },\n getCateList: function getCateList(id) {\n id ? \"\" : id = 0;\n this.twoCateList = [];\n this.curTwoCateIndex = 0;\n // 0为获取顶级分类,其他为搜索下级分类,目前的逻辑,顶级是写死的,所以可能只会涉及到搜索第二级\n // $http.request({\n // \turl: \"book/prescript/prescriptCategoryList\",\n // \tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \tdata: {\n // \t\tloadAnimate: 'none', // 请求加载动画\n // \t\t'categoryId': id\n // \t},\n // \theader: { //默认 无 说明:请求头\n // \t\t'Content-Type': 'application/json'\n // \t},\n // }).then(res => {\n // console.log(res, '脉穴分类获取成功')\n // if (res.code == 0 && res.list.length > 0) {\n // this.statusList = res.list\n // this.getTowCateList(this.statusList[0].type)\n // } else {\n // \tthis.statusList = []\n // }\n // }).catch(e => {\n // \tthis.statusList = []\n // \tconsole.log(e)\n // })\n },\n // 放大图片\n previewImage: function previewImage(url) {\n __f__(\"log\", url, \" at pages/curriculum/order/curriculum/detail.vue:836\");\n uni.previewImage({\n urls: [url],\n longPressActions: {\n itemList: [\"很抱歉,暂不支持保存图片到本地\"],\n success: function success(res) {\n // console.log(res,'+++++')\n }\n }\n });\n } // getSearch() {\n // \t$http.request({\n // \t\turl: \"book/prescript/searchPrescript\",\n // \t\tmethod: \"POST\", // POST、GET、PUT、DELETE,具体说明查看官方文档\n // \t\tdata: {\n // \t\t\tloadAnimate: 'none', // 请求加载动画\n // \t\t\t'keywords': this.searchValue,\n // \t\t\ttype: this.currentStatusIndex + 1\n // \t\t},\n // \t\theader: { //默认 无 说明:请求头\n // \t\t\t'Content-Type': 'application/json'\n // \t\t},\n // \t}).then(res => {\n // \t\tconsole.log(res, '搜索结果')\n // \t\tif (res.code == 0 && res.list.length >= 0) {\n // \t\t\tthis.showSearchList = true\n // \t\t\tthis.searchList = res.list\n // \t\t} else {\n // \t\t\tthis.searchList = []\n // \t\t}\n // \t}).catch(e => {\n // \t\t// this.dataList = []\n // \t\tthis.searchList = []\n // \t\tconsole.log(e)\n // \t})\n // },\n // search(res) {\n // \tconsole.log(res, 'res')\n // \t// uni.showToast({\n // \t// \ttitle: '搜索:' + res,\n // \t// \ticon: 'none'\n // \t// })\n // \tif (res == '') {\n // \t\tthis.showSearchList = false\n // \t\tthis.searchList = []\n // \t} else {\n // \t\tthis.getSearch()\n // \t}\n // },\n // input(res) {\n // \tconsole.log('----input:', res)\n // \tif (res == '') {\n // \t\tthis.searchList = []\n // \t} else {\n // \t\tthis.getSearch()\n // \t}\n // },\n // clear(res) {\n // \tconsole.log('----clear:', res)\n // \t// uni.showToast({\n // \t// \ttitle: 'clear事件,清除值为:',\n // \t// \ticon: 'none'\n // \t// })\n // \tthis.searchValue = ''\n // \tthis.showSearchList = false\n // },\n // blur(res) {\n // \t// console.log('----blur:', res)\n // \t// if (res == '') {\n // \t// \tthis.showSearchList = false\n // \t// \tthis.searchList = []\n // \t// } else {\n // \t// \tthis.getSearch()\n // \t// }\n // },\n // focus(e) {\n // \tconsole.log('----focus:')\n // \t// uni.showToast({\n // \t// \ttitle: 'focus事件,输出值为:' + e.value,\n // \t// \ticon: 'none'\n // \t// })\n // \t// 等于1 就是有权限\n // \t// this.showSearchList = true\n // },\n // cancel(res) {\n // \tuni.showToast({\n // \t\ttitle: '点击取消,输入值为:' + res.value,\n // \t\ticon: 'none'\n // \t})\n // }\n },\n onBackPress: function onBackPress() {\n plus.key.hideSoftKeybord();\n }\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY3VycmljdWx1bS9vcmRlci9jdXJyaWN1bHVtL2RldGFpbC52dWUiXSwibmFtZXMiOlsiY29tcG9uZW50cyIsImNvdXJzZURlc2NyaXB0aW9uIiwicHJpY2UiLCJjdXJyaWN1bHVtTXAzIiwiZGF0YSIsImlzRnVsbFNjcmVlbiIsInNjcmVlbkxvYWRpbmciLCJpc2ZyZXNoIiwiY3VycmVudENhdGVJbmRleCIsImN1cnJlbnRWaWRlbyIsInZpZGVvTGlzdCIsImlzT3Blbk1wMyIsInByYWlzZSIsInJld2FyZCIsImNvbW1lbnRMc3QiLCJjb3JyZWxhdGlvbmlMaXN0Iiwib3B0aW9ucyIsInZpZGVvQXJyYXlIVyIsInZpZGVvQXJyYXkiLCJyZWxhdGVkQ291cnNlc0xpc3QiLCJtZWRpY2FsQ2FzZXNMaXN0IiwiY3VycmljdWx1bURhdGEiLCJjdXJyaWN1bHVtSW5mbyIsImZkQnV0dG9uU3R5bGUiLCJ3aWR0aCIsImNvbG9yIiwiZmxvYXQiLCJtb2RhbEluZm8iLCJzaG93IiwicGxheURhdGEiLCJ0YWlIdUNsYXNzSW5mbyIsInNlYXJjaFZhbHVlIiwib3JkZXJzVGFicyIsIm5hbWUiLCJ0eXBlIiwiY2F0ZUxpc3QiLCJ0d29DYXRlTGlzdCIsImRhdGFMaXN0IiwiYWxsRGF0YUxpc3QiLCJjdXJyZW50U3RhdHVzSW5kZXgiLCJjdXJUd29DYXRlSW5kZXgiLCJzZWFyY2hMaXN0Iiwic2hvd1NlYXJjaExpc3QiLCJ1c2VyTWVzIiwic2VhcmNoRGlzYWJsZSIsImxpbWl0U2hvdyIsImxpbWl0VGl0bGUiLCJsaW1pdENvbnRlbnQiLCJzY3JvbGxWaWV3SGVpZ2h0IiwidXJsTGlzdCIsImRldGFpbCIsIm9uTG9hZCIsImdldENvdXJzZURlc2NyaXB0aW9uRGF0YSIsIm9uSGlkZSIsIm9uU2hvdyIsImNvbXB1dGVkIiwibWFwU3RhdGUiLCJtZXRob2RzIiwiY2hhbmdlU2NyZWVuTG9hZGluZyIsInN0YXR1cyIsImNoYW5nZVNjcmVlbiIsIm9yZGVyc1RhYkNMaSIsImluZGV4IiwiJGZvcmNlVXBkYXRlIiwiaW5pdFZpZGVvIiwiJG5leHRUaWNrIiwic2V0VGltZW91dCIsIiRyZWZzIiwiY29tbW9uVmlkZW8iLCJpbml0IiwiY3VycmVudFZpZGVvTGlzdCIsImNoYW5nZVZpZGVvIiwiaWQiLCJjbGVhckludGVydmFsIiwiJHN0b3JlIiwic3RhdGUiLCJ2aWRlb1RpbWVyIiwiaGFuY2xlTW9kYWxDYW5jZWwiLCJoYW5kbGVDbGlja01vcmUiLCJ2IiwiaSIsIiRzZXQiLCJoYW5jbGVNb2RhbENvbmZpcm0iLCJ2YWx1ZXMiLCJjdXN0b21lclR5cGUiLCJ0b2tlbiIsInVuaSIsImdldFN0b3JhZ2VTeW5jIiwiY3VzdG9tZXJPaWQiLCJnb3RvRGV0YWlsIiwibmF2aWdhdGVUbyIsInVybCIsInRpdGxlIiwib2lkIiwiZ29Db3Vyc2VEZXNjcmlwdGlvbiIsImxvYWQiLCJ0aGF0IiwiJGh0dHAiLCJyZXF1ZXN0IiwibWV0aG9kIiwiaGVhZGVyIiwidGhlbiIsInJlcyIsInZpZGVvcyIsImxlbmd0aCIsImdldFByaWNlRGF0YSIsInByaWNlRGV0YWlsIiwiZ2V0RGF0YSIsImNoZWNrRGlzYWJsZSIsImdldFVzZXJJbmZvIiwidXNlckluZm8iLCJ1bmRlZmluZWQiLCJwb3N0IiwidXNlciIsImdldENhdGVMaXN0IiwiaGFuZGxlc2VsZWN0Q2F0ZSIsIml0ZW0iLCJjb2lkIiwib2JqIiwiY291cnNlTGlzdCIsInNldE9uZUNhdGVJbmRleCIsInRyYW5zZm9ybURhdGEiLCJpbnB1dERhdGEiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGV0dGVyIiwicHVzaCIsInByZXZpZXdJbWFnZSIsInVybHMiLCJsb25nUHJlc3NBY3Rpb25zIiwiaXRlbUxpc3QiLCJzdWNjZXNzIiwib25CYWNrUHJlc3MiLCJwbHVzIiwia2V5IiwiaGlkZVNvZnRLZXlib3JkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBOFBBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFBZ0M7QUFBQTtB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QUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNGLENBQUM7RUFDRDhCLFdBQVcseUJBQUc7SUFFWkMsSUFBSSxDQUFDQyxHQUFHLENBQUNDLGVBQWUsRUFBRTtFQUU1QjtBQUNGLENBQUM7QUFBQSwyQiIsImZpbGUiOiI1NjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG4vL1xyXG5cclxuaW1wb3J0IGNvdXJzZURlc2NyaXB0aW9uIGZyb20gXCJAL3BhZ2VzL2NvbXBvbmVudC9jb21tb25Db21wb25lbnRzL2xpc3RcIjtcclxuaW1wb3J0IGN1cnJpY3VsdW1NcDMgZnJvbSBcIi4vbXAzRGV0YWlsLnZ1ZVwiO1xyXG5pbXBvcnQgcHJpY2UgZnJvbSBcIi4uL3ByaWNlL2luZGV4LnZ1ZVwiO1xyXG5cclxuaW1wb3J0ICRodHRwIGZyb20gXCJAL2NvbmZpZy9yZXF1ZXN0Q29uZmlnLmpzXCI7XHJcbmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSBcInZ1ZXhcIjtcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGNvdXJzZURlc2NyaXB0aW9uLCAvL+ivvueoi+ivtOaYjlxyXG4gICAgcHJpY2UsIC8v6K++56iL5Lu35qC8XHJcbiAgICBjdXJyaWN1bHVtTXAzLCAvL21wM1xyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlzRnVsbFNjcmVlbjogZmFsc2UsXHJcbiAgICAgIHNjcmVlbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICBpc2ZyZXNoOiBmYWxzZSxcclxuICAgICAgY3VycmVudENhdGVJbmRleDogMCxcclxuICAgICAgY3VycmVudFZpZGVvOiB7fSxcclxuICAgICAgdmlkZW9MaXN0OiB7fSxcclxuICAgICAgaXNPcGVuTXAzOiBmYWxzZSxcclxuICAgICAgcHJhaXNlOiBcIlwiLFxyXG4gICAgICByZXdhcmQ6IFwiXCIsXHJcbiAgICAgIGNvbW1lbnRMc3Q6IFtdLFxyXG4gICAgICBjb3JyZWxhdGlvbmlMaXN0OiBbXHJcbiAgICAgICAgLy8geyBuYW1lOiBcIueCuei1nlwiLCB0eXBlOiAnZGlhbnphbicsIGljb246IFwidGh1bWItdXAtZmlsbFwiLCBpY29uVHlwZTogJ3V2aWV3JywgaWNvblNpemU6IDIyLCBjb2xvcjogJyR0aGVtZUNvbG9yJyB9LFxyXG4gICAgICAgIC8veyBuYW1lOiBcIuaJk+i1j1wiLCB0eXBlOiAnZGFzaGFuZycsIGljb246IFwicmVkLXBhY2tldC1maWxsXCIsIGljb25UeXBlOiAndXZpZXcnLCBpY29uU2l6ZTogMjIsIGNvbG9yOiAnI2ZmM2QwMCcgfSxcclxuICAgICAgICAvL3sgbmFtZTogXCLor4TorrpcIiwgdHlwZTogJ3BpbmdsdW4nLCBpY29uOiBcImNoYXQtZmlsbFwiLCBpY29uVHlwZTogJ3V2aWV3JywgaWNvblNpemU6IDIyIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIG9wdGlvbnM6IHt9LFxyXG4gICAgICB2aWRlb0FycmF5SFc6IFtdLFxyXG4gICAgICB2aWRlb0FycmF5OiBbXSxcclxuICAgICAgcmVsYXRlZENvdXJzZXNMaXN0OiBbXSwgLy/nm7jlhbPor77nqItcclxuICAgICAgbWVkaWNhbENhc2VzTGlzdDogW10sIC8v55u45YWz5Yy75qGIXHJcbiAgICAgIGN1cnJpY3VsdW1EYXRhOiB7fSxcclxuICAgICAgY3VycmljdWx1bUluZm86IHt9LFxyXG4gICAgICBmZEJ1dHRvblN0eWxlOiB7XHJcbiAgICAgICAgd2lkdGg6IFwiMTIwcnB4XCIsXHJcbiAgICAgICAgXCJib3JkZXItY29sb3JcIjogXCIjMDAwXCIsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMFwiLFxyXG4gICAgICAgIGZsb2F0OiBcInJpZ2h0XCIsXHJcbiAgICAgICAgXCJtYXJnaW4tcmlnaHRcIjogXCIyMHJweFwiLFxyXG4gICAgICAgIFwibWFyZ2luLWxlZnRcIjogXCIzMHJweFwiLFxyXG4gICAgICB9LFxyXG4gICAgICBtb2RhbEluZm86IHt9LFxyXG5cclxuICAgICAgc2hvdzogZmFsc2UsXHJcbiAgICAgIHBsYXlEYXRhOiB7fSxcclxuICAgICAgdGFpSHVDbGFzc0luZm86IHt9LFxyXG4gICAgICBzZWFyY2hWYWx1ZTogXCJcIixcclxuICAgICAgb3JkZXJzVGFiczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwi6KeG6aKR5pWZ5a2mXCIsXHJcblxyXG4gICAgICAgICAgdHlwZTogXCIxXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIuaWh+eroOeugOS7i1wiLFxyXG4gICAgICAgICAgdHlwZTogXCIyXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSwgLy8g5LiA57qn5YiG57G75qCH6aKYMVxyXG4gICAgICBjYXRlTGlzdDogW10sIC8vIOS4gOe6p+WIhuexu+agh+mimDFcclxuICAgICAgdHdvQ2F0ZUxpc3Q6IFtdLCAvLyDkuoznuqfliIbnsbvmoIfpophcclxuICAgICAgZGF0YUxpc3Q6IFtdLCAvLyDmlrnliYLmoIfpophcclxuICAgICAgYWxsRGF0YUxpc3Q6IFtdLCAvLyDmlrnliYLmoIfpophcclxuICAgICAgY3VycmVudFN0YXR1c0luZGV4OiAwLCAvLyDlvZPliY3pgInkuK3nmoTkuIDnuqfliIbnsbtcclxuXHJcbiAgICAgIGN1clR3b0NhdGVJbmRleDogMCwgLy8g5b2T5YmN6YCJ5Lit55qE5LqM57qn5YiG57G7XHJcbiAgICAgIHNlYXJjaExpc3Q6IFtdLCAvLyDmkJzntKLnu5PmnpzmlbDnu4RcclxuICAgICAgc2hvd1NlYXJjaExpc3Q6IGZhbHNlLFxyXG4gICAgICB1c2VyTWVzOiB7fSwgLy8g55So5oi35L+h5oGvXHJcbiAgICAgIHNlYXJjaERpc2FibGU6IGZhbHNlLCAvLyDmkJzntKLkuI3lj6/nlKhcclxuICAgICAgbGltaXRTaG93OiBmYWxzZSxcclxuICAgICAgbGltaXRUaXRsZTogXCLmj5DnpLpcIixcclxuICAgICAgbGltaXRDb250ZW50OiBcIlwiLFxyXG4gICAgICBzY3JvbGxWaWV3SGVpZ2h0OiAwLFxyXG4gICAgICB1cmxMaXN0OiB7XHJcbiAgICAgICAgZGV0YWlsOiBcInNvY2lvbG9neS9jb3Vyc2UvZ2V0Q291cnNlQ2F0YWxvZ3VlQ2hhcHRlckRldGFpbFwiLFxyXG4gICAgICAgIGN1cnJpY3VsdW1JbmZvOiBcImFwcC9waG9uZS5kbz9nZXRDb3Vyc2VJbmZvXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgb25Mb2FkKG9wdGlvbnMpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmdldENvdXJzZURlc2NyaXB0aW9uRGF0YSgpO1xyXG4gICAgLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwiZGVmYXVsdFwiKTtcclxuICAgIHRoaXMuc2NyZWVuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5jdXJyZW50Q2F0ZUluZGV4ID0gMDtcclxuXHJcbiAgICAvLyBwbHVzLnNjcmVlbi51bmxvY2tPcmllbnRhdGlvbigpOyAvL+ino+mZpOmUgeWumuWxj+W5leaWueWQkVxyXG4gICAgLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTtcclxuXHJcbiAgICAvLyB0aGlzLmdldFVzZXJJbmZvKClcclxuICAgIC8vIHRoaXMuZ2V0Q2F0ZUxpc3QoKVxyXG4gIH0sXHJcbiAgb25IaWRlKCkge1xyXG4gICAgLy8gdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlXHJcbiAgICAvLyB0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gIH0sXHJcbiAgb25TaG93KCkge1xyXG5cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdGF0ZShbXCJ1c2VySW5mb1wiXSksXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBjaGFuZ2VTY3JlZW5Mb2FkaW5nKHN0YXR1cykge1xyXG4gICAgICB0aGlzLnNjcmVlbkxvYWRpbmcgPSBzdGF0dXM7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlU2NyZWVuKHN0YXR1cykge1xyXG4gICAgICB0aGlzLmlzRnVsbFNjcmVlbiA9IHN0YXR1cztcclxuICAgIH0sXHJcbiAgICBvcmRlcnNUYWJDTGkoZGF0YSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImkgYXQgbGluZSAzMTI6XCIsIGRhdGEpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRDYXRlSW5kZXggPSBkYXRhLmluZGV4O1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgfSxcclxuICAgIGluaXRWaWRlbygpIHtcclxuICAgICAgdGhpcy5zY3JlZW5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNmcmVzaCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc2ZyZXNoID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuJHJlZnMuY29tbW9uVmlkZW8uaW5pdCh7XHJcbiAgICAgICAgICAgIGN1cnJlbnRWaWRlbzogdGhpcy5jdXJyZW50VmlkZW8sXHJcbiAgICAgICAgICAgIGN1cnJlbnRWaWRlb0xpc3Q6IHRoaXMudmlkZW9BcnJheSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIDIwMCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGNoYW5nZVZpZGVvKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEuaWQgIT0gdGhpcy5jdXJyZW50VmlkZW8uaWQpIHtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgXCLniLbpobXpnaLmmK/lkKbop6blj5HkuobliIfmjaLop4blsY/lkYA6XCIsXHJcbiAgICAgICAgICBkYXRhLmlkLFxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50VmlkZW8uaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZpZGVvID0gZGF0YTtcclxuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy4kcmVmcy5jb21tb25WaWRlby5jaGFuZ2VWaWRlbyh7XHJcbiAgICAgICAgICBjdXJyZW50VmlkZW86IGRhdGEsXHJcbiAgICAgICAgICBjdXJyZW50VmlkZW9MaXN0OiB0aGlzLnZpZGVvQXJyYXksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gfSwgMjAwKTtcclxuICAgICAgICAvLyAgIC8vIGhhbmRsZUVuZFxyXG4gICAgICAgIC8vICAgdGhpcy4kcmVmcy5jb21tb25WaWRlby5oYW5kbGVFbmQoKTtcclxuXHJcbiAgICAgICAgLy8gICAgIHRoaXMuY3VycmVudFZpZGVvID0gZGF0YTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pbml0VmlkZW8oKTtcclxuICAgICAgICAvLyAgICAgdGhpcy5pc09wZW5NcDMgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJkYXRhIGF0IGxpbmUgMzgwMTExMTExMTExMTExMTExMTExOlwiLCBkYXRhLnR5cGUpO1xyXG5cclxuICAgICAgLy8gdmFyIG15bmF2RGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOyAvLyDov5nph4zovazmjaLmiJAg5a2X56ym5LiyXHJcblxyXG4gICAgICAvLyBpZiAoZGF0YS50eXBlID09IDAgfHwgZGF0YS50eXBlID09IDIpIHtcclxuICAgICAgLy8gICAvLzAgbXA0IDIgbXAzXHJcbiAgICAgIC8vICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyAgICAgdXJsOiBgL3BhZ2VzL2N1cnJpY3VsdW0vb3JkZXIvY3VycmljdWx1bS92aWRlb0RldGFpbD9kYXRhPSR7bXluYXZEYXRhfWAsXHJcbiAgICAgIC8vICAgfSk7XHJcbiAgICAgIC8vIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IDEpIHtcclxuICAgICAgLy8gICAvL+inhumikeS6keeCueaSrVxyXG4gICAgICAvLyAgIHVuaS5uYXZpZ2F0ZVRvKHtcclxuICAgICAgLy8gICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vdmlkZW9EZXRhaWxPc3M/ZGF0YT0ke215bmF2RGF0YX1gLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyB9XHJcblxyXG4gICAgICAvLyAgIGVsc2UgaWYgKGRhdGEudHlwZSA9PSAyKSB7XHJcbiAgICAgIC8vICAgICAvL21wM1xyXG4gICAgICAvLyAgICAgdGhpcy5pc09wZW5NcDMgPSB0cnVlO1xyXG4gICAgICAvLyAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAvLyAgICAgICB0aGlzLiRyZWZzLm1wM0RldGFpbC5pbml0KHsgZGF0YTogbXluYXZEYXRhIH0pO1xyXG4gICAgICAvLyAgICAgfSk7XHJcbiAgICAgIC8vICAgfVxyXG5cclxuICAgICAgLy8gICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgIC8vICAgICAvLyB1cmw6ICcuLi9ib29rU2hvcC9jb21tb2RpdHlEZXRhaWw/aWQ9JyArIGl0ZW0uaWRcclxuICAgICAgLy8gICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vZGV0YWlsP25hdlRpdGxlPSR7di50aXRsZX0mdGl0bGU9JHt2LnRpdGxlfSZvaWQ9JHt2Lm9pZH1gLFxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgfSxcclxuICAgIGhhbmNsZU1vZGFsQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVDbGlja01vcmUodiwgaSwgc3RhdHVzKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiaSBhdCBsaW5lIDM1NzpcIiwgaSk7XHJcbiAgICAgIHRoaXMuJHNldCh0aGlzLmNvcnJlbGF0aW9uaUxpc3RbaV0sIFwiaXNPcGVuXCIsIHN0YXR1cyk7XHJcbiAgICAgIC8vIFtpXS49IXRoaXMuY29ycmVsYXRpb25pTGlzdFtpXS5pc09wZW47XHJcbiAgICB9LFxyXG4gICAgaGFuY2xlTW9kYWxDb25maXJtKCkge1xyXG4gICAgICB2YXIgZGF0YSA9IHtcclxuICAgICAgICB2YWx1ZXM6IHtcclxuICAgICAgICAgIGN1c3RvbWVyVHlwZTogXCJEXCIsXHJcbiAgICAgICAgICB0b2tlbjogdW5pLmdldFN0b3JhZ2VTeW5jKFwidG9rZW5cIiksXHJcbiAgICAgICAgICBjdXN0b21lck9pZDogdW5pLmdldFN0b3JhZ2VTeW5jKFwiY3VzdG9tZXJPaWRcIiksXHJcbiAgICAgICAgICAuLi50aGlzLnRhaUh1Q2xhc3NJbmZvLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICAgIC8vICRtYXJzLnByb2dyZXNzQmVnaW4oJ+eUs+ivt+S4rS4uLicpO1xyXG4gICAgICAvLyAkbWFycy5wb3N0KGN1c3RvbWVyVHlwZSwgJ2FwcGx5UmVsZWFybicsIGRhdGEsIGZ1bmN0aW9uIChyZXQpIHtcclxuICAgICAgLy8gICAgIGFwaS5oaWRlUHJvZ3Jlc3MoKTtcclxuXHJcbiAgICAgIC8vICAgICBmbkxvYWREYXRhR3JpZCgpO1xyXG4gICAgICAvLyB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy/or77nqIvor6bmg4VcclxuICAgIGdvdG9EZXRhaWwodikge1xyXG4gICAgICBjb25zb2xlLmxvZyh2KTtcclxuICAgICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAgIC8vIHVybDogJy4uL2Jvb2tTaG9wL2NvbW1vZGl0eURldGFpbD9pZD0nICsgaXRlbS5pZFxyXG4gICAgICAgIHVybDogYC9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vZGV0YWlsP25hdlRpdGxlPSR7di50aXRsZX0mdGl0bGU9JHt2LnRpdGxlfSZvaWQ9JHt2Lm9pZH1gLFxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvL+ebuOWFs+ivvueoi1xyXG4gICAgZ29Db3Vyc2VEZXNjcmlwdGlvbih2KSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHYpO1xyXG4gICAgICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgICAgLy8gdXJsOiAnLi4vYm9va1Nob3AvY29tbW9kaXR5RGV0YWlsP2lkPScgKyBpdGVtLmlkXHJcbiAgICAgICAgdXJsOiBgL3BhZ2VzL2N1cnJpY3VsdW0vb3JkZXIvY3VycmljdWx1bS9pbmRleD9uYXZUaXRsZT0ke3YudGl0bGV9JnRpdGxlPSR7di50aXRsZX0maWQ9JHt2LmlkfWAsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGdldENvdXJzZURlc2NyaXB0aW9uRGF0YSgpIHtcclxuICAgICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgaWQ6IHRoaXMub3B0aW9ucy5pZCxcclxuICAgICAgICBsb2FkOiBmYWxzZSxcclxuICAgICAgICAvLyBpZDogXCIxNjQ1N1wiLFxyXG4gICAgICB9O1xyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG4gICAgICAkaHR0cFxyXG4gICAgICAgIC5yZXF1ZXN0KHtcclxuICAgICAgICAgIC8vIHVybDogXCJib29rL2J1eU9yZGVyL2J1eVNhdmVcIixcclxuICAgICAgICAgIHVybDogXCJzb2Npb2xvZ3kvY291cnNlL2dldENvdXJzZUNhdGFsb2d1ZUNoYXB0ZXJEZXRhaWxcIixcclxuICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBoZWFkZXI6IHtcclxuICAgICAgICAgICAgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLiRzdG9yZS5zdGF0ZSwgXCIxMTExMTExMTExMVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVzIGF0IGxpbmUgNDkxOlwiLCByZXMpO1xyXG4gICAgICAgICAgdGhhdC5jdXJyaWN1bHVtRGF0YSA9IHJlcy5kYXRhLmRldGFpbDtcclxuICAgICAgICAgIHRoYXQudmlkZW9BcnJheSA9IHJlcy5kYXRhLnZpZGVvcztcclxuICAgICAgICAgIGlmICh0aGF0LnZpZGVvQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWRlbyA9IHRoYXQudmlkZW9BcnJheVswXTtcclxuICAgICAgICAgICAgdGhpcy5pbml0VmlkZW8oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGlmIChyZXMub2JqLmNvcnJlbGF0ZWRMaXN0ICYmIHJlcy5vYmouY29ycmVsYXRlZExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnJlbGF0ZWRDb3Vyc2VzTGlzdCA9XHJcbiAgICAgICAgICAvLyAgICAgcmVzLm9iai5jb3JyZWxhdGVkTGlzdCAmJiByZXMub2JqLmNvcnJlbGF0ZWRMaXN0Lmxlbmd0aCA+IDBcclxuICAgICAgICAgIC8vICAgICAgID8gcmVzLm9iai5jb3JyZWxhdGVkTGlzdFxyXG4gICAgICAgICAgLy8gICAgICAgOiBbXTtcclxuICAgICAgICAgIC8vICAgdGhpcy5tZWRpY2FsQ2FzZXNMaXN0ID1cclxuICAgICAgICAgIC8vICAgICByZXMub2JqLmRhdGFMaXN0ICYmIHJlcy5vYmouZGF0YUxpc3QubGVuZ3RoID4gMFxyXG4gICAgICAgICAgLy8gICAgICAgPyByZXMub2JqLmRhdGFMaXN0XHJcbiAgICAgICAgICAvLyAgICAgICA6IFtdO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmNvbW1lbnRMc3QgPVxyXG4gICAgICAgICAgLy8gICAgIHJlcy5vYmouY29tbWVudExzdCAmJiByZXMub2JqLmNvbW1lbnRMc3QubGVuZ3RoID4gMFxyXG4gICAgICAgICAgLy8gICAgICAgPyByZXMub2JqLmNvbW1lbnRMc3RcclxuICAgICAgICAgIC8vICAgICAgIDogW107XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5wcmFpc2UgPSByZXMub2JqLnByYWlzZVxyXG4gICAgICAgICAgLy8gICA/IHJlcy5vYmoucHJhaXNlXHJcbiAgICAgICAgICAvLyAgICAgICAuc3BsaXQoXCLvvIxcIilcclxuICAgICAgICAgIC8vICAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT0gXCJcIilcclxuICAgICAgICAgIC8vICAgICAgIC5qb2luKFwi77yMXCIpXHJcbiAgICAgICAgICAvLyAgIDogXCJcIjtcclxuICAgICAgICAgIC8vICB0aGlzLnJld2FyZCA9IHJlcy5vYmoucmV3YXJkXHJcbiAgICAgICAgICAvLyAgICA/IHJlcy5vYmoucmV3YXJkXHJcbiAgICAgICAgICAvLyAgICAgICAgLnNwbGl0KFwi77yMXCIpXHJcbiAgICAgICAgICAvLyAgICAgICAgLmZpbHRlcigoZSkgPT4gZSAhPSBcIlwiKVxyXG4gICAgICAgICAgLy8gICAgICAgLmpvaW4oXCLvvIxcIilcclxuICAgICAgICAgIC8vICAgOiBcIlwiO1xyXG4gICAgICAgICAgLy8gY29ycmVsYXRlZExpc3RFbC5pbm5lckhUTUwgPSBjb3Vyc2VEb3QocmV0LmNvcnJlbGF0ZWRMaXN0KTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIHZhciB2aWRlb0FycmF5ID0gW107XHJcbiAgICAgICAgICB2YXIgdmlkZW9BcnJheUhXID0gW107XHJcblxyXG4gICAgICAgICAgLy8gYnJlYWs7XHJcblxyXG4gICAgICAgICAgLy8gICBzd2l0Y2ggKHRoYXQuY3VycmljdWx1bURhdGEudmlkZW9UeXBlKSB7XHJcbiAgICAgICAgICAvLyAgICAgY2FzZSBcIjAxXCI6XHJcbiAgICAgICAgICAvLyAgICAgICAvLyBhbGxEYXRhTGlzdFxyXG4gICAgICAgICAgLy8gICAgICAgLy8gdm9pY2VzXHJcblxyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5ID0gcmVzLm9iai52aWRlb3Muc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5SFcgPSByZXMub2JqLnZpZGVvcy5zcGxpdChcIixcIik7XHJcblxyXG4gICAgICAgICAgLy8gICAgICAgaWYgKHJlcy5vYmouZGF0YUxzdCAmJiByZXMub2JqLmRhdGFMc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgLy8gICAgICAgICAvLyBkYXRhR3JpZC5pbm5lckhUTUwgPSBkb3QocmV0LmRhdGFMc3QpO1xyXG4gICAgICAgICAgLy8gICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8gICAgIGNhc2UgXCIwMlwiOlxyXG4gICAgICAgICAgLy8gICAgICAgdGhhdC52aWRlb0FycmF5ID0gcmVzLm9iai52aWRlb0lkLnNwbGl0KFwiLFwiKTtcclxuXHJcbiAgICAgICAgICAvLyAgICAgICBpZiAocmVzLm9iai5kYXRhTHN0ICYmIHJlcy5vYmouZGF0YUxzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgICAgIC8vIHJlcy5vYmouZGF0YUxzdFxyXG4gICAgICAgICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhcInJlcy5vYmouZGF0YUxzdCBhdCBsaW5lIDQzNjpcIiwgcmVzLm9iai5kYXRhTHN0KTtcclxuICAgICAgICAgIC8vICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvLyAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGFMaXN0Lmxlbmd0aCwgNjY2NjY2NilcclxuICAgICAgICAgIC8vICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8gICB9XHJcblxyXG4gICAgICAgICAgLy8gICBpZiAocmVzLm9iai53X3ZpZGVvSWRzICE9IFwiXCIpIHtcclxuICAgICAgICAgIC8vICAgICAvLyDmtbflpJbop4bpopFcclxuICAgICAgICAgIC8vICAgICAvLyAkbWFycy5pbml0QVZEYXRhSFcocmV0Lm9pZCwnMScsICd2aWRlb0hXJywgcmV0LndfdmlkZW9JZHMsICd0YWlIdUNsYXNzLycpO1xyXG5cclxuICAgICAgICAgIC8vICAgICB0aGF0LnZpZGVvQXJyYXlIVyA9IHJlcy5vYmoud192aWRlb0lkcy5zcGxpdChcIixcIik7XHJcblxyXG4gICAgICAgICAgLy8gICAgIC8vIGlmIChyZXQuZGF0YUxzdCAmJiByZXQuZGF0YUxzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgLy8gICAgIGRhdGFHcmlkLmlubmVySFRNTCA9IGRvdChyZXQuZGF0YUxzdCk7XHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG5cclxuICAgICAgICAgIC8vICAgICAvLyBpZiAocmV0LmNvcnJlbGF0ZWRMaXN0ICYmIHJldC5jb3JyZWxhdGVkTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAvLyAgICAgLy8gICAgIGNvcnJlbGF0ZWRMaXN0RWwuaW5uZXJIVE1MID0gY291cnNlRG90KHJldC5jb3JyZWxhdGVkTGlzdCk7XHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG4gICAgICAgICAgLy8gICB9XHJcblxyXG4gICAgICAgICAgLy8gdGhhdC5jYXRlTGlzdCA9IHJlcy5vYmouY291cnNlVGFic1xyXG4gICAgICAgICAgLy8gdGhhdC5yZWxhdGVkQ291cnNlc0xpc3QgPSByZXMub2JqLmNvcnJlbGF0ZWRMaXN0XHJcbiAgICAgICAgICAvLyBhd2FpdCB0aGF0LmhhbmRsZXNlbGVjdENhdGUoeyAuLi50aGlzLmNhdGVMaXN0WzBdLCBpbmRleDogMCB9KVxyXG4gICAgICAgICAgLy8gc29ja2V0LmluaXQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBnZXRQcmljZURhdGEoKSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhhdC4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhhdC4kcmVmcy5wcmljZURldGFpbC5nZXREYXRhKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9LFxyXG4gICAgLy8g5qOA5p+l5piv5pyJ5p2D6ZmQ5L2/55So5pCc57Si5Yqf6IO9XHJcbiAgICBjaGVja0Rpc2FibGUoKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi54K55Ye75LqGXCIpO1xyXG4gICAgfSxcclxuICAgIC8vIOaYvuekuuaXoOadg+mZkOW8ueeql1xyXG4gICAgLy8gc2hvd05vUmlnaHRzKCkge1xyXG4gICAgLy8gXHRsZXQgdGhhdCA9IHRoaXNcclxuICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAvLyBcdFx0Y29udGVudDogXCJcIixcclxuICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAvLyBcdFx0c2hvd0NhbmNlbDogZmFsc2UsXHJcbiAgICAvLyBcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcbiAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgIC8vIFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+eUqOaIt+eCueWHu+ehruWumicpO1xyXG4gICAgLy8gXHRcdFx0XHR0aGF0LmNsZWFyKClcclxuICAgIC8vIFx0XHRcdH1cclxuICAgIC8vIFx0XHR9XHJcbiAgICAvLyBcdH0pXHJcbiAgICAvLyB9LFxyXG4gICAgLy8g6I635Y+W55So5oi36K+m5oOFXHJcbiAgICBnZXRVc2VySW5mbygpIHtcclxuICAgICAgLy8g55So5oi36K+m5oOFXHJcbiAgICAgIGlmICh0aGlzLnVzZXJJbmZvLmlkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuJGh0dHAucG9zdChcImJvb2svdXNlci9pbmZvL1wiICsgdGhpcy51c2VySW5mby5pZCkudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVzZXJNZXMgPSByZXMudXNlcjtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2F0ZUxpc3QoKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXNlck1lcywgXCLlkbzlkbxcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgYXN5bmMgaGFuZGxlc2VsZWN0Q2F0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLmRhdGFMaXN0ID0gW107XHJcbiAgICAgIHZhciBkYXRhID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKGl0ZW0sIGluZGV4LCA5OTk5OSk7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuXHJcbiAgICAgIC8vIGN1cnJpY3VsdW1JbmZvXHJcblxyXG4gICAgICB0aGlzLiRodHRwXHJcbiAgICAgICAgLnBvc3QodGhpcy51cmxMaXN0LmN1cnJpY3VsdW1JbmZvLCB7XHJcbiAgICAgICAgICBjdXN0b21lclR5cGU6IFwiRFwiLFxyXG4gICAgICAgICAgdG9rZW46IHVuaS5nZXRTdG9yYWdlU3luYyhcInRva2VuXCIpLFxyXG4gICAgICAgICAgY3VzdG9tZXJPaWQ6IHVuaS5nZXRTdG9yYWdlU3luYyhcImN1c3RvbWVyT2lkXCIpLFxyXG4gICAgICAgICAgb2lkOiBpdGVtLmNvaWQsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGF0LmN1cnJpY3VsdW1JbmZvID0gcmVzLm9iajtcclxuICAgICAgICAgIHRoYXQuZGF0YUxpc3QgPSByZXMub2JqLmNvdXJzZUxpc3Q7XHJcblxyXG4gICAgICAgICAgLy8gc29ja2V0LmluaXQoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgLy8gICAgIHN3aXRjaCAoaXRlbS50eXBlKSB7XHJcbiAgICAgIC8vICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAvLyAgICAgICAgICAgICAvLyBhbGxEYXRhTGlzdFxyXG4gICAgICAvLyAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0ID0gdGhhdC5hbGxEYXRhTGlzdC5yZXN1bHQxTHN0XHJcbiAgICAgIC8vICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAvLyAgICAgICAgIGNhc2UgMjpcclxuICAgICAgLy8gICAgICAgICAgICAgdGhpcy5kYXRhTGlzdCA9IHRoYXQuYWxsRGF0YUxpc3QucmVzdWx0MkxzdFxyXG4gICAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuICAgICAgLy8gICAgICAgICBjYXNlIDM6XHJcbiAgICAgIC8vICAgICAgICAgICAgIHRoaXMuZGF0YUxpc3QgPSB0aGF0LmFsbERhdGFMaXN0LnJlc3VsdDNMc3RcclxuICAgICAgLy8gICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAvLyAgICAgICAgICAgICB0aGlzLmRhdGFMaXN0ID0gdGhhdC5hbGxEYXRhTGlzdC5yZXN1bHQ0THN0LmZpbHRlcihlID0+XHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICBlLm9pZCAhPSAnNWZjZjk5MWMwMjdiMTFlN2FlNjIwMDhjZmFlNDBjMTgnICYmIGUub2lkICE9ICdiM2Q4YTkzOGI4ZTE0N2JjODc3NjEzYmI3MTJhOWNiMycgJiYgZS5vaWQgIT0gJzRkNDczMDE2MzEzNTQyMGVhOTYyYmZhYzQ4MDVlMDI2JyAmJiBlLm9pZCAhPSAnNDlmYjc2Y2EzZDZiNDM3MThkNzhjNmFhOWEzMDAzYzInICYmIGUub2lkICE9ICdjN2IwNDdlZDkyNDY0NjliOWFlMmIxMDEzZmMzZGY5YydcclxuXHJcbiAgICAgIC8vICAgICAgICAgICAgIClcclxuXHJcbiAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YUxpc3QubGVuZ3RoLCA2NjY2NjY2KVxyXG4gICAgICAvLyAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIC8vICAgICB9XHJcblxyXG4gICAgICAvLyAgICAgdGhpcy5jdXJyZW50Q2F0ZUluZGV4ID0gaXRlbS5pbmRleFxyXG4gICAgICAvLyB9KVxyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmFsbERhdGFMaXN0LCB0aGlzLmRhdGFMaXN0LCBcIjE2ODhcIik7XHJcbiAgICAgIC8vIGlmKHRoaXMudXNlck1lcy50Z2R6UG93ZXIgPT0gMCl7XHJcbiAgICAgIC8vIFx0bGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAgIC8vIFx0XHRjb250ZW50OiBcIui0reS5sCDpkojngbjlha3nu4/ms5XopoHkuIrlhozlkozkuIvlhowg5ZCO5pa55Y+v5L2/55So5q2k5Yqf6IO9XCIsXHJcbiAgICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAgIC8vIFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuICAgICAgLy8gXHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG4gICAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgICAgLy8gXHRcdFx0XHQvLyBjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcbiAgICAgIC8vIFx0XHRcdH1cclxuICAgICAgLy8gXHRcdH1cclxuICAgICAgLy8gXHR9KVxyXG4gICAgICAvLyBcdHJldHVyblxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlmKGl0ZW0udGl0bGUgPT0gXCLml7bovrDlj5bnqbRcIil7XHJcbiAgICAgIC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyBcdFx0dXJsOiBcIi4uL3RpbWVBY3Vwb2ludC90aW1lQWN1cG9pbnRcIlxyXG4gICAgICAvLyBcdH0pXHJcbiAgICAgIC8vIFx0cmV0dXJuXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIC8vIHRoaXMuY3VycmVudFN0YXR1c0luZGV4ID0gaW5kZXhcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlYXJjaExpc3QgPSBbXTtcclxuICAgICAgdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlO1xyXG4gICAgICAvLyBpZiAoaW5kZXggIT0gMikge1xyXG5cclxuICAgICAgLy8gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5zZWxlY3QoJy5zdGF0dXNMaXN0JykuYm91bmRpbmdDbGllbnRSZWN0KGZ1bmN0aW9uIChyZWN0KSB7XHJcbiAgICAgIC8vIFx0dmFyIGhlaWdodCA9IHJlY3QuaGVpZ2h0XHJcbiAgICAgIC8vIFx0Y29uc29sZS5sb2coJ+WFg+e0oOmrmOW6pu+8micsKTtcclxuXHJcbiAgICAgIC8vIH0pLmV4ZWMoKTtcclxuXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5nZXRKRkxpc3QoZGljdFR5cGUpXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIHNldE9uZUNhdGVJbmRleChpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLmFsbERhdGFMaXN0ID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKGluZGV4LCA5OTk5OSk7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuXHJcbiAgICAgIC8vIGlmKHRoaXMudXNlck1lcy50Z2R6UG93ZXIgPT0gMCl7XHJcbiAgICAgIC8vIFx0bGV0IHRoYXQgPSB0aGlzXHJcbiAgICAgIC8vIFx0dW5pLnNob3dNb2RhbCh7XHJcbiAgICAgIC8vIFx0XHRjb250ZW50OiBcIui0reS5sCDpkojngbjlha3nu4/ms5XopoHkuIrlhozlkozkuIvlhowg5ZCO5pa55Y+v5L2/55So5q2k5Yqf6IO9XCIsXHJcbiAgICAgIC8vIFx0XHRjb25maXJtVGV4dDogJ+WlveeahCcsXHJcbiAgICAgIC8vIFx0XHRzaG93Q2FuY2VsOiBmYWxzZSxcclxuICAgICAgLy8gXHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG4gICAgICAvLyBcdFx0XHRpZiAocmVzLmNvbmZpcm0pIHtcclxuICAgICAgLy8gXHRcdFx0XHQvLyBjb25zb2xlLmxvZygn55So5oi354K55Ye756Gu5a6aJyk7XHJcbiAgICAgIC8vIFx0XHRcdH1cclxuICAgICAgLy8gXHRcdH1cclxuICAgICAgLy8gXHR9KVxyXG4gICAgICAvLyBcdHJldHVyblxyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlmKGl0ZW0udGl0bGUgPT0gXCLml7bovrDlj5bnqbRcIil7XHJcbiAgICAgIC8vIFx0dW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICAvLyBcdFx0dXJsOiBcIi4uL3RpbWVBY3Vwb2ludC90aW1lQWN1cG9pbnRcIlxyXG4gICAgICAvLyBcdH0pXHJcbiAgICAgIC8vIFx0cmV0dXJuXHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1c0luZGV4ID0gaW5kZXg7XHJcbiAgICAgIC8vIHRoaXMuY3VycmVudENhdGVJbmRleCA9IDBcclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlYXJjaExpc3QgPSBbXTtcclxuICAgICAgdGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLiRuZXh0VGljayhhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhhdC5nZXRDb3Vyc2VEZXNjcmlwdGlvbkRhdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyB0aGlzLmhhbmRsZXNlbGVjdENhdGUodGhpcy5jYXRlTGlzdFt0aGlzLmN1cnJlbnRDYXRlSW5kZXhdKVxyXG4gICAgICAvLyBpZiAoaW5kZXggIT0gMikge1xyXG5cclxuICAgICAgLy8gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5zZWxlY3QoJy5zdGF0dXNMaXN0JykuYm91bmRpbmdDbGllbnRSZWN0KGZ1bmN0aW9uIChyZWN0KSB7XHJcbiAgICAgIC8vIFx0dmFyIGhlaWdodCA9IHJlY3QuaGVpZ2h0XHJcbiAgICAgIC8vIFx0Y29uc29sZS5sb2coJ+WFg+e0oOmrmOW6pu+8micsKTtcclxuXHJcbiAgICAgIC8vIH0pLmV4ZWMoKTtcclxuXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5nZXRKRkxpc3QoZGljdFR5cGUpXHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcblxyXG4gICAgdHJhbnNmb3JtRGF0YShpbnB1dERhdGEpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICAgIGlucHV0RGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsZXR0ZXIgfSA9IGl0ZW07XHJcbiAgICAgICAgaWYgKCFyZXN1bHRbbGV0dGVyXSkge1xyXG4gICAgICAgICAgcmVzdWx0W2xldHRlcl0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0W2xldHRlcl0ucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIGNvbnN0IGZpbmFsUmVzdWx0ID0gT2JqZWN0LmtleXMocmVzdWx0KS5tYXAoa2V5ID0+ICh7IFtrZXldOiByZXN1bHRba2V5XSB9KSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAgLy8gZ2V0SkZMaXN0KGlkKSB7XHJcbiAgICAvLyBcdCRodHRwLnJlcXVlc3Qoe1xyXG4gICAgLy8gXHRcdHVybDogXCJib29rL3ByZXNjcmlwdC9wcmVzY3JpcHRMaXN0Rm9ySkZcIixcclxuICAgIC8vIFx0XHRtZXRob2Q6IFwiUE9TVFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcbiAgICAvLyBcdFx0ZGF0YToge1xyXG4gICAgLy8gXHRcdFx0bG9hZEFuaW1hdGU6ICdub25lJywgLy8g6K+35rGC5Yqg6L295Yqo55S7XHJcbiAgICAvLyBcdFx0XHQnY2F0ZWdvcnlJZCc6IGlkXHJcbiAgICAvLyBcdFx0fSxcclxuICAgIC8vIFx0XHRoZWFkZXI6IHsgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgLy8gXHRcdFx0J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgLy8gXHRcdH0sXHJcbiAgICAvLyBcdH0pLnRoZW4ocmVzID0+IHtcclxuICAgIC8vIFx0XHRpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyBcdFx0XHR0aGlzLnR3b0NhdGVMaXN0ID0gW11cclxuICAgIC8vIFx0XHRcdHRoaXMuZGF0YUxpc3QgPSB0aGlzLnRyYW5zZm9ybURhdGEocmVzLmxpc3QpXHJcbiAgICAvLyBcdFx0XHRjb25zb2xlLmxvZygnSkbnu4/mlrknLCB0aGlzLmRhdGFMaXN0KVxyXG4gICAgLy8gXHRcdH0gZWxzZSB7XHJcbiAgICAvLyBcdFx0XHR0aGlzLnR3b0NhdGVMaXN0ID0gW11cclxuICAgIC8vIFx0XHRcdHRoaXMuZGF0YUxpc3QgPSBbXVxyXG4gICAgLy8gXHRcdH1cclxuICAgIC8vIFx0fSkuY2F0Y2goZSA9PiB7XHJcbiAgICAvLyBcdFx0dGhpcy50d29DYXRlTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0dGhpcy5kYXRhTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0Y29uc29sZS5sb2coZSlcclxuICAgIC8vIFx0fSlcclxuICAgIC8vIH0sXHJcbiAgICBnZXRDYXRlTGlzdChpZCkge1xyXG4gICAgICBpZCA/IFwiXCIgOiAoaWQgPSAwKTtcclxuICAgICAgdGhpcy50d29DYXRlTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmN1clR3b0NhdGVJbmRleCA9IDA7XHJcbiAgICAgIC8vIDDkuLrojrflj5bpobbnuqfliIbnsbvvvIzlhbbku5bkuLrmkJzntKLkuIvnuqfliIbnsbvvvIznm67liY3nmoTpgLvovpHvvIzpobbnuqfmmK/lhpnmrbvnmoTvvIzmiYDku6Xlj6/og73lj6rkvJrmtonlj4rliLDmkJzntKLnrKzkuoznuqdcclxuICAgICAgLy8gJGh0dHAucmVxdWVzdCh7XHJcbiAgICAgIC8vIFx0dXJsOiBcImJvb2svcHJlc2NyaXB0L3ByZXNjcmlwdENhdGVnb3J5TGlzdFwiLFxyXG4gICAgICAvLyBcdG1ldGhvZDogXCJQT1NUXCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgLy8gXHRkYXRhOiB7XHJcbiAgICAgIC8vIFx0XHRsb2FkQW5pbWF0ZTogJ25vbmUnLCAvLyDor7fmsYLliqDovb3liqjnlLtcclxuICAgICAgLy8gXHRcdCdjYXRlZ29yeUlkJzogaWRcclxuICAgICAgLy8gXHR9LFxyXG4gICAgICAvLyBcdGhlYWRlcjogeyAvL+m7mOiupCDml6Ag6K+05piO77ya6K+35rGC5aS0XHJcbiAgICAgIC8vIFx0XHQnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgIC8vIFx0fSxcclxuICAgICAgLy8gfSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhyZXMsICfohInnqbTliIbnsbvojrflj5bmiJDlip8nKVxyXG4gICAgICAvLyBpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIHRoaXMuc3RhdHVzTGlzdCA9IHJlcy5saXN0XHJcbiAgICAgIC8vIHRoaXMuZ2V0VG93Q2F0ZUxpc3QodGhpcy5zdGF0dXNMaXN0WzBdLnR5cGUpXHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vIFx0dGhpcy5zdGF0dXNMaXN0ID0gW11cclxuICAgICAgLy8gfVxyXG4gICAgICAvLyB9KS5jYXRjaChlID0+IHtcclxuICAgICAgLy8gXHR0aGlzLnN0YXR1c0xpc3QgPSBbXVxyXG4gICAgICAvLyBcdGNvbnNvbGUubG9nKGUpXHJcbiAgICAgIC8vIH0pXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIOaUvuWkp+WbvueJh1xyXG4gICAgcHJldmlld0ltYWdlKHVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyh1cmwpO1xyXG4gICAgICB1bmkucHJldmlld0ltYWdlKHtcclxuICAgICAgICB1cmxzOiBbdXJsXSxcclxuICAgICAgICBsb25nUHJlc3NBY3Rpb25zOiB7XHJcbiAgICAgICAgICBpdGVtTGlzdDogW1wi5b6I5oqx5q2J77yM5pqC5LiN5pSv5oyB5L+d5a2Y5Zu+54mH5Yiw5pys5ZywXCJdLFxyXG4gICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlcykge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMsJysrKysrJylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLy8gZ2V0U2VhcmNoKCkge1xyXG4gICAgLy8gXHQkaHR0cC5yZXF1ZXN0KHtcclxuICAgIC8vIFx0XHR1cmw6IFwiYm9vay9wcmVzY3JpcHQvc2VhcmNoUHJlc2NyaXB0XCIsXHJcbiAgICAvLyBcdFx0bWV0aG9kOiBcIlBPU1RcIiwgLy8gUE9TVOOAgUdFVOOAgVBVVOOAgURFTEVURe+8jOWFt+S9k+ivtOaYjuafpeeci+WumOaWueaWh+aho1xyXG4gICAgLy8gXHRcdGRhdGE6IHtcclxuICAgIC8vIFx0XHRcdGxvYWRBbmltYXRlOiAnbm9uZScsIC8vIOivt+axguWKoOi9veWKqOeUu1xyXG4gICAgLy8gXHRcdFx0J2tleXdvcmRzJzogdGhpcy5zZWFyY2hWYWx1ZSxcclxuICAgIC8vIFx0XHRcdHR5cGU6IHRoaXMuY3VycmVudFN0YXR1c0luZGV4ICsgMVxyXG4gICAgLy8gXHRcdH0sXHJcbiAgICAvLyBcdFx0aGVhZGVyOiB7IC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuICAgIC8vIFx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcclxuICAgIC8vIFx0XHR9LFxyXG4gICAgLy8gXHR9KS50aGVuKHJlcyA9PiB7XHJcbiAgICAvLyBcdFx0Y29uc29sZS5sb2cocmVzLCAn5pCc57Si57uT5p6cJylcclxuICAgIC8vIFx0XHRpZiAocmVzLmNvZGUgPT0gMCAmJiByZXMubGlzdC5sZW5ndGggPj0gMCkge1xyXG4gICAgLy8gXHRcdFx0dGhpcy5zaG93U2VhcmNoTGlzdCA9IHRydWVcclxuICAgIC8vIFx0XHRcdHRoaXMuc2VhcmNoTGlzdCA9IHJlcy5saXN0XHJcbiAgICAvLyBcdFx0fSBlbHNlIHtcclxuICAgIC8vIFx0XHRcdHRoaXMuc2VhcmNoTGlzdCA9IFtdXHJcbiAgICAvLyBcdFx0fVxyXG4gICAgLy8gXHR9KS5jYXRjaChlID0+IHtcclxuICAgIC8vIFx0XHQvLyB0aGlzLmRhdGFMaXN0ID0gW11cclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHRcdGNvbnNvbGUubG9nKGUpXHJcbiAgICAvLyBcdH0pXHJcbiAgICAvLyB9LFxyXG4gICAgLy8gc2VhcmNoKHJlcykge1xyXG4gICAgLy8gXHRjb25zb2xlLmxvZyhyZXMsICdyZXMnKVxyXG4gICAgLy8gXHQvLyB1bmkuc2hvd1RvYXN0KHtcclxuICAgIC8vIFx0Ly8gXHR0aXRsZTogJ+aQnOe0ou+8micgKyByZXMsXHJcbiAgICAvLyBcdC8vIFx0aWNvbjogJ25vbmUnXHJcbiAgICAvLyBcdC8vIH0pXHJcbiAgICAvLyBcdGlmIChyZXMgPT0gJycpIHtcclxuICAgIC8vIFx0XHR0aGlzLnNob3dTZWFyY2hMaXN0ID0gZmFsc2VcclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHR9IGVsc2Uge1xyXG4gICAgLy8gXHRcdHRoaXMuZ2V0U2VhcmNoKClcclxuICAgIC8vIFx0fVxyXG5cclxuICAgIC8vIH0sXHJcbiAgICAvLyBpbnB1dChyZXMpIHtcclxuICAgIC8vIFx0Y29uc29sZS5sb2coJy0tLS1pbnB1dDonLCByZXMpXHJcbiAgICAvLyBcdGlmIChyZXMgPT0gJycpIHtcclxuICAgIC8vIFx0XHR0aGlzLnNlYXJjaExpc3QgPSBbXVxyXG4gICAgLy8gXHR9IGVsc2Uge1xyXG4gICAgLy8gXHRcdHRoaXMuZ2V0U2VhcmNoKClcclxuICAgIC8vIFx0fVxyXG4gICAgLy8gfSxcclxuICAgIC8vIGNsZWFyKHJlcykge1xyXG4gICAgLy8gXHRjb25zb2xlLmxvZygnLS0tLWNsZWFyOicsIHJlcylcclxuICAgIC8vIFx0Ly8gdW5pLnNob3dUb2FzdCh7XHJcbiAgICAvLyBcdC8vIFx0dGl0bGU6ICdjbGVhcuS6i+S7tu+8jOa4hemZpOWAvOS4uu+8micsXHJcbiAgICAvLyBcdC8vIFx0aWNvbjogJ25vbmUnXHJcbiAgICAvLyBcdC8vIH0pXHJcbiAgICAvLyBcdHRoaXMuc2VhcmNoVmFsdWUgPSAnJ1xyXG4gICAgLy8gXHR0aGlzLnNob3dTZWFyY2hMaXN0ID0gZmFsc2VcclxuICAgIC8vIH0sXHJcbiAgICAvLyBibHVyKHJlcykge1xyXG4gICAgLy8gXHQvLyBjb25zb2xlLmxvZygnLS0tLWJsdXI6JywgcmVzKVxyXG4gICAgLy8gXHQvLyBpZiAocmVzID09ICcnKSB7XHJcbiAgICAvLyBcdC8vIFx0dGhpcy5zaG93U2VhcmNoTGlzdCA9IGZhbHNlXHJcbiAgICAvLyBcdC8vIFx0dGhpcy5zZWFyY2hMaXN0ID0gW11cclxuICAgIC8vIFx0Ly8gfSBlbHNlIHtcclxuICAgIC8vIFx0Ly8gXHR0aGlzLmdldFNlYXJjaCgpXHJcbiAgICAvLyBcdC8vIH1cclxuICAgIC8vIH0sXHJcbiAgICAvLyBmb2N1cyhlKSB7XHJcbiAgICAvLyBcdGNvbnNvbGUubG9nKCctLS0tZm9jdXM6JylcclxuICAgIC8vIFx0Ly8gdW5pLnNob3dUb2FzdCh7XHJcbiAgICAvLyBcdC8vIFx0dGl0bGU6ICdmb2N1c+S6i+S7tu+8jOi+k+WHuuWAvOS4uu+8micgKyBlLnZhbHVlLFxyXG4gICAgLy8gXHQvLyBcdGljb246ICdub25lJ1xyXG4gICAgLy8gXHQvLyB9KVxyXG4gICAgLy8gXHQvLyDnrYnkuo4xIOWwseaYr+acieadg+mZkFxyXG4gICAgLy8gXHQvLyB0aGlzLnNob3dTZWFyY2hMaXN0ID0gdHJ1ZVxyXG5cclxuICAgIC8vIH0sXHJcbiAgICAvLyBjYW5jZWwocmVzKSB7XHJcbiAgICAvLyBcdHVuaS5zaG93VG9hc3Qoe1xyXG4gICAgLy8gXHRcdHRpdGxlOiAn54K55Ye75Y+W5raI77yM6L6T5YWl5YC85Li677yaJyArIHJlcy52YWx1ZSxcclxuICAgIC8vIFx0XHRpY29uOiAnbm9uZSdcclxuICAgIC8vIFx0fSlcclxuICAgIC8vIH1cclxuICB9LFxyXG4gIG9uQmFja1ByZXNzKCkge1xyXG5cclxuICAgIHBsdXMua2V5LmhpZGVTb2Z0S2V5Ym9yZCgpO1xyXG5cclxuICB9LFxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///568\n"); /***/ }), /* 569 */ @@ -61323,33 +61323,33 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& */ 1048);\n/* harmony import */ var _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js& */ 1050);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 28);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/component/commonComponents/video/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMFM7QUFDMVM7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQytLO0FBQy9LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSx3UUFBTTtBQUNSLEVBQUUsaVJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNFFBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM4N2YwZDFiJmZpbHRlci1tb2R1bGVzPWV5SnlaVzVrWlhKVFkzSnBjSFFpT25zaWRIbHdaU0k2SW5KbGJtUmxjbXB6SWl3aVkyOXVkR1Z1ZENJNklpSXNJbk4wWVhKMElqb3hOVEl3TVN3aVlYUjBjbk1pT25zaWJXOWtkV3hsSWpvaWNtVnVaR1Z5VTJOeWFYQjBJaXdpYkdGdVp5STZJbXB6SW4wc0ltVnVaQ0k2TXpFeE1qVjlmUSUzRCUzRCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi/ova/ku7Yv6L2v5Lu2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW5kZXgudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1047\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& */ 1048);\n/* harmony import */ var _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js& */ 1050);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 28);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/component/commonComponents/video/index.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBMFM7QUFDMVM7QUFDeUQ7QUFDTDs7O0FBR3BEO0FBQytLO0FBQy9LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDJFQUFNO0FBQ1IsRUFBRSx3UUFBTTtBQUNSLEVBQUUsaVJBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsNFFBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM4N2YwZDFiJmZpbHRlci1tb2R1bGVzPWV5SnlaVzVrWlhKVFkzSnBjSFFpT25zaWRIbHdaU0k2SW5KbGJtUmxjbXB6SWl3aVkyOXVkR1Z1ZENJNklpSXNJbk4wWVhKMElqb3hNemt5Tnl3aVlYUjBjbk1pT25zaWJXOWtkV3hsSWpvaWNtVnVaR1Z5VTJOeWFYQjBJaXdpYkdGdVp5STZJbXB6SW4wc0ltVnVaQ0k2TXpBek1qSjlmUSUzRCUzRCZcIlxudmFyIHJlbmRlcmpzXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi/ova/ku7Yv6L2v5Lu2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW5kZXgudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1047\n"); /***/ }), /* 1048 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& ***! + !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& */ 1049); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& */ 1049); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_template_id_387f0d1b_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 1049 */ /*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& ***! + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -61506,7 +61506,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 161));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\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; }\n// importScripts('@/static/aliplayer/aliplayer-min.js')\nvar _default = {\n props: [\"currentVideo\", \"currentVideoList\"],\n data: function data() {\n return {\n platform: null,\n //当前是否是全屏模式\n isFullScreen: false,\n isfresh: false,\n isChange: false,\n isControl: true,\n timer: null,\n videoTitle: \"\",\n videoList: [],\n firstTime: 0,\n options: {},\n playAuth: \"\",\n currentTime: \"\",\n videoId: \"\",\n videoData: {},\n isSetFirstTime: false,\n screenType: null,\n videoUrl: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"videoOssList\"])),\n watch: {\n currentVideo: {\n immediate: true,\n handler: function handler(newRoute) {}\n },\n timer: function timer(newValue) {\n this.$emit(\"child-event\", newValue);\n }\n },\n // //页面显示\n mounted: function mounted() {},\n beforeDestroy: function beforeDestroy() {\n this.handleEnd();\n __f__(\"log\", \"是否走啦习销毁\", \" at pages/component/commonComponents/video/index.vue:134\");\n clearInterval(this.$store.state.videoTimer);\n // this.timer = null;\n // store.commit(\"setLoadingShow\", null);\n plus.screen.lockOrientation(\"portrait-primary\");\n __f__(\"log\", \"是否走啦习销毁定时器\", this.timer, \" at pages/component/commonComponents/video/index.vue:140\");\n },\n onUnload: function onUnload() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n uni.navigateTo({\n url: \"/pages/curriculum/order/curriculum/back\"\n });\n plus.screen.lockOrientation(\"portrait-primary\"); //锁死屏幕方向为竖屏\n\n // plus.screen.lockOrientation(\"portrait-primary\");\n _context.next = 4;\n return _this.setVideoTime();\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n //第一次加载\n onLoad: function onLoad(options) {\n // console.log(options, \"这是传参\");\n //\n // setTimeout(() => {\n // plus.screen.unlockOrientation();\n // plus.screen.lockOrientation(\"landscape-primary\");\n // }, 10);\n //\n //\n // // plus.screen.lockOrientation(\"portrait-primary\");\n //\n // if (uni.getStorageSync(\"videoOssList\")) {\n // this.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n // }\n // console.log(\"this.videoList at line 53:\", this.videoList);\n // this.options = JSON.parse(options.data);\n // this.videoId = this.options.video;\n // this.timer = setInterval(() => {\n // var that = this;\n // if (this.currentTime) {\n // that.setVideoTime();\n // }\n // }, 2000);\n // this.$emit(\"child-event\", this.timer);\n // // this.$once(\"hook:beforeDestroy\", () => {\n // // clearInterval(this.timer);\n // // });\n },\n methods: {\n start: function start() {\n // var playerView = this.$refs.playerView;\n this.$refs.playerView.start();\n },\n pause: function pause() {\n // var playerView = ;\n this.$refs.playerView.pause();\n },\n changeVideoData: function changeVideoData() {\n this.isChange = false;\n },\n changeVideo: function changeVideo(data) {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.currentTime = \"\";\n _this2.firstTime = 0;\n _this2.isSetFirstTime = false;\n _this2.isChange = false;\n _context2.next = 6;\n return _this2.init(data, true);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n screenChange: function screenChange(data) {\n __f__(\"log\", \"status at line 这是当前的状态158:\", data.status, data.primary, \" at pages/component/commonComponents/video/index.vue:206\");\n this.isFullScreen = !data.status;\n this.$emit(\"changeScreen\", this.isFullScreen);\n // let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏\n // if (!fullScreen) {\n // //退出全屏\n // this.isFullScreen = false;\n // } else {\n // this.isFullScreen = true;\n // }\n },\n // 控制器的显示隐藏\n controlChange: function controlChange(e) {\n this.isControl = e.detail.show;\n },\n quitScreen: function quitScreen() {\n // 退出全屏\n var ctx = this.$refs.myVideo;\n ctx.exitFullScreen();\n },\n // 播放进度改变\n videoTimeUpdateEvent: function videoTimeUpdateEvent(e) {\n this.playTime = parseInt(e.detail.currentTime);\n this.currentTime = parseInt(e.detail.currentTime);\n this.allTime = parseInt(e.detail.duration);\n this.recordTime({\n time: this.playTime\n });\n },\n init: function init(data, isChange) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this3.platform = _this3.$platform;\n _this3.isfresh = true;\n __f__(\"log\", \"at line 59:\", \"是否先走init这里\", _this3.platform, \" at pages/component/commonComponents/video/index.vue:244\");\n if (uni.getStorageSync(\"videoOssList\")) {\n _this3.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n _this3.options = data.currentVideo;\n _this3.videoId = _this3.options.video;\n __f__(\"log\", \"这是苹果视屏id\", _this3.videoId, \" at pages/component/commonComponents/video/index.vue:251\");\n _context3.next = 9;\n return _this3.getLive(isChange);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n getVideo: function getVideo() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var data, that;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n data = {};\n that = _this4;\n _requestConfig.default.request({\n url: \"sociology/course/ttt\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(res) {\n var credentials, isFullScreen;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n __f__(\"log\", \" 视频播放11111111111:\", res, \" at pages/component/commonComponents/video/index.vue:270\");\n credentials = res.result.credentials; // var playerView = this.$refs.playerView;\n // console.log('playerView at line 273:', playerView)\n /*\r\n STS加密播放\r\n */\n that.$refs.playerView.setVidSts({\n vid: _this4.videoData.video,\n accessKeyId: credentials.accessKeyId,\n securityToken: credentials.securityToken,\n accessKeySecret: credentials.accessKeySecret,\n expireTime: credentials.expireTime,\n Region: \"cn-shanghai\"\n });\n // playerView.setLocalSource({\n // uri: \"http://duoduovideo.oss-cn-beijing.aliyuncs.com/5f093c6fb6e90.mp4\",\n // });\n isFullScreen = true; // fixed fullscreen play on android\n if (plus.os.name.toLowerCase() === \"android\") {\n plus.key.addEventListener(\"backbutton\", function (e) {\n if (isFullScreen) {\n that.$refs.playerView.changeScreenMode(0, false);\n isFullScreen = false;\n } else {\n // 这里由于安卓无法监听返回按键,这里只能通过plus监听,然后自己模拟退回\n uni.navigateBack();\n }\n });\n }\n that.$refs.playerView.setPlayerCallBack(function (_ref2) {\n var type = _ref2.type,\n data = _ref2.data;\n switch (type) {\n case \"isFullScreen\":\n isFullScreen = Boolean(data);\n break;\n default:\n __f__(\"log\", {\n type: type,\n data: data\n }, \" at pages/component/commonComponents/video/index.vue:310\");\n }\n });\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n getData: function getData(data, isChange) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var that, netWork, list, index;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n that = _this5;\n if (!_this5.isSetFirstTime) {\n netWork = data.userCourseVideoPositionEntity ? data.userCourseVideoPositionEntity.position : 0;\n list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n index = list.findIndex(function (e) {\n return e.id == data.id;\n });\n if (netWork) {\n if (index >= 0) {\n _this5.firstTime = list[index].time > netWork ? list[index].time : netWork;\n } else {\n _this5.firstTime = netWork ? netWork : 0;\n }\n } else {\n if (index >= 0) {\n _this5.firstTime = list[index].time ? list[index].time : 0;\n } else {\n _this5.firstTime = 0;\n }\n }\n } else {\n _this5.firstTime = 0;\n }\n _this5.videoData = _objectSpread({}, data);\n _this5.isChange = isChange ? isChange : false;\n // this.currentTime = this.firstTime;\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长222\", \" at pages/component/commonComponents/video/index.vue:352\");\n // await this.setVideoTime();\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n\n // if (this.currentVideo.type == 0 || this.currentVideo.type == 2) {\n // await this.playVideo();\n // }\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长\", \" at pages/component/commonComponents/video/index.vue:359\");\n // await that.getVideo();\n }\n\n _this5.isSetFirstTime = true;\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n playVideo: function playVideo(e) {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _this6.videoContext = uni.createVideoContext(\"videoId\", _this6);\n _this6.videoContext.seek(_this6.firstTime);\n\n // this.videoContext.requestFullScreen();\n case 2:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n recordTime: function recordTime(data) {\n var _this7 = this;\n this.currentTime = data.time;\n var list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n var index = list.findIndex(function (e) {\n return e.id == _this7.videoData.id;\n });\n if (list.length > 0 && index >= 0) {\n list[index] = _objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n });\n } else {\n list.push(_objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n }));\n }\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n },\n // 获取数据\n getLive: function getLive(isChange) {\n var _this8 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var that, data;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n that = _this8;\n _this8.isfresh = false;\n data = _objectSpread({}, _this8.options);\n _context9.next = 5;\n return _requestConfig.default.request({\n url: \"sociology/course/checkVideo\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(res) {\n var data, playAuth;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n data = _objectSpread({}, res.video);\n if (!(_this8.currentVideo.type == 1)) {\n _context8.next = 10;\n break;\n }\n playAuth = res.video.playAuth.replace(/=/g, \"\");\n __f__(\"log\", \"这是接口获取的视屏凭证111\", playAuth, \" at pages/component/commonComponents/video/index.vue:418\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n videoId: res.video.video,\n playAuth: playAuth\n });\n _this8.playAuth = playAuth;\n _context8.next = 8;\n return that.getData(data, isChange);\n case 8:\n _context8.next = 14;\n break;\n case 10:\n __f__(\"log\", \"这是接口获取的视屏凭证222\", res.video, data, \" at pages/component/commonComponents/video/index.vue:428\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n playAuth: new Date().getTime()\n });\n _context8.next = 14;\n return that.getData(data, isChange);\n case 14:\n __f__(\"log\", \"是否获取到初始播放值\", data, \" at pages/component/commonComponents/video/index.vue:435\");\n that.$forceUpdate();\n case 16:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }))();\n },\n handleEnd: function handleEnd() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var list, data;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n list = JSON.parse(JSON.stringify(uni.getStorageSync(\"videoOssList\")));\n data = list.find(function (e) {\n return e.id == _this9.videoData.id;\n });\n _this9.currentTime = data.time;\n __f__(\"log\", \"this.currentTime at line 这是结束的时候掉的存储视频:\", _this9.currentTime, \" at pages/component/commonComponents/video/index.vue:444\");\n clearInterval(_this9.$store.state.videoTimer);\n _this9.timer = null;\n _context10.next = 8;\n return _this9.setVideoTime();\n case 8:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n },\n setVideoTime: function setVideoTime(time) {\n var _this10 = this;\n var data = {};\n // var list = uni.getStorageSync(\"videoOssList\");\n\n // data = list.find((e) => e.id == this.videoData.id);\n // console.log(\"这是再走生命周期哦\", this.currentTime);\n __f__(\"log\", \"是否走了存储视屏,\" + this.videoData.id, this.currentTime, \" at pages/component/commonComponents/video/index.vue:459\");\n var data = {\n videoId: this.videoData.id,\n position: this.currentTime //秒数\n };\n\n _requestConfig.default.request({\n url: \"sociology/course/saveCoursePosition\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then(function (res) {\n __f__(\"log\", \"存储视屏时长接口返回信息\", res, \" at pages/component/commonComponents/video/index.vue:476\");\n _this10.$forceUpdate();\n });\n },\n changePlayerTime: function changePlayerTime(player) {\n __f__(\"log\", \"this.firstTime at line 106:\", this.firstTime, \" at pages/component/commonComponents/video/index.vue:481\");\n player.seek(this.firstTime);\n },\n goBack: function goBack() {\n uni.navigateBack({\n delta: 1\n });\n },\n setVideoFirtsetTime: function setVideoFirtsetTime(time) {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _this11.currentTime = _this11.firstTime;\n __f__(\"log\", \"这里准备开始设置播放时间:\", _this11.currentTime, \" at pages/component/commonComponents/video/index.vue:492\");\n // await this.setVideoTime();\n // setTimeout(() => {\n // clearInterval(this.$store.state.videoTimer);\n\n _index.default.commit(\"setVideoTimer\", setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return _this11.setVideoTime();\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n })), 60000));\n // }, 5000);\n case 3:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }))();\n }\n },\n created: function created() {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW5kZXgudnVlIl0sIm5hbWVzIjpbInByb3BzIiwiZGF0YSIsInBsYXRmb3JtIiwiaXNGdWxsU2NyZWVuIiwiaXNmcmVzaCIsImlzQ2hhbmdlIiwiaXNDb250cm9sIiwidGltZXIiLCJ2aWRlb1RpdGxlIiwidmlkZW9MaXN0IiwiZmlyc3RUaW1lIiwib3B0aW9ucyIsInBsYXlBdXRoIiwiY3VycmVudFRpbWUiLCJ2aWRlb0lkIiwidmlkZW9EYXRhIiwiaXNTZXRGaXJzdFRpbWUiLCJzY3JlZW5UeXBlIiwidmlkZW9VcmwiLCJjb21wdXRlZCIsIndhdGNoIiwiY3VycmVudFZpZGVvIiwiaW1tZWRpYXRlIiwiaGFuZGxlciIsIm1vdW50ZWQiLCJiZWZvcmVEZXN0cm95IiwiY2xlYXJJbnRlcnZhbCIsInBsdXMiLCJvblVubG9hZCIsInVuaSIsInVybCIsIm9uTG9hZCIsIm1ldGhvZHMiLCJzdGFydCIsInBhdXNlIiwiY2hhbmdlVmlkZW9EYXRhIiwiY2hhbmdlVmlkZW8iLCJzY3JlZW5DaGFuZ2UiLCJjb250cm9sQ2hhbmdlIiwicXVpdFNjcmVlbiIsImN0eCIsInZpZGVvVGltZVVwZGF0ZUV2ZW50IiwidGltZSIsImluaXQiLCJnZXRWaWRlbyIsInRoYXQiLCIkaHR0cCIsInJlcXVlc3QiLCJtZXRob2QiLCJoZWFkZXIiLCJ0aGVuIiwiY3JlZGVudGlhbHMiLCJ2aWQiLCJhY2Nlc3NLZXlJZCIsInNlY3VyaXR5VG9rZW4iLCJhY2Nlc3NLZXlTZWNyZXQiLCJleHBpcmVUaW1lIiwiUmVnaW9uIiwidHlwZSIsImdldERhdGEiLCJuZXRXb3JrIiwibGlzdCIsImluZGV4IiwicGxheVZpZGVvIiwicmVjb3JkVGltZSIsImdldExpdmUiLCJyZXMiLCJoYW5kbGVFbmQiLCJzZXRWaWRlb1RpbWUiLCJwb3NpdGlvbiIsImNoYW5nZVBsYXllclRpbWUiLCJwbGF5ZXIiLCJnb0JhY2siLCJkZWx0YSIsInNldFZpZGVvRmlydHNldFRpbWUiLCJzdG9yZSIsInNldEludGVydmFsIiwiY3JlYXRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXNGQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBRUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsNEJBQ0Esc0NBQ0E7RUFFQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBaEI7TUFDQTtJQUNBO0VBQ0E7RUFFQTtFQUNBaUI7RUFDQUM7SUFDQTtJQUNBO0lBQ0FDO0lBQ0E7SUFDQTtJQUNBQztJQUVBO0VBQ0E7RUFDQUM7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQUM7Z0JBQ0FDO2NBQ0E7Y0FFQUg7O2NBRUE7Y0FBQTtjQUFBLE9BR0E7WUFBQTtZQUFBO2NBQUE7VUFBQTtRQUFBO01BQUE7SUFBQTtFQUVBO0VBRUE7RUFDQUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQUEsQ0FDQTtFQUVBQztJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0EsYUFDQSw4QkFDQXBDLGFBQ0FBO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFD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QTVDLHVDQUNBQTs4QkFDQVc7NEJBQUEsRUFDQTs0QkFBQTs0QkFBQSxPQUNBaUM7MEJBQUE7NEJBRUE7NEJBRUFBOzBCQUFBOzBCQUFBOzRCQUFBO3dCQUFBO3NCQUFBO29CQUFBO2tCQUFBLENBQ0E7a0JBQUE7b0JBQUE7a0JBQUE7Z0JBQUE7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBc0I7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFDQU47Z0JBQ0E1RDtrQkFBQTtnQkFBQTtnQkFDQTtnQkFDQSxhQUNBLDJDQUNBO2dCQUVBeUI7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FFQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0EwQztNQUFBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0E7TUFDQTtRQUNBdEQ7UUFDQXVEO01BQ0E7O01BRUF2Qix1QkFDQUM7UUFDQWpCO1FBQ0FrQjtRQUFBO1FBQ0EvQztRQUNBZ0Q7VUFDQTtVQUNBO1FBQ0E7TUFDQSxHQUNBQztRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FvQjtNQUNBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQTNDO1FBQ0E0QztNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7O2dCQUVBQyxzQkFDQSxpQkFDQUM7a0JBQUE7b0JBQUE7c0JBQUE7d0JBQUE7MEJBQUE7MEJBQUEsT0FFQTt3QkFBQTt3QkFBQTswQkFBQTtzQkFBQTtvQkFBQTtrQkFBQTtnQkFBQSxDQUVBLFdBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtFQUNBO0VBRUFDO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxMDUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gIDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgIDwhLS0gPHUtaWNvblxyXG5cdFx0QGNsaWNrPVwiZ29CYWNrXCJcclxuXHRcdG5hbWU9XCJhcnJvdy1sZWZ0XCJcclxuXHRcdGNvbG9yPVwiIzNhYjNhZVwiXHJcblx0XHRzaXplPVwiMjBcIlxyXG5cdFx0OnN0eWxlPVwiYGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6ICR7XHJcblx0XHQgIHN0YXR1c0JhckhlaWdodCArIDJcclxuXHRcdH1weDsgbGVmdDogJHsxMH1weDt6LWluZGV4OiA5OTk7YFwiXHJcblx0ICA+PC91LWljb24+LS0+XHJcbiAgICA8IS0tIDx6aGltaV9hbGlwbGF5ZXJfdmlld1xyXG4gICAgICByZWY9XCJwbGF5ZXJWaWV3XCJcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAzMDBweFwiXHJcbiAgICA+PC96aGltaV9hbGlwbGF5ZXJfdmlldz5cclxuICAgIDxidXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJzdGFydCgpXCI+5byA5aeLPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwicGF1c2UoKVwiPuaaguWBnDwvYnV0dG9uPiAtLT5cclxuICAgIDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjAwcHhcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiXCJcclxuICAgICAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMwMDBcIlxyXG4gICAgICAgIHJlZj1cInZpZGVvQ29udGVudFwiXHJcbiAgICAgICAgQHRhcD1cInJlbmRlclNjcmlwdC5oYW5kbGVDbGlja1wiXHJcbiAgICAgICAgaWQ9XCJ1cmwtcGxheWVyLXRlc3RcIlxyXG4gICAgICAgIDp2aWRlb0RhdGE9XCJ2aWRlb0RhdGFcIlxyXG4gICAgICAgIDp3aW5XaWR0aD1cIndpbldpZHRoXCJcclxuICAgICAgICA6d2luSGVpZ2h0PVwid2luSGVpZ2h0XCJcclxuICAgICAgICA6Y3VycmVudFZpZGVvTGlzdD1cImN1cnJlbnRWaWRlb0xpc3RcIlxyXG4gICAgICAgIDpmaXJzdFRpbWU9XCJmaXJzdFRpbWVcIlxyXG4gICAgICAgIDppc2ZyZXNoPVwiaXNmcmVzaFwiXHJcbiAgICAgICAgOnBsYXRmb3JtPVwicGxhdGZvcm1cIlxyXG4gICAgICAgIDppc1NldEZpcnN0VGltZT1cImlzU2V0Rmlyc3RUaW1lXCJcclxuICAgICAgICA6aXNDaGFuZ2U9XCJpc0NoYW5nZVwiXHJcbiAgICAgICAgOmNoYW5nZTp2aWRlb0RhdGE9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZU1zZ1wiXHJcbiAgICAgICAgOmNoYW5nZTp3aW5XaWR0aD1cInJlbmRlclNjcmlwdC5yZWNlaXZlV2luV2lkdGhcIlxyXG4gICAgICAgIDpjaGFuZ2U6d2luSGVpZ2h0PVwicmVuZGVyU2NyaXB0LnJlY2VpdmVXaW5IZWlnaHRcIlxyXG4gICAgICAgIDpjaGFuZ2U6Zmlyc3RUaW1lPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVGaXJzdFRpbWVcIlxyXG4gICAgICAgIDpjaGFuZ2U6aXNTZXRGaXJzdFRpbWU9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZWlzU2V0Rmlyc3RUaW1lXCJcclxuICAgICAgICA6Y2hhbmdlOmlzZnJlc2g9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZUlzZnJlc2hcIlxyXG4gICAgICAgIDpjaGFuZ2U6cGxhdGZvcm09XCJyZW5kZXJTY3JpcHQucmVjZWl2ZXBsYXRmb3JtXCJcclxuICAgICAgICA6Y2hhbmdlOmlzQ2hhbmdlPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVJc0NoYW5nZVwiXHJcbiAgICAgICAgOmNoYW5nZTpjdXJyZW50VmlkZW9MaXN0PVwicmVuZGVyU2NyaXB0LnJlY2VpdmVWaWRlb0xpc3RcIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5lbWl0RGF0YVwiIHJlZj1cInZpZGVvQ29udGVudDFcIiB2LXNob3c9XCJmYWxzZVwiPlxyXG4gICAgICAgIOebtOaOpeiwg+eUqHJlbmRlcmpz5Lit55qEZW1pdERhdGHnmoTmlrnms5Us5Lyg6YCS5b2T5YmN5pKt5pS+5pe26ZW/XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBAdGFwPVwicmVuZGVyU2NyaXB0LmVuZEVtaXREYXRhXCIgcmVmPVwidmlkZW9Db250ZW50MlwiIHYtc2hvdz1cImZhbHNlXCI+XHJcbiAgICAgICAg55uR5ZCs57uT5p2f5pa55rOV77yM6K6w5b2V5pKt5pS+5pe26ZW/XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIEB0YXA9XCJyZW5kZXJTY3JpcHQuY2hhbmdlVmlkZW9EYXRhXCJcclxuICAgICAgICByZWY9XCJ2aWRlb0NvbnRlbnQzXCJcclxuICAgICAgICB2LXNob3c9XCJmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICDnm5HlkKzliIfmjaLop4bpopHmlrnms5VcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5lbWl0U2V0RGF0YVwiIHJlZj1cInZpZGVvQ29udGVudDRcIiB2LXNob3c9XCJmYWxzZVwiPlxyXG4gICAgICAgIOebkeWQrOWIh+aNouinhumikeaWueazlVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgOmNsYXNzPVwiYHByaXNtLWZ1bGxzY3JlZW4tYnRuICR7aXNGdWxsU2NyZWVuID8gJ2Z1bGxzY3JlZW4nIDogJyd9YFwiXHJcbiAgICAgICAgICBAdGFwPVwicmVuZGVyU2NyaXB0LmNoYW5nZVZpZGVvU2NyZWVuXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC92aWV3PlxyXG4gICAgPCEtLSA8dmlldyBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDIwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmVcIiB2LWVsc2U+XHJcblx0XHQ8dmlkZW9cclxuXHRcdCAgQHRpbWV1cGRhdGU9XCJ2aWRlb1RpbWVVcGRhdGVFdmVudCgkZXZlbnQpXCJcclxuXHRcdCAgcmVmPVwidmlkZW9zXCJcclxuXHRcdCAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcclxuXHRcdCAgYXV0b3BsYXlcclxuXHRcdCAgaWQ9XCJ2aWRlb0lkXCJcclxuXHRcdCAgb2JqZWN0LWZpdD1cImNvbnRhaW5cIlxyXG5cdFx0ICBjbGFzcz1cInZpZGVvLWJveFwiXHJcblx0XHQgIDpzcmM9XCJ2aWRlb1VybFwiXHJcblx0XHQgIDpwb3N0ZXI9XCJgJHt2aWRlb1VybH0/eC1vc3MtcHJvY2Vzcz12aWRlby9zbmFwc2hvdCx0XyR7MX0sZl9qcGdgXCJcclxuXHRcdCAgQHBsYXk9XCJwbGF5VmlkZW9cIlxyXG5cdFx0PlxyXG5cdFx0XHQgPC92aWRlbz5cclxuXHQgIDwvdmlldz4gLS0+XHJcbiAgPC92aWV3PlxyXG48L3RlbXBsYXRlPlxyXG48c2NyaXB0PlxyXG5pbXBvcnQgc3RvcmUgZnJvbSBcIkAvc3RvcmUvaW5kZXguanNcIjtcclxuaW1wb3J0ICRodHRwIGZyb20gXCJAL2NvbmZpZy9yZXF1ZXN0Q29uZmlnLmpzXCI7XHJcbmltcG9ydCB7IG1hcFN0YXRlLCBtYXBNdXRhdGlvbnMgfSBmcm9tIFwidnVleFwiO1xyXG5cclxuLy8gaW1wb3J0U2NyaXB0cygnQC9zdGF0aWMvYWxpcGxheWVyL2FsaXBsYXllci1taW4uanMnKVxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IFtcImN1cnJlbnRWaWRlb1wiLCBcImN1cnJlbnRWaWRlb0xpc3RcIl0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBsYXRmb3JtOiBudWxsLFxyXG4gICAgICAvL+W9k+WJjeaYr+WQpuaYr+WFqOWxj+aooeW8j1xyXG4gICAgICBpc0Z1bGxTY3JlZW46IGZhbHNlLFxyXG4gICAgICBpc2ZyZXNoOiBmYWxzZSxcclxuICAgICAgaXNDaGFuZ2U6IGZhbHNlLFxyXG4gICAgICBpc0NvbnRyb2w6IHRydWUsXHJcbiAgICAgIHRpbWVyOiBudWxsLFxyXG4gICAgICB2aWRlb1RpdGxlOiBcIlwiLFxyXG4gICAgICB2aWRlb0xpc3Q6IFtdLFxyXG4gICAgICBmaXJzdFRpbWU6IDAsXHJcbiAgICAgIG9wdGlvbnM6IHt9LFxyXG4gICAgICBwbGF5QXV0aDogXCJcIixcclxuICAgICAgY3VycmVudFRpbWU6IFwiXCIsXHJcbiAgICAgIHZpZGVvSWQ6IFwiXCIsXHJcbiAgICAgIHZpZGVvRGF0YToge30sXHJcbiAgICAgIGlzU2V0Rmlyc3RUaW1lOiBmYWxzZSxcclxuICAgICAgc2NyZWVuVHlwZTogbnVsbCxcclxuICAgICAgdmlkZW9Vcmw6IG51bGwsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC4uLm1hcFN0YXRlKFtcInZpZGVvT3NzTGlzdFwiXSksXHJcbiAgfSxcclxuXHJcbiAgd2F0Y2g6IHtcclxuICAgIGN1cnJlbnRWaWRlbzoge1xyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICAgIGhhbmRsZXIobmV3Um91dGUpIHt9LFxyXG4gICAgfSxcclxuICAgIHRpbWVyKG5ld1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJjaGlsZC1ldmVudFwiLCBuZXdWYWx1ZSk7XHJcbiAgICB9LFxyXG4gIH0sXHJcblxyXG4gIC8vIC8v6aG16Z2i5pi+56S6XHJcbiAgbW91bnRlZCgpIHt9LFxyXG4gIGJlZm9yZURlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmhhbmRsZUVuZCgpO1xyXG4gICAgY29uc29sZS5sb2coXCLmmK/lkKbotbDllabkuaDplIDmr4FcIik7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpO1xyXG4gICAgLy8gdGhpcy50aW1lciA9IG51bGw7XHJcbiAgICAvLyBzdG9yZS5jb21taXQoXCJzZXRMb2FkaW5nU2hvd1wiLCBudWxsKTtcclxuICAgIHBsdXMuc2NyZWVuLmxvY2tPcmllbnRhdGlvbihcInBvcnRyYWl0LXByaW1hcnlcIik7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCLmmK/lkKbotbDllabkuaDplIDmr4Hlrprml7blmahcIiwgdGhpcy50aW1lcik7XHJcbiAgfSxcclxuICBhc3luYyBvblVubG9hZCgpIHtcclxuICAgIHVuaS5uYXZpZ2F0ZVRvKHtcclxuICAgICAgdXJsOiBcIi9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vYmFja1wiLFxyXG4gICAgfSk7XHJcbiAgICAvLyAjaWZkZWYgQVBQLVBMVVNcclxuICAgIHBsdXMuc2NyZWVuLmxvY2tPcmllbnRhdGlvbihcInBvcnRyYWl0LXByaW1hcnlcIik7IC8v6ZSB5q275bGP5bmV5pa55ZCR5Li656uW5bGPXHJcblxyXG4gICAgLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTtcclxuICAgIC8vICNlbmRpZlxyXG5cclxuICAgIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAvLyB0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcbiAgfSxcclxuXHJcbiAgLy/nrKzkuIDmrKHliqDovb1cclxuICBvbkxvYWQob3B0aW9ucykge1xyXG4gICAgLy8gY29uc29sZS5sb2cob3B0aW9ucywgXCLov5nmmK/kvKDlj4JcIik7XHJcbiAgICAvLyAvLyAjaWZkZWYgQVBQLVBMVVNcclxuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICBwbHVzLnNjcmVlbi51bmxvY2tPcmllbnRhdGlvbigpO1xyXG4gICAgLy8gICBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJsYW5kc2NhcGUtcHJpbWFyeVwiKTtcclxuICAgIC8vIH0sIDEwKTtcclxuICAgIC8vIC8vXHQjZW5kaWZcclxuICAgIC8vIC8vICNpZmRlZiBBUFAtUExVU1xyXG4gICAgLy8gLy8gcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTtcclxuICAgIC8vIC8vICNlbmRpZlxyXG4gICAgLy8gaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG4gICAgLy8gICB0aGlzLnZpZGVvTGlzdCA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKTtcclxuICAgIC8vIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKFwidGhpcy52aWRlb0xpc3QgYXQgbGluZSA1MzpcIiwgdGhpcy52aWRlb0xpc3QpO1xyXG4gICAgLy8gdGhpcy5vcHRpb25zID0gSlNPTi5wYXJzZShvcHRpb25zLmRhdGEpO1xyXG4gICAgLy8gdGhpcy52aWRlb0lkID0gdGhpcy5vcHRpb25zLnZpZGVvO1xyXG4gICAgLy8gdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgIC8vICAgdmFyIHRoYXQgPSB0aGlzO1xyXG4gICAgLy8gICBpZiAodGhpcy5jdXJyZW50VGltZSkge1xyXG4gICAgLy8gICAgIHRoYXQuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0sIDIwMDApO1xyXG4gICAgLy8gdGhpcy4kZW1pdChcImNoaWxkLWV2ZW50XCIsIHRoaXMudGltZXIpO1xyXG4gICAgLy8gLy8gdGhpcy4kb25jZShcImhvb2s6YmVmb3JlRGVzdHJveVwiLCAoKSA9PiB7XHJcbiAgICAvLyAvLyAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XHJcbiAgICAvLyAvLyB9KTtcclxuICB9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgLy8gdmFyIHBsYXllclZpZXcgPSB0aGlzLiRyZWZzLnBsYXllclZpZXc7XHJcbiAgICAgIHRoaXMuJHJlZnMucGxheWVyVmlldy5zdGFydCgpO1xyXG4gICAgfSxcclxuICAgIHBhdXNlKCkge1xyXG4gICAgICAvLyB2YXIgcGxheWVyVmlldyA9IDtcclxuICAgICAgdGhpcy4kcmVmcy5wbGF5ZXJWaWV3LnBhdXNlKCk7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlVmlkZW9EYXRhKCkge1xyXG4gICAgICB0aGlzLmlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgY2hhbmdlVmlkZW8oZGF0YSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gXCJcIjtcclxuICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICB0aGlzLmlzU2V0Rmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0KGRhdGEsIHRydWUpO1xyXG4gICAgfSxcclxuICAgIHNjcmVlbkNoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwic3RhdHVzIGF0IGxpbmUg6L+Z5piv5b2T5YmN55qE54q25oCBMTU4OlwiLFxyXG4gICAgICAgIGRhdGEuc3RhdHVzLFxyXG4gICAgICAgIGRhdGEucHJpbWFyeVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmlzRnVsbFNjcmVlbiA9ICFkYXRhLnN0YXR1cztcclxuICAgICAgdGhpcy4kZW1pdChcImNoYW5nZVNjcmVlblwiLCB0aGlzLmlzRnVsbFNjcmVlbik7XHJcbiAgICAgIC8vIGxldCBmdWxsU2NyZWVuID0gZS5kZXRhaWwuZnVsbFNjcmVlbjsgLy8g5YC8dHJ1ZeS4uui/m+WFpeWFqOWxj++8jGZhbHNl5Li66YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vIGlmICghZnVsbFNjcmVlbikge1xyXG4gICAgICAvLyAgIC8v6YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vICAgdGhpcy5pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcclxuICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgLy8gICB0aGlzLmlzRnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjqfliLblmajnmoTmmL7npLrpmpDol49cclxuICAgIGNvbnRyb2xDaGFuZ2UoZSkge1xyXG4gICAgICB0aGlzLmlzQ29udHJvbCA9IGUuZGV0YWlsLnNob3c7XHJcbiAgICB9LFxyXG4gICAgcXVpdFNjcmVlbigpIHtcclxuICAgICAgLy8g6YCA5Ye65YWo5bGPXHJcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuJHJlZnMubXlWaWRlbztcclxuICAgICAgY3R4LmV4aXRGdWxsU2NyZWVuKCk7XHJcbiAgICB9LFxyXG4gICAgLy8g5pKt5pS+6L+b5bqm5pS55Y+YXHJcbiAgICB2aWRlb1RpbWVVcGRhdGVFdmVudChlKSB7XHJcbiAgICAgIHRoaXMucGxheVRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcblxyXG4gICAgICB0aGlzLmFsbFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5kdXJhdGlvbik7XHJcblxyXG4gICAgICB0aGlzLnJlY29yZFRpbWUoe1xyXG4gICAgICAgIHRpbWU6IHRoaXMucGxheVRpbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGluaXQoZGF0YSwgaXNDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5wbGF0Zm9ybSA9IHRoaXMuJHBsYXRmb3JtO1xyXG4gICAgICB0aGlzLmlzZnJlc2ggPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImF0IGxpbmUgNTk6XCIsIFwi5piv5ZCm5YWI6LWwaW5pdOi/memHjFwiLCB0aGlzLnBsYXRmb3JtKTtcclxuICAgICAgaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG4gICAgICAgIHRoaXMudmlkZW9MaXN0ID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IGRhdGEuY3VycmVudFZpZGVvO1xyXG5cclxuICAgICAgdGhpcy52aWRlb0lkID0gdGhpcy5vcHRpb25zLnZpZGVvO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIui/meaYr+iLueaenOinhuWxj2lkXCIsIHRoaXMudmlkZW9JZCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0TGl2ZShpc0NoYW5nZSk7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuZ2V0VmlkZW8oaXNDaGFuZ2UpO1xyXG4gICAgICAvLyAgIHRoaXMuJGVtaXQoXCJjaGlsZC1ldmVudFwiLCB0aGlzLnRpbWVyKTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBnZXRWaWRlbygpIHtcclxuICAgICAgdmFyIGRhdGEgPSB7fTtcclxuICAgICAgdmFyIHRoYXQgPSB0aGlzO1xyXG4gICAgICAkaHR0cFxyXG4gICAgICAgIC5yZXF1ZXN0KHtcclxuICAgICAgICAgIHVybDogYHNvY2lvbG9neS9jb3Vyc2UvdHR0YCxcclxuICAgICAgICAgIG1ldGhvZDogXCJQb3N0XCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBoZWFkZXI6IHtcclxuICAgICAgICAgICAgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIiDop4bpopHmkq3mlL4xMTExMTExMTExMTpcIiwgcmVzKTtcclxuXHJcbiAgICAgICAgICB2YXIgY3JlZGVudGlhbHMgPSByZXMucmVzdWx0LmNyZWRlbnRpYWxzO1xyXG4gICAgICAgICAgLy8gdmFyIHBsYXllclZpZXcgPSB0aGlzLiRyZWZzLnBsYXllclZpZXc7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygncGxheWVyVmlldyBhdCBsaW5lIDI3MzonLCBwbGF5ZXJWaWV3KVxyXG4gICAgICAgICAgLypcclxuXHRcdFx0XHRTVFPliqDlr4bmkq3mlL5cclxuXHRcdFx0XHRcclxuXHRcdFx0Ki9cclxuICAgICAgICAgIHRoYXQuJHJlZnMucGxheWVyVmlldy5zZXRWaWRTdHMoe1xyXG4gICAgICAgICAgICB2aWQ6IHRoaXMudmlkZW9EYXRhLnZpZGVvLFxyXG4gICAgICAgICAgICBhY2Nlc3NLZXlJZDogY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQsXHJcbiAgICAgICAgICAgIHNlY3VyaXR5VG9rZW46IGNyZWRlbnRpYWxzLnNlY3VyaXR5VG9rZW4sXHJcbiAgICAgICAgICAgIGFjY2Vzc0tleVNlY3JldDogY3JlZGVudGlhbHMuYWNjZXNzS2V5U2VjcmV0LFxyXG4gICAgICAgICAgICBleHBpcmVUaW1lOiBjcmVkZW50aWFscy5leHBpcmVUaW1lLFxyXG4gICAgICAgICAgICBSZWdpb246IFwiY24tc2hhbmdoYWlcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLy8gcGxheWVyVmlldy5zZXRMb2NhbFNvdXJjZSh7XHJcbiAgICAgICAgICAvLyAgIHVyaTogXCJodHRwOi8vZHVvZHVvdmlkZW8ub3NzLWNuLWJlaWppbmcuYWxpeXVuY3MuY29tLzVmMDkzYzZmYjZlOTAubXA0XCIsXHJcbiAgICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgICBsZXQgaXNGdWxsU2NyZWVuID0gdHJ1ZTtcclxuICAgICAgICAgIC8vIGZpeGVkIGZ1bGxzY3JlZW4gcGxheSBvbiBhbmRyb2lkXHJcbiAgICAgICAgICBpZiAocGx1cy5vcy5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiYW5kcm9pZFwiKSB7XHJcbiAgICAgICAgICAgIHBsdXMua2V5LmFkZEV2ZW50TGlzdGVuZXIoXCJiYWNrYnV0dG9uXCIsIChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGlzRnVsbFNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgdGhhdC4kcmVmcy5wbGF5ZXJWaWV3LmNoYW5nZVNjcmVlbk1vZGUoMCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgaXNGdWxsU2NyZWVuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIOi/memHjOeUseS6juWuieWNk+aXoOazleebkeWQrOi/lOWbnuaMiemUru+8jOi/memHjOWPquiDvemAmui/h3BsdXPnm5HlkKzvvIznhLblkI7oh6rlt7HmqKHmi5/pgIDlm55cclxuICAgICAgICAgICAgICAgIHVuaS5uYXZpZ2F0ZUJhY2soKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhhdC4kcmVmcy5wbGF5ZXJWaWV3LnNldFBsYXllckNhbGxCYWNrKCh7IHR5cGUsIGRhdGEgfSkgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICBjYXNlIFwiaXNGdWxsU2NyZWVuXCI6XHJcbiAgICAgICAgICAgICAgICBpc0Z1bGxTY3JlZW4gPSBCb29sZWFuKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBnZXREYXRhKGRhdGEsIGlzQ2hhbmdlKSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgaWYgKCF0aGlzLmlzU2V0Rmlyc3RUaW1lKSB7XHJcbiAgICAgICAgdmFyIG5ldFdvcmsgPSBkYXRhLnVzZXJDb3Vyc2VWaWRlb1Bvc2l0aW9uRW50aXR5XHJcbiAgICAgICAgICA/IGRhdGEudXNlckNvdXJzZVZpZGVvUG9zaXRpb25FbnRpdHkucG9zaXRpb25cclxuICAgICAgICAgIDogMDtcclxuICAgICAgICB2YXIgbGlzdCA9IFtdO1xyXG4gICAgICAgIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuICAgICAgICAgIGxpc3QgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSk7XHJcbiAgICAgICAgICB2YXIgaW5kZXggPSBsaXN0LmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PSBkYXRhLmlkKTtcclxuXHJcbiAgICAgICAgICBpZiAobmV0V29yaykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlyc3RUaW1lID1cclxuICAgICAgICAgICAgICAgIGxpc3RbaW5kZXhdLnRpbWUgPiBuZXRXb3JrID8gbGlzdFtpbmRleF0udGltZSA6IG5ldFdvcms7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSBuZXRXb3JrID8gbmV0V29yayA6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSBsaXN0W2luZGV4XS50aW1lID8gbGlzdFtpbmRleF0udGltZSA6IDA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmlyc3RUaW1lID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudmlkZW9EYXRhID0ge1xyXG4gICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaXNDaGFuZ2UgPSBpc0NoYW5nZSA/IGlzQ2hhbmdlIDogZmFsc2U7XHJcbiAgICAgICAgLy8gdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZmlyc3RUaW1lO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlyc3RUaW1lLCBcIui/meaYr+esrOS4gOasoeaSreaUvuaXtumVvzIyMlwiKTtcclxuICAgICAgICAvLyBhd2FpdCB0aGlzLnNldFZpZGVvVGltZSgpO1xyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XHJcblxyXG4gICAgICAgIC8vIGlmICh0aGlzLmN1cnJlbnRWaWRlby50eXBlID09IDAgfHwgdGhpcy5jdXJyZW50VmlkZW8udHlwZSA9PSAyKSB7XHJcbiAgICAgICAgLy8gICBhd2FpdCB0aGlzLnBsYXlWaWRlbygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmZpcnN0VGltZSwgXCLov5nmmK/nrKzkuIDmrKHmkq3mlL7ml7bplb9cIik7XHJcbiAgICAgICAgLy8gYXdhaXQgdGhhdC5nZXRWaWRlbygpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXNTZXRGaXJzdFRpbWUgPSB0cnVlO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIHBsYXlWaWRlbyhlKSB7XHJcbiAgICAgIHRoaXMudmlkZW9Db250ZXh0ID0gdW5pLmNyZWF0ZVZpZGVvQ29udGV4dChcInZpZGVvSWRcIiwgdGhpcyk7XHJcbiAgICAgIHRoaXMudmlkZW9Db250ZXh0LnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cclxuICAgICAgLy8gICB0aGlzLnZpZGVvQ29udGV4dC5yZXF1ZXN0RnVsbFNjcmVlbigpO1xyXG4gICAgfSxcclxuICAgIHJlY29yZFRpbWUoZGF0YSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gZGF0YS50aW1lO1xyXG5cclxuICAgICAgdmFyIGxpc3QgPSBbXTtcclxuICAgICAgaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG4gICAgICAgIGxpc3QgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciBpbmRleCA9IGxpc3QuZmluZEluZGV4KChlKSA9PiBlLmlkID09IHRoaXMudmlkZW9EYXRhLmlkKTtcclxuICAgICAgaWYgKGxpc3QubGVuZ3RoID4gMCAmJiBpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgbGlzdFtpbmRleF0gPSB7XHJcbiAgICAgICAgICAuLi50aGlzLnZpZGVvRGF0YSxcclxuXHJcbiAgICAgICAgICB0aW1lOiBkYXRhLnRpbWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsaXN0LnB1c2goe1xyXG4gICAgICAgICAgLi4udGhpcy52aWRlb0RhdGEsXHJcbiAgICAgICAgICB0aW1lOiBkYXRhLnRpbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XHJcbiAgICB9LFxyXG4gICAgLy8g6I635Y+W5pWw5o2uXHJcbiAgICBhc3luYyBnZXRMaXZlKGlzQ2hhbmdlKSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgdGhpcy5pc2ZyZXNoID0gZmFsc2U7XHJcbiAgICAgIHZhciBkYXRhID0ge1xyXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGF3YWl0ICRodHRwXHJcbiAgICAgICAgLnJlcXVlc3Qoe1xyXG4gICAgICAgICAgdXJsOiBgc29jaW9sb2d5L2NvdXJzZS9jaGVja1ZpZGVvYCxcclxuICAgICAgICAgIG1ldGhvZDogXCJQb3N0XCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICBoZWFkZXI6IHtcclxuICAgICAgICAgICAgLy/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB2YXIgZGF0YSA9IHtcclxuICAgICAgICAgICAgLi4ucmVzLnZpZGVvLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRWaWRlby50eXBlID09IDEpIHtcclxuICAgICAgICAgICAgdmFyIHBsYXlBdXRoID0gcmVzLnZpZGVvLnBsYXlBdXRoLnJlcGxhY2UoLz0vZywgXCJcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6L+Z5piv5o6l5Y+j6I635Y+W55qE6KeG5bGP5Yet6K+BMTExXCIsIHBsYXlBdXRoKTtcclxuICAgICAgICAgICAgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAuLi5kYXRhLFxyXG4gICAgICAgICAgICAgIHZpZGVvSWQ6IHJlcy52aWRlby52aWRlbyxcclxuICAgICAgICAgICAgICBwbGF5QXV0aDogcGxheUF1dGgsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMucGxheUF1dGggPSBwbGF5QXV0aDtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IHRoYXQuZ2V0RGF0YShkYXRhLCBpc0NoYW5nZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIui/meaYr+aOpeWPo+iOt+WPlueahOinhuWxj+WHreivgTIyMlwiLCByZXMudmlkZW8sIGRhdGEpO1xyXG4gICAgICAgICAgICBkYXRhID0ge1xyXG4gICAgICAgICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgICAgICAgcGxheUF1dGg6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBhd2FpdCB0aGF0LmdldERhdGEoZGF0YSwgaXNDaGFuZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCLmmK/lkKbojrflj5bliLDliJ3lp4vmkq3mlL7lgLxcIiwgZGF0YSk7XHJcblxyXG4gICAgICAgICAgdGhhdC4kZm9yY2VVcGRhdGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBoYW5kbGVFbmQoKSB7XHJcbiAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpKTtcclxuICAgICAgdmFyIGRhdGEgPSBsaXN0LmZpbmQoKGUpID0+IGUuaWQgPT0gdGhpcy52aWRlb0RhdGEuaWQpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gZGF0YS50aW1lO1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcInRoaXMuY3VycmVudFRpbWUgYXQgbGluZSDov5nmmK/nu5PmnZ/nmoTml7blgJnmjonnmoTlrZjlgqjop4bpopE6XCIsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZVxyXG4gICAgICApO1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpO1xyXG4gICAgICB0aGlzLnRpbWVyID0gbnVsbDtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICB9LFxyXG4gICAgc2V0VmlkZW9UaW1lKHRpbWUpIHtcclxuICAgICAgdmFyIGRhdGEgPSB7fTtcclxuICAgICAgLy8gdmFyIGxpc3QgPSB1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIik7XHJcblxyXG4gICAgICAvLyBkYXRhID0gbGlzdC5maW5kKChlKSA9PiBlLmlkID09IHRoaXMudmlkZW9EYXRhLmlkKTtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCLov5nmmK/lho3otbDnlJ/lkb3lkajmnJ/lk6ZcIiwgdGhpcy5jdXJyZW50VGltZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5piv5ZCm6LWw5LqG5a2Y5YKo6KeG5bGPLFwiICsgdGhpcy52aWRlb0RhdGEuaWQsIHRoaXMuY3VycmVudFRpbWUpO1xyXG4gICAgICB2YXIgZGF0YSA9IHtcclxuICAgICAgICB2aWRlb0lkOiB0aGlzLnZpZGVvRGF0YS5pZCxcclxuICAgICAgICBwb3NpdGlvbjogdGhpcy5jdXJyZW50VGltZSwgLy/np5LmlbBcclxuICAgICAgfTtcclxuXHJcbiAgICAgICRodHRwXHJcbiAgICAgICAgLnJlcXVlc3Qoe1xyXG4gICAgICAgICAgdXJsOiBgc29jaW9sb2d5L2NvdXJzZS9zYXZlQ291cnNlUG9zaXRpb25gLFxyXG4gICAgICAgICAgbWV0aG9kOiBcIlBvc3RcIiwgLy8gUE9TVOOAgUdFVOOAgVBVVOOAgURFTEVURe+8jOWFt+S9k+ivtOaYjuafpeeci+WumOaWueaWh+aho1xyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGhlYWRlcjoge1xyXG4gICAgICAgICAgICAvL+m7mOiupCDml6Ag6K+05piO77ya6K+35rGC5aS0XHJcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi5a2Y5YKo6KeG5bGP5pe26ZW/5o6l5Y+j6L+U5Zue5L+h5oGvXCIsIHJlcyk7XHJcbiAgICAgICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGNoYW5nZVBsYXllclRpbWUocGxheWVyKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5maXJzdFRpbWUgYXQgbGluZSAxMDY6XCIsIHRoaXMuZmlyc3RUaW1lKTtcclxuICAgICAgcGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG4gICAgfSxcclxuICAgIGdvQmFjaygpIHtcclxuICAgICAgdW5pLm5hdmlnYXRlQmFjayh7XHJcbiAgICAgICAgZGVsdGE6IDEsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuXHJcbiAgICBhc3luYyBzZXRWaWRlb0ZpcnRzZXRUaW1lKHRpbWUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZmlyc3RUaW1lO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIui/memHjOWHhuWkh+W8gOWni+iuvue9ruaSreaUvuaXtumXtDpcIiwgdGhpcy5jdXJyZW50VGltZSk7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyBjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpO1xyXG5cclxuICAgICAgc3RvcmUuY29tbWl0KFxyXG4gICAgICAgIFwic2V0VmlkZW9UaW1lclwiLFxyXG4gICAgICAgIHNldEludGVydmFsKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIC8vIGlmICh0aGlzLmN1cnJlbnRUaW1lKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldFZpZGVvVGltZSgpO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgIH0sIDYwMDAwKVxyXG4gICAgICApO1xyXG4gICAgICAvLyB9LCA1MDAwKTtcclxuICAgIH0sXHJcbiAgfSxcclxuXHJcbiAgY3JlYXRlZCgpIHt9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzY3JpcHQgbW9kdWxlPVwicmVuZGVyU2NyaXB0XCIgbGFuZz1cInJlbmRlcmpzXCI+XHJcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSdcclxuLy8gIGltcG9ydCBTdGF0aWNBRENvbXBvbmVudCBmcm9tICcuL3N0YXRpY2FkY29tcG9uZW50L2luZGV4LmpzJztcclxuLyoqXHJcbiAqIOmdmeaAgeW5v+WRiue7hOS7tlxyXG4gKi9cclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcblx0LyoqXHJcblx0ICog6Z2Z5oCB5bm/5ZGK57uE5Lu2XHJcblx0ICovXHJcblxyXG5cdGNvbXBvbmVudHM6IHtcclxuXHRcdC8vIE15Q29tcG9uZW50XHJcblx0fSxcclxuXHRtb3VudGVkKCkge1xyXG5cdFx0Ly8g5Zyo6YCC5ZCI55qE55Sf5ZG95ZGo5pyf77yM6YCa6L+Hc2NyaXB05ZKMbGlua+agh+etvuW8leWFpeaSreaUvuWZqHNka+OAgWNzc1xyXG5cdFx0Y29uc29sZS5sb2codGhpcy5vcHRpb25zLCAn6L+Z5pivbW9udGVkJylcclxuXHRcdHRoaXMubG9hZFdlYlBsYXllclNESygpXHJcblx0XHQvLyB0aGlzLmxvYWRDb21wb25lbnQoKVxyXG5cdH0sXHJcblx0ZGF0YSgpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHBsYXllcjogbnVsbCxcclxuXHRcdFx0dmlkZW9UaW1lcjogbnVsbCxcclxuXHRcdFx0Y3VyVGltZTogbnVsbCxcclxuXHRcdFx0Ly8gZmlyc3RUaW1lOiBudWxsLFxyXG5cdFx0XHRjdXJTdGF0dXM6IG51bGwsXHJcblx0XHRcdC8vIGN1cnJlbnRUaW1lOm51bGwsXHJcblx0XHR9XHJcblx0fSxcclxuXHJcblxyXG5cdHdhdGNoOiB7XHJcblxyXG5cclxuXHRcdGN1clRpbWUodmFsKSB7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5jdXJUaW1lICE9PSBudWxsICYmIHRoaXMuY3VyU3RhdHVzICE9PSBudWxsKSB7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy52aWRlb0NvbnRlbnQxLmNsaWNrKClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdG1ldGhvZHM6IHtcclxuXHJcblx0XHRoYW5kbGVDbGljayhldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm5LqG6LWw5LqG54K55Ye7dmlkZW/kuovku7YnLCBldmVudClcclxuXHRcdFx0Ly8gICAgICAgICAgICAgdGhpcy5wbGF5ZXIub24oJ3JlYWR5JyxmdW5jdGlvbigpe1xyXG5cdFx0XHQvLyAgICB2YXIgc3RhdHVzPSAgdGhpcy5wbGF5ZXIuZnVsbHNjcmVlblNlcnZpY2UuZ2V0SXNGdWxsU2NyZWVuKClcclxuXHRcdFx0Ly8gICAgY29uc29sZS5sb2coJ3N0YXR1cyBhdCBsaW5lIDQwMzonLCBzdGF0dXMpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCfop6blj5Hngrnlh7vkuovku7YnLHN0YXR1cykpXHJcblx0XHRcdC8vICAgfSlcclxuXHJcblx0XHRcdC8vIG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0RGF0YScpXHJcblxyXG5cdFx0fSxcclxuXHRcdGVtaXREYXRhKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHJcblx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgncmVjb3JkVGltZScsIHtcclxuXHRcdFx0XHR0aW1lOiB0aGF0LmN1clRpbWUsXHJcblx0XHRcdFx0c3RhdHVzOiB0aGF0LmN1clN0YXR1c1xyXG5cdFx0XHR9KVxyXG5cclxuXHRcdH0sXHJcblxyXG5cclxuXHRcdGFzeW5jIHJlY2VpdmVGaXJzdFRpbWUobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cclxuXHRcdFx0Ly8gaWYgKHRoaXMucGxheWVyKSB7XHJcblx0XHRcdC8vIC8vIHRoaXMuZmlyc3RUaW1lPW5ld1ZhbHVlO1xyXG5cdFx0XHQvLyAvLyBjb25zb2xlLmxvZygn6L+Z5piv5Yid5aeL5pKt5pS+5pe26Ze0MTExJywgdGhpcy5maXJzdFRpbWUsdGhpcy5wbGF5ZXIpXHJcblx0XHRcdC8vIC8vICBhd2FpdCB0aGlzLnBsYXllci5zZWVrKG5ld1ZhbHVlKTtcclxuXHRcdFx0Ly8gIGF3YWl0IHRoaXMuJHJlZnMudmlkZW9Db250ZW50NC5jbGljaygpXHJcblxyXG5cclxuXHJcblx0XHRcdC8vIH1cclxuXHJcblxyXG5cdFx0fSxcclxuXHRcdGFzeW5jIHJlY2VpdmVpc1NldEZpcnN0VGltZShuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCfmmK/lkKbliJrlvIDlp4vorr7nva7mkq3mlL7ml7bpl7QnLCBuZXdWYWx1ZSwgdGhpcy5maXJzdFRpbWUsIHRoaXMucGxheWVyKTtcclxuXHRcdFx0Ly8gaWYgKHRoaXMucGxheWVyKSB7XHJcblx0XHRcdC8vIFx0Ly8gdGhpcy5maXJzdFRpbWU9bmV3VmFsdWU7XHJcblx0XHRcdC8vIFx0Ly8gYXdhaXQgdGhpcy5wbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHQvLyB9XHJcblxyXG5cclxuXHRcdH0sXHJcblxyXG5cdFx0ZW1pdFNldERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cdFx0XHQvLyB0aGlzLnBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKVxyXG5cdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm6K6+572u55qE56ys5LiA5qyh5Yid5aeL5pKt5pS+JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhLmlkKTtcclxuXHJcblxyXG5cdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ3NldFZpZGVvRmlydHNldFRpbWUnKVxyXG5cclxuXHRcdH0sXHJcblx0XHRjaGFuZ2VWaWRlb1NjcmVlbihldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdC8vIHRoaXMuJGVtaXQoJ2NoYW5nZVNjcmVlbkxvYWRpbmcnLHRydWUpXHJcblx0XHRcdHZhciBzdGF0dXMgPSB0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5nZXRJc0Z1bGxTY3JlZW4oKTtcclxuXHJcblxyXG5cclxuXHRcdFx0b3duZXJJbnN0YW5jZS5jYWxsTWV0aG9kKCdzY3JlZW5DaGFuZ2UnLCB7XHJcblx0XHRcdFx0c3RhdHVzOiBzdGF0dXMsXHJcblx0XHRcdFx0cHJpbWFyeTogc3RhdHVzID8gJ3BvcnRyYWl0JyA6ICdsYW5kc2NhcGUnXHJcblx0XHRcdH0pXHJcblxyXG5cclxuXHRcdFx0aWYgKHN0YXR1cykge1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0cGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTsgLy/plIHmrbvlsY/luZXmlrnlkJHkuLrnq5blsY9cclxuXHRcdFx0XHRcdHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLmNhbmNlbEZ1bGxTY3JlZW4oKTtcclxuXHRcdFx0XHRcdC8vIHRoaXMuJGVtaXQoJ2NoYW5nZVNjcmVlbkxvYWRpbmcnLGZhbHNlKTtcclxuXHJcblxyXG5cdFx0XHRcdH0sIDEwMCk7XHJcblxyXG5cclxuXHRcdFx0XHQvLyB0aGlzLnBsYXllci5zZXRQbGF5ZXJTaXplKCcxMDAlJywnMjAwcHgnKTtcclxuXHJcblxyXG5cclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHRcdC8vICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIuc2V0UGxheWVyU2l6ZSh7XHJcblx0XHRcdFx0Ly8gICB3OlwiNDAwcHhcIixcclxuXHRcdFx0XHQvLyAgIGhlaWdodDonNjAlJ1xyXG5cdFx0XHRcdC8vICB9KTtcclxuXHRcdFx0XHQvLyBwbHVzLnNjcmVlbi51bmxvY2tPcmllbnRhdGlvbigpO1xyXG5cdFx0XHRcdHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLnJlcXVlc3RGdWxsU2NyZWVuKCk7XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvLyB0aGlzLiRlbWl0KCdjaGFuZ2VTY3JlZW5Mb2FkaW5nJyxmYWxzZSk7XHJcblx0XHRcdFx0XHRwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJsYW5kc2NhcGUtcHJpbWFyeVwiKTtcclxuXHJcblx0XHRcdFx0fSwgMTAwKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGNoYW5nZVZpZGVvRGF0YShldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2NoYW5nZVZpZGVvRGF0YScsIClcclxuXHRcdH0sXHJcblx0XHRlbmRFbWl0RGF0YShldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2hhbmRsZUVuZCcsIClcclxuXHRcdH0sXHJcblx0XHRnZXRMaXZlKCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZygn6L+Z5piv6L+Z5Y+q5Y+q5pivNjY2NjY2OicsIHRoaXMuZmlyc3RUaW1lLCB0aGlzLnZpZGVvRGF0YSlcclxuXHJcblx0XHRcdGlmICh0aGlzLnBsYXllcikge1xyXG5cclxuXHRcdFx0XHR0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcblx0XHRcdFx0JCgnI3VybC1wbGF5ZXItdGVzdCcpLmVtcHR5KCk7XHJcblx0XHRcdFx0dGhpcy5wbGF5ZXIgPSBudWxsO1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHJcblxyXG5cdFx0XHR2YXIgZnVsbFNjcmVlbkJ1dHRvbkNvbXBvbmVudCA9IEFsaXBsYXllci5Db21wb25lbnQoe1xyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIOWIneWni+WHveaVsO+8jOWcqG5ld+WvueixoeaXtuiwg+eUqFxyXG5cdFx0XHRcdCAqXHJcblx0XHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IGFkQWRkcmVzcyAtIOW5v+WRiuinhumikeWcsOWdgFxyXG5cdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB0b0FkZHJlc3MgLSDlub/lkYrpk77mjqXlnLDlnYBcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRpbml0OiBmdW5jdGlvbihzdGF0dXMsIHRvQWRkcmVzcykge1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuZnVsbFNjcmVlblN0YXR1cyA9IHN0YXR1c1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy5hZEFkZHJlc3MgPSBhZEFkZHJlc3M7XHJcblx0XHRcdFx0XHQvLyB0aGlzLnRvQWRkcmVzcyA9IHRvQWRkcmVzcztcclxuXHJcblx0XHRcdFx0XHR0aGlzLiRodG1sID0gJCgnLmZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyJyk7XHJcblx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiDliJvlu7rlub/lkYpEb23lhYPntKBcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRjcmVhdGVFbDogZnVuY3Rpb24oZWwpIHtcclxuXHJcblxyXG5cdFx0XHRcdFx0dGhpcy4kaHRtbC5maW5kKCcuYWQnKS5hdHRyKCdzcmMnLCB0aGlzLmFkQWRkcmVzcyk7XHJcblx0XHRcdFx0XHR2YXIgJGFkV3JhcHBlciA9IHRoaXMuJGh0bWwuZmluZCgnLmFkLXdyYXBwZXInKTtcclxuXHRcdFx0XHRcdCRhZFdyYXBwZXIuYXR0cignaHJlZicsIHRoaXMudG9BZGRyZXNzKTtcclxuXHRcdFx0XHRcdCRhZFdyYXBwZXIuY2xpY2soZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdC8vIEFsaXBsYXllci51dGlsLnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmZpbmQoJy5jbG9zZScpLmNsaWNrKGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdC8vICAgdGhpcy4kaHRtbC5oaWRlKCk7XHJcblx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHRcdC8vICQoZWwpLmZpbmQoJy5wcmlzbS1jb250cm9sYmFyJykuYXBwZW5kKHRoaXMuJGh0bWwpO1xyXG5cdFx0XHRcdFx0JChlbCkuZmluZCgnLnByaXNtLXRpbWUtZGlzcGxheScpLmFmdGVyKHRoaXMuJGh0bWwpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cmVhZHk6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5oaWRlKClcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIOmakOiXj+W5v+WRilxyXG5cdFx0XHRcdCAqL1xyXG5cdFx0XHRcdHBsYXk6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5zaG93KCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiDmmL7npLrlub/lkYpcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRwYXVzZTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLnNob3coKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIOmakOiXj+W5v+WRilxyXG5cdFx0XHRcdCAqL1xyXG5cdFx0XHRcdHBsYXlpbmc6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0dGhpcy4kaHRtbC5zaG93KCk7XHJcblx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHdhaXRpbmc6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5oaWRlKClcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRpbWV1cGRhdGU6IGZ1bmN0aW9uKHBsYXllciwgZSkge30sXHJcblx0XHRcdFx0ZXJyb3I6IGZ1bmN0aW9uKHBsYXllciwgZSkge30sXHJcblx0XHRcdFx0LyoqXHJcblx0XHRcdFx0ICog5pi+56S65bm/5ZGKXHJcblx0XHRcdFx0ICovXHJcblx0XHRcdFx0ZW5kZWQ6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5zaG93KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdGNvbnNvbGUubG9nKCfov5nmmK/mn6XnnIvmmK/lkKbojrflj5bliLBobHN0b2tlbicsIHRoaXMudmlkZW9EYXRhLm10c0hsc1VyaVRva2VuLCB0aGlzLnZpZGVvRGF0YSlcclxuXHJcblxyXG5cdFx0XHR2YXIgcGxheWVyT3B0aW9ucyA9IHtcclxuXHRcdFx0XHRpZDogXCJ1cmwtcGxheWVyLXRlc3RcIixcclxuXHRcdFx0XHQvLyBwcmVsb2FkOiBmYWxzZSxcclxuXHRcdFx0XHQvLyBcInZpZFwiOiB0aGlzLnZpZGVvRGF0YVxyXG5cdFx0XHRcdC8vIFx0LnZpZGVvSWQsIC8vIOW/hemAieWPguaVsO+8jOWPr+S7pemAmui/h+eCueaSreaOp+WItuWPsO+8iOi3r+W+hO+8muWqkui1hOW6kz7pn7Mv6KeG6aKR77yJ5p+l6K+i44CC56S65L6L77yaMWUwNjdhMjgzMWI2NDFkYjkwZDU3MGI2NDgwZioqKirjgIJcclxuXHJcblx0XHRcdFx0d2lkdGg6ICcxMDAlJywgLy/lrrnlmajnmoTlpKflsI9cclxuXHRcdFx0XHQvLyB2aWRlb1dpZHRoOiAnMTAwdncnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdC8vIHZpZGVvSGVpZ2h0OiAnMTAwdmgnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdGhlaWdodDogJzEwMCUnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdC8vIHBsYXlzaW5saW5lOiB0cnVlLFxyXG5cdFx0XHRcdC8vIGNvbnRyb2xCYXJWaXNpYmlsaXR5OiBcImNsaWNrXCIsXHJcblx0XHRcdFx0Y292ZXI6IFwiXCIsXHJcblx0XHRcdFx0Y29tcG9uZW50czogW1xyXG5cdFx0XHRcdFx0Ly8gIHtcclxuXHRcdFx0XHRcdC8vICAgbmFtZTogJ0J1bGxldFNjcmVlbkNvbXBvbmVudCcsXHJcblx0XHRcdFx0XHQvLyAgIHR5cGU6IEFsaVBsYXllckNvbXBvbmVudC5CdWxsZXRTY3JlZW5Db21wb25lbnQsXHJcblx0XHRcdFx0XHQvLyAgIC8qKiBEZXNjcmlwdGlvbnMgb2YgdGhlIHNjcm9sbGluZyB0ZXh0IGNvbXBvbmVudCBwYXJhbWV0ZXJzOiB0ZXh0LCBzdHlsZSwgYnVsbGV0UG9zaXRpb25cclxuXHRcdFx0XHRcdC8vICAgICogdGV4dDogVGhlIHNjcm9sbGluZyB0ZXh0XHJcblx0XHRcdFx0XHQvLyAgICAqIHN0eWxlOiBUaGUgc3R5bGUgb2YgdGhlIHNjcm9sbGluZyB0ZXh0XHJcblx0XHRcdFx0XHQvLyAgICAqIGJ1bGxldFBvc2l0aW9uOiBUaGUgcG9zaXRpb24gb2YgdGhlIHNjcm9sbGluZyB0ZXh0LiBWYWxpZCB2YWx1ZXM6ICd0b3AnLCAnYm90dG9tJywgYW5kICdyYW5kb20nLiBUaGUgZGVmYXVsdCBpcyAncmFuZG9tJy5cclxuXHRcdFx0XHRcdC8vICAgICovXHJcblx0XHRcdFx0XHQvLyAgIGFyZ3M6IFsnaHR0cDovLzEwMS4yMDEuMTQ2LjE2NTo4MDg4L1BmLUVIL3N0YXRpY3MvdXBsb2FkRmlsZS8yMDI0LTA1LTEwL2IwZjQyMGM3LTkxNzgtNDFhZC05ZGQ2LWY1OWE2NGE2ZTE5MC5wbmcnXVxyXG5cdFx0XHRcdFx0Ly8gfSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ2FkQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdFx0dHlwZTogZnVsbFNjcmVlbkJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFx0XHRcdFx0YXJnczogW1xyXG5cdFx0XHRcdFx0XHRcdCdodHRwOi8vMTAxLjIwMS4xNDYuMTY1OjgwODgvUGYtRUgvc3RhdGljcy91cGxvYWRGaWxlLzIwMjQtMDUtMTAvYjBmNDIwYzctOTE3OC00MWFkLTlkZDYtZjU5YTY0YTZlMTkwLnBuZydcclxuXHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogJ1JhdGVDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBBbGlQbGF5ZXJDb21wb25lbnQuUmF0ZUNvbXBvbmVudFxyXG5cdFx0XHRcdFx0fSxcclxuXHJcblxyXG5cdFx0XHRcdFx0Ly8ge1xyXG5cdFx0XHRcdFx0Ly8gICBuYW1lOiAnUm90YXRlTWlycm9yQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdC8vICAgdHlwZTogQWxpUGxheWVyQ29tcG9uZW50LlJvdGF0ZU1pcnJvckNvbXBvbmVudFxyXG5cdFx0XHRcdFx0Ly8gfSxcclxuXHJcblxyXG5cdFx0XHRcdF0sXHJcblxyXG5cdFx0XHRcdHNraW5MYXlvdXQ6IFt7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiYmlnUGxheUJ1dHRvblwiLFxyXG5cdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHR4OiAzMCxcclxuXHRcdFx0XHRcdFx0eTogODBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiSDVMb2FkaW5nXCIsXHJcblx0XHRcdFx0XHRcdGFsaWduOiBcImNjXCJcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiZXJyb3JEaXNwbGF5XCIsXHJcblx0XHRcdFx0XHRcdGFsaWduOiBcInRsYWJzXCIsXHJcblx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdHk6IDBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdG5hbWU6IFwiaW5mb0Rpc3BsYXlcIlxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0bmFtZTogXCJ0b29sdGlwXCIsXHJcblx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdHk6IDU2XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBcInRodW1ibmFpbFwiXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBcImNvbnRyb2xCYXJcIixcclxuXHRcdFx0XHRcdFx0YWxpZ246IFwiYmxhYnNcIixcclxuXHRcdFx0XHRcdFx0eDogMCxcclxuXHRcdFx0XHRcdFx0eTogMCxcclxuXHRcdFx0XHRcdFx0Y2hpbGRyZW46IFt7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInByb2dyZXNzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0eDogMCxcclxuXHRcdFx0XHRcdFx0XHRcdHk6IDQ0XHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInBsYXlCdXR0b25cIixcclxuXHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcInRsXCIsXHJcblx0XHRcdFx0XHRcdFx0XHR4OiAxNSxcclxuXHRcdFx0XHRcdFx0XHRcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInRpbWVEaXNwbGF5XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0bFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0eDogMTAsXHJcblx0XHRcdFx0XHRcdFx0XHR5OiA3XHJcblx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHQvLyB7bmFtZTogXCJmdWxsU2NyZWVuQnV0dG9uXCIsIGFsaWduOiBcInRyXCIsIHg6IDEwLCB5OiAxMn0sXHJcblx0XHRcdFx0XHRcdFx0Ly8ge25hbWU6XCJzdWJ0aXRsZVwiLCBhbGlnbjpcInRyXCIseDoxNSwgeToxMn0sXHJcblx0XHRcdFx0XHRcdFx0Ly8ge1xyXG5cdFx0XHRcdFx0XHRcdC8vIFx0bmFtZTogXCJzZXR0aW5nXCIsXHJcblx0XHRcdFx0XHRcdFx0Ly8gXHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdC8vIFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0Ly8gXHR5OiAxMlxyXG5cdFx0XHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJwcmlzbS1zcGVlZC1zZWxlY3RvclwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidHJcIixcclxuXHRcdFx0XHRcdFx0XHRcdHg6IDE1LFxyXG5cdFx0XHRcdFx0XHRcdFx0eTogMTJcclxuXHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwidm9sdW1lXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0eDogNSxcclxuXHRcdFx0XHRcdFx0XHRcdHk6IDEwXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRdXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XVxyXG5cclxuXHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdGlmICh0aGlzLnZpZGVvRGF0YS50eXBlID09IDEpIHtcclxuXHRcdFx0XHQvLyBpZih0aGlzLiRwbGF0Zm9ybT09J2lvcycpe1xyXG5cdFx0XHRcdC8v5qCH5YeG5Yqg5a+GXHJcblx0XHRcdFx0cGxheWVyT3B0aW9ucyA9IHtcclxuXHJcblxyXG5cdFx0XHRcdFx0Li4ucGxheWVyT3B0aW9ucyxcclxuXHRcdFx0XHRcdHNvdXJjZTogdGhpcy52aWRlb0RhdGEubTN1OFVybCxcclxuXHRcdFx0XHRcdC8vICAgICAgICAgICAgIC4uLnBsYXllck9wdGlvbnMsXHJcblx0XHRcdFx0XHQvLyBzb3VyY2U6IHRoaXMudmlkZW9EYXRhLm0zdThVcmwsXHJcblx0XHRcdFx0XHQvLyAgICAgICAgICAgICBcInBsYXlhdXRoXCI6IHRoaXMudmlkZW9EYXRhLnBsYXlBdXRoLCAvLyDlv4XpgInlj4LmlbDvvIzlj4LmlbDlgLzlj6/pgJrov4fosIPnlKhHZXRWaWRlb1BsYXlBdXRo5o6l5Y+j6I635Y+W44CCXHJcblx0XHRcdFx0XHQgICAgICAgICAgICBmb3JtYXQ6J20zdTgnLFxyXG5cdFx0XHRcdFx0Ly8gICAgICAgICAgICAgLy8gXCJlbmNyeXB0VHlwZVwiOiAxLCAvLyDlv4XpgInlj4LmlbDvvIzlvZPmkq3mlL7np4HmnInliqDlr4bmtYHml7bpnIDopoHorr7nva7mnKzlj4LmlbDlgLzkuLox44CC5YW25a6D5oOF5Ya15peg6ZyA6K6+572u44CCXHJcblx0XHRcdFx0XHQvLyAgICAgICAgICAgICBcInBsYXlDb25maWdcIjoge1xyXG5cdFx0XHRcdFx0Ly8gICAgICAgICAgICAgICBcIkVuY3J5cHRUeXBlXCI6ICdITFNFbmNyeXB0aW9uJyxcclxuXHRcdFx0XHRcdC8vICAgICAgICAgICAgICAgXCJNdHNIbHNVcmlUb2tlblwiOiB0aGlzLnZpZGVvRGF0YS5tdHNIbHNVcmlUb2tlbixcclxuXHJcblx0XHRcdFx0XHQvLyAgICAgICAgICAgICB9LFxyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gICAgICB9ZWxzZXtcclxuXHRcdFx0XHQvLyAgICAgICAgLy/np4HmnInliqDlr4ZcclxuXHRcdFx0XHQvLyAgICAgICAgcGxheWVyT3B0aW9ucyA9IHtcclxuXHRcdFx0XHQvLyAgICAgICAgICAuLi5wbGF5ZXJPcHRpb25zLFxyXG5cdFx0XHRcdC8vICAgICAgICAgIFwicGxheWF1dGhcIjogdGhpcy52aWRlb0RhdGEucGxheUF1dGgsIC8vIOW/hemAieWPguaVsO+8jOWPguaVsOWAvOWPr+mAmui/h+iwg+eUqEdldFZpZGVvUGxheUF1dGjmjqXlj6Pojrflj5bjgIJcclxuXHJcblx0XHRcdFx0Ly8gICAgICAgICAgXCJlbmNyeXB0VHlwZVwiOiAxLCAvLyDlv4XpgInlj4LmlbDvvIzlvZPmkq3mlL7np4HmnInliqDlr4bmtYHml7bpnIDopoHorr7nva7mnKzlj4LmlbDlgLzkuLox44CC5YW25a6D5oOF5Ya15peg6ZyA6K6+572u44CCXHJcblx0XHRcdFx0Ly8gICAgICAgICAgXCJwbGF5Q29uZmlnXCI6IHtcclxuXHRcdFx0XHQvLyAgICAgICAgICAgIFwiRW5jcnlwdFR5cGVcIjogJ0FsaXl1blZvREVuY3J5cHRpb24nXHJcblx0XHRcdFx0Ly8gICAgICAgICAgfSxcclxuXHJcblx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdC8vICAgICAgfVxyXG5cclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cGxheWVyT3B0aW9ucyA9IHtcclxuXHRcdFx0XHRcdC4uLnBsYXllck9wdGlvbnMsXHJcblx0XHRcdFx0XHRzb3VyY2U6IHRoaXMudmlkZW9EYXRhLnZpZGVvVXJsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHZhciBwbGF5ZXIgPSBuZXcgQWxpcGxheWVyKHBsYXllck9wdGlvbnMsIGZ1bmN0aW9uKHBsYXllcikge30pO1xyXG5cdFx0XHR0aGlzLnBsYXllciA9IHBsYXllcjtcclxuXHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpuaLv+WIsOesrOS4gOasoeWIneWni+WAvOWRoicsIHRoaXMucGxhdGZvcm0sIHR5cGVvZiB0aGlzLmZpcnN0VGltZSwgdGhpcy5maXJzdFRpbWUpXHJcblx0XHRcdGlmICh0aGlzLnBsYXRmb3JtID09ICdpb3MnKSB7XHJcblxyXG5cdFx0XHRcdHRoaXMucGxheWVyLm9uZSgndGltZXVwZGF0ZScsICgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cdFx0XHRcdH0pXHJcblxyXG5cdFx0XHRcdHBsYXllci5vbignY2FucGxheScsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+i/meaYr2lvc+aVsOaNrue8k+WGsuWIneasoeiuvue9ruaSreaUvuS9jee9ruWIpOaWre+8ge+8ge+8ge+8gScpXHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKTtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHRcdC8vICAgdmFyIHNlZWtlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdC8vIHBsYXllci5vbignbG9hZGVkbWV0YWRhdGEnLGZ1bmN0aW9uICAoZSkge1xyXG5cdFx0XHRcdC8vICAgaWYoIXNlZWtlZClcclxuXHRcdFx0XHQvLyAgIHtcclxuXHRcdFx0XHQvLyAgICAgc2Vla2VkID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyAgICAgdGhpcy5wbGF5ZXIuc2VlaygyMCk7XHJcblx0XHRcdFx0Ly8gICB9XHJcblx0XHRcdFx0Ly8gfSk7XHJcblx0XHRcdFx0Ly8gcGxheWVyLm9uKCd3YWl0aW5nJyxmdW5jdGlvbigpe1xyXG5cdFx0XHRcdC8vICAgY29uc29sZS5sb2coJ+i/meaYr2lvc+aVsOaNrue8k+WGsuWIneasoeiuvue9ruaSreaUvuS9jee9ruWIpOaWre+8ge+8ge+8ge+8gScpXHJcblx0XHRcdFx0Ly8gICBzZXRUaW1lb3V0KCgpPT57XHJcblx0XHRcdFx0Ly8gICAgICBwbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSlcclxuXHRcdFx0XHQvLyAgIH0sNTAwKVxyXG5cclxuXHRcdFx0XHQvLyAgICAgfSlcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKVxyXG5cdFx0XHR9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0Ly8gdmFyIHNlZWtlZCA9IGZhbHNlO1xyXG5cdFx0XHQvLyAgICAgICAgIHRoaXMucGxheWVyLm9uKCdsb2FkZWRtZXRhZGF0YScsZnVuY3Rpb24gIChlKSB7XHJcblx0XHRcdC8vICAgaWYoIXNlZWtlZClcclxuXHRcdFx0Ly8gICB7XHJcblx0XHRcdC8vICAgICBzZWVrZWQgPSB0cnVlO1xyXG5cdFx0XHQvLyAgICAgcGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cdFx0XHQvLyAgIH1cclxuXHRcdFx0Ly8gfSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRjbGVhckludGVydmFsKHRoaXMudmlkZW9UaW1lcik7XHJcblxyXG5cdFx0XHR0aGlzLnZpZGVvVGltZXIgPSBudWxsO1xyXG5cdFx0XHR0aGlzLnZpZGVvVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdHRoYXQuY3VyVGltZSA9IHBhcnNlSW50KHRoaXMucGxheWVyLmdldEN1cnJlbnRUaW1lKCkpO1xyXG5cdFx0XHRcdHRoYXQuY3VyU3RhdHVzID0gdGhpcy5wbGF5ZXIuZ2V0U3RhdHVzKClcclxuXHJcblxyXG5cdFx0XHR9LCAxMDAwKTtcclxuXHRcdFx0dGhpcy4kcmVmcy52aWRlb0NvbnRlbnQ0LmNsaWNrKClcclxuXHRcdFx0cGxheWVyLm9uKCdyZWFkeScsIGZ1bmN0aW9uKCkge1xyXG5cclxuXHRcdFx0XHQvLyAgcGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLnJlcXVlc3RGdWxsU2NyZWVuKClcclxuXHJcblx0XHRcdH0pXHJcblxyXG5cdFx0XHQvLyAgdGhpcy5cclxuXHJcblxyXG5cdFx0XHQvLyB0aGlzLiRyZWZzLnZpZGVvQ29udGVudC5jbGljaygpXHJcblx0XHRcdHRoaXMucGxheWVyLm9uKCdlbmRlZCcsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aGF0LmN1clRpbWUgYXQgbGluZSAyNDI6JywgdGhpcy5jdXJUaW1lKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aGF0LmN1clN0YXR1cyBhdCBsaW5lIDIxMDonLCB0aGlzLmN1clN0YXR1cylcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnZpZGVvQ29udGVudDIuY2xpY2soKVxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0fSlcclxuXHJcblxyXG5cclxuXHRcdFx0Ly8gcGxheWVyLnNldFJvdGF0ZSg5MClcclxuXHJcblx0XHRcdC8v5YWo5bGP5pKt5pS+XHJcblxyXG5cdFx0XHQvLyBwbGF5ZXIub25lKCdjYW5wbGF5JywgZnVuY3Rpb24oKSB7XHJcblx0XHRcdC8vICAgICAvLyBjb25zb2xlLmxvZygnY2FucGxheScsIHRoaXMucGxheWVyLnRhZyk7XHJcblx0XHRcdC8vICAgICBwbGF5ZXIudGFnLnBsYXkoKTtcclxuXHJcblx0XHRcdC8vIH0pO1xyXG5cclxuXHJcblxyXG5cdFx0fSxcclxuXHRcdHNob3dQcmV2aWV3KGUpIHtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2UgYXQgbGluZSA1NjonLCBlKVxyXG5cdFx0XHRsZXQgY29uaW1nID0gZS50YXJnZXQuZGF0YXNldC5ub2RlcztcclxuXHRcdFx0bGV0IGltZ3MgPSBjb25pbWcubWF0Y2goLzxpbWdbXj5dKz4vZyk7IC8v6YCJ5oup6IqC54K55Lit55qEaW1nXHJcblx0XHRcdGNvbnNvbGUubG9nKCdpbWdzIGF0IGxpbmUgNTk6JywgaW1ncylcclxuXHRcdFx0bGV0IGltZ0xpc3QgPSBbXTtcclxuXHRcdFx0Ly/pgY3ljoZpbWfmoIfnrb7nmoRzcmPph4zpnaLnmoTlhoXlrrnmlL7lnKjlrprkuYnnmoTmlbDnu4RpbWdMaXN05LitXHJcblx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgaW1ncy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdGltZ3Nbal0ucmVwbGFjZSgvPGltZ1tePl0qc3JjPVsnXCJdKFteJ1wiXSspW14+XSo+L2dpLCBmdW5jdGlvbihtYXRjaCwgY2FwdHVyZSkge1xyXG5cdFx0XHRcdFx0aW1nTGlzdC5wdXNoKGNhcHR1cmUpXHJcblxyXG5cdFx0XHRcdH0pXHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc29sZS5sb2coJ2ltZ0xpc3QucHVzaCBhdCBsaW5lIDY0OicsIGltZ0xpc3QpXHJcblxyXG5cclxuXHRcdFx0Ly/mnIDlkI7kuIDmraXlsLHmmK/miYDmnInlm77niYfmlL7lnKjpooTop4jnmoTmlrnms5VwcmV2aWV3SW1hZ2XkuK3lsLHlj6/ku6XkuoZcclxuXHRcdFx0Ly8gdW5pLnByZXZpZXdJbWFnZSh7XHJcblx0XHRcdC8vICAgICBjdXJyZW50OiBpbWdMaXN0LFxyXG5cdFx0XHQvLyAgICAgdXJsczogaW1nTGlzdCxcclxuXHRcdFx0Ly8gfSlcclxuXHRcdFx0dW5pLnByZXZpZXdJbWFnZSh7XHJcblx0XHRcdFx0dXJsczogaW1nTGlzdCxcclxuXHRcdFx0XHRsb25nUHJlc3NBY3Rpb25zOiB7XHJcblx0XHRcdFx0XHRpdGVtTGlzdDogWyflvojmirHmrYnvvIzmmoLkuI3mlK/mjIHkv53lrZjlm77niYfliLDmnKzlnLAnXSxcclxuXHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMsJysrKysrJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdH0sXHJcblxyXG5cdFx0cmVjZWl2ZVNjcmVlblR5cGUobmV3VmFsdWUpIHtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ25ld1ZhbHVlIGF0IGxpbmUgNDI35bGP5bmV5pa55ZCRMTExMTExMTExMTExOicsIG5ld1ZhbHVlKVxyXG5cclxuXHRcdH0sXHJcblx0XHRhc3luYyByZWNlaXZlSXNmcmVzaChuZXdWYWx1ZSkge1xyXG5cclxuXHJcblxyXG5cdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm6LWw5LqG5Yi35paw6ZSA5q+B5pa55rOVOicsIHRoaXMucGxheWVyKVxyXG5cdFx0XHRpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpXHJcblx0XHRcdFx0Ly8gYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuXHRcdFx0XHR0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcblx0XHRcdFx0Ly8gJCgnI3VybC1wbGF5ZXItdGVzdCcpLmVtcHR5KClcclxuXHJcblx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2VlayhuZXdWYWx1ZSk7XHJcblx0XHRcdH1cclxuXHJcblxyXG5cdFx0fSxcclxuXHRcdGFzeW5jIHJlY2VpdmVwbGF0Zm9ybShuZXdWYWx1ZSkge1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0fSxcclxuXHRcdGFzeW5jIHJlY2VpdmVJc0NoYW5nZShuZXdWYWx1ZSkge1xyXG5cclxuXHJcblx0XHRcdC8vIHRoaXMudGltZXI9bnVsbFxyXG5cclxuXHRcdFx0aWYgKHRoaXMuaXNDaGFuZ2UpIHtcclxuXHJcblx0XHRcdFx0dGhpcy5jaGVja1ZhbHVlKClcclxuXHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMudmlkZW9EYXRhLnR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdC8vIFx0Y29uc29sZS5sb2coJ+aYr+WQpui1sOS6huWIh+aNouWKoOWvhuinhumikeaWueazlTonLCB0aGlzLmlzQ2hhbmdlLCB0aGlzLnZpZGVvRGF0YSlcclxuXHRcdFx0XHQvLyBcdGF3YWl0IHRoaXMucGxheWVyLnJlcGxheUJ5VmlkQW5kUGxheUF1dGgodGhpcy52aWRlb0RhdGEudmlkZW8sIHRoaXMudmlkZW9EYXRhLnBsYXlBdXRoKVxyXG5cdFx0XHRcdC8vICAgdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQuY2xpY2soKVxyXG5cdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZygn5piv5ZCm6LWw5LqG5YiH5o2i6ICB6KeG6aKRL+mfs+mikeaWueazlTonLCB0aGlzLmlzQ2hhbmdlLCB0aGlzLnZpZGVvRGF0YSlcclxuXHRcdFx0XHQvLyBhd2FpdFx0dGhpcy5wbGF5ZXIubG9hZEJ5VXJsKHRoaXMudmlkZW9EYXRhLnZpZGVvVXJsKVxyXG5cdFx0XHRcdC8vIHRoaXMuJHJlZnMudmlkZW9Db250ZW50LmNsaWNrKClcclxuXHRcdFx0XHQvLyB9XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0Ly8gdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQzLmNsaWNrKClcclxuXHJcblx0XHR9LFxyXG5cclxuXHRcdHJlY2VpdmVWaWRlb0xpc3QobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHQvLyAvL+aVsOaNruWPmOWMllxyXG5cclxuXHRcdFx0Y29uc29sZS5sb2coJ2N1cnJlbnRWaWRlb0xpc3RjdXJyZW50VmlkZW9MaXN0Y3VycmVudFZpZGVvTGlzdCcsIG5ld1ZhbHVlKVxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0XHR9LFxyXG5cdFx0cmVjZWl2ZU1zZyhuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdC8v5pWw5o2u5Y+Y5YyWXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCduZXdWYWx1ZScsIG5ld1ZhbHVlKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnb2xkVmFsdWUnLCBvbGRWYWx1ZSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ293bmVyVm0nLCBvd25lclZtKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygndm0nLCB2bSlcclxuXHRcdH0sXHJcblx0XHRyZWNlaXZlV2luV2lkdGgobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHQvL+aVsOaNruWPmOWMllxyXG5cdFx0XHRjb25zb2xlLmxvZygnbmV3VmFsdWUnLCBuZXdWYWx1ZSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ29sZFZhbHVlJywgb2xkVmFsdWUpXHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdvd25lclZtJywgb3duZXJWbSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ3ZtJywgdm0pXHJcblx0XHR9LFxyXG5cdFx0cmVjZWl2ZVdpbkhlaWdodChuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdC8v5pWw5o2u5Y+Y5YyWXHJcblx0XHRcdGNvbnNvbGUubG9nKCduZXdWYWx1ZScsIG5ld1ZhbHVlKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnb2xkVmFsdWUnLCBvbGRWYWx1ZSlcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ293bmVyVm0nLCBvd25lclZtKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygndm0nLCB2bSlcclxuXHRcdH0sXHJcblx0XHRjaGVja1ZhbHVlKCkge1xyXG5cdFx0XHRjb25zb2xlLmxvZyh0aGlzLnZpZGVvSWQsIHRoaXMuYXV0aElkLCB0aGlzLnZpZGVvRGF0YSwgXCIxMTExODg4ODg4XCIpXHJcblx0XHRcdGlmICgoIXRoaXMudmlkZW9EYXRhLnBsYXlBdXRoIHx8ICF0aGlzLmN1cnJlbnRWaWRlb0xpc3QpKSB7XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVmFsdWUoKTtcclxuXHRcdFx0XHR9LCAxMDAwKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+i/meaYr+i/meWPquWPquaYrzU5NDonLCB0aGlzLmZpcnN0VGltZSwgdGhpcy52aWRlb0RhdGEpXHJcblx0XHRcdFx0dGhpcy5nZXRMaXZlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRsb2FkV2ViUGxheWVyU0RLKCkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdGNvbnN0IHNfdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IC8vIOW8leWFpeaSreaUvuWZqGpzXHJcblx0XHRcdFx0c190YWcudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG5cdFx0XHRcdHNfdGFnLnNyYyA9ICdodHRwczovL2cuYWxpY2RuLmNvbS9hcHNhcmEtbWVkaWEtYm94L2ltcC13ZWItcGxheWVyLzIuMjAuMy9hbGlwbGF5ZXItbWluLmpzJztcclxuXHRcdFx0XHRzX3RhZy5jaGFyc2V0ID0gJ3V0Zi04JztcclxuXHRcdFx0XHRzX3RhZy5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBzX3RhZzEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgLy8g5byV5YWl5pKt5pS+5ZmoanNcclxuXHRcdFx0XHRcdHNfdGFnMS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcblx0XHRcdFx0XHRzX3RhZzEuc3JjID1cclxuXHRcdFx0XHRcdFx0J2h0dHBzOi8vcGxheWVyLmFsaWNkbi5jb20vYWxpcGxheWVyL3ByZXNlbnRhdGlvbi9qcy9hbGlwbGF5ZXJjb21wb25lbnRzLm1pbi5qcyc7XHJcblx0XHRcdFx0XHRzX3RhZzEuY2hhcnNldCA9ICd1dGYtOCc7XHJcblx0XHRcdFx0XHRzX3RhZzEub25sb2FkID0gKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNoZWNrVmFsdWUoKTtcclxuXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc190YWcxKTtcclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc190YWcpO1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdGNvbnN0IGxfdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOyAvLyDlvJXlhaXmkq3mlL7lmahjc3NcclxuXHRcdFx0XHRsX3RhZy5yZWwgPSAnc3R5bGVzaGVldCc7XHJcblx0XHRcdFx0bF90YWcuaHJlZiA9XHJcblx0XHRcdFx0XHQnaHR0cHM6Ly9nLmFsaWNkbi5jb20vYXBzYXJhLW1lZGlhLWJveC9pbXAtd2ViLXBsYXllci8yLjIwLjMvc2tpbnMvZGVmYXVsdC9hbGlwbGF5ZXItbWluLmNzcyc7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsX3RhZyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSxcclxuXHRcdGxvYWRDb21wb25lbnQoKSB7XHJcblx0XHRcdC8vIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdC8vICAgICBjb25zdCBzX3RhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG5cdFx0XHQvLyAgICAgc190YWcudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG5cdFx0XHQvLyAgICAgLy8g6ZyA6KaB5YWI5LiL6L2957uE5Lu2IGpzIOaWh+S7tu+8jOaUvuWIsOmhueebriAvc3RhdGljLyDnm67lvZXkuItcclxuXHRcdFx0Ly8gICAgIC8vIOS4i+i9veWcsOWdgO+8mmh0dHBzOi8vZ2l0aHViLmNvbS9hbGl5dW52aWRlby9BbGl5dW5QbGF5ZXJfV2ViL2Jsb2IvbWFzdGVyL2N1c3RvbUNvbXBvbmVudHMvZGlzdC9hbGlwbGF5ZXItY29tcG9uZW50cy9hbGlwbGF5ZXJjb21wb25lbnRzLTEuMC45Lm1pbi5qc1xyXG5cdFx0XHQvLyAgICAgc190YWcuc3JjID0gJ0Avc3RhdGljL2FsaXBsYXllcmNvbXBvbmVudHMuanMnO1xyXG5cdFx0XHQvLyAgICAgc190YWcuY2hhcnNldCA9ICd1dGYtOCc7XHJcblx0XHRcdC8vICAgICBzX3RhZy5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdC8vICAgICAgICAgcmVzb2x2ZSgpO1xyXG5cdFx0XHQvLyAgICAgfVxyXG5cdFx0XHQvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzX3RhZyk7XHJcblx0XHRcdC8vIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG48L3NjcmlwdD5cclxuPHN0eWxlPlxyXG4uY29udGFpbmVyIHtcclxuICB3aWR0aDogMTAwdnc7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG5cclxuICAvZGVlcC8ucGF1c2Uge1xyXG4gICAgd2lkdGg6IDYwcnB4ICFpbXBvcnRhbnQ7XHJcbiAgICBoZWlnaHQ6IDYwcnB4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4uZmRzIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xyXG4gIGhlaWdodDogNjAwcnB4O1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB0b3A6IDYwcnB4O1xyXG59XHJcblxyXG4ucmV0dXJuQmFjayB7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBoZWlnaHQ6IDg4cnB4O1xyXG4gIHBhZGRpbmctbGVmdDogMjBycHg7XHJcbn1cclxuXHJcbi50eHQge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ucmlnaHRfdGl0bGUge1xyXG4gIGJhY2tncm91bmQ6ICMwMDA7XHJcbiAgaGVpZ2h0OiA5NnJweDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG59XHJcblxyXG4ucmV0dXJuIHtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5yaWdodF9oYW5kbGUge1xyXG4gIHdpZHRoOiAyMDBycHg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIHBhZGRpbmctcmlnaHQ6IDIwcnB4O1xyXG59XHJcblxyXG5jb3Zlci12aWV3IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBwb2ludGVyLWV2ZW50czogYXV0bztcclxufVxyXG5cclxuY292ZXItdmlldyB7XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5jb3Zlci1pbWFnZSB7XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZnVsbFNjcmVlbkJ1dHRvbi1jb250YWluZXIge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGZsb2F0OiByaWdodDtcclxuICBoZWlnaHQ6IDM1cHg7XHJcbiAgbWFyZ2luLXRvcDogNnB4O1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gIGkge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDdweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAmICsgaSB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICY6aG92ZXIgKyAucGxheWVyLXRvb2x0aXAge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAucGxheWVyLXRvb2x0aXAge1xyXG4gICAgJi5wcmV2IHtcclxuICAgICAgbGVmdDogLTEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5saXN0IHtcclxuICAgICAgbGVmdDogNXB4O1xyXG4gICAgfVxyXG5cclxuICAgICYubmV4dCB7XHJcbiAgICAgIHJpZ2h0OiAtMTJweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wbGF5bGlzdC1jb250ZW50IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IDBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4zOHMgZWFzZS1pbi1vdXQ7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgLmxpc3Qge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG5cclxuICAgIC52aWRlby1pdGVtIHtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIHBhZGRpbmc6IDBweCAxMHB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzVweDtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgICAgICAgY29sb3I6ICMwMGRkZmY7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgICAgICAgIGNvbG9yOiAjMDBkZGZmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnBsYXllci10b29sdGlwIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBmb250LXNpemU6IDEycHg7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6ICMzYzNjM2M7XHJcbiAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICBoZWlnaHQ6IDI4cHg7XHJcbiAgdG9wOiAtNDhweDtcclxuICBwYWRkaW5nOiAwIDVweDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4ucGxheWxpc3Qtc2tpcC10aXAge1xyXG4gIHBhZGRpbmc6IDVweCAxNXB4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDUwJTtcclxuICBsZWZ0OiA1MCU7XHJcbiAgei1pbmRleDogMzA7XHJcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XHJcbiAgY29sb3I6ICMwMDA7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4jcm90YXRpbmctZGl2IHtcclxuICB3aWR0aDogMTAwdnc7XHJcbiAgaGVpZ2h0OiAxMDB2aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xyXG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxuICAvKiDml4vovaw5MOW6piAqL1xyXG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XHJcbiAgLyog6K6+572u5peL6L2s5Lit5b+D54K55ZyoZGl25Lit5b+DICovXHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIC8qIOWbuuWumuWumuS9je+8jOWFqOWxj+aYvuekuiAqL1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxufVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1051\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 161));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\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; }\n// importScripts('@/static/aliplayer/aliplayer-min.js')\nvar _default = {\n props: [\"currentVideo\", \"currentVideoList\"],\n data: function data() {\n return {\n platform: null,\n //当前是否是全屏模式\n isFullScreen: false,\n isfresh: false,\n isChange: false,\n isControl: true,\n timer: null,\n videoTitle: \"\",\n videoList: [],\n firstTime: 0,\n options: {},\n playAuth: \"\",\n currentTime: \"\",\n videoId: \"\",\n videoData: {},\n isSetFirstTime: false,\n screenType: null,\n videoUrl: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"videoOssList\"])),\n watch: {\n currentVideo: {\n immediate: true,\n handler: function handler(newRoute) {}\n },\n timer: function timer(newValue) {\n this.$emit(\"child-event\", newValue);\n }\n },\n // //页面显示\n mounted: function mounted() {},\n beforeDestroy: function beforeDestroy() {\n this.handleEnd();\n __f__(\"log\", \"是否走啦习销毁\", \" at pages/component/commonComponents/video/index.vue:116\");\n clearInterval(this.$store.state.videoTimer);\n // this.timer = null;\n // store.commit(\"setLoadingShow\", null);\n plus.screen.lockOrientation(\"portrait-primary\");\n __f__(\"log\", \"是否走啦习销毁定时器\", this.timer, \" at pages/component/commonComponents/video/index.vue:122\");\n },\n onUnload: function onUnload() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n uni.navigateTo({\n url: \"/pages/curriculum/order/curriculum/back\"\n });\n plus.screen.lockOrientation(\"portrait-primary\"); //锁死屏幕方向为竖屏\n\n // plus.screen.lockOrientation(\"portrait-primary\");\n _context.next = 4;\n return _this.setVideoTime();\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n //第一次加载\n onLoad: function onLoad(options) {\n // console.log(options, \"这是传参\");\n //\n // setTimeout(() => {\n // plus.screen.unlockOrientation();\n // plus.screen.lockOrientation(\"landscape-primary\");\n // }, 10);\n //\n //\n // // plus.screen.lockOrientation(\"portrait-primary\");\n //\n // if (uni.getStorageSync(\"videoOssList\")) {\n // this.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n // }\n // console.log(\"this.videoList at line 53:\", this.videoList);\n // this.options = JSON.parse(options.data);\n // this.videoId = this.options.video;\n // this.timer = setInterval(() => {\n // var that = this;\n // if (this.currentTime) {\n // that.setVideoTime();\n // }\n // }, 2000);\n // this.$emit(\"child-event\", this.timer);\n // // this.$once(\"hook:beforeDestroy\", () => {\n // // clearInterval(this.timer);\n // // });\n },\n methods: {\n start: function start() {\n // var playerView = this.$refs.playerView;\n this.$refs.playerView.start();\n },\n pause: function pause() {\n // var playerView = ;\n this.$refs.playerView.pause();\n },\n changeVideoData: function changeVideoData() {\n this.isChange = false;\n },\n changeVideo: function changeVideo(data) {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.currentTime = \"\";\n _this2.firstTime = 0;\n _this2.isSetFirstTime = false;\n _this2.isChange = false;\n _context2.next = 6;\n return _this2.init(data, true);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n screenChange: function screenChange(data) {\n __f__(\"log\", \"status at line 这是当前的状态158:\", data.status, data.primary, \" at pages/component/commonComponents/video/index.vue:188\");\n this.isFullScreen = !data.status;\n this.$emit(\"changeScreen\", this.isFullScreen);\n // let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏\n // if (!fullScreen) {\n // //退出全屏\n // this.isFullScreen = false;\n // } else {\n // this.isFullScreen = true;\n // }\n },\n // 控制器的显示隐藏\n controlChange: function controlChange(e) {\n this.isControl = e.detail.show;\n },\n quitScreen: function quitScreen() {\n // 退出全屏\n var ctx = this.$refs.myVideo;\n ctx.exitFullScreen();\n },\n // 播放进度改变\n videoTimeUpdateEvent: function videoTimeUpdateEvent(e) {\n this.playTime = parseInt(e.detail.currentTime);\n this.currentTime = parseInt(e.detail.currentTime);\n this.allTime = parseInt(e.detail.duration);\n this.recordTime({\n time: this.playTime\n });\n },\n init: function init(data, isChange) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this3.platform = _this3.$platform;\n _this3.isfresh = true;\n __f__(\"log\", \"at line 59:\", \"是否先走init这里\", _this3.platform, \" at pages/component/commonComponents/video/index.vue:226\");\n if (uni.getStorageSync(\"videoOssList\")) {\n _this3.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n _this3.options = data.currentVideo;\n _this3.videoId = _this3.options.video;\n __f__(\"log\", \"这是苹果视屏id\", _this3.videoId, \" at pages/component/commonComponents/video/index.vue:233\");\n _context3.next = 9;\n return _this3.getLive(isChange);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n getVideo: function getVideo() {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var data, that;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n data = {};\n that = _this4;\n _requestConfig.default.request({\n url: \"sociology/course/ttt\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(res) {\n var credentials, isFullScreen;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n __f__(\"log\", \" 视频播放11111111111:\", res, \" at pages/component/commonComponents/video/index.vue:252\");\n credentials = res.result.credentials; // var playerView = this.$refs.playerView;\n // console.log('playerView at line 273:', playerView)\n /*\n STS加密播放\n \t*/\n that.$refs.playerView.setVidSts({\n vid: _this4.videoData.video,\n accessKeyId: credentials.accessKeyId,\n securityToken: credentials.securityToken,\n accessKeySecret: credentials.accessKeySecret,\n expireTime: credentials.expireTime,\n Region: \"cn-shanghai\"\n });\n // playerView.setLocalSource({\n // uri: \"http://duoduovideo.oss-cn-beijing.aliyuncs.com/5f093c6fb6e90.mp4\",\n // });\n isFullScreen = true; // fixed fullscreen play on android\n if (plus.os.name.toLowerCase() === \"android\") {\n plus.key.addEventListener(\"backbutton\", function (e) {\n if (isFullScreen) {\n that.$refs.playerView.changeScreenMode(0, false);\n isFullScreen = false;\n } else {\n // 这里由于安卓无法监听返回按键,这里只能通过plus监听,然后自己模拟退回\n uni.navigateBack();\n }\n });\n }\n that.$refs.playerView.setPlayerCallBack(function (_ref2) {\n var type = _ref2.type,\n data = _ref2.data;\n switch (type) {\n case \"isFullScreen\":\n isFullScreen = Boolean(data);\n break;\n default:\n __f__(\"log\", {\n type: type,\n data: data\n }, \" at pages/component/commonComponents/video/index.vue:295\");\n }\n });\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n getData: function getData(data, isChange) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {\n var that, netWork, list, index;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n that = _this5;\n if (!_this5.isSetFirstTime) {\n netWork = data.userCourseVideoPositionEntity ? data.userCourseVideoPositionEntity.position : 0;\n list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n index = list.findIndex(function (e) {\n return e.id == data.id;\n });\n if (netWork) {\n if (index >= 0) {\n _this5.firstTime = list[index].time > netWork ? list[index].time : netWork;\n } else {\n _this5.firstTime = netWork ? netWork : 0;\n }\n } else {\n if (index >= 0) {\n _this5.firstTime = list[index].time ? list[index].time : 0;\n } else {\n _this5.firstTime = 0;\n }\n }\n } else {\n _this5.firstTime = 0;\n }\n _this5.videoData = _objectSpread({}, data);\n _this5.isChange = isChange ? isChange : false;\n // this.currentTime = this.firstTime;\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长222\", \" at pages/component/commonComponents/video/index.vue:337\");\n // await this.setVideoTime();\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n\n // if (this.currentVideo.type == 0 || this.currentVideo.type == 2) {\n // await this.playVideo();\n // }\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长\", \" at pages/component/commonComponents/video/index.vue:344\");\n // await that.getVideo();\n }\n\n _this5.isSetFirstTime = true;\n case 3:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n },\n playVideo: function playVideo(e) {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _this6.videoContext = uni.createVideoContext(\"videoId\", _this6);\n _this6.videoContext.seek(_this6.firstTime);\n\n // this.videoContext.requestFullScreen();\n case 2:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n recordTime: function recordTime(data) {\n var _this7 = this;\n this.currentTime = data.time;\n var list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n var index = list.findIndex(function (e) {\n return e.id == _this7.videoData.id;\n });\n if (list.length > 0 && index >= 0) {\n list[index] = _objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n });\n } else {\n list.push(_objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n }));\n }\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n },\n // 获取数据\n getLive: function getLive(isChange) {\n var _this8 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n var that, data;\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n that = _this8;\n _this8.isfresh = false;\n data = _objectSpread({}, _this8.options);\n _context9.next = 5;\n return _requestConfig.default.request({\n url: \"sociology/course/checkVideo\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8(res) {\n var data, playAuth;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n data = _objectSpread({}, res.video);\n if (!(_this8.currentVideo.type == 1)) {\n _context8.next = 10;\n break;\n }\n playAuth = res.video.playAuth.replace(/=/g, \"\");\n __f__(\"log\", \"这是接口获取的视屏凭证111\", playAuth, \" at pages/component/commonComponents/video/index.vue:403\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n videoId: res.video.video,\n playAuth: playAuth\n });\n _this8.playAuth = playAuth;\n _context8.next = 8;\n return that.getData(data, isChange);\n case 8:\n _context8.next = 14;\n break;\n case 10:\n __f__(\"log\", \"这是接口获取的视屏凭证222\", res.video, data, \" at pages/component/commonComponents/video/index.vue:413\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n playAuth: new Date().getTime()\n });\n _context8.next = 14;\n return that.getData(data, isChange);\n case 14:\n __f__(\"log\", \"是否获取到初始播放值\", data, \" at pages/component/commonComponents/video/index.vue:420\");\n that.$forceUpdate();\n case 16:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n return function (_x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }))();\n },\n handleEnd: function handleEnd() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n var list, data;\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n list = JSON.parse(JSON.stringify(uni.getStorageSync(\"videoOssList\")));\n data = list.find(function (e) {\n return e.id == _this9.videoData.id;\n });\n _this9.currentTime = data.time;\n __f__(\"log\", \"this.currentTime at line 这是结束的时候掉的存储视频:\", _this9.currentTime, \" at pages/component/commonComponents/video/index.vue:429\");\n clearInterval(_this9.$store.state.videoTimer);\n _this9.timer = null;\n _context10.next = 8;\n return _this9.setVideoTime();\n case 8:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n },\n setVideoTime: function setVideoTime(time) {\n var _this10 = this;\n var data = {};\n // var list = uni.getStorageSync(\"videoOssList\");\n\n // data = list.find((e) => e.id == this.videoData.id);\n // console.log(\"这是再走生命周期哦\", this.currentTime);\n __f__(\"log\", \"是否走了存储视屏,\" + this.videoData.id, this.currentTime, \" at pages/component/commonComponents/video/index.vue:444\");\n var data = {\n videoId: this.videoData.id,\n position: this.currentTime //秒数\n };\n\n _requestConfig.default.request({\n url: \"sociology/course/saveCoursePosition\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then(function (res) {\n __f__(\"log\", \"存储视屏时长接口返回信息\", res, \" at pages/component/commonComponents/video/index.vue:461\");\n _this10.$forceUpdate();\n });\n },\n changePlayerTime: function changePlayerTime(player) {\n __f__(\"log\", \"this.firstTime at line 106:\", this.firstTime, \" at pages/component/commonComponents/video/index.vue:466\");\n player.seek(this.firstTime);\n },\n goBack: function goBack() {\n uni.navigateBack({\n delta: 1\n });\n },\n setVideoFirtsetTime: function setVideoFirtsetTime(time) {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {\n return _regenerator.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _this11.currentTime = _this11.firstTime;\n __f__(\"log\", \"这里准备开始设置播放时间:\", _this11.currentTime, \" at pages/component/commonComponents/video/index.vue:477\");\n // await this.setVideoTime();\n // setTimeout(() => {\n // clearInterval(this.$store.state.videoTimer);\n\n _index.default.commit(\"setVideoTimer\", setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {\n return _regenerator.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return _this11.setVideoTime();\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n })), 60000));\n // }, 5000);\n case 3:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }))();\n }\n },\n created: function created() {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW5kZXgudnVlIl0sIm5hbWVzIjpbInByb3BzIiwiZGF0YSIsInBsYXRmb3JtIiwiaXNGdWxsU2NyZWVuIiwiaXNmcmVzaCIsImlzQ2hhbmdlIiwiaXNDb250cm9sIiwidGltZXIiLCJ2aWRlb1RpdGxlIiwidmlkZW9MaXN0IiwiZmlyc3RUaW1lIiwib3B0aW9ucyIsInBsYXlBdXRoIiwiY3VycmVudFRpbWUiLCJ2aWRlb0lkIiwidmlkZW9EYXRhIiwiaXNTZXRGaXJzdFRpbWUiLCJzY3JlZW5UeXBlIiwidmlkZW9VcmwiLCJjb21wdXRlZCIsIndhdGNoIiwiY3VycmVudFZpZGVvIiwiaW1tZWRpYXRlIiwiaGFuZGxlciIsIm1vdW50ZWQiLCJiZWZvcmVEZXN0cm95IiwiY2xlYXJJbnRlcnZhbCIsInBsdXMiLCJvblVubG9hZCIsInVuaSIsInVybCIsIm9uTG9hZCIsIm1ldGhvZHMiLCJzdGFydCIsInBhdXNlIiwiY2hhbmdlVmlkZW9EYXRhIiwiY2hhbmdlVmlkZW8iLCJzY3JlZW5DaGFuZ2UiLCJjb250cm9sQ2hhbmdlIiwicXVpdFNjcmVlbiIsImN0eCIsInZpZGVvVGltZVVwZGF0ZUV2ZW50IiwidGltZSIsImluaXQiLCJnZXRWaWRlbyIsInRoYXQiLCIkaHR0cCIsInJlcXVlc3QiLCJtZXRob2QiLCJoZWFkZXIiLCJ0aGVuIiwiY3JlZGVudGlhbHMiLCJ2aWQiLCJhY2Nlc3NLZXlJZCIsInNlY3VyaXR5VG9rZW4iLCJhY2Nlc3NLZXlTZWNyZXQiLCJleHBpcmVUaW1lIiwiUmVnaW9uIiwidHlwZSIsImdldERhdGEiLCJuZXRXb3JrIiwibGlzdCIsImluZGV4IiwicGxheVZpZGVvIiwicmVjb3JkVGltZSIsImdldExpdmUiLCJyZXMiLCJoYW5kbGVFbmQiLCJzZXRWaWRlb1RpbWUiLCJwb3NpdGlvbiIsImNoYW5nZVBsYXllclRpbWUiLCJwbGF5ZXIiLCJnb0JhY2siLCJkZWx0YSIsInNldFZpZGVvRmlydHNldFRpbWUiLCJzdG9yZSIsInNldEludGVydmFsIiwiY3JlYXRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQWlFQTtBQUNBO0FBQ0E7QUFHQTtBQUFBO0FBRUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsNEJBQ0Esc0NBQ0E7RUFFQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBaEI7TUFDQTtJQUNBO0VBQ0E7RUFFQTtFQUNBaUI7RUFDQUM7SUFDQTtJQUNBO0lBQ0FDO0lBQ0E7SUFDQTtJQUNBQztJQUVBO0VBQ0E7RUFDQUM7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQUM7Z0JBQ0FDO2NBQ0E7Y0FFQUg7O2NBRUE7Y0FBQTtjQUFBLE9BR0E7WUFBQTtZQUFBO2NBQUE7VUFBQTtRQUFBO01BQUE7SUFBQTtFQUVBO0VBRUE7RUFDQUk7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQUEsQ0FDQTtFQUVBQztJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0EsYUFDQSw4QkFDQXBDLGFBQ0FBO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFD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QTs0QkFFQTs0QkFDQTVDLHVDQUNBQTs4QkFDQVc7NEJBQUEsRUFDQTs0QkFBQTs0QkFBQSxPQUNBaUM7MEJBQUE7NEJBRUE7NEJBRUFBOzBCQUFBOzBCQUFBOzRCQUFBO3dCQUFBO3NCQUFBO29CQUFBO2tCQUFBLENBQ0E7a0JBQUE7b0JBQUE7a0JBQUE7Z0JBQUE7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtJQUNBc0I7TUFBQTtNQUFBO1FBQUE7UUFBQTtVQUFBO1lBQUE7Y0FBQTtnQkFDQU47Z0JBQ0E1RDtrQkFBQTtnQkFBQTtnQkFDQTtnQkFDQSxhQUNBLDJDQUNBO2dCQUVBeUI7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FFQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0EwQztNQUFBO01BQ0E7TUFDQTs7TUFFQTtNQUNBO01BQ0E7TUFDQTtRQUNBdEQ7UUFDQXVEO01BQ0E7O01BRUF2Qix1QkFDQUM7UUFDQWpCO1FBQ0FrQjtRQUFBO1FBQ0EvQztRQUNBZ0Q7VUFDQTtVQUNBO1FBQ0E7TUFDQSxHQUNBQztRQUNBO1FBQ0E7TUFDQTtJQUNBO0lBQ0FvQjtNQUNBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQTNDO1FBQ0E0QztNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7O2dCQUVBQyxzQkFDQSxpQkFDQUM7a0JBQUE7b0JBQUE7c0JBQUE7d0JBQUE7MEJBQUE7MEJBQUEsT0FFQTt3QkFBQTt3QkFBQTswQkFBQTtzQkFBQTtvQkFBQTtrQkFBQTtnQkFBQSxDQUVBLFdBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtFQUNBO0VBRUFDO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxMDUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG5cdDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuXHRcdDwhLS0gPHUtaWNvblxyXG5cdFx0QGNsaWNrPVwiZ29CYWNrXCJcclxuXHRcdG5hbWU9XCJhcnJvdy1sZWZ0XCJcclxuXHRcdGNvbG9yPVwiIzNhYjNhZVwiXHJcblx0XHRzaXplPVwiMjBcIlxyXG5cdFx0OnN0eWxlPVwiYGRpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6ICR7XHJcblx0XHQgIHN0YXR1c0JhckhlaWdodCArIDJcclxuXHRcdH1weDsgbGVmdDogJHsxMH1weDt6LWluZGV4OiA5OTk7YFwiXHJcblx0ICA+PC91LWljb24+LS0+XHJcblx0XHQ8IS0tIDx6aGltaV9hbGlwbGF5ZXJfdmlld1xyXG4gICAgICByZWY9XCJwbGF5ZXJWaWV3XCJcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAzMDBweFwiXHJcbiAgICA+PC96aGltaV9hbGlwbGF5ZXJfdmlldz5cclxuICAgIDxidXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJzdGFydCgpXCI+5byA5aeLPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwicGF1c2UoKVwiPuaaguWBnDwvYnV0dG9uPiAtLT5cclxuXHRcdDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjAwcHhcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIlwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzAwMFwiIHJlZj1cInZpZGVvQ29udGVudFwiIEB0YXA9XCJyZW5kZXJTY3JpcHQuaGFuZGxlQ2xpY2tcIlxyXG5cdFx0XHRcdGlkPVwidXJsLXBsYXllci10ZXN0XCIgOnZpZGVvRGF0YT1cInZpZGVvRGF0YVwiIDp3aW5XaWR0aD1cIndpbldpZHRoXCIgOndpbkhlaWdodD1cIndpbkhlaWdodFwiXHJcblx0XHRcdFx0OmN1cnJlbnRWaWRlb0xpc3Q9XCJjdXJyZW50VmlkZW9MaXN0XCIgOmZpcnN0VGltZT1cImZpcnN0VGltZVwiIDppc2ZyZXNoPVwiaXNmcmVzaFwiIDpwbGF0Zm9ybT1cInBsYXRmb3JtXCJcclxuXHRcdFx0XHQ6aXNTZXRGaXJzdFRpbWU9XCJpc1NldEZpcnN0VGltZVwiIDppc0NoYW5nZT1cImlzQ2hhbmdlXCIgOmNoYW5nZTp2aWRlb0RhdGE9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZU1zZ1wiXHJcblx0XHRcdFx0OmNoYW5nZTp3aW5XaWR0aD1cInJlbmRlclNjcmlwdC5yZWNlaXZlV2luV2lkdGhcIiA6Y2hhbmdlOndpbkhlaWdodD1cInJlbmRlclNjcmlwdC5yZWNlaXZlV2luSGVpZ2h0XCJcclxuXHRcdFx0XHQ6Y2hhbmdlOmZpcnN0VGltZT1cInJlbmRlclNjcmlwdC5yZWNlaXZlRmlyc3RUaW1lXCJcclxuXHRcdFx0XHQ6Y2hhbmdlOmlzU2V0Rmlyc3RUaW1lPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVpc1NldEZpcnN0VGltZVwiXHJcblx0XHRcdFx0OmNoYW5nZTppc2ZyZXNoPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVJc2ZyZXNoXCIgOmNoYW5nZTpwbGF0Zm9ybT1cInJlbmRlclNjcmlwdC5yZWNlaXZlcGxhdGZvcm1cIlxyXG5cdFx0XHRcdDpjaGFuZ2U6aXNDaGFuZ2U9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZUlzQ2hhbmdlXCJcclxuXHRcdFx0XHQ6Y2hhbmdlOmN1cnJlbnRWaWRlb0xpc3Q9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZVZpZGVvTGlzdFwiPjwvZGl2PlxyXG5cdFx0XHQ8ZGl2IEB0YXA9XCJyZW5kZXJTY3JpcHQuZW1pdERhdGFcIiByZWY9XCJ2aWRlb0NvbnRlbnQxXCIgdi1zaG93PVwiZmFsc2VcIj5cclxuXHRcdFx0XHTnm7TmjqXosIPnlKhyZW5kZXJqc+S4reeahGVtaXREYXRh55qE5pa55rOVLOS8oOmAkuW9k+WJjeaSreaUvuaXtumVv1xyXG5cdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5lbmRFbWl0RGF0YVwiIHJlZj1cInZpZGVvQ29udGVudDJcIiB2LXNob3c9XCJmYWxzZVwiPlxyXG5cdFx0XHRcdOebkeWQrOe7k+adn+aWueazle+8jOiusOW9leaSreaUvuaXtumVv1xyXG5cdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5jaGFuZ2VWaWRlb0RhdGFcIiByZWY9XCJ2aWRlb0NvbnRlbnQzXCIgdi1zaG93PVwiZmFsc2VcIj5cclxuXHRcdFx0XHTnm5HlkKzliIfmjaLop4bpopHmlrnms5VcclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5lbWl0U2V0RGF0YVwiIHJlZj1cInZpZGVvQ29udGVudDRcIiB2LXNob3c9XCJmYWxzZVwiPlxyXG5cdFx0XHRcdOebkeWQrOWIh+aNouinhumikeaWueazlVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyXCI+XHJcblx0XHRcdFx0PGRpdiA6Y2xhc3M9XCJgcHJpc20tZnVsbHNjcmVlbi1idG4gJHtpc0Z1bGxTY3JlZW4gPyAnZnVsbHNjcmVlbicgOiAnJ31gXCJcclxuXHRcdFx0XHRcdEB0YXA9XCJyZW5kZXJTY3JpcHQuY2hhbmdlVmlkZW9TY3JlZW5cIj48L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L3ZpZXc+XHJcblx0XHQ8IS0tIDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZVwiIHYtZWxzZT5cclxuXHRcdDx2aWRlb1xyXG5cdFx0ICBAdGltZXVwZGF0ZT1cInZpZGVvVGltZVVwZGF0ZUV2ZW50KCRldmVudClcIlxyXG5cdFx0ICByZWY9XCJ2aWRlb3NcIlxyXG5cdFx0ICBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCVcIlxyXG5cdFx0ICBhdXRvcGxheVxyXG5cdFx0ICBpZD1cInZpZGVvSWRcIlxyXG5cdFx0ICBvYmplY3QtZml0PVwiY29udGFpblwiXHJcblx0XHQgIGNsYXNzPVwidmlkZW8tYm94XCJcclxuXHRcdCAgOnNyYz1cInZpZGVvVXJsXCJcclxuXHRcdCAgOnBvc3Rlcj1cImAke3ZpZGVvVXJsfT94LW9zcy1wcm9jZXNzPXZpZGVvL3NuYXBzaG90LHRfJHsxfSxmX2pwZ2BcIlxyXG5cdFx0ICBAcGxheT1cInBsYXlWaWRlb1wiXHJcblx0XHQ+XHJcblx0XHRcdCA8L3ZpZGVvPlxyXG5cdCAgPC92aWV3PiAtLT5cclxuXHQ8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQ+XHJcblx0aW1wb3J0IHN0b3JlIGZyb20gXCJAL3N0b3JlL2luZGV4LmpzXCI7XHJcblx0aW1wb3J0ICRodHRwIGZyb20gXCJAL2NvbmZpZy9yZXF1ZXN0Q29uZmlnLmpzXCI7XHJcblx0aW1wb3J0IHtcclxuXHRcdG1hcFN0YXRlLFxyXG5cdFx0bWFwTXV0YXRpb25zXHJcblx0fSBmcm9tIFwidnVleFwiO1xyXG5cclxuXHQvLyBpbXBvcnRTY3JpcHRzKCdAL3N0YXRpYy9hbGlwbGF5ZXIvYWxpcGxheWVyLW1pbi5qcycpXHJcblx0ZXhwb3J0IGRlZmF1bHQge1xyXG5cdFx0cHJvcHM6IFtcImN1cnJlbnRWaWRlb1wiLCBcImN1cnJlbnRWaWRlb0xpc3RcIl0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHBsYXRmb3JtOiBudWxsLFxyXG5cdFx0XHRcdC8v5b2T5YmN5piv5ZCm5piv5YWo5bGP5qih5byPXHJcblx0XHRcdFx0aXNGdWxsU2NyZWVuOiBmYWxzZSxcclxuXHRcdFx0XHRpc2ZyZXNoOiBmYWxzZSxcclxuXHRcdFx0XHRpc0NoYW5nZTogZmFsc2UsXHJcblx0XHRcdFx0aXNDb250cm9sOiB0cnVlLFxyXG5cdFx0XHRcdHRpbWVyOiBudWxsLFxyXG5cdFx0XHRcdHZpZGVvVGl0bGU6IFwiXCIsXHJcblx0XHRcdFx0dmlkZW9MaXN0OiBbXSxcclxuXHRcdFx0XHRmaXJzdFRpbWU6IDAsXHJcblx0XHRcdFx0b3B0aW9uczoge30sXHJcblx0XHRcdFx0cGxheUF1dGg6IFwiXCIsXHJcblx0XHRcdFx0Y3VycmVudFRpbWU6IFwiXCIsXHJcblx0XHRcdFx0dmlkZW9JZDogXCJcIixcclxuXHRcdFx0XHR2aWRlb0RhdGE6IHt9LFxyXG5cdFx0XHRcdGlzU2V0Rmlyc3RUaW1lOiBmYWxzZSxcclxuXHRcdFx0XHRzY3JlZW5UeXBlOiBudWxsLFxyXG5cdFx0XHRcdHZpZGVvVXJsOiBudWxsLFxyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHRcdGNvbXB1dGVkOiB7XHJcblx0XHRcdC4uLm1hcFN0YXRlKFtcInZpZGVvT3NzTGlzdFwiXSksXHJcblx0XHR9LFxyXG5cclxuXHRcdHdhdGNoOiB7XHJcblx0XHRcdGN1cnJlbnRWaWRlbzoge1xyXG5cdFx0XHRcdGltbWVkaWF0ZTogdHJ1ZSxcclxuXHRcdFx0XHRoYW5kbGVyKG5ld1JvdXRlKSB7fSxcclxuXHRcdFx0fSxcclxuXHRcdFx0dGltZXIobmV3VmFsdWUpIHtcclxuXHRcdFx0XHR0aGlzLiRlbWl0KFwiY2hpbGQtZXZlbnRcIiwgbmV3VmFsdWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHJcblx0XHQvLyAvL+mhtemdouaYvuekulxyXG5cdFx0bW91bnRlZCgpIHt9LFxyXG5cdFx0YmVmb3JlRGVzdHJveSgpIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVFbmQoKTtcclxuXHRcdFx0Y29uc29sZS5sb2coXCLmmK/lkKbotbDllabkuaDplIDmr4FcIik7XHJcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcblx0XHRcdC8vIHRoaXMudGltZXIgPSBudWxsO1xyXG5cdFx0XHQvLyBzdG9yZS5jb21taXQoXCJzZXRMb2FkaW5nU2hvd1wiLCBudWxsKTtcclxuXHRcdFx0cGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTtcclxuXHJcblx0XHRcdGNvbnNvbGUubG9nKFwi5piv5ZCm6LWw5ZWm5Lmg6ZSA5q+B5a6a5pe25ZmoXCIsIHRoaXMudGltZXIpO1xyXG5cdFx0fSxcclxuXHRcdGFzeW5jIG9uVW5sb2FkKCkge1xyXG5cdFx0XHR1bmkubmF2aWdhdGVUbyh7XHJcblx0XHRcdFx0dXJsOiBcIi9wYWdlcy9jdXJyaWN1bHVtL29yZGVyL2N1cnJpY3VsdW0vYmFja1wiLFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0Ly8gI2lmZGVmIEFQUC1QTFVTXHJcblx0XHRcdHBsdXMuc2NyZWVuLmxvY2tPcmllbnRhdGlvbihcInBvcnRyYWl0LXByaW1hcnlcIik7IC8v6ZSB5q275bGP5bmV5pa55ZCR5Li656uW5bGPXHJcblxyXG5cdFx0XHQvLyBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpO1xyXG5cdFx0XHQvLyAjZW5kaWZcclxuXHJcblx0XHRcdGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdC8vIHRoaXMucGxheWVyLmRpc3Bvc2UoKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0Ly/nrKzkuIDmrKHliqDovb1cclxuXHRcdG9uTG9hZChvcHRpb25zKSB7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKG9wdGlvbnMsIFwi6L+Z5piv5Lyg5Y+CXCIpO1xyXG5cdFx0XHQvLyAvLyAjaWZkZWYgQVBQLVBMVVNcclxuXHRcdFx0Ly8gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdC8vICAgcGx1cy5zY3JlZW4udW5sb2NrT3JpZW50YXRpb24oKTtcclxuXHRcdFx0Ly8gICBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJsYW5kc2NhcGUtcHJpbWFyeVwiKTtcclxuXHRcdFx0Ly8gfSwgMTApO1xyXG5cdFx0XHQvLyAvL1x0I2VuZGlmXHJcblx0XHRcdC8vIC8vICNpZmRlZiBBUFAtUExVU1xyXG5cdFx0XHQvLyAvLyBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpO1xyXG5cdFx0XHQvLyAvLyAjZW5kaWZcclxuXHRcdFx0Ly8gaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG5cdFx0XHQvLyAgIHRoaXMudmlkZW9MaXN0ID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpO1xyXG5cdFx0XHQvLyB9XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKFwidGhpcy52aWRlb0xpc3QgYXQgbGluZSA1MzpcIiwgdGhpcy52aWRlb0xpc3QpO1xyXG5cdFx0XHQvLyB0aGlzLm9wdGlvbnMgPSBKU09OLnBhcnNlKG9wdGlvbnMuZGF0YSk7XHJcblx0XHRcdC8vIHRoaXMudmlkZW9JZCA9IHRoaXMub3B0aW9ucy52aWRlbztcclxuXHRcdFx0Ly8gdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0Ly8gICB2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdC8vICAgaWYgKHRoaXMuY3VycmVudFRpbWUpIHtcclxuXHRcdFx0Ly8gICAgIHRoYXQuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdC8vICAgfVxyXG5cdFx0XHQvLyB9LCAyMDAwKTtcclxuXHRcdFx0Ly8gdGhpcy4kZW1pdChcImNoaWxkLWV2ZW50XCIsIHRoaXMudGltZXIpO1xyXG5cdFx0XHQvLyAvLyB0aGlzLiRvbmNlKFwiaG9vazpiZWZvcmVEZXN0cm95XCIsICgpID0+IHtcclxuXHRcdFx0Ly8gLy8gICBjbGVhckludGVydmFsKHRoaXMudGltZXIpO1xyXG5cdFx0XHQvLyAvLyB9KTtcclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHRzdGFydCgpIHtcclxuXHRcdFx0XHQvLyB2YXIgcGxheWVyVmlldyA9IHRoaXMuJHJlZnMucGxheWVyVmlldztcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnBsYXllclZpZXcuc3RhcnQoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0cGF1c2UoKSB7XHJcblx0XHRcdFx0Ly8gdmFyIHBsYXllclZpZXcgPSA7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy5wbGF5ZXJWaWV3LnBhdXNlKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYW5nZVZpZGVvRGF0YSgpIHtcclxuXHRcdFx0XHR0aGlzLmlzQ2hhbmdlID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdGFzeW5jIGNoYW5nZVZpZGVvKGRhdGEpIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRUaW1lID0gXCJcIjtcclxuXHRcdFx0XHR0aGlzLmZpcnN0VGltZSA9IDA7XHJcblx0XHRcdFx0dGhpcy5pc1NldEZpcnN0VGltZSA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLmluaXQoZGF0YSwgdHJ1ZSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHNjcmVlbkNoYW5nZShkYXRhKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXHJcblx0XHRcdFx0XHRcInN0YXR1cyBhdCBsaW5lIOi/meaYr+W9k+WJjeeahOeKtuaAgTE1ODpcIixcclxuXHRcdFx0XHRcdGRhdGEuc3RhdHVzLFxyXG5cdFx0XHRcdFx0ZGF0YS5wcmltYXJ5XHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHR0aGlzLmlzRnVsbFNjcmVlbiA9ICFkYXRhLnN0YXR1cztcclxuXHRcdFx0XHR0aGlzLiRlbWl0KFwiY2hhbmdlU2NyZWVuXCIsIHRoaXMuaXNGdWxsU2NyZWVuKTtcclxuXHRcdFx0XHQvLyBsZXQgZnVsbFNjcmVlbiA9IGUuZGV0YWlsLmZ1bGxTY3JlZW47IC8vIOWAvHRydWXkuLrov5vlhaXlhajlsY/vvIxmYWxzZeS4uumAgOWHuuWFqOWxj1xyXG5cdFx0XHRcdC8vIGlmICghZnVsbFNjcmVlbikge1xyXG5cdFx0XHRcdC8vICAgLy/pgIDlh7rlhajlsY9cclxuXHRcdFx0XHQvLyAgIHRoaXMuaXNGdWxsU2NyZWVuID0gZmFsc2U7XHJcblx0XHRcdFx0Ly8gfSBlbHNlIHtcclxuXHRcdFx0XHQvLyAgIHRoaXMuaXNGdWxsU2NyZWVuID0gdHJ1ZTtcclxuXHRcdFx0XHQvLyB9XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIOaOp+WItuWZqOeahOaYvuekuumakOiXj1xyXG5cdFx0XHRjb250cm9sQ2hhbmdlKGUpIHtcclxuXHRcdFx0XHR0aGlzLmlzQ29udHJvbCA9IGUuZGV0YWlsLnNob3c7XHJcblx0XHRcdH0sXHJcblx0XHRcdHF1aXRTY3JlZW4oKSB7XHJcblx0XHRcdFx0Ly8g6YCA5Ye65YWo5bGPXHJcblx0XHRcdFx0Y29uc3QgY3R4ID0gdGhpcy4kcmVmcy5teVZpZGVvO1xyXG5cdFx0XHRcdGN0eC5leGl0RnVsbFNjcmVlbigpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDmkq3mlL7ov5vluqbmlLnlj5hcclxuXHRcdFx0dmlkZW9UaW1lVXBkYXRlRXZlbnQoZSkge1xyXG5cdFx0XHRcdHRoaXMucGxheVRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50VGltZSA9IHBhcnNlSW50KGUuZGV0YWlsLmN1cnJlbnRUaW1lKTtcclxuXHJcblx0XHRcdFx0dGhpcy5hbGxUaW1lID0gcGFyc2VJbnQoZS5kZXRhaWwuZHVyYXRpb24pO1xyXG5cclxuXHRcdFx0XHR0aGlzLnJlY29yZFRpbWUoe1xyXG5cdFx0XHRcdFx0dGltZTogdGhpcy5wbGF5VGltZSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgaW5pdChkYXRhLCBpc0NoYW5nZSkge1xyXG5cdFx0XHRcdHRoaXMucGxhdGZvcm0gPSB0aGlzLiRwbGF0Zm9ybTtcclxuXHRcdFx0XHR0aGlzLmlzZnJlc2ggPSB0cnVlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwiYXQgbGluZSA1OTpcIiwgXCLmmK/lkKblhYjotbBpbml06L+Z6YeMXCIsIHRoaXMucGxhdGZvcm0pO1xyXG5cdFx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuXHRcdFx0XHRcdHRoaXMudmlkZW9MaXN0ID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLm9wdGlvbnMgPSBkYXRhLmN1cnJlbnRWaWRlbztcclxuXHJcblx0XHRcdFx0dGhpcy52aWRlb0lkID0gdGhpcy5vcHRpb25zLnZpZGVvO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6L+Z5piv6Iu55p6c6KeG5bGPaWRcIiwgdGhpcy52aWRlb0lkKTtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLmdldExpdmUoaXNDaGFuZ2UpO1xyXG5cdFx0XHRcdC8vIGF3YWl0IHRoaXMuZ2V0VmlkZW8oaXNDaGFuZ2UpO1xyXG5cdFx0XHRcdC8vICAgdGhpcy4kZW1pdChcImNoaWxkLWV2ZW50XCIsIHRoaXMudGltZXIpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyBnZXRWaWRlbygpIHtcclxuXHRcdFx0XHR2YXIgZGF0YSA9IHt9O1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHQkaHR0cFxyXG5cdFx0XHRcdFx0LnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0XHR1cmw6IGBzb2Npb2xvZ3kvY291cnNlL3R0dGAsXHJcblx0XHRcdFx0XHRcdG1ldGhvZDogXCJQb3N0XCIsIC8vIFBPU1TjgIFHRVTjgIFQVVTjgIFERUxFVEXvvIzlhbfkvZPor7TmmI7mn6XnnIvlrpjmlrnmlofmoaNcclxuXHRcdFx0XHRcdFx0ZGF0YSxcclxuXHRcdFx0XHRcdFx0aGVhZGVyOiB7XHJcblx0XHRcdFx0XHRcdFx0Ly/pu5jorqQg5pegIOivtOaYju+8muivt+axguWktFxyXG5cdFx0XHRcdFx0XHRcdFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC50aGVuKGFzeW5jIChyZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCIg6KeG6aKR5pKt5pS+MTExMTExMTExMTE6XCIsIHJlcyk7XHJcblxyXG5cdFx0XHRcdFx0XHR2YXIgY3JlZGVudGlhbHMgPSByZXMucmVzdWx0LmNyZWRlbnRpYWxzO1xyXG5cdFx0XHRcdFx0XHQvLyB2YXIgcGxheWVyVmlldyA9IHRoaXMuJHJlZnMucGxheWVyVmlldztcclxuXHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3BsYXllclZpZXcgYXQgbGluZSAyNzM6JywgcGxheWVyVmlldylcclxuXHRcdFx0XHRcdFx0LypcclxuXHRcdFx0XHRTVFPliqDlr4bmkq3mlL5cclxuXHRcdFx0XHRcclxuXHRcdFx0Ki9cclxuXHRcdFx0XHRcdFx0dGhhdC4kcmVmcy5wbGF5ZXJWaWV3LnNldFZpZFN0cyh7XHJcblx0XHRcdFx0XHRcdFx0dmlkOiB0aGlzLnZpZGVvRGF0YS52aWRlbyxcclxuXHRcdFx0XHRcdFx0XHRhY2Nlc3NLZXlJZDogY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQsXHJcblx0XHRcdFx0XHRcdFx0c2VjdXJpdHlUb2tlbjogY3JlZGVudGlhbHMuc2VjdXJpdHlUb2tlbixcclxuXHRcdFx0XHRcdFx0XHRhY2Nlc3NLZXlTZWNyZXQ6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleVNlY3JldCxcclxuXHRcdFx0XHRcdFx0XHRleHBpcmVUaW1lOiBjcmVkZW50aWFscy5leHBpcmVUaW1lLFxyXG5cdFx0XHRcdFx0XHRcdFJlZ2lvbjogXCJjbi1zaGFuZ2hhaVwiLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Ly8gcGxheWVyVmlldy5zZXRMb2NhbFNvdXJjZSh7XHJcblx0XHRcdFx0XHRcdC8vICAgdXJpOiBcImh0dHA6Ly9kdW9kdW92aWRlby5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vNWYwOTNjNmZiNmU5MC5tcDRcIixcclxuXHRcdFx0XHRcdFx0Ly8gfSk7XHJcblxyXG5cdFx0XHRcdFx0XHRsZXQgaXNGdWxsU2NyZWVuID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0Ly8gZml4ZWQgZnVsbHNjcmVlbiBwbGF5IG9uIGFuZHJvaWRcclxuXHRcdFx0XHRcdFx0aWYgKHBsdXMub3MubmFtZS50b0xvd2VyQ2FzZSgpID09PSBcImFuZHJvaWRcIikge1xyXG5cdFx0XHRcdFx0XHRcdHBsdXMua2V5LmFkZEV2ZW50TGlzdGVuZXIoXCJiYWNrYnV0dG9uXCIsIChlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoaXNGdWxsU2NyZWVuKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoYXQuJHJlZnMucGxheWVyVmlldy5jaGFuZ2VTY3JlZW5Nb2RlKDAsIGZhbHNlKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aXNGdWxsU2NyZWVuID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyDov5nph4znlLHkuo7lronljZPml6Dms5Xnm5HlkKzov5Tlm57mjInplK7vvIzov5nph4zlj6rog73pgJrov4dwbHVz55uR5ZCs77yM54S25ZCO6Ieq5bex5qih5ouf6YCA5ZueXHJcblx0XHRcdFx0XHRcdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR0aGF0LiRyZWZzLnBsYXllclZpZXcuc2V0UGxheWVyQ2FsbEJhY2soKHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlLFxyXG5cdFx0XHRcdFx0XHRcdGRhdGFcclxuXHRcdFx0XHRcdFx0fSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2FzZSBcImlzRnVsbFNjcmVlblwiOlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpc0Z1bGxTY3JlZW4gPSBCb29sZWFuKGRhdGEpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGRhdGEsXHJcblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgZ2V0RGF0YShkYXRhLCBpc0NoYW5nZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXNTZXRGaXJzdFRpbWUpIHtcclxuXHRcdFx0XHRcdHZhciBuZXRXb3JrID0gZGF0YS51c2VyQ291cnNlVmlkZW9Qb3NpdGlvbkVudGl0eSA/XHJcblx0XHRcdFx0XHRcdGRhdGEudXNlckNvdXJzZVZpZGVvUG9zaXRpb25FbnRpdHkucG9zaXRpb24gOlxyXG5cdFx0XHRcdFx0XHQwO1xyXG5cdFx0XHRcdFx0dmFyIGxpc3QgPSBbXTtcclxuXHRcdFx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuXHRcdFx0XHRcdFx0bGlzdCA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKTtcclxuXHRcdFx0XHRcdFx0dmFyIGluZGV4ID0gbGlzdC5maW5kSW5kZXgoKGUpID0+IGUuaWQgPT0gZGF0YS5pZCk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAobmV0V29yaykge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChpbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmZpcnN0VGltZSA9XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxpc3RbaW5kZXhdLnRpbWUgPiBuZXRXb3JrID8gbGlzdFtpbmRleF0udGltZSA6IG5ldFdvcms7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZmlyc3RUaW1lID0gbmV0V29yayA/IG5ldFdvcmsgOiAwO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoaW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5maXJzdFRpbWUgPSBsaXN0W2luZGV4XS50aW1lID8gbGlzdFtpbmRleF0udGltZSA6IDA7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdHRoaXMuZmlyc3RUaW1lID0gMDtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZmlyc3RUaW1lID0gMDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0aGlzLnZpZGVvRGF0YSA9IHtcclxuXHRcdFx0XHRcdFx0Li4uZGF0YSxcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHR0aGlzLmlzQ2hhbmdlID0gaXNDaGFuZ2UgPyBpc0NoYW5nZSA6IGZhbHNlO1xyXG5cdFx0XHRcdFx0Ly8gdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZmlyc3RUaW1lO1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codGhpcy5maXJzdFRpbWUsIFwi6L+Z5piv56ys5LiA5qyh5pKt5pS+5pe26ZW/MjIyXCIpO1xyXG5cdFx0XHRcdFx0Ly8gYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuXHRcdFx0XHRcdHVuaS5zZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gaWYgKHRoaXMuY3VycmVudFZpZGVvLnR5cGUgPT0gMCB8fCB0aGlzLmN1cnJlbnRWaWRlby50eXBlID09IDIpIHtcclxuXHRcdFx0XHRcdC8vICAgYXdhaXQgdGhpcy5wbGF5VmlkZW8oKTtcclxuXHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMuZmlyc3RUaW1lLCBcIui/meaYr+esrOS4gOasoeaSreaUvuaXtumVv1wiKTtcclxuXHRcdFx0XHRcdC8vIGF3YWl0IHRoYXQuZ2V0VmlkZW8oKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5pc1NldEZpcnN0VGltZSA9IHRydWU7XHJcblx0XHRcdH0sXHJcblx0XHRcdGFzeW5jIHBsYXlWaWRlbyhlKSB7XHJcblx0XHRcdFx0dGhpcy52aWRlb0NvbnRleHQgPSB1bmkuY3JlYXRlVmlkZW9Db250ZXh0KFwidmlkZW9JZFwiLCB0aGlzKTtcclxuXHRcdFx0XHR0aGlzLnZpZGVvQ29udGV4dC5zZWVrKHRoaXMuZmlyc3RUaW1lKTtcclxuXHJcblx0XHRcdFx0Ly8gICB0aGlzLnZpZGVvQ29udGV4dC5yZXF1ZXN0RnVsbFNjcmVlbigpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZWNvcmRUaW1lKGRhdGEpIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRUaW1lID0gZGF0YS50aW1lO1xyXG5cclxuXHRcdFx0XHR2YXIgbGlzdCA9IFtdO1xyXG5cdFx0XHRcdGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuXHRcdFx0XHRcdGxpc3QgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR2YXIgaW5kZXggPSBsaXN0LmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcblx0XHRcdFx0aWYgKGxpc3QubGVuZ3RoID4gMCAmJiBpbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0XHRsaXN0W2luZGV4XSA9IHtcclxuXHRcdFx0XHRcdFx0Li4udGhpcy52aWRlb0RhdGEsXHJcblxyXG5cdFx0XHRcdFx0XHR0aW1lOiBkYXRhLnRpbWUsXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRsaXN0LnB1c2goe1xyXG5cdFx0XHRcdFx0XHQuLi50aGlzLnZpZGVvRGF0YSxcclxuXHRcdFx0XHRcdFx0dGltZTogZGF0YS50aW1lLFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR1bmkuc2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIiwgSlNPTi5zdHJpbmdpZnkobGlzdCkpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyDojrflj5bmlbDmja5cclxuXHRcdFx0YXN5bmMgZ2V0TGl2ZShpc0NoYW5nZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHR0aGlzLmlzZnJlc2ggPSBmYWxzZTtcclxuXHRcdFx0XHR2YXIgZGF0YSA9IHtcclxuXHRcdFx0XHRcdC4uLnRoaXMub3B0aW9ucyxcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRhd2FpdCAkaHR0cFxyXG5cdFx0XHRcdFx0LnJlcXVlc3Qoe1xyXG5cdFx0XHRcdFx0XHR1cmw6IGBzb2Npb2xvZ3kvY291cnNlL2NoZWNrVmlkZW9gLFxyXG5cdFx0XHRcdFx0XHRtZXRob2Q6IFwiUG9zdFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcblx0XHRcdFx0XHRcdGRhdGEsXHJcblx0XHRcdFx0XHRcdGhlYWRlcjoge1xyXG5cdFx0XHRcdFx0XHRcdC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuXHRcdFx0XHRcdFx0XHRcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQudGhlbihhc3luYyAocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdHZhciBkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdC4uLnJlcy52aWRlbyxcclxuXHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuY3VycmVudFZpZGVvLnR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0XHRcdHZhciBwbGF5QXV0aCA9IHJlcy52aWRlby5wbGF5QXV0aC5yZXBsYWNlKC89L2csIFwiXCIpO1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6L+Z5piv5o6l5Y+j6I635Y+W55qE6KeG5bGP5Yet6K+BMTExXCIsIHBsYXlBdXRoKTtcclxuXHRcdFx0XHRcdFx0XHRkYXRhID0ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Li4uZGF0YSxcclxuXHRcdFx0XHRcdFx0XHRcdHZpZGVvSWQ6IHJlcy52aWRlby52aWRlbyxcclxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdXRoOiBwbGF5QXV0aCxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucGxheUF1dGggPSBwbGF5QXV0aDtcclxuXHJcblx0XHRcdFx0XHRcdFx0YXdhaXQgdGhhdC5nZXREYXRhKGRhdGEsIGlzQ2hhbmdlKTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIui/meaYr+aOpeWPo+iOt+WPlueahOinhuWxj+WHreivgTIyMlwiLCByZXMudmlkZW8sIGRhdGEpO1xyXG5cdFx0XHRcdFx0XHRcdGRhdGEgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHQuLi5kYXRhLFxyXG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1dGg6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0YXdhaXQgdGhhdC5nZXREYXRhKGRhdGEsIGlzQ2hhbmdlKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuaYr+WQpuiOt+WPluWIsOWIneWni+aSreaUvuWAvFwiLCBkYXRhKTtcclxuXHJcblx0XHRcdFx0XHRcdHRoYXQuJGZvcmNlVXBkYXRlKCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgaGFuZGxlRW5kKCkge1xyXG5cdFx0XHRcdHZhciBsaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpKTtcclxuXHRcdFx0XHR2YXIgZGF0YSA9IGxpc3QuZmluZCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50VGltZSA9IGRhdGEudGltZTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcclxuXHRcdFx0XHRcdFwidGhpcy5jdXJyZW50VGltZSBhdCBsaW5lIOi/meaYr+e7k+adn+eahOaXtuWAmeaOieeahOWtmOWCqOinhumikTpcIixcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudFRpbWVcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcblx0XHRcdFx0dGhpcy50aW1lciA9IG51bGw7XHJcblxyXG5cdFx0XHRcdGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHNldFZpZGVvVGltZSh0aW1lKSB7XHJcblx0XHRcdFx0dmFyIGRhdGEgPSB7fTtcclxuXHRcdFx0XHQvLyB2YXIgbGlzdCA9IHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKTtcclxuXHJcblx0XHRcdFx0Ly8gZGF0YSA9IGxpc3QuZmluZCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCLov5nmmK/lho3otbDnlJ/lkb3lkajmnJ/lk6ZcIiwgdGhpcy5jdXJyZW50VGltZSk7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLmmK/lkKbotbDkuoblrZjlgqjop4blsY8sXCIgKyB0aGlzLnZpZGVvRGF0YS5pZCwgdGhpcy5jdXJyZW50VGltZSk7XHJcblx0XHRcdFx0dmFyIGRhdGEgPSB7XHJcblx0XHRcdFx0XHR2aWRlb0lkOiB0aGlzLnZpZGVvRGF0YS5pZCxcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiB0aGlzLmN1cnJlbnRUaW1lLCAvL+enkuaVsFxyXG5cdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdCRodHRwXHJcblx0XHRcdFx0XHQucmVxdWVzdCh7XHJcblx0XHRcdFx0XHRcdHVybDogYHNvY2lvbG9neS9jb3Vyc2Uvc2F2ZUNvdXJzZVBvc2l0aW9uYCxcclxuXHRcdFx0XHRcdFx0bWV0aG9kOiBcIlBvc3RcIiwgLy8gUE9TVOOAgUdFVOOAgVBVVOOAgURFTEVURe+8jOWFt+S9k+ivtOaYjuafpeeci+WumOaWueaWh+aho1xyXG5cdFx0XHRcdFx0XHRkYXRhLFxyXG5cdFx0XHRcdFx0XHRoZWFkZXI6IHtcclxuXHRcdFx0XHRcdFx0XHQvL+m7mOiupCDml6Ag6K+05piO77ya6K+35rGC5aS0XHJcblx0XHRcdFx0XHRcdFx0XCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhcIuWtmOWCqOinhuWxj+aXtumVv+aOpeWPo+i/lOWbnuS/oeaBr1wiLCByZXMpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYW5nZVBsYXllclRpbWUocGxheWVyKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJ0aGlzLmZpcnN0VGltZSBhdCBsaW5lIDEwNjpcIiwgdGhpcy5maXJzdFRpbWUpO1xyXG5cdFx0XHRcdHBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z29CYWNrKCkge1xyXG5cdFx0XHRcdHVuaS5uYXZpZ2F0ZUJhY2soe1xyXG5cdFx0XHRcdFx0ZGVsdGE6IDEsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRhc3luYyBzZXRWaWRlb0ZpcnRzZXRUaW1lKHRpbWUpIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5maXJzdFRpbWU7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCLov5nph4zlh4blpIflvIDlp4vorr7nva7mkq3mlL7ml7bpl7Q6XCIsIHRoaXMuY3VycmVudFRpbWUpO1xyXG5cdFx0XHRcdC8vIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdFx0Ly8gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0Ly8gY2xlYXJJbnRlcnZhbCh0aGlzLiRzdG9yZS5zdGF0ZS52aWRlb1RpbWVyKTtcclxuXHJcblx0XHRcdFx0c3RvcmUuY29tbWl0KFxyXG5cdFx0XHRcdFx0XCJzZXRWaWRlb1RpbWVyXCIsXHJcblx0XHRcdFx0XHRzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIGlmICh0aGlzLmN1cnJlbnRUaW1lKSB7XHJcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdFx0XHRcdC8vIH1cclxuXHRcdFx0XHRcdH0sIDYwMDAwKVxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0Ly8gfSwgNTAwMCk7XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cclxuXHRcdGNyZWF0ZWQoKSB7fSxcclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcbjxzY3JpcHQgbW9kdWxlPVwicmVuZGVyU2NyaXB0XCIgbGFuZz1cInJlbmRlcmpzXCI+XHJcblx0aW1wb3J0ICQgZnJvbSAnanF1ZXJ5J1xyXG5cdC8vICBpbXBvcnQgU3RhdGljQURDb21wb25lbnQgZnJvbSAnLi9zdGF0aWNhZGNvbXBvbmVudC9pbmRleC5qcyc7XHJcblx0LyoqXHJcblx0ICog6Z2Z5oCB5bm/5ZGK57uE5Lu2XHJcblx0ICovXHJcblxyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHQvKipcclxuXHRcdCAqIOmdmeaAgeW5v+WRiue7hOS7tlxyXG5cdFx0ICovXHJcblxyXG5cdFx0Y29tcG9uZW50czoge1xyXG5cdFx0XHQvLyBNeUNvbXBvbmVudFxyXG5cdFx0fSxcclxuXHRcdG1vdW50ZWQoKSB7XHJcblx0XHRcdC8vIOWcqOmAguWQiOeahOeUn+WRveWRqOacn++8jOmAmui/h3NjcmlwdOWSjGxpbmvmoIfnrb7lvJXlhaXmkq3mlL7lmahzZGvjgIFjc3NcclxuXHRcdFx0Y29uc29sZS5sb2codGhpcy5vcHRpb25zLCAn6L+Z5pivbW9udGVkJylcclxuXHRcdFx0dGhpcy5sb2FkV2ViUGxheWVyU0RLKClcclxuXHRcdFx0Ly8gdGhpcy5sb2FkQ29tcG9uZW50KClcclxuXHRcdH0sXHJcblx0XHRkYXRhKCkge1xyXG5cdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdHBsYXllcjogbnVsbCxcclxuXHRcdFx0XHR2aWRlb1RpbWVyOiBudWxsLFxyXG5cdFx0XHRcdGN1clRpbWU6IG51bGwsXHJcblx0XHRcdFx0Ly8gZmlyc3RUaW1lOiBudWxsLFxyXG5cdFx0XHRcdGN1clN0YXR1czogbnVsbCxcclxuXHRcdFx0XHQvLyBjdXJyZW50VGltZTpudWxsLFxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cclxuXHJcblx0XHR3YXRjaDoge1xyXG5cclxuXHJcblx0XHRcdGN1clRpbWUodmFsKSB7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLmN1clRpbWUgIT09IG51bGwgJiYgdGhpcy5jdXJTdGF0dXMgIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdHRoaXMuJHJlZnMudmlkZW9Db250ZW50MS5jbGljaygpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cclxuXHRcdG1ldGhvZHM6IHtcclxuXHJcblx0XHRcdGhhbmRsZUNsaWNrKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpuS6hui1sOS6hueCueWHu3ZpZGVv5LqL5Lu2JywgZXZlbnQpXHJcblx0XHRcdFx0Ly8gICAgICAgICAgICAgdGhpcy5wbGF5ZXIub24oJ3JlYWR5JyxmdW5jdGlvbigpe1xyXG5cdFx0XHRcdC8vICAgIHZhciBzdGF0dXM9ICB0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5nZXRJc0Z1bGxTY3JlZW4oKVxyXG5cdFx0XHRcdC8vICAgIGNvbnNvbGUubG9nKCdzdGF0dXMgYXQgbGluZSA0MDM6Jywgc3RhdHVzKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCfop6blj5Hngrnlh7vkuovku7YnLHN0YXR1cykpXHJcblx0XHRcdFx0Ly8gICB9KVxyXG5cclxuXHRcdFx0XHQvLyBvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2dldERhdGEnKVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0ZW1pdERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgncmVjb3JkVGltZScsIHtcclxuXHRcdFx0XHRcdHRpbWU6IHRoYXQuY3VyVGltZSxcclxuXHRcdFx0XHRcdHN0YXR1czogdGhhdC5jdXJTdGF0dXNcclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0fSxcclxuXHJcblxyXG5cdFx0XHRhc3luYyByZWNlaXZlRmlyc3RUaW1lKG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMucGxheWVyKSB7XHJcblx0XHRcdFx0Ly8gLy8gdGhpcy5maXJzdFRpbWU9bmV3VmFsdWU7XHJcblx0XHRcdFx0Ly8gLy8gY29uc29sZS5sb2coJ+i/meaYr+WIneWni+aSreaUvuaXtumXtDExMScsIHRoaXMuZmlyc3RUaW1lLHRoaXMucGxheWVyKVxyXG5cdFx0XHRcdC8vIC8vICBhd2FpdCB0aGlzLnBsYXllci5zZWVrKG5ld1ZhbHVlKTtcclxuXHRcdFx0XHQvLyAgYXdhaXQgdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQ0LmNsaWNrKClcclxuXHJcblxyXG5cclxuXHRcdFx0XHQvLyB9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgcmVjZWl2ZWlzU2V0Rmlyc3RUaW1lKG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm5Yia5byA5aeL6K6+572u5pKt5pS+5pe26Ze0JywgbmV3VmFsdWUsIHRoaXMuZmlyc3RUaW1lLCB0aGlzLnBsYXllcik7XHJcblx0XHRcdFx0Ly8gaWYgKHRoaXMucGxheWVyKSB7XHJcblx0XHRcdFx0Ly8gXHQvLyB0aGlzLmZpcnN0VGltZT1uZXdWYWx1ZTtcclxuXHRcdFx0XHQvLyBcdC8vIGF3YWl0IHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0XHQvLyB9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdGVtaXRTZXREYXRhKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdC8vIHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpuiuvue9rueahOesrOS4gOasoeWIneWni+aSreaUvicsIHRoaXMuZmlyc3RUaW1lLCB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcblxyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ3NldFZpZGVvRmlydHNldFRpbWUnKVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhbmdlVmlkZW9TY3JlZW4oZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0Ly8gdGhpcy4kZW1pdCgnY2hhbmdlU2NyZWVuTG9hZGluZycsdHJ1ZSlcclxuXHRcdFx0XHR2YXIgc3RhdHVzID0gdGhpcy5wbGF5ZXIuZnVsbHNjcmVlblNlcnZpY2UuZ2V0SXNGdWxsU2NyZWVuKCk7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0b3duZXJJbnN0YW5jZS5jYWxsTWV0aG9kKCdzY3JlZW5DaGFuZ2UnLCB7XHJcblx0XHRcdFx0XHRzdGF0dXM6IHN0YXR1cyxcclxuXHRcdFx0XHRcdHByaW1hcnk6IHN0YXR1cyA/ICdwb3J0cmFpdCcgOiAnbGFuZHNjYXBlJ1xyXG5cdFx0XHRcdH0pXHJcblxyXG5cclxuXHRcdFx0XHRpZiAoc3RhdHVzKSB7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0cGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTsgLy/plIHmrbvlsY/luZXmlrnlkJHkuLrnq5blsY9cclxuXHRcdFx0XHRcdFx0dGhpcy5wbGF5ZXIuZnVsbHNjcmVlblNlcnZpY2UuY2FuY2VsRnVsbFNjcmVlbigpO1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRlbWl0KCdjaGFuZ2VTY3JlZW5Mb2FkaW5nJyxmYWxzZSk7XHJcblxyXG5cclxuXHRcdFx0XHRcdH0sIDEwMCk7XHJcblxyXG5cclxuXHRcdFx0XHRcdC8vIHRoaXMucGxheWVyLnNldFBsYXllclNpemUoJzEwMCUnLCcyMDBweCcpO1xyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdC8vICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIuc2V0UGxheWVyU2l6ZSh7XHJcblx0XHRcdFx0XHQvLyAgIHc6XCI0MDBweFwiLFxyXG5cdFx0XHRcdFx0Ly8gICBoZWlnaHQ6JzYwJSdcclxuXHRcdFx0XHRcdC8vICB9KTtcclxuXHRcdFx0XHRcdC8vIHBsdXMuc2NyZWVuLnVubG9ja09yaWVudGF0aW9uKCk7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5yZXF1ZXN0RnVsbFNjcmVlbigpO1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGVtaXQoJ2NoYW5nZVNjcmVlbkxvYWRpbmcnLGZhbHNlKTtcclxuXHRcdFx0XHRcdFx0cGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwibGFuZHNjYXBlLXByaW1hcnlcIik7XHJcblxyXG5cdFx0XHRcdFx0fSwgMTAwKTtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGNoYW5nZVZpZGVvRGF0YShldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHJcblx0XHRcdFx0b3duZXJJbnN0YW5jZS5jYWxsTWV0aG9kKCdjaGFuZ2VWaWRlb0RhdGEnLCApXHJcblx0XHRcdH0sXHJcblx0XHRcdGVuZEVtaXREYXRhKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2hhbmRsZUVuZCcsIClcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TGl2ZSgpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn6L+Z5piv6L+Z5Y+q5Y+q5pivNjY2NjY2OicsIHRoaXMuZmlyc3RUaW1lLCB0aGlzLnZpZGVvRGF0YSlcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMucGxheWVyKSB7XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5wbGF5ZXIuZGlzcG9zZSgpO1xyXG5cdFx0XHRcdFx0JCgnI3VybC1wbGF5ZXItdGVzdCcpLmVtcHR5KCk7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXllciA9IG51bGw7XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblxyXG5cclxuXHRcdFx0XHR2YXIgZnVsbFNjcmVlbkJ1dHRvbkNvbXBvbmVudCA9IEFsaXBsYXllci5Db21wb25lbnQoe1xyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDliJ3lp4vlh73mlbDvvIzlnKhuZXflr7nosaHml7bosIPnlKhcclxuXHRcdFx0XHRcdCAqXHJcblx0XHRcdFx0XHQgKiBAcGFyYW0ge3N0cmluZ30gYWRBZGRyZXNzIC0g5bm/5ZGK6KeG6aKR5Zyw5Z2AXHJcblx0XHRcdFx0XHQgKiBAcGFyYW0ge3N0cmluZ30gdG9BZGRyZXNzIC0g5bm/5ZGK6ZO+5o6l5Zyw5Z2AXHJcblx0XHRcdFx0XHQgKi9cclxuXHRcdFx0XHRcdGluaXQ6IGZ1bmN0aW9uKHN0YXR1cywgdG9BZGRyZXNzKSB7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGlzLmZ1bGxTY3JlZW5TdGF0dXMgPSBzdGF0dXNcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy5hZEFkZHJlc3MgPSBhZEFkZHJlc3M7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMudG9BZGRyZXNzID0gdG9BZGRyZXNzO1xyXG5cclxuXHRcdFx0XHRcdFx0dGhpcy4kaHRtbCA9ICQoJy5mdWxsU2NyZWVuQnV0dG9uLWNvbnRhaW5lcicpO1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDliJvlu7rlub/lkYpEb23lhYPntKBcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0Y3JlYXRlRWw6IGZ1bmN0aW9uKGVsKSB7XHJcblxyXG5cclxuXHRcdFx0XHRcdFx0dGhpcy4kaHRtbC5maW5kKCcuYWQnKS5hdHRyKCdzcmMnLCB0aGlzLmFkQWRkcmVzcyk7XHJcblx0XHRcdFx0XHRcdHZhciAkYWRXcmFwcGVyID0gdGhpcy4kaHRtbC5maW5kKCcuYWQtd3JhcHBlcicpO1xyXG5cdFx0XHRcdFx0XHQkYWRXcmFwcGVyLmF0dHIoJ2hyZWYnLCB0aGlzLnRvQWRkcmVzcyk7XHJcblx0XHRcdFx0XHRcdCRhZFdyYXBwZXIuY2xpY2soZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gQWxpcGxheWVyLnV0aWwuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmZpbmQoJy5jbG9zZScpLmNsaWNrKGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdFx0Ly8gICB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHRcdFx0Ly8gfSk7XHJcblx0XHRcdFx0XHRcdC8vICQoZWwpLmZpbmQoJy5wcmlzbS1jb250cm9sYmFyJykuYXBwZW5kKHRoaXMuJGh0bWwpO1xyXG5cdFx0XHRcdFx0XHQkKGVsKS5maW5kKCcucHJpc20tdGltZS1kaXNwbGF5JykuYWZ0ZXIodGhpcy4kaHRtbCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0cmVhZHk6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC8qKlxyXG5cdFx0XHRcdFx0ICog6ZqQ6JeP5bm/5ZGKXHJcblx0XHRcdFx0XHQgKi9cclxuXHRcdFx0XHRcdHBsYXk6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLnNob3coKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOaYvuekuuW5v+WRilxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRwYXVzZTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC8qKlxyXG5cdFx0XHRcdFx0ICog6ZqQ6JeP5bm/5ZGKXHJcblx0XHRcdFx0XHQgKi9cclxuXHRcdFx0XHRcdHBsYXlpbmc6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRodG1sLnNob3coKTtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5oaWRlKCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0d2FpdGluZzogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuaGlkZSgpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0dGltZXVwZGF0ZTogZnVuY3Rpb24ocGxheWVyLCBlKSB7fSxcclxuXHRcdFx0XHRcdGVycm9yOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHt9LFxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDmmL7npLrlub/lkYpcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0ZW5kZWQ6IGZ1bmN0aW9uKHBsYXllciwgZSkge1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLnNob3coKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+i/meaYr+afpeeci+aYr+WQpuiOt+WPluWIsGhsc3Rva2VuJywgdGhpcy52aWRlb0RhdGEubXRzSGxzVXJpVG9rZW4sIHRoaXMudmlkZW9EYXRhKVxyXG5cclxuXHJcblx0XHRcdFx0dmFyIHBsYXllck9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRpZDogXCJ1cmwtcGxheWVyLXRlc3RcIixcclxuXHRcdFx0XHRcdC8vIHByZWxvYWQ6IGZhbHNlLFxyXG5cdFx0XHRcdFx0Ly8gXCJ2aWRcIjogdGhpcy52aWRlb0RhdGFcclxuXHRcdFx0XHRcdC8vIFx0LnZpZGVvSWQsIC8vIOW/hemAieWPguaVsO+8jOWPr+S7pemAmui/h+eCueaSreaOp+WItuWPsO+8iOi3r+W+hO+8muWqkui1hOW6kz7pn7Mv6KeG6aKR77yJ5p+l6K+i44CC56S65L6L77yaMWUwNjdhMjgzMWI2NDFkYjkwZDU3MGI2NDgwZioqKirjgIJcclxuXHJcblx0XHRcdFx0XHR3aWR0aDogJzEwMCUnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdFx0Ly8gdmlkZW9XaWR0aDogJzEwMHZ3JywgLy/lrrnlmajnmoTlpKflsI9cclxuXHRcdFx0XHRcdC8vIHZpZGVvSGVpZ2h0OiAnMTAwdmgnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAnMTAwJScsIC8v5a655Zmo55qE5aSn5bCPXHJcblx0XHRcdFx0XHQvLyBwbGF5c2lubGluZTogdHJ1ZSxcclxuXHRcdFx0XHRcdC8vIGNvbnRyb2xCYXJWaXNpYmlsaXR5OiBcImNsaWNrXCIsXHJcblx0XHRcdFx0XHRjb3ZlcjogXCJcIixcclxuXHRcdFx0XHRcdGNvbXBvbmVudHM6IFtcclxuXHRcdFx0XHRcdFx0Ly8gIHtcclxuXHRcdFx0XHRcdFx0Ly8gICBuYW1lOiAnQnVsbGV0U2NyZWVuQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdFx0Ly8gICB0eXBlOiBBbGlQbGF5ZXJDb21wb25lbnQuQnVsbGV0U2NyZWVuQ29tcG9uZW50LFxyXG5cdFx0XHRcdFx0XHQvLyAgIC8qKiBEZXNjcmlwdGlvbnMgb2YgdGhlIHNjcm9sbGluZyB0ZXh0IGNvbXBvbmVudCBwYXJhbWV0ZXJzOiB0ZXh0LCBzdHlsZSwgYnVsbGV0UG9zaXRpb25cclxuXHRcdFx0XHRcdFx0Ly8gICAgKiB0ZXh0OiBUaGUgc2Nyb2xsaW5nIHRleHRcclxuXHRcdFx0XHRcdFx0Ly8gICAgKiBzdHlsZTogVGhlIHN0eWxlIG9mIHRoZSBzY3JvbGxpbmcgdGV4dFxyXG5cdFx0XHRcdFx0XHQvLyAgICAqIGJ1bGxldFBvc2l0aW9uOiBUaGUgcG9zaXRpb24gb2YgdGhlIHNjcm9sbGluZyB0ZXh0LiBWYWxpZCB2YWx1ZXM6ICd0b3AnLCAnYm90dG9tJywgYW5kICdyYW5kb20nLiBUaGUgZGVmYXVsdCBpcyAncmFuZG9tJy5cclxuXHRcdFx0XHRcdFx0Ly8gICAgKi9cclxuXHRcdFx0XHRcdFx0Ly8gICBhcmdzOiBbJ2h0dHA6Ly8xMDEuMjAxLjE0Ni4xNjU6ODA4OC9QZi1FSC9zdGF0aWNzL3VwbG9hZEZpbGUvMjAyNC0wNS0xMC9iMGY0MjBjNy05MTc4LTQxYWQtOWRkNi1mNTlhNjRhNmUxOTAucG5nJ11cclxuXHRcdFx0XHRcdFx0Ly8gfSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdhZENvbXBvbmVudCcsXHJcblx0XHRcdFx0XHRcdFx0dHlwZTogZnVsbFNjcmVlbkJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFx0XHRcdFx0XHRhcmdzOiBbXHJcblx0XHRcdFx0XHRcdFx0XHQnaHR0cDovLzEwMS4yMDEuMTQ2LjE2NTo4MDg4L1BmLUVIL3N0YXRpY3MvdXBsb2FkRmlsZS8yMDI0LTA1LTEwL2IwZjQyMGM3LTkxNzgtNDFhZC05ZGQ2LWY1OWE2NGE2ZTE5MC5wbmcnXHJcblx0XHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ1JhdGVDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFsaVBsYXllckNvbXBvbmVudC5SYXRlQ29tcG9uZW50XHJcblx0XHRcdFx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0XHRcdFx0Ly8ge1xyXG5cdFx0XHRcdFx0XHQvLyAgIG5hbWU6ICdSb3RhdGVNaXJyb3JDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHQvLyAgIHR5cGU6IEFsaVBsYXllckNvbXBvbmVudC5Sb3RhdGVNaXJyb3JDb21wb25lbnRcclxuXHRcdFx0XHRcdFx0Ly8gfSxcclxuXHJcblxyXG5cdFx0XHRcdFx0XSxcclxuXHJcblx0XHRcdFx0XHRza2luTGF5b3V0OiBbe1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiYmlnUGxheUJ1dHRvblwiLFxyXG5cdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0eDogMzAsXHJcblx0XHRcdFx0XHRcdFx0eTogODBcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiSDVMb2FkaW5nXCIsXHJcblx0XHRcdFx0XHRcdFx0YWxpZ246IFwiY2NcIlxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogXCJlcnJvckRpc3BsYXlcIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0bGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0eTogMFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogXCJpbmZvRGlzcGxheVwiXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcInRvb2x0aXBcIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0eTogNTZcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwidGh1bWJuYWlsXCJcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiY29udHJvbEJhclwiLFxyXG5cdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0eDogMCxcclxuXHRcdFx0XHRcdFx0XHR5OiAwLFxyXG5cdFx0XHRcdFx0XHRcdGNoaWxkcmVuOiBbe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInByb2dyZXNzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDQ0XHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInBsYXlCdXR0b25cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidGxcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInRpbWVEaXNwbGF5XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcInRsXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDEwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiA3XHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8ge25hbWU6IFwiZnVsbFNjcmVlbkJ1dHRvblwiLCBhbGlnbjogXCJ0clwiLCB4OiAxMCwgeTogMTJ9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8ge25hbWU6XCJzdWJ0aXRsZVwiLCBhbGlnbjpcInRyXCIseDoxNSwgeToxMn0sXHJcblx0XHRcdFx0XHRcdFx0XHQvLyB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdG5hbWU6IFwic2V0dGluZ1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR4OiAxNSxcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0eTogMTJcclxuXHRcdFx0XHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwicHJpc20tc3BlZWQtc2VsZWN0b3JcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidHJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInZvbHVtZVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiA1LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiAxMFxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdF1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy52aWRlb0RhdGEudHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHQvLyBpZih0aGlzLiRwbGF0Zm9ybT09J2lvcycpe1xyXG5cdFx0XHRcdFx0Ly/moIflh4bliqDlr4ZcclxuXHRcdFx0XHRcdC8vIHBsYXllck9wdGlvbnMgPSB7XHJcblxyXG5cclxuXHRcdFx0XHRcdC8vIFx0Li4ucGxheWVyT3B0aW9ucyxcclxuXHRcdFx0XHRcdC8vIFx0c291cmNlOiB0aGlzLnZpZGVvRGF0YS5tM3U4VXJsLFxyXG5cdFx0XHRcdFx0Ly8gXHQvLyAgICAgICAgICAgICAuLi5wbGF5ZXJPcHRpb25zLFxyXG5cdFx0XHRcdFx0Ly8gXHQvLyBzb3VyY2U6IHRoaXMudmlkZW9EYXRhLm0zdThVcmwsXHJcblx0XHRcdFx0XHQvLyBcdC8vICAgICAgICAgICAgIFwicGxheWF1dGhcIjogdGhpcy52aWRlb0RhdGEucGxheUF1dGgsIC8vIOW/hemAieWPguaVsO+8jOWPguaVsOWAvOWPr+mAmui/h+iwg+eUqEdldFZpZGVvUGxheUF1dGjmjqXlj6Pojrflj5bjgIJcclxuXHRcdFx0XHRcdC8vIFx0ICAgICAgICAgICAgZm9ybWF0OidtM3U4JyxcclxuXHRcdFx0XHRcdC8vIFx0Ly8gICAgICAgICAgICAgLy8gXCJlbmNyeXB0VHlwZVwiOiAxLCAvLyDlv4XpgInlj4LmlbDvvIzlvZPmkq3mlL7np4HmnInliqDlr4bmtYHml7bpnIDopoHorr7nva7mnKzlj4LmlbDlgLzkuLox44CC5YW25a6D5oOF5Ya15peg6ZyA6K6+572u44CCXHJcblx0XHRcdFx0XHQvLyBcdC8vICAgICAgICAgICAgIFwicGxheUNvbmZpZ1wiOiB7XHJcblx0XHRcdFx0XHQvLyBcdC8vICAgICAgICAgICAgICAgXCJFbmNyeXB0VHlwZVwiOiAnSExTRW5jcnlwdGlvbicsXHJcblx0XHRcdFx0XHQvLyBcdC8vICAgICAgICAgICAgICAgXCJNdHNIbHNVcmlUb2tlblwiOiB0aGlzLnZpZGVvRGF0YS5tdHNIbHNVcmlUb2tlbixcclxuXHJcblx0XHRcdFx0XHQvLyBcdC8vICAgICAgICAgICAgIH0sXHJcblxyXG5cdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0Ly8gICAgICB9ZWxzZXtcclxuXHRcdFx0XHRcdC8v56eB5pyJ5Yqg5a+GXHJcblx0XHRcdFx0XHRwbGF5ZXJPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0XHQuLi5wbGF5ZXJPcHRpb25zLFxyXG5cdFx0XHRcdFx0XHRcInBsYXlhdXRoXCI6IHRoaXMudmlkZW9EYXRhLnBsYXlBdXRoLCAvLyDlv4XpgInlj4LmlbDvvIzlj4LmlbDlgLzlj6/pgJrov4fosIPnlKhHZXRWaWRlb1BsYXlBdXRo5o6l5Y+j6I635Y+W44CCXHJcblxyXG5cdFx0XHRcdFx0XHRcImVuY3J5cHRUeXBlXCI6IDEsIC8vIOW/hemAieWPguaVsO+8jOW9k+aSreaUvuengeacieWKoOWvhua1geaXtumcgOimgeiuvue9ruacrOWPguaVsOWAvOS4ujHjgILlhbblroPmg4XlhrXml6DpnIDorr7nva7jgIJcclxuXHRcdFx0XHRcdFx0XCJwbGF5Q29uZmlnXCI6IHtcclxuXHRcdFx0XHRcdFx0XHRcIkVuY3J5cHRUeXBlXCI6ICdBbGl5dW5Wb0RFbmNyeXB0aW9uJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHRcdFx0Ly8gfVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBsYXllck9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRcdC4uLnBsYXllck9wdGlvbnMsXHJcblx0XHRcdFx0XHRcdHNvdXJjZTogdGhpcy52aWRlb0RhdGEudmlkZW9VcmxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIHBsYXllciA9IG5ldyBBbGlwbGF5ZXIocGxheWVyT3B0aW9ucywgZnVuY3Rpb24ocGxheWVyKSB7fSk7XHJcblx0XHRcdFx0dGhpcy5wbGF5ZXIgPSBwbGF5ZXI7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpuaLv+WIsOesrOS4gOasoeWIneWni+WAvOWRoicsIHRoaXMucGxhdGZvcm0sIHR5cGVvZiB0aGlzLmZpcnN0VGltZSwgdGhpcy5maXJzdFRpbWUpXHJcblx0XHRcdFx0aWYgKHRoaXMucGxhdGZvcm0gPT0gJ2lvcycpIHtcclxuXHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5vbmUoJ3RpbWV1cGRhdGUnLCAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cdFx0XHRcdFx0fSlcclxuXHJcblx0XHRcdFx0XHRwbGF5ZXIub24oJ2NhbnBsYXknLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ+i/meaYr2lvc+aVsOaNrue8k+WGsuWIneasoeiuvue9ruaSreaUvuS9jee9ruWIpOaWre+8ge+8ge+8ge+8gScpXHJcblx0XHRcdFx0XHRcdHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdC8vICAgdmFyIHNlZWtlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0Ly8gcGxheWVyLm9uKCdsb2FkZWRtZXRhZGF0YScsZnVuY3Rpb24gIChlKSB7XHJcblx0XHRcdFx0XHQvLyAgIGlmKCFzZWVrZWQpXHJcblx0XHRcdFx0XHQvLyAgIHtcclxuXHRcdFx0XHRcdC8vICAgICBzZWVrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0Ly8gICAgIHRoaXMucGxheWVyLnNlZWsoMjApO1xyXG5cdFx0XHRcdFx0Ly8gICB9XHJcblx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHRcdC8vIHBsYXllci5vbignd2FpdGluZycsZnVuY3Rpb24oKXtcclxuXHRcdFx0XHRcdC8vICAgY29uc29sZS5sb2coJ+i/meaYr2lvc+aVsOaNrue8k+WGsuWIneasoeiuvue9ruaSreaUvuS9jee9ruWIpOaWre+8ge+8ge+8ge+8gScpXHJcblx0XHRcdFx0XHQvLyAgIHNldFRpbWVvdXQoKCk9PntcclxuXHRcdFx0XHRcdC8vICAgICAgcGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpXHJcblx0XHRcdFx0XHQvLyAgIH0sNTAwKVxyXG5cclxuXHRcdFx0XHRcdC8vICAgICB9KVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKVxyXG5cdFx0XHRcdH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIHZhciBzZWVrZWQgPSBmYWxzZTtcclxuXHRcdFx0XHQvLyAgICAgICAgIHRoaXMucGxheWVyLm9uKCdsb2FkZWRtZXRhZGF0YScsZnVuY3Rpb24gIChlKSB7XHJcblx0XHRcdFx0Ly8gICBpZighc2Vla2VkKVxyXG5cdFx0XHRcdC8vICAge1xyXG5cdFx0XHRcdC8vICAgICBzZWVrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdC8vICAgICBwbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcblx0XHRcdFx0Ly8gICB9XHJcblx0XHRcdFx0Ly8gfSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy52aWRlb1RpbWVyKTtcclxuXHJcblx0XHRcdFx0dGhpcy52aWRlb1RpbWVyID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLnZpZGVvVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0XHR0aGF0LmN1clRpbWUgPSBwYXJzZUludCh0aGlzLnBsYXllci5nZXRDdXJyZW50VGltZSgpKTtcclxuXHRcdFx0XHRcdHRoYXQuY3VyU3RhdHVzID0gdGhpcy5wbGF5ZXIuZ2V0U3RhdHVzKClcclxuXHJcblxyXG5cdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdHRoaXMuJHJlZnMudmlkZW9Db250ZW50NC5jbGljaygpXHJcblx0XHRcdFx0cGxheWVyLm9uKCdyZWFkeScsIGZ1bmN0aW9uKCkge1xyXG5cclxuXHRcdFx0XHRcdC8vICBwbGF5ZXIuZnVsbHNjcmVlblNlcnZpY2UucmVxdWVzdEZ1bGxTY3JlZW4oKVxyXG5cclxuXHRcdFx0XHR9KVxyXG5cclxuXHRcdFx0XHQvLyAgdGhpcy5cclxuXHJcblxyXG5cdFx0XHRcdC8vIHRoaXMuJHJlZnMudmlkZW9Db250ZW50LmNsaWNrKClcclxuXHRcdFx0XHR0aGlzLnBsYXllci5vbignZW5kZWQnLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aGF0LmN1clRpbWUgYXQgbGluZSAyNDI6JywgdGhpcy5jdXJUaW1lKVxyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3RoYXQuY3VyU3RhdHVzIGF0IGxpbmUgMjEwOicsIHRoaXMuY3VyU3RhdHVzKVxyXG5cdFx0XHRcdFx0dGhpcy4kcmVmcy52aWRlb0NvbnRlbnQyLmNsaWNrKClcclxuXHJcblxyXG5cclxuXHJcblx0XHRcdFx0fSlcclxuXHJcblxyXG5cclxuXHRcdFx0XHQvLyBwbGF5ZXIuc2V0Um90YXRlKDkwKVxyXG5cclxuXHRcdFx0XHQvL+WFqOWxj+aSreaUvlxyXG5cclxuXHRcdFx0XHQvLyBwbGF5ZXIub25lKCdjYW5wbGF5JywgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0Ly8gICAgIC8vIGNvbnNvbGUubG9nKCdjYW5wbGF5JywgdGhpcy5wbGF5ZXIudGFnKTtcclxuXHRcdFx0XHQvLyAgICAgcGxheWVyLnRhZy5wbGF5KCk7XHJcblxyXG5cdFx0XHRcdC8vIH0pO1xyXG5cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRzaG93UHJldmlldyhlKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ2UgYXQgbGluZSA1NjonLCBlKVxyXG5cdFx0XHRcdGxldCBjb25pbWcgPSBlLnRhcmdldC5kYXRhc2V0Lm5vZGVzO1xyXG5cdFx0XHRcdGxldCBpbWdzID0gY29uaW1nLm1hdGNoKC88aW1nW14+XSs+L2cpOyAvL+mAieaLqeiKgueCueS4reeahGltZ1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdpbWdzIGF0IGxpbmUgNTk6JywgaW1ncylcclxuXHRcdFx0XHRsZXQgaW1nTGlzdCA9IFtdO1xyXG5cdFx0XHRcdC8v6YGN5Y6GaW1n5qCH562+55qEc3Jj6YeM6Z2i55qE5YaF5a655pS+5Zyo5a6a5LmJ55qE5pWw57uEaW1nTGlzdOS4rVxyXG5cdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgaW1ncy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdFx0aW1nc1tqXS5yZXBsYWNlKC88aW1nW14+XSpzcmM9WydcIl0oW14nXCJdKylbXj5dKj4vZ2ksIGZ1bmN0aW9uKG1hdGNoLCBjYXB0dXJlKSB7XHJcblx0XHRcdFx0XHRcdGltZ0xpc3QucHVzaChjYXB0dXJlKVxyXG5cclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdpbWdMaXN0LnB1c2ggYXQgbGluZSA2NDonLCBpbWdMaXN0KVxyXG5cclxuXHJcblx0XHRcdFx0Ly/mnIDlkI7kuIDmraXlsLHmmK/miYDmnInlm77niYfmlL7lnKjpooTop4jnmoTmlrnms5VwcmV2aWV3SW1hZ2XkuK3lsLHlj6/ku6XkuoZcclxuXHRcdFx0XHQvLyB1bmkucHJldmlld0ltYWdlKHtcclxuXHRcdFx0XHQvLyAgICAgY3VycmVudDogaW1nTGlzdCxcclxuXHRcdFx0XHQvLyAgICAgdXJsczogaW1nTGlzdCxcclxuXHRcdFx0XHQvLyB9KVxyXG5cdFx0XHRcdHVuaS5wcmV2aWV3SW1hZ2Uoe1xyXG5cdFx0XHRcdFx0dXJsczogaW1nTGlzdCxcclxuXHRcdFx0XHRcdGxvbmdQcmVzc0FjdGlvbnM6IHtcclxuXHRcdFx0XHRcdFx0aXRlbUxpc3Q6IFsn5b6I5oqx5q2J77yM5pqC5LiN5pSv5oyB5L+d5a2Y5Zu+54mH5Yiw5pys5ZywJ10sXHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xyXG5cdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKHJlcywnKysrKysnKVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0cmVjZWl2ZVNjcmVlblR5cGUobmV3VmFsdWUpIHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnbmV3VmFsdWUgYXQgbGluZSA0MjflsY/luZXmlrnlkJExMTExMTExMTExMTE6JywgbmV3VmFsdWUpXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyByZWNlaXZlSXNmcmVzaChuZXdWYWx1ZSkge1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmmK/lkKbotbDkuobliLfmlrDplIDmr4Hmlrnms5U6JywgdGhpcy5wbGF5ZXIpXHJcblx0XHRcdFx0aWYgKHRoaXMucGxheWVyKSB7XHJcblx0XHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMuJHN0b3JlLnN0YXRlLnZpZGVvVGltZXIpXHJcblx0XHRcdFx0XHQvLyBhd2FpdCB0aGlzLnNldFZpZGVvVGltZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5wbGF5ZXIuZGlzcG9zZSgpO1xyXG5cdFx0XHRcdFx0Ly8gJCgnI3VybC1wbGF5ZXItdGVzdCcpLmVtcHR5KClcclxuXHJcblx0XHRcdFx0XHQvLyB0aGlzLnBsYXllci5zZWVrKG5ld1ZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgcmVjZWl2ZXBsYXRmb3JtKG5ld1ZhbHVlKSB7XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGFzeW5jIHJlY2VpdmVJc0NoYW5nZShuZXdWYWx1ZSkge1xyXG5cclxuXHJcblx0XHRcdFx0Ly8gdGhpcy50aW1lcj1udWxsXHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLmlzQ2hhbmdlKSB7XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5jaGVja1ZhbHVlKClcclxuXHJcblx0XHRcdFx0XHQvLyBpZiAodGhpcy52aWRlb0RhdGEudHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKCfmmK/lkKbotbDkuobliIfmjaLliqDlr4bop4bpopHmlrnms5U6JywgdGhpcy5pc0NoYW5nZSwgdGhpcy52aWRlb0RhdGEpXHJcblx0XHRcdFx0XHQvLyBcdGF3YWl0IHRoaXMucGxheWVyLnJlcGxheUJ5VmlkQW5kUGxheUF1dGgodGhpcy52aWRlb0RhdGEudmlkZW8sIHRoaXMudmlkZW9EYXRhLnBsYXlBdXRoKVxyXG5cdFx0XHRcdFx0Ly8gICB0aGlzLiRyZWZzLnZpZGVvQ29udGVudC5jbGljaygpXHJcblx0XHRcdFx0XHQvLyB9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZygn5piv5ZCm6LWw5LqG5YiH5o2i6ICB6KeG6aKRL+mfs+mikeaWueazlTonLCB0aGlzLmlzQ2hhbmdlLCB0aGlzLnZpZGVvRGF0YSlcclxuXHRcdFx0XHRcdC8vIGF3YWl0XHR0aGlzLnBsYXllci5sb2FkQnlVcmwodGhpcy52aWRlb0RhdGEudmlkZW9VcmwpXHJcblx0XHRcdFx0XHQvLyB0aGlzLiRyZWZzLnZpZGVvQ29udGVudC5jbGljaygpXHJcblx0XHRcdFx0XHQvLyB9XHJcblxyXG5cdFx0XHRcdH1cclxuXHJcblxyXG5cdFx0XHRcdC8vIHRoaXMuJHJlZnMudmlkZW9Db250ZW50My5jbGljaygpXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0cmVjZWl2ZVZpZGVvTGlzdChuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdFx0Ly8gLy/mlbDmja7lj5jljJZcclxuXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ2N1cnJlbnRWaWRlb0xpc3RjdXJyZW50VmlkZW9MaXN0Y3VycmVudFZpZGVvTGlzdCcsIG5ld1ZhbHVlKVxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlY2VpdmVNc2cobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdC8v5pWw5o2u5Y+Y5YyWXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ25ld1ZhbHVlJywgbmV3VmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ29sZFZhbHVlJywgb2xkVmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ293bmVyVm0nLCBvd25lclZtKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd2bScsIHZtKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZWNlaXZlV2luV2lkdGgobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdC8v5pWw5o2u5Y+Y5YyWXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ25ld1ZhbHVlJywgbmV3VmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ29sZFZhbHVlJywgb2xkVmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ293bmVyVm0nLCBvd25lclZtKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd2bScsIHZtKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZWNlaXZlV2luSGVpZ2h0KG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHRcdFx0XHQvL+aVsOaNruWPmOWMllxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCduZXdWYWx1ZScsIG5ld1ZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvbGRWYWx1ZScsIG9sZFZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvd25lclZtJywgb3duZXJWbSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygndm0nLCB2bSlcclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hlY2tWYWx1ZSgpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyh0aGlzLnZpZGVvSWQsIHRoaXMuYXV0aElkLCB0aGlzLnZpZGVvRGF0YSwgXCIxMTExODg4ODg4XCIpXHJcblx0XHRcdFx0aWYgKCghdGhpcy52aWRlb0RhdGEucGxheUF1dGggfHwgIXRoaXMuY3VycmVudFZpZGVvTGlzdCkpIHtcclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmNoZWNrVmFsdWUoKTtcclxuXHRcdFx0XHRcdH0sIDEwMDApO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coJ+i/meaYr+i/meWPquWPquaYrzU5NDonLCB0aGlzLmZpcnN0VGltZSwgdGhpcy52aWRlb0RhdGEpXHJcblx0XHRcdFx0XHR0aGlzLmdldExpdmUoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGxvYWRXZWJQbGF5ZXJTREsoKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRcdGNvbnN0IHNfdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IC8vIOW8leWFpeaSreaUvuWZqGpzXHJcblx0XHRcdFx0XHRzX3RhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcblx0XHRcdFx0XHRzX3RhZy5zcmMgPSAnaHR0cHM6Ly9nLmFsaWNkbi5jb20vYXBzYXJhLW1lZGlhLWJveC9pbXAtd2ViLXBsYXllci8yLjIwLjMvYWxpcGxheWVyLW1pbi5qcyc7XHJcblx0XHRcdFx0XHRzX3RhZy5jaGFyc2V0ID0gJ3V0Zi04JztcclxuXHRcdFx0XHRcdHNfdGFnLm9ubG9hZCA9ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3Qgc190YWcxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IC8vIOW8leWFpeaSreaUvuWZqGpzXHJcblx0XHRcdFx0XHRcdHNfdGFnMS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcblx0XHRcdFx0XHRcdHNfdGFnMS5zcmMgPVxyXG5cdFx0XHRcdFx0XHRcdCdodHRwczovL3BsYXllci5hbGljZG4uY29tL2FsaXBsYXllci9wcmVzZW50YXRpb24vanMvYWxpcGxheWVyY29tcG9uZW50cy5taW4uanMnO1xyXG5cdFx0XHRcdFx0XHRzX3RhZzEuY2hhcnNldCA9ICd1dGYtOCc7XHJcblx0XHRcdFx0XHRcdHNfdGFnMS5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5jaGVja1ZhbHVlKCk7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNfdGFnMSk7XHJcblxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzX3RhZyk7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0XHRjb25zdCBsX3RhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsgLy8g5byV5YWl5pKt5pS+5ZmoY3NzXHJcblx0XHRcdFx0XHRsX3RhZy5yZWwgPSAnc3R5bGVzaGVldCc7XHJcblx0XHRcdFx0XHRsX3RhZy5ocmVmID1cclxuXHRcdFx0XHRcdFx0J2h0dHBzOi8vZy5hbGljZG4uY29tL2Fwc2FyYS1tZWRpYS1ib3gvaW1wLXdlYi1wbGF5ZXIvMi4yMC4zL3NraW5zL2RlZmF1bHQvYWxpcGxheWVyLW1pbi5jc3MnO1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsX3RhZyk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGxvYWRDb21wb25lbnQoKSB7XHJcblx0XHRcdFx0Ly8gcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0XHQvLyAgICAgY29uc3Qgc190YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuXHRcdFx0XHQvLyAgICAgc190YWcudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG5cdFx0XHRcdC8vICAgICAvLyDpnIDopoHlhYjkuIvovb3nu4Tku7YganMg5paH5Lu277yM5pS+5Yiw6aG555uuIC9zdGF0aWMvIOebruW9leS4i1xyXG5cdFx0XHRcdC8vICAgICAvLyDkuIvovb3lnLDlnYDvvJpodHRwczovL2dpdGh1Yi5jb20vYWxpeXVudmlkZW8vQWxpeXVuUGxheWVyX1dlYi9ibG9iL21hc3Rlci9jdXN0b21Db21wb25lbnRzL2Rpc3QvYWxpcGxheWVyLWNvbXBvbmVudHMvYWxpcGxheWVyY29tcG9uZW50cy0xLjAuOS5taW4uanNcclxuXHRcdFx0XHQvLyAgICAgc190YWcuc3JjID0gJ0Avc3RhdGljL2FsaXBsYXllcmNvbXBvbmVudHMuanMnO1xyXG5cdFx0XHRcdC8vICAgICBzX3RhZy5jaGFyc2V0ID0gJ3V0Zi04JztcclxuXHRcdFx0XHQvLyAgICAgc190YWcub25sb2FkID0gKCkgPT4ge1xyXG5cdFx0XHRcdC8vICAgICAgICAgcmVzb2x2ZSgpO1xyXG5cdFx0XHRcdC8vICAgICB9XHJcblx0XHRcdFx0Ly8gICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc190YWcpO1xyXG5cdFx0XHRcdC8vIH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG48L3NjcmlwdD5cclxuPHN0eWxlPlxyXG5cdC5jb250YWluZXIge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiBhdXRvO1xyXG5cclxuXHRcdC9kZWVwLy5wYXVzZSB7XHJcblx0XHRcdHdpZHRoOiA2MHJweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRoZWlnaHQ6IDYwcnB4ICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuZmRzIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6IGJsdWU7XHJcblx0XHRoZWlnaHQ6IDYwMHJweDtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdHRvcDogNjBycHg7XHJcblx0fVxyXG5cclxuXHQucmV0dXJuQmFjayB7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGhlaWdodDogODhycHg7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDIwcnB4O1xyXG5cdH1cclxuXHJcblx0LnR4dCB7XHJcblx0XHRjb2xvcjogI2ZmZjtcclxuXHR9XHJcblxyXG5cdC5yaWdodF90aXRsZSB7XHJcblx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xyXG5cdFx0aGVpZ2h0OiA5NnJweDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XHJcblx0fVxyXG5cclxuXHQucmV0dXJuIHtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0fVxyXG5cclxuXHQucmlnaHRfaGFuZGxlIHtcclxuXHRcdHdpZHRoOiAyMDBycHg7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcnB4O1xyXG5cdH1cclxuXHJcblx0Y292ZXItdmlldyB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdH1cclxuXHJcblx0Y292ZXItdmlldyB7XHJcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHRjb3Zlci1pbWFnZSB7XHJcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cclxuXHQuZnVsbFNjcmVlbkJ1dHRvbi1jb250YWluZXIge1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRoZWlnaHQ6IDM1cHg7XHJcblx0XHRtYXJnaW4tdG9wOiA2cHg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuXHRcdGkge1xyXG5cdFx0XHRjb2xvcjogI2ZmZjtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRtYXJnaW4tdG9wOiA3cHg7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHJcblx0XHRcdCYraSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDNweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcblx0XHRcdFx0Jjpob3ZlcisucGxheWVyLXRvb2x0aXAge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LnBsYXllci10b29sdGlwIHtcclxuXHRcdFx0Ji5wcmV2IHtcclxuXHRcdFx0XHRsZWZ0OiAtMTBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5saXN0IHtcclxuXHRcdFx0XHRsZWZ0OiA1cHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCYubmV4dCB7XHJcblx0XHRcdFx0cmlnaHQ6IC0xMnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucGxheWxpc3QtY29udGVudCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRyaWdodDogMDtcclxuXHRcdHdpZHRoOiAwcHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogNDhweDtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zOHMgZWFzZS1pbi1vdXQ7XHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHRcdC5saXN0IHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xyXG5cclxuXHRcdFx0LnZpZGVvLWl0ZW0ge1xyXG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDBweCAxMHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAzNXB4O1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcblx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cclxuXHRcdFx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG5cdFx0XHRcdFx0Y29sb3I6ICMwMGRkZmY7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuXHRcdFx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogIzAwZGRmZjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5wbGF5ZXItdG9vbHRpcCB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0Y29sb3I6ICNmZmY7XHJcblx0XHRsaW5lLWhlaWdodDogMjhweDtcclxuXHRcdGxldHRlci1zcGFjaW5nOiAwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0YmFja2dyb3VuZDogIzNjM2MzYztcclxuXHRcdGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcblx0XHRoZWlnaHQ6IDI4cHg7XHJcblx0XHR0b3A6IC00OHB4O1xyXG5cdFx0cGFkZGluZzogMCA1cHg7XHJcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdH1cclxuXHJcblx0LnBsYXlsaXN0LXNraXAtdGlwIHtcclxuXHRcdHBhZGRpbmc6IDVweCAxNXB4O1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiA1MCU7XHJcblx0XHRsZWZ0OiA1MCU7XHJcblx0XHR6LWluZGV4OiAzMDtcclxuXHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xyXG5cdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xyXG5cdFx0Y29sb3I6ICMwMDA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuXHR9XHJcblxyXG5cdCNyb3RhdGluZy1kaXYge1xyXG5cdFx0d2lkdGg6IDEwMHZ3O1xyXG5cdFx0aGVpZ2h0OiAxMDB2aDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7XHJcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcblx0XHQvKiDml4vovaw5MOW6piAqL1xyXG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcclxuXHRcdC8qIOiuvue9ruaXi+i9rOS4reW/g+eCueWcqGRpduS4reW/gyAqL1xyXG5cdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0Lyog5Zu65a6a5a6a5L2N77yM5YWo5bGP5pi+56S6ICovXHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblx0fVxyXG48L3N0eWxlPiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1051\n"); /***/ }), /* 1052 */ @@ -61517,33 +61517,33 @@ eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefaul /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& */ 1053);\n/* harmony import */ var _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ios.nvue?vue&type=script&lang=js& */ 1055);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 28);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/component/commonComponents/video/ios.nvue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeVM7QUFDelM7QUFDd0Q7QUFDTDs7O0FBR25EO0FBQytLO0FBQy9LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDBFQUFNO0FBQ1IsRUFBRSx1UUFBTTtBQUNSLEVBQUUsZ1JBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMlFBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaW9zLm52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmRiNDMyNzAmZmlsdGVyLW1vZHVsZXM9ZXlKeVpXNWtaWEpUWTNKcGNIUWlPbnNpZEhsd1pTSTZJbkpsYm1SbGNtcHpJaXdpWTI5dWRHVnVkQ0k2SWlJc0luTjBZWEowSWpveE1URXdNeXdpWVhSMGNuTWlPbnNpYlc5a2RXeGxJam9pY21WdVpHVnlVMk55YVhCMElpd2liR0Z1WnlJNkltcHpJbjBzSW1WdVpDSTZNalkyTlRSOWZRJTNEJTNEJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW9zLm52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2lvcy5udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi/ova/ku7Yv6L2v5Lu2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW9zLm52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1052\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& */ 1053);\n/* harmony import */ var _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ios.nvue?vue&type=script&lang=js& */ 1055);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 28);\n\nvar renderjs\n\n\n\n\n/* normalize component */\n\nvar component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n null,\n null,\n false,\n _ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__[\"components\"],\n renderjs\n)\n\ncomponent.options.__file = \"pages/component/commonComponents/video/ios.nvue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbbnVsbF0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBeVM7QUFDelM7QUFDd0Q7QUFDTDs7O0FBR25EO0FBQytLO0FBQy9LLGdCQUFnQiw2S0FBVTtBQUMxQixFQUFFLDBFQUFNO0FBQ1IsRUFBRSx1UUFBTTtBQUNSLEVBQUUsZ1JBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMlFBQVU7QUFDWjtBQUNBOztBQUVBO0FBQ2UsZ0YiLCJmaWxlIjoiMTA1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCByZWN5Y2xhYmxlUmVuZGVyLCBjb21wb25lbnRzIH0gZnJvbSBcIi4vaW9zLm52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmRiNDMyNzAmZmlsdGVyLW1vZHVsZXM9ZXlKeVpXNWtaWEpUWTNKcGNIUWlPbnNpZEhsd1pTSTZJbkpsYm1SbGNtcHpJaXdpWTI5dWRHVnVkQ0k2SWlJc0luTjBZWEowSWpveE16ZzNOQ3dpWVhSMGNuTWlPbnNpYlc5a2RXeGxJam9pY21WdVpHVnlVMk55YVhCMElpd2liR0Z1WnlJNkltcHpJbjBzSW1WdVpDSTZNamt5TnpKOWZRJTNEJTNEJlwiXG52YXIgcmVuZGVyanNcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW9zLm52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2lvcy5udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi8uLi/ova/ku7Yv6L2v5Lu2L0hCdWlsZGVyWC9wbHVnaW5zL3VuaWFwcC1jbGkvbm9kZV9tb2R1bGVzL0BkY2xvdWRpby92dWUtY2xpLXBsdWdpbi11bmkvcGFja2FnZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgZmFsc2UsXG4gIGNvbXBvbmVudHMsXG4gIHJlbmRlcmpzXG4pXG5cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwicGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW9zLm52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1052\n"); /***/ }), /* 1053 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& ***! + !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& */ 1054); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& */ 1054); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_11_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_ios_nvue_vue_type_template_id_6db43270_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 1054 */ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& ***! + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--11-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& ***! \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -61562,7 +61562,42 @@ var render = function () { return _c( "view", { staticClass: _vm._$s(0, "sc", "container"), attrs: { _i: 0 } }, - [_vm._$s(1, "i", _vm.isSetFirstTime) ? _c("web-view", {}) : _vm._e()] + [ + _c("view", [ + _c( + "video", + { + staticClass: _vm._$s(2, "sc", "video"), + attrs: { + id: "video1", + src: _vm._$s( + 2, + "a-src", + _vm.videoData.type == 1 + ? _vm.videoData.m3u8Url + : _vm.videoData.videoUrl + ), + _i: 2, + }, + on: { + play: _vm.onstart, + pause: _vm.onpause, + ended: _vm.onfinish, + error: _vm.onfail, + waiting: _vm.waiting, + timeupdate: _vm.timeupdate, + fullscreenchange: _vm.fullscreenchange, + }, + }, + [ + _c("cover-view", { + attrs: { _i: 3 }, + on: { click: _vm.doubleSpeed }, + }), + ] + ), + ]), + ] ) } var recyclableRender = false @@ -61591,7 +61626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _HBu /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 161));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\nvar _methods;\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; }\n// importScripts('@/static/aliplayer/aliplayer-min.js')\nvar _default = {\n props: [\"currentVideo\", \"currentVideoList\"],\n data: function data() {\n return {\n wv: null,\n // 定义(app)webview对象节点\n webV: {},\n // 定义(H5)webview对象节点\n sendData: [],\n // 发送数据数组\n platform: null,\n //当前是否是全屏模式\n isFullScreen: false,\n isfresh: false,\n isChange: false,\n isControl: true,\n timer: null,\n videoTitle: \"\",\n videoList: [],\n firstTime: 0,\n options: {},\n playAuth: \"\",\n currentTime: \"\",\n videoId: \"\",\n videoData: {},\n isSetFirstTime: false,\n screenType: null,\n videoUrl: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"videoOssList\"])),\n watch: {\n currentVideo: {\n immediate: true,\n handler: function handler(newRoute) {}\n },\n timer: function timer(newValue) {\n this.$emit(\"child-event\", newValue);\n }\n },\n // //页面显示\n mounted: function mounted() {},\n beforeDestroy: function beforeDestroy() {\n this.handleEnd();\n __f__(\"log\", \"是否走啦习销毁\", \" at pages/component/commonComponents/video/ios.nvue:58\");\n clearInterval(this.$store.state.videoTimer);\n // this.timer = null;\n // store.commit(\"setLoadingShow\", null);\n plus.screen.lockOrientation(\"portrait-primary\");\n __f__(\"log\", \"是否走啦习销毁定时器\", this.timer, \" at pages/component/commonComponents/video/ios.nvue:64\");\n },\n onUnload: function onUnload() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n uni.navigateTo({\n url: \"/pages/curriculum/order/curriculum/back\"\n });\n plus.screen.lockOrientation(\"portrait-primary\"); //锁死屏幕方向为竖屏\n\n // plus.screen.lockOrientation(\"portrait-primary\");\n _context.next = 4;\n return _this.setVideoTime();\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n //第一次加载\n onLoad: function onLoad(options) {},\n methods: (_methods = {\n handleMessage: function handleMessage(evt) {\n __f__(\"log\", evt, \" at pages/component/commonComponents/video/ios.nvue:85\");\n __f__(\"log\", \"接收Html发送过来的消息:\" + JSON.stringify(evt.detail.data[0]), \" at pages/component/commonComponents/video/ios.nvue:86\");\n },\n // webview向外部发送消息\n handlePostMessage: function handlePostMessage(data) {\n __f__(\"log\", \"接收到消息:\" + JSON.stringify(data.detail), \" at pages/component/commonComponents/video/ios.nvue:92\");\n },\n // 调用 webview 内部逻辑\n evalJs: function evalJs() {\n this.$refs.webview.evalJs(\"document.body.style.background ='#00FF00'\");\n },\n start: function start() {\n // var playerView = this.$refs.playerView;\n this.$refs.playerView.start();\n },\n pause: function pause() {\n // var playerView = ;\n this.$refs.playerView.pause();\n },\n changeVideoData: function changeVideoData() {\n this.isChange = false;\n },\n changeVideo: function changeVideo(data) {\n var _this2 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this2.currentTime = \"\";\n _this2.firstTime = 0;\n _this2.isSetFirstTime = false;\n _this2.isChange = false;\n _context2.next = 6;\n return _this2.init(data, true);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n screenChange: function screenChange(data) {\n __f__(\"log\", \"status at line 这是当前的状态158:\", data.status, data.primary, \" at pages/component/commonComponents/video/ios.nvue:117\");\n this.isFullScreen = !data.status;\n this.$emit(\"changeScreen\", this.isFullScreen);\n // let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏\n // if (!fullScreen) {\n // //退出全屏\n // this.isFullScreen = false;\n // } else {\n // this.isFullScreen = true;\n // }\n },\n // 控制器的显示隐藏\n controlChange: function controlChange(e) {\n this.isControl = e.detail.show;\n },\n quitScreen: function quitScreen() {\n // 退出全屏\n var ctx = this.$refs.myVideo;\n ctx.exitFullScreen();\n },\n // 播放进度改变\n videoTimeUpdateEvent: function videoTimeUpdateEvent(e) {\n this.playTime = parseInt(e.detail.currentTime);\n this.currentTime = parseInt(e.detail.currentTime);\n this.allTime = parseInt(e.detail.duration);\n this.recordTime({\n time: this.playTime\n });\n }\n }, (0, _defineProperty2.default)(_methods, \"handlePostMessage\", function handlePostMessage(res) {\n var _this3 = this;\n this.$nextTick(function () {\n _this3.$refs.webview.handleMessage();\n });\n }), (0, _defineProperty2.default)(_methods, \"getMessage\", function getMessage(e) {\n uni.showModal({\n content: JSON.stringify(e.detail),\n showCancel: false\n });\n }), (0, _defineProperty2.default)(_methods, \"initWebView\", function initWebView() {\n var wv = plus.webview.create(\"/static/html/aliplayer.html?\",\n //date保证不走缓存\n \"batch_view\", {\n // top: \"0\",\n // left: \"0\",\n height: \"200px\",\n width: \"100%\"\n }, {\n data: {\n videoData: this.videoData,\n data: this.videoData.type,\n firstTime: this.firstTime\n }\n }); //不用data键值对的方式传的话,h5接收后会是多个字段,而非一个对象\n var currentWebview = this.$mp.page.$getAppWebview();\n currentWebview.append(wv); //重要,否则会失效\n }), (0, _defineProperty2.default)(_methods, \"init\", function init(data, isChange) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this4.platform = _this4.$platform;\n _this4.isfresh = true;\n __f__(\"log\", \"at line 59:\", \"是否先走init这里\", _this4.platform, \" at pages/component/commonComponents/video/ios.nvue:188\");\n if (uni.getStorageSync(\"videoOssList\")) {\n _this4.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n _this4.options = data.currentVideo;\n _this4.videoId = _this4.options.video;\n __f__(\"log\", \"这是苹果视屏id\", _this4.videoId, \" at pages/component/commonComponents/video/ios.nvue:195\");\n _context3.next = 9;\n return _this4.getLive(isChange);\n case 9:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n }), (0, _defineProperty2.default)(_methods, \"getData\", function getData(data, isChange) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n var that, netWork, list, index;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n that = _this5;\n if (!_this5.isSetFirstTime) {\n netWork = data.userCourseVideoPositionEntity ? data.userCourseVideoPositionEntity.position : 0;\n list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n index = list.findIndex(function (e) {\n return e.id == data.id;\n });\n if (netWork) {\n if (index >= 0) {\n _this5.firstTime = list[index].time > netWork ? list[index].time : netWork;\n } else {\n _this5.firstTime = netWork ? netWork : 0;\n }\n } else {\n if (index >= 0) {\n _this5.firstTime = list[index].time ? list[index].time : 0;\n } else {\n _this5.firstTime = 0;\n }\n }\n } else {\n _this5.firstTime = 0;\n }\n _this5.videoData = _objectSpread({}, data);\n _this5.isChange = isChange ? isChange : false;\n // this.currentTime = this.firstTime;\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长222\", \" at pages/component/commonComponents/video/ios.nvue:235\");\n // await this.setVideoTime();\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n\n // if (this.currentVideo.type == 0 || this.currentVideo.type == 2) {\n // await this.playVideo();\n // }\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长\", \" at pages/component/commonComponents/video/ios.nvue:242\");\n }\n _this5.isSetFirstTime = true;\n _context4.next = 5;\n return _this5.initWebView();\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n }), (0, _defineProperty2.default)(_methods, \"playVideo\", function playVideo(e) {\n var _this6 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _this6.videoContext = uni.createVideoContext(\"videoId\", _this6);\n _this6.videoContext.seek(_this6.firstTime);\n\n // this.videoContext.requestFullScreen();\n case 2:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n }), (0, _defineProperty2.default)(_methods, \"recordTime\", function recordTime(data) {\n var _this7 = this;\n this.currentTime = data.time;\n var list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n var index = list.findIndex(function (e) {\n return e.id == _this7.videoData.id;\n });\n if (list.length > 0 && index >= 0) {\n list[index] = _objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n });\n } else {\n list.push(_objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n }));\n }\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n }), (0, _defineProperty2.default)(_methods, \"getLive\", function getLive(isChange) {\n var _this8 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n var that, data;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n that = _this8;\n _this8.isfresh = false;\n data = _objectSpread({}, _this8.options);\n _context7.next = 5;\n return _requestConfig.default.request({\n url: \"sociology/course/checkVideo\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(res) {\n var data, playAuth;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n data = _objectSpread({}, res.video);\n if (!(_this8.currentVideo.type == 1)) {\n _context6.next = 10;\n break;\n }\n playAuth = res.video.playAuth.replace(/=/g, \"\");\n __f__(\"log\", \"这是接口获取的视屏凭证111\", playAuth, \" at pages/component/commonComponents/video/ios.nvue:303\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n videoId: res.video.video,\n playAuth: playAuth\n });\n _this8.playAuth = playAuth;\n _context6.next = 8;\n return that.getData(data, isChange);\n case 8:\n _context6.next = 14;\n break;\n case 10:\n __f__(\"log\", \"这是接口获取的视屏凭证222\", res.video, data, \" at pages/component/commonComponents/video/ios.nvue:313\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n playAuth: new Date().getTime()\n });\n _context6.next = 14;\n return that.getData(data, isChange);\n case 14:\n __f__(\"log\", \"是否获取到初始播放值\", data, \" at pages/component/commonComponents/video/ios.nvue:320\");\n that.$forceUpdate();\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n }), (0, _defineProperty2.default)(_methods, \"handleEnd\", function handleEnd() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var list, data;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n list = JSON.parse(JSON.stringify(uni.getStorageSync(\"videoOssList\")));\n data = list.find(function (e) {\n return e.id == _this9.videoData.id;\n });\n _this9.currentTime = data.time;\n __f__(\"log\", \"this.currentTime at line 这是结束的时候掉的存储视频:\", _this9.currentTime, \" at pages/component/commonComponents/video/ios.nvue:329\");\n clearInterval(_this9.$store.state.videoTimer);\n _this9.timer = null;\n _context8.next = 8;\n return _this9.setVideoTime();\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n }), (0, _defineProperty2.default)(_methods, \"setVideoTime\", function setVideoTime(time) {\n var _this10 = this;\n var data = {};\n // var list = uni.getStorageSync(\"videoOssList\");\n\n // data = list.find((e) => e.id == this.videoData.id);\n // console.log(\"这是再走生命周期哦\", this.currentTime);\n __f__(\"log\", \"是否走了存储视屏,\" + this.videoData.id, this.currentTime, \" at pages/component/commonComponents/video/ios.nvue:344\");\n var data = {\n videoId: this.videoData.id,\n position: this.currentTime //秒数\n };\n\n _requestConfig.default.request({\n url: \"sociology/course/saveCoursePosition\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then(function (res) {\n __f__(\"log\", \"存储视屏时长接口返回信息\", res, \" at pages/component/commonComponents/video/ios.nvue:361\");\n _this10.$forceUpdate();\n });\n }), (0, _defineProperty2.default)(_methods, \"changePlayerTime\", function changePlayerTime(player) {\n __f__(\"log\", \"this.firstTime at line 106:\", this.firstTime, \" at pages/component/commonComponents/video/ios.nvue:366\");\n player.seek(this.firstTime);\n }), (0, _defineProperty2.default)(_methods, \"goBack\", function goBack() {\n uni.navigateBack({\n delta: 1\n });\n }), (0, _defineProperty2.default)(_methods, \"setVideoFirtsetTime\", function setVideoFirtsetTime(time) {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _this11.currentTime = _this11.firstTime;\n __f__(\"log\", \"这里准备开始设置播放时间:\", _this11.currentTime, \" at pages/component/commonComponents/video/ios.nvue:377\");\n // await this.setVideoTime();\n // setTimeout(() => {\n // clearInterval(this.$store.state.videoTimer);\n\n _index.default.commit(\"setVideoTimer\", setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return _this11.setVideoTime();\n case 2:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n })), 60000));\n // }, 5000);\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n }), _methods),\n created: function created() {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW9zLm52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJkYXRhIiwid3YiLCJ3ZWJWIiwic2VuZERhdGEiLCJwbGF0Zm9ybSIsImlzRnVsbFNjcmVlbiIsImlzZnJlc2giLCJpc0NoYW5nZSIsImlzQ29udHJvbCIsInRpbWVyIiwidmlkZW9UaXRsZSIsInZpZGVvTGlzdCIsImZpcnN0VGltZSIsIm9wdGlvbnMiLCJwbGF5QXV0aCIsImN1cnJlbnRUaW1lIiwidmlkZW9JZCIsInZpZGVvRGF0YSIsImlzU2V0Rmlyc3RUaW1lIiwic2NyZWVuVHlwZSIsInZpZGVvVXJsIiwiY29tcHV0ZWQiLCJ3YXRjaCIsImN1cnJlbnRWaWRlbyIsImltbWVkaWF0ZSIsImhhbmRsZXIiLCJtb3VudGVkIiwiYmVmb3JlRGVzdHJveSIsImNsZWFySW50ZXJ2YWwiLCJwbHVzIiwib25VbmxvYWQiLCJ1bmkiLCJ1cmwiLCJvbkxvYWQiLCJtZXRob2RzIiwiaGFuZGxlTWVzc2FnZSIsImhhbmRsZVBvc3RNZXNzYWdlIiwiZXZhbEpzIiwic3RhcnQiLCJwYXVzZSIsImNoYW5nZVZpZGVvRGF0YSIsImNoYW5nZVZpZGVvIiwic2NyZWVuQ2hhbmdlIiwiY29udHJvbENoYW5nZSIsInF1aXRTY3JlZW4iLCJjdHgiLCJ2aWRlb1RpbWVVcGRhdGVFdmVudCIsInRpbWUiLCJyZXMiLCJlIiwiY29udGVudCIsInNob3dDYW5jZWwiLCJoZWlnaHQiLCJ3aWR0aCIsImN1cnJlbnRXZWJ2aWV3IiwidGhhdCIsIm5ldFdvcmsiLCJsaXN0IiwiaW5kZXgiLCIkaHR0cCIsInJlcXVlc3QiLCJtZXRob2QiLCJoZWFkZXIiLCJ0aGVuIiwicG9zaXRpb24iLCJwbGF5ZXIiLCJkZWx0YSIsInN0b3JlIiwic2V0SW50ZXJ2YWwiLCJjcmVhdGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQSxlQUNBO0VBQ0FBO0VBQ0FDO0lBQ0E7TUFDQUM7TUFBQTtNQUNBQztNQUFBO01BQ0FDO01BQUE7TUFDQUM7TUFDQTtNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztNQUNBQztJQUNBO0VBQ0E7RUFDQUMsNEJBQ0Esc0NBQ0E7RUFFQUM7SUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtJQUNBaEI7TUFDQTtJQUNBO0VBQ0E7RUFFQTtFQUNBaUI7RUFDQUM7SUFDQTtJQUNBO0lBQ0FDO0lBQ0E7SUFDQTtJQUNBQztJQUVBO0VBQ0E7RUFDQUM7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQUM7Z0JBQ0FDO2NBQ0E7Y0FFQUg7O2NBRUE7Y0FBQTtjQUFBLE9BR0E7WUFBQTtZQUFBO2NBQUE7VUFBQTtRQUFBO01BQUE7SUFBQTtFQUVBO0VBRUE7RUFDQUk7RUFFQUM7SUFDQUM7TUFDQTtNQUNBLGFBQ0E7SUFFQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQUE7Z0JBQUEsT0FDQTtjQUFBO2NBQUE7Z0JBQUE7WUFBQTtVQUFBO1FBQUE7TUFBQTtJQUNBO0lBQ0FDO01BQ0EsYUFDQSw4QkFDQTFDLGFBQ0FBO01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFDQTtJQUNBMkM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7TUFDQTtNQUNBQztJQUNBO0lBQ0E7SUFDQUM7TUFDQTtNQUNBO01BRUE7TUFFQTtRQUNBQztNQUNBO0lBQ0E7RUFBQSwyRkFDQUM7SUFBQTtJQUNB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QUVBbkI7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBOztjQUVBb0Isc0JBQ0EsaUJBQ0FDO2dCQUFBO2tCQUFBO29CQUFBO3NCQUFBO3dCQUFBO3dCQUFBLE9BRUE7c0JBQUE7c0JBQUE7d0JBQUE7b0JBQUE7a0JBQUE7Z0JBQUE7Y0FBQSxDQUVBLFdBQ0E7Y0FDQTtZQUFBO1lBQUE7Y0FBQTtVQUFBO1FBQUE7TUFBQTtJQUFBO0VBQ0EsYUFDQTtFQUVBQztBQUNBO0FBQUEsMkIiLCJmaWxlIjoiMTA1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cclxuICA8dmlldyBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgcG9zaXRpb246IHJlbGF0aXZlXCI+XHJcbiAgICA8IS0tIDx3ZWItdmlldyBzdHlsZT1cImhlaWdodDogMjAwcHhcIiBzcmM9XCJodHRwczovL3d3dy50bXJqb3VybmFscy5jb20vYWxpcGxheWVyLmh0bWxcIj48L3dlYi12aWV3PiAtLT5cclxuICAgIDx3ZWItdmlldyB2LWlmPVwiaXNTZXRGaXJzdFRpbWVcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7XCIgc3JjPVwiLi4vLi4vLi4vLi4vc3RhdGljL2h0bWwvYWxpcGxheWVyLmh0bWxcIj48L3dlYi12aWV3PlxyXG4gIDwvdmlldz5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHN0b3JlIGZyb20gXCJAL3N0b3JlL2luZGV4LmpzXCI7XHJcbmltcG9ydCAkaHR0cCBmcm9tIFwiQC9jb25maWcvcmVxdWVzdENvbmZpZy5qc1wiO1xyXG5pbXBvcnQgeyBtYXBTdGF0ZSwgbWFwTXV0YXRpb25zIH0gZnJvbSBcInZ1ZXhcIjtcclxuXHJcbi8vIGltcG9ydFNjcmlwdHMoJ0Avc3RhdGljL2FsaXBsYXllci9hbGlwbGF5ZXItbWluLmpzJylcclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHByb3BzOiBbXCJjdXJyZW50VmlkZW9cIiwgXCJjdXJyZW50VmlkZW9MaXN0XCJdLFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3djogbnVsbCwgLy8g5a6a5LmJKGFwcCl3ZWJ2aWV35a+56LGh6IqC54K5XHJcbiAgICAgIHdlYlY6IHt9LCAvLyDlrprkuYkoSDUpd2Vidmlld+WvueixoeiKgueCuVxyXG4gICAgICBzZW5kRGF0YTogW10sIC8vIOWPkemAgeaVsOaNruaVsOe7hFxyXG4gICAgICBwbGF0Zm9ybTogbnVsbCxcclxuICAgICAgLy/lvZPliY3mmK/lkKbmmK/lhajlsY/mqKHlvI9cclxuICAgICAgaXNGdWxsU2NyZWVuOiBmYWxzZSxcclxuICAgICAgaXNmcmVzaDogZmFsc2UsXHJcbiAgICAgIGlzQ2hhbmdlOiBmYWxzZSxcclxuICAgICAgaXNDb250cm9sOiB0cnVlLFxyXG4gICAgICB0aW1lcjogbnVsbCxcclxuICAgICAgdmlkZW9UaXRsZTogXCJcIixcclxuICAgICAgdmlkZW9MaXN0OiBbXSxcclxuICAgICAgZmlyc3RUaW1lOiAwLFxyXG4gICAgICBvcHRpb25zOiB7fSxcclxuICAgICAgcGxheUF1dGg6IFwiXCIsXHJcbiAgICAgIGN1cnJlbnRUaW1lOiBcIlwiLFxyXG4gICAgICB2aWRlb0lkOiBcIlwiLFxyXG4gICAgICB2aWRlb0RhdGE6IHt9LFxyXG4gICAgICBpc1NldEZpcnN0VGltZTogZmFsc2UsXHJcbiAgICAgIHNjcmVlblR5cGU6IG51bGwsXHJcbiAgICAgIHZpZGVvVXJsOiBudWxsLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAuLi5tYXBTdGF0ZShbXCJ2aWRlb09zc0xpc3RcIl0pLFxyXG4gIH0sXHJcblxyXG4gIHdhdGNoOiB7XHJcbiAgICBjdXJyZW50VmlkZW86IHtcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlLFxyXG4gICAgICBoYW5kbGVyKG5ld1JvdXRlKSB7fSxcclxuICAgIH0sXHJcbiAgICB0aW1lcihuZXdWYWx1ZSkge1xyXG4gICAgICB0aGlzLiRlbWl0KFwiY2hpbGQtZXZlbnRcIiwgbmV3VmFsdWUpO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICAvLyAvL+mhtemdouaYvuekulxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBiZWZvcmVEZXN0cm95KCkge1xyXG4gICAgdGhpcy5oYW5kbGVFbmQoKTtcclxuICAgIGNvbnNvbGUubG9nKFwi5piv5ZCm6LWw5ZWm5Lmg6ZSA5q+BXCIpO1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLiRzdG9yZS5zdGF0ZS52aWRlb1RpbWVyKTtcclxuICAgIC8vIHRoaXMudGltZXIgPSBudWxsO1xyXG4gICAgLy8gc3RvcmUuY29tbWl0KFwic2V0TG9hZGluZ1Nob3dcIiwgbnVsbCk7XHJcbiAgICBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwi5piv5ZCm6LWw5ZWm5Lmg6ZSA5q+B5a6a5pe25ZmoXCIsIHRoaXMudGltZXIpO1xyXG4gIH0sXHJcbiAgYXN5bmMgb25VbmxvYWQoKSB7XHJcbiAgICB1bmkubmF2aWdhdGVUbyh7XHJcbiAgICAgIHVybDogXCIvcGFnZXMvY3VycmljdWx1bS9vcmRlci9jdXJyaWN1bHVtL2JhY2tcIixcclxuICAgIH0pO1xyXG4gICAgLy8gI2lmZGVmIEFQUC1QTFVTXHJcbiAgICBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpOyAvL+mUgeatu+Wxj+W5leaWueWQkeS4uuerluWxj1xyXG5cclxuICAgIC8vIHBsdXMuc2NyZWVuLmxvY2tPcmllbnRhdGlvbihcInBvcnRyYWl0LXByaW1hcnlcIik7XHJcbiAgICAvLyAjZW5kaWZcclxuXHJcbiAgICBhd2FpdCB0aGlzLnNldFZpZGVvVGltZSgpO1xyXG4gICAgLy8gdGhpcy5wbGF5ZXIuZGlzcG9zZSgpO1xyXG4gIH0sXHJcblxyXG4gIC8v56ys5LiA5qyh5Yqg6L29XHJcbiAgb25Mb2FkKG9wdGlvbnMpIHt9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICBoYW5kbGVNZXNzYWdlKGV2dCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhldnQpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcIuaOpeaUtkh0bWzlj5HpgIHov4fmnaXnmoTmtojmga/vvJpcIiArIEpTT04uc3RyaW5naWZ5KGV2dC5kZXRhaWwuZGF0YVswXSlcclxuICAgICAgKTtcclxuICAgIH0sXHJcbiAgICAvLyB3ZWJ2aWV35ZCR5aSW6YOo5Y+R6YCB5raI5oGvXHJcbiAgICBoYW5kbGVQb3N0TWVzc2FnZTogZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgY29uc29sZS5sb2coXCLmjqXmlLbliLDmtojmga/vvJpcIiArIEpTT04uc3RyaW5naWZ5KGRhdGEuZGV0YWlsKSk7XHJcbiAgICB9LFxyXG4gICAgLy8g6LCD55SoIHdlYnZpZXcg5YaF6YOo6YC76L6RXHJcbiAgICBldmFsSnMoKSB7XHJcbiAgICAgIHRoaXMuJHJlZnMud2Vidmlldy5ldmFsSnMoXCJkb2N1bWVudC5ib2R5LnN0eWxlLmJhY2tncm91bmQgPScjMDBGRjAwJ1wiKTtcclxuICAgIH0sXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgLy8gdmFyIHBsYXllclZpZXcgPSB0aGlzLiRyZWZzLnBsYXllclZpZXc7XHJcbiAgICAgIHRoaXMuJHJlZnMucGxheWVyVmlldy5zdGFydCgpO1xyXG4gICAgfSxcclxuICAgIHBhdXNlKCkge1xyXG4gICAgICAvLyB2YXIgcGxheWVyVmlldyA9IDtcclxuICAgICAgdGhpcy4kcmVmcy5wbGF5ZXJWaWV3LnBhdXNlKCk7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlVmlkZW9EYXRhKCkge1xyXG4gICAgICB0aGlzLmlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgY2hhbmdlVmlkZW8oZGF0YSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gXCJcIjtcclxuICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICB0aGlzLmlzU2V0Rmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0KGRhdGEsIHRydWUpO1xyXG4gICAgfSxcclxuICAgIHNjcmVlbkNoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwic3RhdHVzIGF0IGxpbmUg6L+Z5piv5b2T5YmN55qE54q25oCBMTU4OlwiLFxyXG4gICAgICAgIGRhdGEuc3RhdHVzLFxyXG4gICAgICAgIGRhdGEucHJpbWFyeVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmlzRnVsbFNjcmVlbiA9ICFkYXRhLnN0YXR1cztcclxuICAgICAgdGhpcy4kZW1pdChcImNoYW5nZVNjcmVlblwiLCB0aGlzLmlzRnVsbFNjcmVlbik7XHJcbiAgICAgIC8vIGxldCBmdWxsU2NyZWVuID0gZS5kZXRhaWwuZnVsbFNjcmVlbjsgLy8g5YC8dHJ1ZeS4uui/m+WFpeWFqOWxj++8jGZhbHNl5Li66YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vIGlmICghZnVsbFNjcmVlbikge1xyXG4gICAgICAvLyAgIC8v6YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vICAgdGhpcy5pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcclxuICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgLy8gICB0aGlzLmlzRnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjqfliLblmajnmoTmmL7npLrpmpDol49cclxuICAgIGNvbnRyb2xDaGFuZ2UoZSkge1xyXG4gICAgICB0aGlzLmlzQ29udHJvbCA9IGUuZGV0YWlsLnNob3c7XHJcbiAgICB9LFxyXG4gICAgcXVpdFNjcmVlbigpIHtcclxuICAgICAgLy8g6YCA5Ye65YWo5bGPXHJcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuJHJlZnMubXlWaWRlbztcclxuICAgICAgY3R4LmV4aXRGdWxsU2NyZWVuKCk7XHJcbiAgICB9LFxyXG4gICAgLy8g5pKt5pS+6L+b5bqm5pS55Y+YXHJcbiAgICB2aWRlb1RpbWVVcGRhdGVFdmVudChlKSB7XHJcbiAgICAgIHRoaXMucGxheVRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcblxyXG4gICAgICB0aGlzLmFsbFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5kdXJhdGlvbik7XHJcblxyXG4gICAgICB0aGlzLnJlY29yZFRpbWUoe1xyXG4gICAgICAgIHRpbWU6IHRoaXMucGxheVRpbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVBvc3RNZXNzYWdlKHJlcykge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdGhpcy4kcmVmcy53ZWJ2aWV3LmhhbmRsZU1lc3NhZ2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgZ2V0TWVzc2FnZShlKSB7XHJcbiAgICAgIHVuaS5zaG93TW9kYWwoe1xyXG4gICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KGUuZGV0YWlsKSxcclxuICAgICAgICBzaG93Q2FuY2VsOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgaW5pdFdlYlZpZXcoKSB7XHJcbiAgICAgIGxldCB3diA9IHBsdXMud2Vidmlldy5jcmVhdGUoXHJcbiAgICAgICAgXCIvc3RhdGljL2h0bWwvYWxpcGxheWVyLmh0bWw/XCIsIC8vZGF0ZeS/neivgeS4jei1sOe8k+WtmFxyXG4gICAgICAgIFwiYmF0Y2hfdmlld1wiLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIC8vIHRvcDogXCIwXCIsXHJcbiAgICAgICAgICAvLyBsZWZ0OiBcIjBcIixcclxuICAgICAgICAgIGhlaWdodDogXCIyMDBweFwiLFxyXG4gICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICB2aWRlb0RhdGE6dGhpcy52aWRlb0RhdGEsXHJcbiAgICAgICAgICAgIGRhdGE6dGhpcy52aWRlb0RhdGEudHlwZSxcclxuICAgICAgICAgICAgZmlyc3RUaW1lOnRoaXMuZmlyc3RUaW1lLFxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9XHJcbiAgICAgICk7IC8v5LiN55SoZGF0YemUruWAvOWvueeahOaWueW8j+S8oOeahOivne+8jGg15o6l5pS25ZCO5Lya5piv5aSa5Liq5a2X5q6177yM6ICM6Z2e5LiA5Liq5a+56LGhXHJcbiAgICAgIGxldCBjdXJyZW50V2VidmlldyA9IHRoaXMuJG1wLnBhZ2UuJGdldEFwcFdlYnZpZXcoKTtcclxuICAgICAgY3VycmVudFdlYnZpZXcuYXBwZW5kKHd2KTsgLy/ph43opoHvvIzlkKbliJnkvJrlpLHmlYhcclxuICAgIH0sXHJcbiAgICBhc3luYyBpbml0KGRhdGEsIGlzQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMucGxhdGZvcm0gPSB0aGlzLiRwbGF0Zm9ybTtcclxuICAgICAgdGhpcy5pc2ZyZXNoID0gdHJ1ZTtcclxuICAgICAgY29uc29sZS5sb2coXCJhdCBsaW5lIDU5OlwiLCBcIuaYr+WQpuWFiOi1sGluaXTov5nph4xcIiwgdGhpcy5wbGF0Zm9ybSk7XHJcbiAgICAgIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuICAgICAgICB0aGlzLnZpZGVvTGlzdCA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBkYXRhLmN1cnJlbnRWaWRlbztcclxuXHJcbiAgICAgIHRoaXMudmlkZW9JZCA9IHRoaXMub3B0aW9ucy52aWRlbztcclxuICAgICAgY29uc29sZS5sb2coXCLov5nmmK/oi7nmnpzop4blsY9pZFwiLCB0aGlzLnZpZGVvSWQpO1xyXG4gICAgICBhd2FpdCB0aGlzLmdldExpdmUoaXNDaGFuZ2UpO1xyXG4gICAgICAvLyBhd2FpdCB0aGlzLmdldFZpZGVvKGlzQ2hhbmdlKTtcclxuICAgICAgLy8gICB0aGlzLiRlbWl0KFwiY2hpbGQtZXZlbnRcIiwgdGhpcy50aW1lcik7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIGdldERhdGEoZGF0YSwgaXNDaGFuZ2UpIHtcclxuICAgICAgdmFyIHRoYXQgPSB0aGlzO1xyXG4gICAgICBpZiAoIXRoaXMuaXNTZXRGaXJzdFRpbWUpIHtcclxuICAgICAgICB2YXIgbmV0V29yayA9IGRhdGEudXNlckNvdXJzZVZpZGVvUG9zaXRpb25FbnRpdHlcclxuICAgICAgICAgID8gZGF0YS51c2VyQ291cnNlVmlkZW9Qb3NpdGlvbkVudGl0eS5wb3NpdGlvblxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICAgIHZhciBsaXN0ID0gW107XHJcbiAgICAgICAgaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG4gICAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKTtcclxuICAgICAgICAgIHZhciBpbmRleCA9IGxpc3QuZmluZEluZGV4KChlKSA9PiBlLmlkID09IGRhdGEuaWQpO1xyXG5cclxuICAgICAgICAgIGlmIChuZXRXb3JrKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPVxyXG4gICAgICAgICAgICAgICAgbGlzdFtpbmRleF0udGltZSA+IG5ldFdvcmsgPyBsaXN0W2luZGV4XS50aW1lIDogbmV0V29yaztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpcnN0VGltZSA9IG5ldFdvcmsgPyBuZXRXb3JrIDogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpcnN0VGltZSA9IGxpc3RbaW5kZXhdLnRpbWUgPyBsaXN0W2luZGV4XS50aW1lIDogMDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpcnN0VGltZSA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52aWRlb0RhdGEgPSB7XHJcbiAgICAgICAgICAuLi5kYXRhLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5pc0NoYW5nZSA9IGlzQ2hhbmdlID8gaXNDaGFuZ2UgOiBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5maXJzdFRpbWU7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5maXJzdFRpbWUsIFwi6L+Z5piv56ys5LiA5qyh5pKt5pS+5pe26ZW/MjIyXCIpO1xyXG4gICAgICAgIC8vIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcclxuXHJcbiAgICAgICAgLy8gaWYgKHRoaXMuY3VycmVudFZpZGVvLnR5cGUgPT0gMCB8fCB0aGlzLmN1cnJlbnRWaWRlby50eXBlID09IDIpIHtcclxuICAgICAgICAvLyAgIGF3YWl0IHRoaXMucGxheVZpZGVvKCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlyc3RUaW1lLCBcIui/meaYr+esrOS4gOasoeaSreaUvuaXtumVv1wiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pc1NldEZpcnN0VGltZSA9IHRydWU7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmluaXRXZWJWaWV3KCk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgcGxheVZpZGVvKGUpIHtcclxuICAgICAgdGhpcy52aWRlb0NvbnRleHQgPSB1bmkuY3JlYXRlVmlkZW9Db250ZXh0KFwidmlkZW9JZFwiLCB0aGlzKTtcclxuICAgICAgdGhpcy52aWRlb0NvbnRleHQuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcblxyXG4gICAgICAvLyAgIHRoaXMudmlkZW9Db250ZXh0LnJlcXVlc3RGdWxsU2NyZWVuKCk7XHJcbiAgICB9LFxyXG4gICAgcmVjb3JkVGltZShkYXRhKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBkYXRhLnRpbWU7XHJcblxyXG4gICAgICB2YXIgbGlzdCA9IFtdO1xyXG4gICAgICBpZiAodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKSB7XHJcbiAgICAgICAgbGlzdCA9IEpTT04ucGFyc2UodW5pLmdldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIGluZGV4ID0gbGlzdC5maW5kSW5kZXgoKGUpID0+IGUuaWQgPT0gdGhpcy52aWRlb0RhdGEuaWQpO1xyXG4gICAgICBpZiAobGlzdC5sZW5ndGggPiAwICYmIGluZGV4ID49IDApIHtcclxuICAgICAgICBsaXN0W2luZGV4XSA9IHtcclxuICAgICAgICAgIC4uLnRoaXMudmlkZW9EYXRhLFxyXG5cclxuICAgICAgICAgIHRpbWU6IGRhdGEudGltZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxpc3QucHVzaCh7XHJcbiAgICAgICAgICAuLi50aGlzLnZpZGVvRGF0YSxcclxuICAgICAgICAgIHRpbWU6IGRhdGEudGltZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdW5pLnNldFN0b3JhZ2VTeW5jKFwidmlkZW9Pc3NMaXN0XCIsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bmlbDmja5cclxuICAgIGFzeW5jIGdldExpdmUoaXNDaGFuZ2UpIHtcclxuICAgICAgdmFyIHRoYXQgPSB0aGlzO1xyXG4gICAgICB0aGlzLmlzZnJlc2ggPSBmYWxzZTtcclxuICAgICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgYXdhaXQgJGh0dHBcclxuICAgICAgICAucmVxdWVzdCh7XHJcbiAgICAgICAgICB1cmw6IGBzb2Npb2xvZ3kvY291cnNlL2NoZWNrVmlkZW9gLFxyXG4gICAgICAgICAgbWV0aG9kOiBcIlBvc3RcIiwgLy8gUE9TVOOAgUdFVOOAgVBVVOOAgURFTEVURe+8jOWFt+S9k+ivtOaYjuafpeeci+WumOaWueaWh+aho1xyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGhlYWRlcjoge1xyXG4gICAgICAgICAgICAvL+m7mOiupCDml6Ag6K+05piO77ya6K+35rGC5aS0XHJcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgICAgIHZhciBkYXRhID0ge1xyXG4gICAgICAgICAgICAuLi5yZXMudmlkZW8sXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFZpZGVvLnR5cGUgPT0gMSkge1xyXG4gICAgICAgICAgICB2YXIgcGxheUF1dGggPSByZXMudmlkZW8ucGxheUF1dGgucmVwbGFjZSgvPS9nLCBcIlwiKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLov5nmmK/mjqXlj6Pojrflj5bnmoTop4blsY/lh63or4ExMTFcIiwgcGxheUF1dGgpO1xyXG4gICAgICAgICAgICBkYXRhID0ge1xyXG4gICAgICAgICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgICAgICAgdmlkZW9JZDogcmVzLnZpZGVvLnZpZGVvLFxyXG4gICAgICAgICAgICAgIHBsYXlBdXRoOiBwbGF5QXV0aCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5wbGF5QXV0aCA9IHBsYXlBdXRoO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhhdC5nZXREYXRhKGRhdGEsIGlzQ2hhbmdlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6L+Z5piv5o6l5Y+j6I635Y+W55qE6KeG5bGP5Yet6K+BMjIyXCIsIHJlcy52aWRlbywgZGF0YSk7XHJcbiAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgICBwbGF5QXV0aDogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGF3YWl0IHRoYXQuZ2V0RGF0YShkYXRhLCBpc0NoYW5nZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIuaYr+WQpuiOt+WPluWIsOWIneWni+aSreaUvuWAvFwiLCBkYXRhKTtcclxuXHJcbiAgICAgICAgICB0aGF0LiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGhhbmRsZUVuZCgpIHtcclxuICAgICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkpO1xyXG4gICAgICB2YXIgZGF0YSA9IGxpc3QuZmluZCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBkYXRhLnRpbWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwidGhpcy5jdXJyZW50VGltZSBhdCBsaW5lIOi/meaYr+e7k+adn+eahOaXtuWAmeaOieeahOWtmOWCqOinhumikTpcIixcclxuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuICAgIH0sXHJcbiAgICBzZXRWaWRlb1RpbWUodGltZSkge1xyXG4gICAgICB2YXIgZGF0YSA9IHt9O1xyXG4gICAgICAvLyB2YXIgbGlzdCA9IHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKTtcclxuXHJcbiAgICAgIC8vIGRhdGEgPSBsaXN0LmZpbmQoKGUpID0+IGUuaWQgPT0gdGhpcy52aWRlb0RhdGEuaWQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIui/meaYr+WGjei1sOeUn+WRveWRqOacn+WTplwiLCB0aGlzLmN1cnJlbnRUaW1lKTtcclxuICAgICAgY29uc29sZS5sb2coXCLmmK/lkKbotbDkuoblrZjlgqjop4blsY8sXCIgKyB0aGlzLnZpZGVvRGF0YS5pZCwgdGhpcy5jdXJyZW50VGltZSk7XHJcbiAgICAgIHZhciBkYXRhID0ge1xyXG4gICAgICAgIHZpZGVvSWQ6IHRoaXMudmlkZW9EYXRhLmlkLFxyXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLmN1cnJlbnRUaW1lLCAvL+enkuaVsFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgJGh0dHBcclxuICAgICAgICAucmVxdWVzdCh7XHJcbiAgICAgICAgICB1cmw6IGBzb2Npb2xvZ3kvY291cnNlL3NhdmVDb3Vyc2VQb3NpdGlvbmAsXHJcbiAgICAgICAgICBtZXRob2Q6IFwiUG9zdFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgaGVhZGVyOiB7XHJcbiAgICAgICAgICAgIC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjop4blsY/ml7bplb/mjqXlj6Pov5Tlm57kv6Hmga9cIiwgcmVzKTtcclxuICAgICAgICAgIHRoaXMuJGZvcmNlVXBkYXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlUGxheWVyVGltZShwbGF5ZXIpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzLmZpcnN0VGltZSBhdCBsaW5lIDEwNjpcIiwgdGhpcy5maXJzdFRpbWUpO1xyXG4gICAgICBwbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcbiAgICB9LFxyXG4gICAgZ29CYWNrKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVCYWNrKHtcclxuICAgICAgICBkZWx0YTogMSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHNldFZpZGVvRmlydHNldFRpbWUodGltZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5maXJzdFRpbWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi6L+Z6YeM5YeG5aSH5byA5aeL6K6+572u5pKt5pS+5pe26Ze0OlwiLCB0aGlzLmN1cnJlbnRUaW1lKTtcclxuICAgICAgLy8gYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcblxyXG4gICAgICBzdG9yZS5jb21taXQoXHJcbiAgICAgICAgXCJzZXRWaWRlb1RpbWVyXCIsXHJcbiAgICAgICAgc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuY3VycmVudFRpbWUpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSwgNjAwMDApXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIH0sIDUwMDApO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICBjcmVhdGVkKCkge30sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHNjcmlwdCBtb2R1bGU9XCJyZW5kZXJTY3JpcHRcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuXHRpbXBvcnQgJCBmcm9tICdqcXVlcnknXHJcblx0Ly8gIGltcG9ydCBTdGF0aWNBRENvbXBvbmVudCBmcm9tICcuL3N0YXRpY2FkY29tcG9uZW50L2luZGV4LmpzJztcclxuXHQvKipcclxuXHQgKiDpnZnmgIHlub/lkYrnu4Tku7ZcclxuXHQgKi9cclxuXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog6Z2Z5oCB5bm/5ZGK57uE5Lu2XHJcblx0XHQgKi9cclxuXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdC8vIE15Q29tcG9uZW50XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0Ly8g5Zyo6YCC5ZCI55qE55Sf5ZG95ZGo5pyf77yM6YCa6L+Hc2NyaXB05ZKMbGlua+agh+etvuW8leWFpeaSreaUvuWZqHNka+OAgWNzc1xyXG5cdFx0XHRjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMsICfov5nmmK9tb250ZWQnKVxyXG5cdFx0XHQvLyB0aGlzLmxvYWRXZWJQbGF5ZXJTREsoKVxyXG5cdFx0XHQvLyB0aGlzLmxvYWRDb21wb25lbnQoKVxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0cGxheWVyOiBudWxsLFxyXG5cdFx0XHRcdHZpZGVvVGltZXI6IG51bGwsXHJcblx0XHRcdFx0Y3VyVGltZTogbnVsbCxcclxuXHRcdFx0XHQvLyBmaXJzdFRpbWU6IG51bGwsXHJcblx0XHRcdFx0Y3VyU3RhdHVzOiBudWxsLFxyXG5cdFx0XHRcdC8vIGN1cnJlbnRUaW1lOm51bGwsXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cclxuXHRcdHdhdGNoOiB7XHJcblxyXG5cclxuXHRcdFx0Y3VyVGltZSh2YWwpIHtcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuY3VyVGltZSAhPT0gbnVsbCAmJiB0aGlzLmN1clN0YXR1cyAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0dGhpcy4kcmVmcy52aWRlb0NvbnRlbnQxLmNsaWNrKClcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cclxuXHRcdFx0aGFuZGxlQ2xpY2soZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm5LqG6LWw5LqG54K55Ye7dmlkZW/kuovku7YnLCBldmVudClcclxuXHRcdFx0XHQvLyAgICAgICAgICAgICB0aGlzLnBsYXllci5vbigncmVhZHknLGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0Ly8gICAgdmFyIHN0YXR1cz0gIHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLmdldElzRnVsbFNjcmVlbigpXHJcblx0XHRcdFx0Ly8gICAgY29uc29sZS5sb2coJ3N0YXR1cyBhdCBsaW5lIDQwMzonLCBzdGF0dXMpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+inpuWPkeeCueWHu+S6i+S7ticsc3RhdHVzKSlcclxuXHRcdFx0XHQvLyAgIH0pXHJcblxyXG5cdFx0XHRcdC8vIG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0RGF0YScpXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlbWl0RGF0YShldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHJcblx0XHRcdFx0b3duZXJJbnN0YW5jZS5jYWxsTWV0aG9kKCdyZWNvcmRUaW1lJywge1xyXG5cdFx0XHRcdFx0dGltZTogdGhhdC5jdXJUaW1lLFxyXG5cdFx0XHRcdFx0c3RhdHVzOiB0aGF0LmN1clN0YXR1c1xyXG5cdFx0XHRcdH0pXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGFzeW5jIHJlY2VpdmVGaXJzdFRpbWUobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHQvLyAvLyB0aGlzLmZpcnN0VGltZT1uZXdWYWx1ZTtcclxuXHRcdFx0XHQvLyAvLyBjb25zb2xlLmxvZygn6L+Z5piv5Yid5aeL5pKt5pS+5pe26Ze0MTExJywgdGhpcy5maXJzdFRpbWUsdGhpcy5wbGF5ZXIpXHJcblx0XHRcdFx0Ly8gLy8gIGF3YWl0IHRoaXMucGxheWVyLnNlZWsobmV3VmFsdWUpO1xyXG5cdFx0XHRcdC8vICBhd2FpdCB0aGlzLiRyZWZzLnZpZGVvQ29udGVudDQuY2xpY2soKVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIH1cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyByZWNlaXZlaXNTZXRGaXJzdFRpbWUobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmmK/lkKbliJrlvIDlp4vorr7nva7mkq3mlL7ml7bpl7QnLCBuZXdWYWx1ZSwgdGhpcy5maXJzdFRpbWUsIHRoaXMucGxheWVyKTtcclxuXHRcdFx0XHQvLyBpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHQvLyBcdC8vIHRoaXMuZmlyc3RUaW1lPW5ld1ZhbHVlO1xyXG5cdFx0XHRcdC8vIFx0Ly8gYXdhaXQgdGhpcy5wbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIH1cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0ZW1pdFNldERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSlcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm6K6+572u55qE56ys5LiA5qyh5Yid5aeL5pKt5pS+JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhLmlkKTtcclxuXHJcblxyXG5cdFx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnc2V0VmlkZW9GaXJ0c2V0VGltZScpXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGFuZ2VWaWRlb1NjcmVlbihldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHQvLyB0aGlzLiRlbWl0KCdjaGFuZ2VTY3JlZW5Mb2FkaW5nJyx0cnVlKVxyXG5cdFx0XHRcdHZhciBzdGF0dXMgPSB0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5nZXRJc0Z1bGxTY3JlZW4oKTtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ3NjcmVlbkNoYW5nZScsIHtcclxuXHRcdFx0XHRcdHN0YXR1czogc3RhdHVzLFxyXG5cdFx0XHRcdFx0cHJpbWFyeTogc3RhdHVzID8gJ3BvcnRyYWl0JyA6ICdsYW5kc2NhcGUnXHJcblx0XHRcdFx0fSlcclxuXHJcblxyXG5cdFx0XHRcdGlmIChzdGF0dXMpIHtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpOyAvL+mUgeatu+Wxj+W5leaWueWQkeS4uuerluWxj1xyXG5cdFx0XHRcdFx0XHR0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5jYW5jZWxGdWxsU2NyZWVuKCk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGVtaXQoJ2NoYW5nZVNjcmVlbkxvYWRpbmcnLGZhbHNlKTtcclxuXHJcblxyXG5cdFx0XHRcdFx0fSwgMTAwKTtcclxuXHJcblxyXG5cdFx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2V0UGxheWVyU2l6ZSgnMTAwJScsJzIwMHB4Jyk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gICAgICAgICAgICAgICB0aGlzLnBsYXllci5zZXRQbGF5ZXJTaXplKHtcclxuXHRcdFx0XHRcdC8vICAgdzpcIjQwMHB4XCIsXHJcblx0XHRcdFx0XHQvLyAgIGhlaWdodDonNjAlJ1xyXG5cdFx0XHRcdFx0Ly8gIH0pO1xyXG5cdFx0XHRcdFx0Ly8gcGx1cy5zY3JlZW4udW5sb2NrT3JpZW50YXRpb24oKTtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLnJlcXVlc3RGdWxsU2NyZWVuKCk7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kZW1pdCgnY2hhbmdlU2NyZWVuTG9hZGluZycsZmFsc2UpO1xyXG5cdFx0XHRcdFx0XHRwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJsYW5kc2NhcGUtcHJpbWFyeVwiKTtcclxuXHJcblx0XHRcdFx0XHR9LCAxMDApO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhbmdlVmlkZW9EYXRhKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2NoYW5nZVZpZGVvRGF0YScsIClcclxuXHRcdFx0fSxcclxuXHRcdFx0ZW5kRW1pdERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnaGFuZGxlRW5kJywgKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRMaXZlKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfov5nmmK/ov5nlj6rlj6rmmK82NjY2NjY6JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhKVxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcblx0XHRcdFx0XHQkKCcjdXJsLXBsYXllci10ZXN0JykuZW1wdHkoKTtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyID0gbnVsbDtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdHZhciBmdWxsU2NyZWVuQnV0dG9uQ29tcG9uZW50ID0gQWxpcGxheWVyLkNvbXBvbmVudCh7XHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOWIneWni+WHveaVsO+8jOWcqG5ld+WvueixoeaXtuiwg+eUqFxyXG5cdFx0XHRcdFx0ICpcclxuXHRcdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBhZEFkZHJlc3MgLSDlub/lkYrop4bpopHlnLDlnYBcclxuXHRcdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB0b0FkZHJlc3MgLSDlub/lkYrpk77mjqXlnLDlnYBcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0aW5pdDogZnVuY3Rpb24oc3RhdHVzLCB0b0FkZHJlc3MpIHtcclxuXHJcblx0XHRcdFx0XHRcdHRoaXMuZnVsbFNjcmVlblN0YXR1cyA9IHN0YXR1c1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLmFkQWRkcmVzcyA9IGFkQWRkcmVzcztcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy50b0FkZHJlc3MgPSB0b0FkZHJlc3M7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGlzLiRodG1sID0gJCgnLmZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyJyk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuaGlkZSgpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOWIm+W7uuW5v+WRikRvbeWFg+e0oFxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRjcmVhdGVFbDogZnVuY3Rpb24oZWwpIHtcclxuXHJcblxyXG5cdFx0XHRcdFx0XHR0aGlzLiRodG1sLmZpbmQoJy5hZCcpLmF0dHIoJ3NyYycsIHRoaXMuYWRBZGRyZXNzKTtcclxuXHRcdFx0XHRcdFx0dmFyICRhZFdyYXBwZXIgPSB0aGlzLiRodG1sLmZpbmQoJy5hZC13cmFwcGVyJyk7XHJcblx0XHRcdFx0XHRcdCRhZFdyYXBwZXIuYXR0cignaHJlZicsIHRoaXMudG9BZGRyZXNzKTtcclxuXHRcdFx0XHRcdFx0JGFkV3JhcHBlci5jbGljayhmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyBBbGlwbGF5ZXIudXRpbC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuZmluZCgnLmNsb3NlJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG5cdFx0XHRcdFx0XHQvLyAgIHRoaXMuJGh0bWwuaGlkZSgpO1xyXG5cdFx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHRcdFx0Ly8gJChlbCkuZmluZCgnLnByaXNtLWNvbnRyb2xiYXInKS5hcHBlbmQodGhpcy4kaHRtbCk7XHJcblx0XHRcdFx0XHRcdCQoZWwpLmZpbmQoJy5wcmlzbS10aW1lLWRpc3BsYXknKS5hZnRlcih0aGlzLiRodG1sKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRyZWFkeTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuaGlkZSgpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDpmpDol4/lub/lkYpcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0cGxheTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC8qKlxyXG5cdFx0XHRcdFx0ICog5pi+56S65bm/5ZGKXHJcblx0XHRcdFx0XHQgKi9cclxuXHRcdFx0XHRcdHBhdXNlOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5zaG93KCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDpmpDol4/lub/lkYpcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0cGxheWluZzogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR3YWl0aW5nOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5oaWRlKClcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR0aW1ldXBkYXRlOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHt9LFxyXG5cdFx0XHRcdFx0ZXJyb3I6IGZ1bmN0aW9uKHBsYXllciwgZSkge30sXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOaYvuekuuW5v+WRilxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRlbmRlZDogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRjb25zb2xlLmxvZygndGhpcy5jdXJyZW50VmlkZW9MaXN0IGF0IGxpbmUgNDU2MTExMTExMTExMTExMTExMTExMTExOicsIHRoaXMudmlkZW9MaXN0KVxyXG5cclxuXHJcblx0XHRcdFx0dmFyIHBsYXllck9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRpZDogXCJ1cmwtcGxheWVyLXRlc3RcIixcclxuICAgICAgICAgIHByZWxvYWQ6IGZhbHNlLFxyXG5cdFx0XHRcdFx0XCJ2aWRcIjogdGhpcy52aWRlb0RhdGFcclxuXHRcdFx0XHRcdFx0LnZpZGVvSWQsIC8vIOW/hemAieWPguaVsO+8jOWPr+S7pemAmui/h+eCueaSreaOp+WItuWPsO+8iOi3r+W+hO+8muWqkui1hOW6kz7pn7Mv6KeG6aKR77yJ5p+l6K+i44CC56S65L6L77yaMWUwNjdhMjgzMWI2NDFkYjkwZDU3MGI2NDgwZioqKirjgIJcclxuXHJcblx0XHRcdFx0XHR3aWR0aDogJzEwMCUnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdFx0Ly8gdmlkZW9XaWR0aDogJzEwMHZ3JywgLy/lrrnlmajnmoTlpKflsI9cclxuXHRcdFx0XHRcdC8vIHZpZGVvSGVpZ2h0OiAnMTAwdmgnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAnMTAwJScsIC8v5a655Zmo55qE5aSn5bCPXHJcblx0XHRcdFx0XHRwbGF5c2lubGluZTogdHJ1ZSxcclxuXHRcdFx0XHRcdGNvbnRyb2xCYXJWaXNpYmlsaXR5OiBcImNsaWNrXCIsXHJcblx0XHRcdFx0XHRjb3ZlcjogXCJcIixcclxuXHRcdFx0XHRcdGNvbXBvbmVudHM6IFtcclxuXHRcdFx0XHRcdFx0Ly8gIHtcclxuXHRcdFx0XHRcdFx0Ly8gICBuYW1lOiAnQnVsbGV0U2NyZWVuQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdFx0Ly8gICB0eXBlOiBBbGlQbGF5ZXJDb21wb25lbnQuQnVsbGV0U2NyZWVuQ29tcG9uZW50LFxyXG5cdFx0XHRcdFx0XHQvLyAgIC8qKiBEZXNjcmlwdGlvbnMgb2YgdGhlIHNjcm9sbGluZyB0ZXh0IGNvbXBvbmVudCBwYXJhbWV0ZXJzOiB0ZXh0LCBzdHlsZSwgYnVsbGV0UG9zaXRpb25cclxuXHRcdFx0XHRcdFx0Ly8gICAgKiB0ZXh0OiBUaGUgc2Nyb2xsaW5nIHRleHRcclxuXHRcdFx0XHRcdFx0Ly8gICAgKiBzdHlsZTogVGhlIHN0eWxlIG9mIHRoZSBzY3JvbGxpbmcgdGV4dFxyXG5cdFx0XHRcdFx0XHQvLyAgICAqIGJ1bGxldFBvc2l0aW9uOiBUaGUgcG9zaXRpb24gb2YgdGhlIHNjcm9sbGluZyB0ZXh0LiBWYWxpZCB2YWx1ZXM6ICd0b3AnLCAnYm90dG9tJywgYW5kICdyYW5kb20nLiBUaGUgZGVmYXVsdCBpcyAncmFuZG9tJy5cclxuXHRcdFx0XHRcdFx0Ly8gICAgKi9cclxuXHRcdFx0XHRcdFx0Ly8gICBhcmdzOiBbJ2h0dHA6Ly8xMDEuMjAxLjE0Ni4xNjU6ODA4OC9QZi1FSC9zdGF0aWNzL3VwbG9hZEZpbGUvMjAyNC0wNS0xMC9iMGY0MjBjNy05MTc4LTQxYWQtOWRkNi1mNTlhNjRhNmUxOTAucG5nJ11cclxuXHRcdFx0XHRcdFx0Ly8gfSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdhZENvbXBvbmVudCcsXHJcblx0XHRcdFx0XHRcdFx0dHlwZTogZnVsbFNjcmVlbkJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFx0XHRcdFx0XHRhcmdzOiBbXHJcblx0XHRcdFx0XHRcdFx0XHQnaHR0cDovLzEwMS4yMDEuMTQ2LjE2NTo4MDg4L1BmLUVIL3N0YXRpY3MvdXBsb2FkRmlsZS8yMDI0LTA1LTEwL2IwZjQyMGM3LTkxNzgtNDFhZC05ZGQ2LWY1OWE2NGE2ZTE5MC5wbmcnXHJcblx0XHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ1JhdGVDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IEFsaVBsYXllckNvbXBvbmVudC5SYXRlQ29tcG9uZW50XHJcblx0XHRcdFx0XHRcdH0sXHJcblxyXG5cclxuXHRcdFx0XHRcdFx0Ly8ge1xyXG5cdFx0XHRcdFx0XHQvLyAgIG5hbWU6ICdSb3RhdGVNaXJyb3JDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHQvLyAgIHR5cGU6IEFsaVBsYXllckNvbXBvbmVudC5Sb3RhdGVNaXJyb3JDb21wb25lbnRcclxuXHRcdFx0XHRcdFx0Ly8gfSxcclxuXHJcblxyXG5cdFx0XHRcdFx0XSxcclxuXHJcblx0XHRcdFx0XHRza2luTGF5b3V0OiBbe1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiYmlnUGxheUJ1dHRvblwiLFxyXG5cdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0eDogMzAsXHJcblx0XHRcdFx0XHRcdFx0eTogODBcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiSDVMb2FkaW5nXCIsXHJcblx0XHRcdFx0XHRcdFx0YWxpZ246IFwiY2NcIlxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogXCJlcnJvckRpc3BsYXlcIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0bGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0eTogMFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogXCJpbmZvRGlzcGxheVwiXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcInRvb2x0aXBcIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0eTogNTZcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwidGh1bWJuYWlsXCJcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiY29udHJvbEJhclwiLFxyXG5cdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0eDogMCxcclxuXHRcdFx0XHRcdFx0XHR5OiAwLFxyXG5cdFx0XHRcdFx0XHRcdGNoaWxkcmVuOiBbe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInByb2dyZXNzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcImJsYWJzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDQ0XHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInBsYXlCdXR0b25cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidGxcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInRpbWVEaXNwbGF5XCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcInRsXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDEwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiA3XHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8ge25hbWU6IFwiZnVsbFNjcmVlbkJ1dHRvblwiLCBhbGlnbjogXCJ0clwiLCB4OiAxMCwgeTogMTJ9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8ge25hbWU6XCJzdWJ0aXRsZVwiLCBhbGlnbjpcInRyXCIseDoxNSwgeToxMn0sXHJcblx0XHRcdFx0XHRcdFx0XHQvLyB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdG5hbWU6IFwic2V0dGluZ1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHR4OiAxNSxcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0eTogMTJcclxuXHRcdFx0XHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IFwicHJpc20tc3BlZWQtc2VsZWN0b3JcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidHJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInZvbHVtZVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0clwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiA1LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiAxMFxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdF1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy52aWRlb0RhdGEudHlwZSA9PSAxKSB7XHJcblx0XHRcdFx0XHRwbGF5ZXJPcHRpb25zID0ge1xyXG5cdFx0XHRcdFx0XHQuLi5wbGF5ZXJPcHRpb25zLFxyXG4gICAgICAgICAgICBcInBsYXlhdXRoXCI6IHRoaXMudmlkZW9EYXRhLnBsYXlBdXRoLCAvLyDlv4XpgInlj4LmlbDvvIzlj4LmlbDlgLzlj6/pgJrov4fosIPnlKhHZXRWaWRlb1BsYXlBdXRo5o6l5Y+j6I635Y+W44CCXHJcblx0XHRcdFx0XHRcdFwiZW5jcnlwdFR5cGVcIjogMSwgLy8g5b+F6YCJ5Y+C5pWw77yM5b2T5pKt5pS+56eB5pyJ5Yqg5a+G5rWB5pe26ZyA6KaB6K6+572u5pys5Y+C5pWw5YC85Li6MeOAguWFtuWug+aDheWGteaXoOmcgOiuvue9ruOAglxyXG5cdFx0XHRcdFx0XHRcInBsYXlDb25maWdcIjoge1xyXG5cdFx0XHRcdFx0XHRcdFwiRW5jcnlwdFR5cGVcIjogJ0FsaXl1blZvREVuY3J5cHRpb24nXHJcblx0XHRcdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cGxheWVyT3B0aW9ucyA9IHtcclxuXHRcdFx0XHRcdFx0Li4ucGxheWVyT3B0aW9ucyxcclxuXHRcdFx0XHRcdFx0c291cmNlOiB0aGlzLnZpZGVvRGF0YS52aWRlb1VybFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR2YXIgcGxheWVyID0gbmV3IEFsaXBsYXllcihwbGF5ZXJPcHRpb25zLCBmdW5jdGlvbihwbGF5ZXIpIHsgfSk7XHJcblx0dGhpcy5wbGF5ZXIgPSBwbGF5ZXI7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpuaLv+WIsOesrOS4gOasoeWIneWni+WAvOWRoicsdGhpcy5wbGF0Zm9ybSwgdHlwZW9mIHRoaXMuZmlyc3RUaW1lLCB0aGlzLmZpcnN0VGltZSlcclxuaWYodGhpcy5wbGF0Zm9ybSA9PSAnaW9zJyl7XHJcblxyXG4gIHRoaXMucGxheWVyLm9uZSgndGltZXVwZGF0ZScsICgpID0+IHtcclxuICAgIHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG59KVxyXG5cclxuICBwbGF5ZXIub24oJ2NhbnBsYXknLGZ1bmN0aW9uKCl7XHJcbiAgICBjb25zb2xlLmxvZygn6L+Z5pivaW9z5pWw5o2u57yT5Yay5Yid5qyh6K6+572u5pKt5pS+5L2N572u5Yik5pat77yB77yB77yB77yBJylcclxuICAgIHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG4gICAgICB9KVxyXG4vLyAgIHZhciBzZWVrZWQgPSBmYWxzZTtcclxuLy8gcGxheWVyLm9uKCdsb2FkZWRtZXRhZGF0YScsZnVuY3Rpb24gIChlKSB7XHJcbi8vICAgaWYoIXNlZWtlZClcclxuLy8gICB7XHJcbi8vICAgICBzZWVrZWQgPSB0cnVlO1xyXG4vLyAgICAgdGhpcy5wbGF5ZXIuc2VlaygyMCk7XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuICAvLyBwbGF5ZXIub24oJ3dhaXRpbmcnLGZ1bmN0aW9uKCl7XHJcbiAgLy8gICBjb25zb2xlLmxvZygn6L+Z5pivaW9z5pWw5o2u57yT5Yay5Yid5qyh6K6+572u5pKt5pS+5L2N572u5Yik5pat77yB77yB77yB77yBJylcclxuICAvLyAgIHNldFRpbWVvdXQoKCk9PntcclxuICAvLyAgICAgIHBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKVxyXG4gIC8vICAgfSw1MDApXHJcblxyXG4gIC8vICAgICB9KVxyXG59ZWxzZXtcclxuICB0aGlzLnBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAvLyB2YXIgc2Vla2VkID0gZmFsc2U7XHJcbi8vICAgICAgICAgdGhpcy5wbGF5ZXIub24oJ2xvYWRlZG1ldGFkYXRhJyxmdW5jdGlvbiAgKGUpIHtcclxuLy8gICBpZighc2Vla2VkKVxyXG4vLyAgIHtcclxuLy8gICAgIHNlZWtlZCA9IHRydWU7XHJcbi8vICAgICBwbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcbi8vICAgfVxyXG4vLyB9KTtcclxuXHJcblxyXG5cclxuXHJcblx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnZpZGVvVGltZXIpO1xyXG5cclxuXHRcdFx0XHR0aGlzLnZpZGVvVGltZXIgPSBudWxsO1xyXG5cdFx0XHRcdHRoaXMudmlkZW9UaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcclxuXHRcdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHRcdHRoYXQuY3VyVGltZSA9IHBhcnNlSW50KHRoaXMucGxheWVyLmdldEN1cnJlbnRUaW1lKCkpO1xyXG5cdFx0XHRcdFx0dGhhdC5jdXJTdGF0dXMgPSB0aGlzLnBsYXllci5nZXRTdGF0dXMoKVxyXG5cclxuXHJcblx0XHRcdFx0fSwgMTAwMCk7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy52aWRlb0NvbnRlbnQ0LmNsaWNrKClcclxuXHRcdFx0XHRwbGF5ZXIub24oJ3JlYWR5JywgZnVuY3Rpb24oKSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gIHBsYXllci5mdWxsc2NyZWVuU2VydmljZS5yZXF1ZXN0RnVsbFNjcmVlbigpXHJcblxyXG5cdFx0XHRcdH0pXHJcblxyXG5cdFx0XHRcdC8vICB0aGlzLlxyXG5cclxuXHJcblx0XHRcdFx0Ly8gdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQuY2xpY2soKVxyXG5cdFx0XHRcdHRoaXMucGxheWVyLm9uKCdlbmRlZCcsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3RoYXQuY3VyVGltZSBhdCBsaW5lIDI0MjonLCB0aGlzLmN1clRpbWUpXHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygndGhhdC5jdXJTdGF0dXMgYXQgbGluZSAyMTA6JywgdGhpcy5jdXJTdGF0dXMpXHJcblx0XHRcdFx0XHR0aGlzLiRyZWZzLnZpZGVvQ29udGVudDIuY2xpY2soKVxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0XHR9KVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIHBsYXllci5zZXRSb3RhdGUoOTApXHJcblxyXG5cdFx0XHRcdC8v5YWo5bGP5pKt5pS+XHJcblxyXG5cdFx0XHRcdC8vIHBsYXllci5vbmUoJ2NhbnBsYXknLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHQvLyAgICAgLy8gY29uc29sZS5sb2coJ2NhbnBsYXknLCB0aGlzLnBsYXllci50YWcpO1xyXG5cdFx0XHRcdC8vICAgICBwbGF5ZXIudGFnLnBsYXkoKTtcclxuXHJcblx0XHRcdFx0Ly8gfSk7XHJcblxyXG5cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdHNob3dQcmV2aWV3KGUpIHtcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnZSBhdCBsaW5lIDU2OicsIGUpXHJcblx0XHRcdFx0bGV0IGNvbmltZyA9IGUudGFyZ2V0LmRhdGFzZXQubm9kZXM7XHJcblx0XHRcdFx0bGV0IGltZ3MgPSBjb25pbWcubWF0Y2goLzxpbWdbXj5dKz4vZyk7IC8v6YCJ5oup6IqC54K55Lit55qEaW1nXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ2ltZ3MgYXQgbGluZSA1OTonLCBpbWdzKVxyXG5cdFx0XHRcdGxldCBpbWdMaXN0ID0gW107XHJcblx0XHRcdFx0Ly/pgY3ljoZpbWfmoIfnrb7nmoRzcmPph4zpnaLnmoTlhoXlrrnmlL7lnKjlrprkuYnnmoTmlbDnu4RpbWdMaXN05LitXHJcblx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBpbWdzLmxlbmd0aDsgaisrKSB7XHJcblx0XHRcdFx0XHRpbWdzW2pdLnJlcGxhY2UoLzxpbWdbXj5dKnNyYz1bJ1wiXShbXidcIl0rKVtePl0qPi9naSwgZnVuY3Rpb24obWF0Y2gsIGNhcHR1cmUpIHtcclxuXHRcdFx0XHRcdFx0aW1nTGlzdC5wdXNoKGNhcHR1cmUpXHJcblxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ2ltZ0xpc3QucHVzaCBhdCBsaW5lIDY0OicsIGltZ0xpc3QpXHJcblxyXG5cclxuXHRcdFx0XHQvL+acgOWQjuS4gOatpeWwseaYr+aJgOacieWbvueJh+aUvuWcqOmihOiniOeahOaWueazlXByZXZpZXdJbWFnZeS4reWwseWPr+S7peS6hlxyXG5cdFx0XHRcdC8vIHVuaS5wcmV2aWV3SW1hZ2Uoe1xyXG5cdFx0XHRcdC8vICAgICBjdXJyZW50OiBpbWdMaXN0LFxyXG5cdFx0XHRcdC8vICAgICB1cmxzOiBpbWdMaXN0LFxyXG5cdFx0XHRcdC8vIH0pXHJcblx0XHRcdFx0dW5pLnByZXZpZXdJbWFnZSh7XHJcblx0XHRcdFx0XHR1cmxzOiBpbWdMaXN0LFxyXG5cdFx0XHRcdFx0bG9uZ1ByZXNzQWN0aW9uczoge1xyXG5cdFx0XHRcdFx0XHRpdGVtTGlzdDogWyflvojmirHmrYnvvIzmmoLkuI3mlK/mjIHkv53lrZjlm77niYfliLDmnKzlnLAnXSxcclxuXHRcdFx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cocmVzLCcrKysrKycpXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRyZWNlaXZlU2NyZWVuVHlwZShuZXdWYWx1ZSkge1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCduZXdWYWx1ZSBhdCBsaW5lIDQyN+Wxj+W5leaWueWQkTExMTExMTExMTExMTonLCBuZXdWYWx1ZSlcclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGFzeW5jIHJlY2VpdmVJc2ZyZXNoKG5ld1ZhbHVlKSB7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ+aYr+WQpui1sOS6huWIt+aWsOmUgOavgeaWueazlTonLCB0aGlzLnBsYXllcilcclxuXHRcdFx0XHRpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcilcclxuXHRcdFx0XHRcdC8vIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcblx0XHRcdFx0XHQvLyAkKCcjdXJsLXBsYXllci10ZXN0JykuZW1wdHkoKVxyXG5cclxuXHRcdFx0XHRcdC8vIHRoaXMucGxheWVyLnNlZWsobmV3VmFsdWUpO1xyXG5cdFx0XHRcdH1cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyByZWNlaXZlcGxhdGZvcm0obmV3VmFsdWUpIHtcclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgcmVjZWl2ZUlzQ2hhbmdlKG5ld1ZhbHVlKSB7XHJcblxyXG5cclxuXHRcdFx0XHQvLyB0aGlzLnRpbWVyPW51bGxcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuaXNDaGFuZ2UpIHtcclxuXHJcblx0XHRcdFx0XHR0aGlzLmNoZWNrVmFsdWUoKVxyXG5cclxuXHRcdFx0XHRcdC8vIGlmICh0aGlzLnZpZGVvRGF0YS50eXBlID09IDEpIHtcclxuXHRcdFx0XHRcdC8vIFx0Y29uc29sZS5sb2coJ+aYr+WQpui1sOS6huWIh+aNouWKoOWvhuinhumikeaWueazlTonLCB0aGlzLmlzQ2hhbmdlLCB0aGlzLnZpZGVvRGF0YSlcclxuXHRcdFx0XHRcdC8vIFx0YXdhaXQgdGhpcy5wbGF5ZXIucmVwbGF5QnlWaWRBbmRQbGF5QXV0aCh0aGlzLnZpZGVvRGF0YS52aWRlbywgdGhpcy52aWRlb0RhdGEucGxheUF1dGgpXHJcblx0XHRcdFx0XHQvLyAgIHRoaXMuJHJlZnMudmlkZW9Db250ZW50LmNsaWNrKClcclxuXHRcdFx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBcdGNvbnNvbGUubG9nKCfmmK/lkKbotbDkuobliIfmjaLogIHop4bpopEv6Z+z6aKR5pa55rOVOicsIHRoaXMuaXNDaGFuZ2UsIHRoaXMudmlkZW9EYXRhKVxyXG5cdFx0XHRcdFx0Ly8gYXdhaXRcdHRoaXMucGxheWVyLmxvYWRCeVVybCh0aGlzLnZpZGVvRGF0YS52aWRlb1VybClcclxuXHRcdFx0XHRcdC8vIHRoaXMuJHJlZnMudmlkZW9Db250ZW50LmNsaWNrKClcclxuXHRcdFx0XHRcdC8vIH1cclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0Ly8gdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQzLmNsaWNrKClcclxuXHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRyZWNlaXZlVmlkZW9MaXN0KG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHRcdFx0XHQvLyAvL+aVsOaNruWPmOWMllxyXG5cclxuXHRcdFx0XHRjb25zb2xlLmxvZygnY3VycmVudFZpZGVvTGlzdGN1cnJlbnRWaWRlb0xpc3RjdXJyZW50VmlkZW9MaXN0JywgbmV3VmFsdWUpXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0cmVjZWl2ZU1zZyhuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdFx0Ly/mlbDmja7lj5jljJZcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnbmV3VmFsdWUnLCBuZXdWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb2xkVmFsdWUnLCBvbGRWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb3duZXJWbScsIG93bmVyVm0pXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3ZtJywgdm0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlY2VpdmVXaW5XaWR0aChuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdFx0Ly/mlbDmja7lj5jljJZcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnbmV3VmFsdWUnLCBuZXdWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb2xkVmFsdWUnLCBvbGRWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb3duZXJWbScsIG93bmVyVm0pXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3ZtJywgdm0pXHJcblx0XHRcdH0sXHJcblx0XHRcdHJlY2VpdmVXaW5IZWlnaHQobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdC8v5pWw5o2u5Y+Y5YyWXHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ25ld1ZhbHVlJywgbmV3VmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ29sZFZhbHVlJywgb2xkVmFsdWUpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ293bmVyVm0nLCBvd25lclZtKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd2bScsIHZtKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGVja1ZhbHVlKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHRoaXMudmlkZW9JZCwgdGhpcy5hdXRoSWQsIHRoaXMudmlkZW9EYXRhLCBcIjExMTE4ODg4ODhcIilcclxuXHRcdFx0XHRpZiAoKCF0aGlzLnZpZGVvRGF0YS5wbGF5QXV0aCB8fCAhdGhpcy5jdXJyZW50VmlkZW9MaXN0KSkge1xyXG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2hlY2tWYWx1ZSgpO1xyXG5cdFx0XHRcdFx0fSwgMTAwMCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZygn6L+Z5piv6L+Z5Y+q5Y+q5pivNTk0OicsIHRoaXMuZmlyc3RUaW1lLCB0aGlzLnZpZGVvRGF0YSlcclxuXHRcdFx0XHRcdHRoaXMuZ2V0TGl2ZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0bG9hZFdlYlBsYXllclNESygpIHtcclxuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdFx0Y29uc3Qgc190YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgLy8g5byV5YWl5pKt5pS+5ZmoanNcclxuXHRcdFx0XHRcdHNfdGFnLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuXHRcdFx0XHRcdHNfdGFnLnNyYyA9ICdodHRwczovL2cuYWxpY2RuLmNvbS9hcHNhcmEtbWVkaWEtYm94L2ltcC13ZWItcGxheWVyLzIuMjAuMy9hbGlwbGF5ZXItbWluLmpzJztcclxuXHRcdFx0XHRcdHNfdGFnLmNoYXJzZXQgPSAndXRmLTgnO1xyXG5cdFx0XHRcdFx0c190YWcub25sb2FkID0gKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBzX3RhZzEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgLy8g5byV5YWl5pKt5pS+5ZmoanNcclxuXHRcdFx0XHRcdFx0c190YWcxLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuXHRcdFx0XHRcdFx0c190YWcxLnNyYyA9XHJcblx0XHRcdFx0XHRcdFx0J2h0dHBzOi8vcGxheWVyLmFsaWNkbi5jb20vYWxpcGxheWVyL3ByZXNlbnRhdGlvbi9qcy9hbGlwbGF5ZXJjb21wb25lbnRzLm1pbi5qcyc7XHJcblx0XHRcdFx0XHRcdHNfdGFnMS5jaGFyc2V0ID0gJ3V0Zi04JztcclxuXHRcdFx0XHRcdFx0c190YWcxLm9ubG9hZCA9ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmNoZWNrVmFsdWUoKTtcclxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKCk7XHJcblxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc190YWcxKTtcclxuXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNfdGFnKTtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRcdGNvbnN0IGxfdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOyAvLyDlvJXlhaXmkq3mlL7lmahjc3NcclxuXHRcdFx0XHRcdGxfdGFnLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuXHRcdFx0XHRcdGxfdGFnLmhyZWYgPVxyXG5cdFx0XHRcdFx0XHQnaHR0cHM6Ly9nLmFsaWNkbi5jb20vYXBzYXJhLW1lZGlhLWJveC9pbXAtd2ViLXBsYXllci8yLjIwLjMvc2tpbnMvZGVmYXVsdC9hbGlwbGF5ZXItbWluLmNzcyc7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxfdGFnKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0bG9hZENvbXBvbmVudCgpIHtcclxuXHRcdFx0XHQvLyByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdC8vICAgICBjb25zdCBzX3RhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG5cdFx0XHRcdC8vICAgICBzX3RhZy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcblx0XHRcdFx0Ly8gICAgIC8vIOmcgOimgeWFiOS4i+i9vee7hOS7tiBqcyDmlofku7bvvIzmlL7liLDpobnnm64gL3N0YXRpYy8g55uu5b2V5LiLXHJcblx0XHRcdFx0Ly8gICAgIC8vIOS4i+i9veWcsOWdgO+8mmh0dHBzOi8vZ2l0aHViLmNvbS9hbGl5dW52aWRlby9BbGl5dW5QbGF5ZXJfV2ViL2Jsb2IvbWFzdGVyL2N1c3RvbUNvbXBvbmVudHMvZGlzdC9hbGlwbGF5ZXItY29tcG9uZW50cy9hbGlwbGF5ZXJjb21wb25lbnRzLTEuMC45Lm1pbi5qc1xyXG5cdFx0XHRcdC8vICAgICBzX3RhZy5zcmMgPSAnQC9zdGF0aWMvYWxpcGxheWVyY29tcG9uZW50cy5qcyc7XHJcblx0XHRcdFx0Ly8gICAgIHNfdGFnLmNoYXJzZXQgPSAndXRmLTgnO1xyXG5cdFx0XHRcdC8vICAgICBzX3RhZy5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdFx0Ly8gICAgICAgICByZXNvbHZlKCk7XHJcblx0XHRcdFx0Ly8gICAgIH1cclxuXHRcdFx0XHQvLyAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzX3RhZyk7XHJcblx0XHRcdFx0Ly8gfSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbjwvc2NyaXB0PlxyXG48c3R5bGU+XHJcbi5jb250YWluZXIge1xyXG4gIHdpZHRoOiAxMDB2dztcclxuICBoZWlnaHQ6IGF1dG87XHJcblxyXG4gIC9kZWVwLy5wYXVzZSB7XHJcbiAgICB3aWR0aDogNjBycHggIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogNjBycHggIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi5mZHMge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IGJsdWU7XHJcbiAgaGVpZ2h0OiA2MDBycHg7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogNjBycHg7XHJcbn1cclxuXHJcbi5yZXR1cm5CYWNrIHtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGhlaWdodDogODhycHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAyMHJweDtcclxufVxyXG5cclxuLnR4dCB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5yaWdodF90aXRsZSB7XHJcbiAgYmFja2dyb3VuZDogIzAwMDtcclxuICBoZWlnaHQ6IDk2cnB4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbn1cclxuXHJcbi5yZXR1cm4ge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnJpZ2h0X2hhbmRsZSB7XHJcbiAgd2lkdGg6IDIwMHJweDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgcGFkZGluZy1yaWdodDogMjBycHg7XHJcbn1cclxuXHJcbmNvdmVyLXZpZXcge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG59XHJcblxyXG5jb3Zlci12aWV3IHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbmNvdmVyLWltYWdlIHtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mdWxsU2NyZWVuQnV0dG9uLWNvbnRhaW5lciB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIGhlaWdodDogMzVweDtcclxuICBtYXJnaW4tdG9wOiA2cHg7XHJcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgaSB7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLXRvcDogN3B4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG5cclxuICAgICYgKyBpIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcclxuICAgIH1cclxuXHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgICAgJjpob3ZlciArIC5wbGF5ZXItdG9vbHRpcCB7XHJcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wbGF5ZXItdG9vbHRpcCB7XHJcbiAgICAmLnByZXYge1xyXG4gICAgICBsZWZ0OiAtMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAmLmxpc3Qge1xyXG4gICAgICBsZWZ0OiA1cHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5uZXh0IHtcclxuICAgICAgcmlnaHQ6IC0xMnB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnBsYXlsaXN0LWNvbnRlbnQge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogMDtcclxuICB3aWR0aDogMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjM4cyBlYXNlLWluLW91dDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAubGlzdCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcblxyXG4gICAgLnZpZGVvLWl0ZW0ge1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgcGFkZGluZzogMHB4IDEwcHg7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xyXG4gICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcclxuICAgICAgICBjb2xvcjogIzAwZGRmZjtcclxuICAgICAgfVxyXG5cclxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG4gICAgICAgICAgY29sb3I6ICMwMGRkZmY7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucGxheWVyLXRvb2x0aXAge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBjb2xvcjogI2ZmZjtcclxuICBsaW5lLWhlaWdodDogMjhweDtcclxuICBsZXR0ZXItc3BhY2luZzogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogIzNjM2MzYztcclxuICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIGhlaWdodDogMjhweDtcclxuICB0b3A6IC00OHB4O1xyXG4gIHBhZGRpbmc6IDAgNXB4O1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5wbGF5bGlzdC1za2lwLXRpcCB7XHJcbiAgcGFkZGluZzogNXB4IDE1cHg7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogNTAlO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB6LWluZGV4OiAzMDtcclxuICBsaW5lLWhlaWdodDogMzBweDtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcclxuICBjb2xvcjogIzAwMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbiNyb3RhdGluZy1kaXYge1xyXG4gIHdpZHRoOiAxMDB2dztcclxuICBoZWlnaHQ6IDEwMHZoO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xyXG4gIC8qIOaXi+i9rDkw5bqmICovXHJcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcclxuICAvKiDorr7nva7ml4vovazkuK3lv4PngrnlnKhkaXbkuK3lv4MgKi9cclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgLyog5Zu65a6a5a6a5L2N77yM5YWo5bGP5pi+56S6ICovXHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcbjwvc3R5bGU+XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1056\n"); +eval("/* WEBPACK VAR INJECTION */(function(__f__) {\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 2);\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 24));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 26));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 3));\nvar _index = _interopRequireDefault(__webpack_require__(/*! @/store/index.js */ 161));\nvar _requestConfig = _interopRequireDefault(__webpack_require__(/*! @/config/requestConfig.js */ 134));\nvar _vuex = __webpack_require__(/*! vuex */ 70);\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; }\n// importScripts('@/static/aliplayer/aliplayer-min.js')\nvar _default = {\n props: [\"currentVideo\", \"currentVideoList\"],\n data: function data() {\n return {\n platform: null,\n isShowVideoview: false,\n //当前是否是全屏模式\n isFullScreen: false,\n isfresh: false,\n isChange: false,\n isControl: true,\n timer: null,\n videoTitle: \"\",\n videoList: [],\n firstTime: 0,\n options: {},\n playAuth: \"\",\n currentTime: \"\",\n videoId: \"\",\n videoData: {},\n isSetFirstTime: false,\n screenType: null,\n videoUrl: null,\n videoTimer: null,\n curTime: null\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)([\"videoOssList\"])),\n watch: {\n currentVideo: {\n immediate: true,\n handler: function handler(newRoute) {}\n },\n curTime: {\n immediate: true,\n handler: function handler(newRoute) {\n if (this.curTime) {\n __f__(\"log\", 'this.curTime at line 131:', this.curTime, \" at pages/component/commonComponents/video/ios.nvue:135\");\n this.recordTime({\n time: this.curTime\n });\n }\n }\n },\n timer: function timer(newValue) {\n this.$emit(\"child-event\", newValue);\n }\n },\n // //页面显示\n mounted: function mounted() {},\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.handleEnd();\n __f__(\"log\", \"是否走啦习销毁\", \" at pages/component/commonComponents/video/ios.nvue:151\");\n clearInterval(_this.$store.state.videoTimer);\n clearInterval(_this.videoTimer);\n _this.videoTimer = null;\n // store.commit(\"setLoadingShow\", null);\n plus.screen.lockOrientation(\"portrait-primary\");\n __f__(\"log\", \"是否走啦习销毁定时器\", _this.timer, \" at pages/component/commonComponents/video/ios.nvue:158\");\n _context.next = 9;\n return _this.setVideoTime();\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n },\n onUnload: function onUnload() {\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n uni.navigateTo({\n url: \"/pages/curriculum/order/curriculum/back\"\n });\n plus.screen.lockOrientation(\"portrait-primary\"); //锁死屏幕方向为竖屏\n\n // plus.screen.lockOrientation(\"portrait-primary\");\n\n // this.player.dispose();\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n //第一次加载\n onLoad: function onLoad(options) {},\n methods: {\n onstart: function onstart(e) {\n __f__(\"log\", \"onstart:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:179\");\n },\n onpause: function onpause(e) {\n __f__(\"log\", \"onpause:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:182\");\n },\n onfinish: function onfinish(e) {\n this.handleEnd();\n __f__(\"log\", \"onfinish:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:186\");\n },\n onfail: function onfail(e) {\n __f__(\"log\", \"onfail:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:189\");\n },\n fullscreenchange: function fullscreenchange(e) {\n __f__(\"log\", \"fullscreenchange:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:192\");\n },\n waiting: function waiting(e) {\n __f__(\"log\", \"waiting:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:195\");\n },\n timeupdate: function timeupdate(e) {\n var _this2 = this;\n __f__(\"log\", \"timeupdate:\" + JSON.stringify(e), \" at pages/component/commonComponents/video/ios.nvue:199\");\n this.videoTimer = null;\n this.videoTimer = setInterval(function () {\n var that = _this2;\n that.curTime = parseInt(e.detail.currentTime);\n // that.curStatus = this.player.getStatus()\n }, 1000);\n this.currentTime = parseInt(e.detail.currentTime);\n },\n play: function play() {\n this.context.play();\n },\n pause: function pause() {\n this.context.pause();\n },\n seek: function seek() {\n this.context.seek(20);\n },\n stop: function stop() {\n this.context.stop();\n },\n fullScreen: function fullScreen() {\n this.context.requestFullScreen({\n direction: 90\n });\n },\n exitFullScreen: function exitFullScreen() {\n this.context.exitFullScreen();\n },\n sendDanmu: function sendDanmu() {\n this.context.sendDanmu({\n text: \"要显示的弹幕文本\",\n color: \"#FF0000\"\n });\n },\n playbackRate: function playbackRate() {\n this.context.playbackRate(2);\n },\n changeVideoData: function changeVideoData() {\n this.isChange = false;\n },\n changeVideo: function changeVideo(data) {\n var _this3 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _this3.currentTime = \"\";\n _this3.firstTime = 0;\n _this3.isSetFirstTime = false;\n _this3.isChange = false;\n _context3.next = 6;\n return _this3.init(data, true);\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n },\n screenChange: function screenChange(data) {\n __f__(\"log\", \"status at line 这是当前的状态158:\", data.status, data.primary, \" at pages/component/commonComponents/video/ios.nvue:248\");\n this.isFullScreen = !data.status;\n this.$emit(\"changeScreen\", this.isFullScreen);\n // let fullScreen = e.detail.fullScreen; // 值true为进入全屏,false为退出全屏\n // if (!fullScreen) {\n // //退出全屏\n // this.isFullScreen = false;\n // } else {\n // this.isFullScreen = true;\n // }\n },\n // 控制器的显示隐藏\n controlChange: function controlChange(e) {\n this.isControl = e.detail.show;\n },\n quitScreen: function quitScreen() {\n // 退出全屏\n var ctx = this.$refs.myVideo;\n ctx.exitFullScreen();\n },\n // 播放进度改变\n videoTimeUpdateEvent: function videoTimeUpdateEvent(e) {\n this.playTime = parseInt(e.detail.currentTime);\n this.currentTime = parseInt(e.detail.currentTime);\n this.allTime = parseInt(e.detail.duration);\n this.recordTime({\n time: this.playTime\n });\n },\n init: function init(data, isChange) {\n var _this4 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this4.platform = _this4.$platform;\n _this4.isfresh = true;\n __f__(\"log\", \"at line 59:\", \"是否先走init这里\", _this4.platform, \" at pages/component/commonComponents/video/ios.nvue:286\");\n if (uni.getStorageSync(\"videoOssList\")) {\n _this4.videoList = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n _this4.options = data.currentVideo;\n _this4.videoId = _this4.options.video;\n __f__(\"log\", \"这是苹果视屏id\", _this4.videoId, \" at pages/component/commonComponents/video/ios.nvue:293\");\n _context4.next = 9;\n return _this4.getLive(isChange);\n case 9:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n },\n getData: function getData(data, isChange) {\n var _this5 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {\n var netWork, list, index;\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (_this5.isSetFirstTime) {\n _context5.next = 12;\n break;\n }\n netWork = data.userCourseVideoPositionEntity ? data.userCourseVideoPositionEntity.position : 0;\n list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n index = list.findIndex(function (e) {\n return e.id == data.id;\n });\n if (netWork) {\n if (index >= 0) {\n _this5.firstTime = list[index].time > netWork ? list[index].time : netWork;\n } else {\n _this5.firstTime = netWork ? netWork : 0;\n }\n } else {\n if (index >= 0) {\n _this5.firstTime = list[index].time ? list[index].time : 0;\n } else {\n _this5.firstTime = 0;\n }\n }\n } else {\n _this5.firstTime = 0;\n }\n _this5.videoData = _objectSpread({}, data);\n _this5.isChange = isChange ? isChange : false;\n // this.currentTime = this.firstTime;\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长222\", \" at pages/component/commonComponents/video/ios.nvue:330\");\n // await this.setVideoTime();\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n\n // if (this.currentVideo.type == 0 || this.currentVideo.type == 2) {\n // await this.playVideo();\n // }\n __f__(\"log\", _this5.firstTime, \"这是第一次播放时长\", \" at pages/component/commonComponents/video/ios.nvue:337\");\n _this5.isSetFirstTime = true;\n _context5.next = 12;\n return _this5.initVideo();\n case 12:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n },\n initVideo: function initVideo() {\n var _this6 = this;\n this.context = uni.createVideoContext(\"video1\", this);\n if (this.isSetFirstTime) {\n setTimeout(function (res) {\n _this6.context.seek(_this6.firstTime);\n _this6.setVideoFirtsetTime();\n }, 100);\n }\n },\n recordTime: function recordTime(data) {\n var _this7 = this;\n this.currentTime = data.time;\n var list = [];\n if (uni.getStorageSync(\"videoOssList\")) {\n list = JSON.parse(uni.getStorageSync(\"videoOssList\"));\n }\n var index = list.findIndex(function (e) {\n return e.id == _this7.videoData.id;\n });\n if (list.length > 0 && index >= 0) {\n list[index] = _objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n });\n } else {\n list.push(_objectSpread(_objectSpread({}, this.videoData), {}, {\n time: data.time\n }));\n }\n uni.setStorageSync(\"videoOssList\", JSON.stringify(list));\n },\n // 获取数据\n getLive: function getLive(isChange) {\n var _this8 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {\n var that, data;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n that = _this8;\n _this8.isfresh = false;\n data = _objectSpread({}, _this8.options);\n _context7.next = 5;\n return _requestConfig.default.request({\n url: \"sociology/course/checkVideo\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(res) {\n var data, playAuth;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n data = _objectSpread({}, res.video);\n if (!(_this8.currentVideo.type == 1)) {\n _context6.next = 10;\n break;\n }\n playAuth = res.video.playAuth.replace(/=/g, \"\");\n __f__(\"log\", \"这是接口获取的视屏凭证111\", res.video, \" at pages/component/commonComponents/video/ios.nvue:402\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n videoId: res.video.video,\n playAuth: playAuth\n });\n _this8.playAuth = playAuth;\n _context6.next = 8;\n return that.getData(data, isChange);\n case 8:\n _context6.next = 14;\n break;\n case 10:\n __f__(\"log\", \"这是接口获取的视屏凭证222\", res.video, data, \" at pages/component/commonComponents/video/ios.nvue:412\");\n data = _objectSpread(_objectSpread({}, data), {}, {\n playAuth: new Date().getTime()\n });\n _context6.next = 14;\n return that.getData(data, isChange);\n case 14:\n __f__(\"log\", \"是否获取到初始播放值\", data, \" at pages/component/commonComponents/video/ios.nvue:419\");\n that.$forceUpdate();\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n },\n handleEnd: function handleEnd() {\n var _this9 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {\n var list, data;\n return _regenerator.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n list = JSON.parse(JSON.stringify(uni.getStorageSync(\"videoOssList\")));\n data = list.find(function (e) {\n return e.id == _this9.videoData.id;\n });\n _this9.currentTime = data.time;\n __f__(\"log\", \"this.currentTime at line 这是结束的时候掉的存储视频:\", _this9.currentTime, \" at pages/component/commonComponents/video/ios.nvue:428\");\n clearInterval(_this9.$store.state.videoTimer);\n _this9.timer = null;\n _context8.next = 8;\n return _this9.setVideoTime();\n case 8:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n },\n setVideoTime: function setVideoTime(time) {\n var _this10 = this;\n var data = {};\n // var list = uni.getStorageSync(\"videoOssList\");\n\n // data = list.find((e) => e.id == this.videoData.id);\n // console.log(\"这是再走生命周期哦\", this.currentTime);\n __f__(\"log\", \"是否走了存储视屏,\" + this.videoData.id, this.currentTime, \" at pages/component/commonComponents/video/ios.nvue:443\");\n var data = {\n videoId: this.videoData.id,\n position: this.currentTime //秒数\n };\n\n _requestConfig.default.request({\n url: \"sociology/course/saveCoursePosition\",\n method: \"Post\",\n // POST、GET、PUT、DELETE,具体说明查看官方文档\n data: data,\n header: {\n //默认 无 说明:请求头\n \"Content-Type\": \"application/json\"\n }\n }).then(function (res) {\n __f__(\"log\", \"存储视屏时长接口返回信息\", res, \" at pages/component/commonComponents/video/ios.nvue:460\");\n _this10.$forceUpdate();\n });\n },\n changePlayerTime: function changePlayerTime(player) {\n __f__(\"log\", \"this.firstTime at line 106:\", this.firstTime, \" at pages/component/commonComponents/video/ios.nvue:465\");\n player.seek(this.firstTime);\n },\n goBack: function goBack() {\n uni.navigateBack({\n delta: 1\n });\n },\n setVideoFirtsetTime: function setVideoFirtsetTime(time) {\n var _this11 = this;\n return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {\n return _regenerator.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _this11.currentTime = _this11.firstTime;\n __f__(\"log\", \"这里准备开始设置播放时间:\", _this11.currentTime, \" at pages/component/commonComponents/video/ios.nvue:476\");\n // await this.setVideoTime();\n // setTimeout(() => {\n // clearInterval(this.$store.state.videoTimer);\n\n _index.default.commit(\"setVideoTimer\", setInterval( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {\n return _regenerator.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return _this11.setVideoTime();\n case 2:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n })), 60000));\n // }, 5000);\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }))();\n }\n },\n created: function created() {}\n};\nexports.default = _default;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/lib/format-log.js */ 1)[\"default\"]))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaS1hcHA6Ly8vcGFnZXMvY29tcG9uZW50L2NvbW1vbkNvbXBvbmVudHMvdmlkZW8vaW9zLm52dWUiXSwibmFtZXMiOlsicHJvcHMiLCJkYXRhIiwicGxhdGZvcm0iLCJpc1Nob3dWaWRlb3ZpZXciLCJpc0Z1bGxTY3JlZW4iLCJpc2ZyZXNoIiwiaXNDaGFuZ2UiLCJpc0NvbnRyb2wiLCJ0aW1lciIsInZpZGVvVGl0bGUiLCJ2aWRlb0xpc3QiLCJmaXJzdFRpbWUiLCJvcHRpb25zIiwicGxheUF1dGgiLCJjdXJyZW50VGltZSIsInZpZGVvSWQiLCJ2aWRlb0RhdGEiLCJpc1NldEZpcnN0VGltZSIsInNjcmVlblR5cGUiLCJ2aWRlb1VybCIsInZpZGVvVGltZXIiLCJjdXJUaW1lIiwiY29tcHV0ZWQiLCJ3YXRjaCIsImN1cnJlbnRWaWRlbyIsImltbWVkaWF0ZSIsImhhbmRsZXIiLCJ0aW1lIiwibW91bnRlZCIsImJlZm9yZURlc3Ryb3kiLCJjbGVhckludGVydmFsIiwicGx1cyIsIm9uVW5sb2FkIiwidW5pIiwidXJsIiwib25Mb2FkIiwibWV0aG9kcyIsIm9uc3RhcnQiLCJvbnBhdXNlIiwib25maW5pc2giLCJvbmZhaWwiLCJmdWxsc2NyZWVuY2hhbmdlIiwid2FpdGluZyIsInRpbWV1cGRhdGUiLCJ0aGF0IiwicGxheSIsInBhdXNlIiwic2VlayIsInN0b3AiLCJmdWxsU2NyZWVuIiwiZGlyZWN0aW9uIiwiZXhpdEZ1bGxTY3JlZW4iLCJzZW5kRGFubXUiLCJ0ZXh0IiwiY29sb3IiLCJwbGF5YmFja1JhdGUiLCJjaGFuZ2VWaWRlb0RhdGEiLCJjaGFuZ2VWaWRlbyIsInNjcmVlbkNoYW5nZSIsImNvbnRyb2xDaGFuZ2UiLCJxdWl0U2NyZWVuIiwiY3R4IiwidmlkZW9UaW1lVXBkYXRlRXZlbnQiLCJpbml0IiwiZ2V0RGF0YSIsIm5ldFdvcmsiLCJsaXN0IiwiaW5kZXgiLCJpbml0VmlkZW8iLCJzZXRUaW1lb3V0IiwicmVjb3JkVGltZSIsImdldExpdmUiLCIkaHR0cCIsInJlcXVlc3QiLCJtZXRob2QiLCJoZWFkZXIiLCJ0aGVuIiwicmVzIiwiaGFuZGxlRW5kIiwic2V0VmlkZW9UaW1lIiwicG9zaXRpb24iLCJjaGFuZ2VQbGF5ZXJUaW1lIiwicGxheWVyIiwiZ29CYWNrIiwiZGVsdGEiLCJzZXRWaWRlb0ZpcnRzZXRUaW1lIiwic3RvcmUiLCJzZXRJbnRlcnZhbCIsImNyZWF0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUF5RkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQUEsZUFDQTtFQUNBQTtFQUNBQztJQUNBO01BQ0FDO01BQ0FDO01BQ0E7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7TUFDQUM7SUFDQTtFQUNBO0VBQ0FDLDRCQUNBLHNDQUNBO0VBRUFDO0lBQ0FDO01BQ0FDO01BQ0FDO0lBQ0E7SUFDQUw7TUFDQUk7TUFDQUM7UUFDQTtVQUNBO1VBQ0E7WUFDQUM7VUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBbkI7TUFDQTtJQUNBO0VBQ0E7RUFFQTtFQUNBb0I7RUFDQUM7SUFBQTtJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQTtjQUNBO2NBQ0FDO2NBQ0FBO2NBQ0E7Y0FDQTtjQUNBQztjQUVBO2NBQUE7Y0FBQSxPQUNBO1lBQUE7WUFBQTtjQUFBO1VBQUE7UUFBQTtNQUFBO0lBQUE7RUFDQTtFQUNBQztJQUFBO01BQUE7UUFBQTtVQUFBO1lBQUE7Y0FDQUM7Z0JBQ0FDO2NBQ0E7Y0FFQUg7O2NBRUE7O2NBR0E7WUFBQTtZQUFBO2NBQUE7VUFBQTtRQUFBO01BQUE7SUFBQTtFQUNBO0VBRUE7RUFDQUk7RUFFQUM7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7SUFDQTtJQUNBQztNQUNBO01BQ0E7SUFDQTtJQUNBQztNQUNBO0lBQ0E7SUFDQUM7TUFDQTtJQUNBO0lBQ0FDO01BQ0E7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UUFBQTtRQUFBO1VBQUE7WUFBQTtjQUFBO2dCQUNBWjtnQkFDQWpFO2tCQUFBO2dCQUFBO2dCQUNBO2dCQUNBLGFBQ0EsMkNBQ0E7Z0JBRUE2QjtnQkFDQTtnQkFBQTtnQkFBQSxPQUVBO2NBQUE7Y0FBQTtnQkFBQTtZQUFBO1VBQUE7UUFBQTtNQUFBO0lBQ0E7SUFDQWlEO01BQUE7TUFDQTtNQUNBOztNQUVBO01BQ0E7TUFDQTtNQUNBO1FBQ0FoRTtRQUNBaUU7TUFDQTs7TUFFQVIsdUJBQ0FDO1FBQ0F2QztRQUNBd0M7UUFBQTtRQUNBekU7UUFDQTBFO1VBQ0E7VUFDQTtRQUNBO01BQ0EsR0FDQUM7UUFDQTtRQUNBO01BQ0E7SUFDQTtJQUNBSztNQUNBO01BQ0FDO0lBQ0E7SUFDQUM7TUFDQWxEO1FBQ0FtRDtNQUNBO0lBQ0E7SUFFQUM7TUFBQTtNQUFBO1FBQUE7VUFBQTtZQUFBO2NBQUE7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7Z0JBQ0E7O2dCQUVBQyxzQkFDQSxpQkFDQUM7a0JBQUE7b0JBQUE7c0JBQUE7d0JBQUE7MEJBQUE7MEJBQUEsT0FFQTt3QkFBQTt3QkFBQTswQkFBQTtzQkFBQTtvQkFBQTtrQkFBQTtnQkFBQSxDQUVBLFdBQ0E7Z0JBQ0E7Y0FBQTtjQUFBO2dCQUFBO1lBQUE7VUFBQTtRQUFBO01BQUE7SUFDQTtFQUNBO0VBRUFDO0FBQ0E7QUFBQSwyQiIsImZpbGUiOiIxMDU2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxyXG4gIDx2aWV3IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOyBwb3NpdGlvbjogcmVsYXRpdmVcIj5cclxuICAgIDx2aWV3IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjAwcHhcIj5cclxuICAgICBcclxuICAgICAgPHZpZGVvXHJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcclxuICAgICAgICBpZD1cInZpZGVvMVwiXHJcbiAgICAgICAgY2xhc3M9XCJ2aWRlb1wiXHJcbiAgICAgICAgOnNyYz1cInZpZGVvRGF0YS50eXBlPT0xP3ZpZGVvRGF0YS5tM3U4VXJsOnZpZGVvRGF0YS52aWRlb1VybFwiXHJcbiAgICAgICAgYXV0b3BsYXk9XCJ0cnVlXCJcclxuICAgICAgICBkdXJhdGlvbj1cIlwiXHJcbiAgICAgICAgZW5hYmxlLWRhbm11PVwidHJ1ZVwiXHJcbiAgICAgICAgOmxvb3A9XCJ0cnVlXCJcclxuICAgICAgICBpbml0aWFsLXRpbWU9XCJcIlxyXG4gICAgICAgIGRpcmVjdGlvbj1cIi05MFwiXHJcbiAgICAgICAgc2hvdy1tdXRlLWJ0bj1cInRydWVcIlxyXG4gICAgICAgIEBwbGF5PVwib25zdGFydFwiXHJcbiAgICAgICAgQHBhdXNlPVwib25wYXVzZVwiXHJcbiAgICAgICAgQGVuZGVkPVwib25maW5pc2hcIlxyXG4gICAgICAgIEBlcnJvcj1cIm9uZmFpbFwiXHJcbiAgICAgICAgQHdhaXRpbmc9XCJ3YWl0aW5nXCJcclxuICAgICAgICBAdGltZXVwZGF0ZT1cInRpbWV1cGRhdGVcIlxyXG4gICAgICAgIEBmdWxsc2NyZWVuY2hhbmdlPVwiZnVsbHNjcmVlbmNoYW5nZVwiXHJcbiAgICAgID5cclxuXHJcbiAgICAgIDxjb3Zlci12aWV3IHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO3RvcDogMTI4cnB4O3JpZ2h0OiA2MHJweDtcIiBAY2xpY2s9XCJkb3VibGVTcGVlZFwiPuWAjemAnzwvY292ZXItdmlldz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPCEtLSA8Y292ZXItdmlld1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgY2xhc3M9XCJ2aWRlby12aWV3XCJcclxuICAgICAgICAgIDpzdHlsZT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHZpZXc+5YCN6YCfPC92aWV3PlxyXG4gICAgICAgIDwvY292ZXItdmlldz4gLS0+XHJcbiAgICAgIDwvdmlkZW8+XHJcblxyXG4gICAgICA8IS0tIDxkaXZcclxuICAgICAgICBjbGFzcz1cIlwiXHJcbiAgICAgICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwXCJcclxuICAgICAgICByZWY9XCJ2aWRlb0NvbnRlbnRcIlxyXG4gICAgICAgIEB0YXA9XCJyZW5kZXJTY3JpcHQuaGFuZGxlQ2xpY2tcIlxyXG4gICAgICAgIGlkPVwidXJsLXBsYXllci10ZXN0XCJcclxuICAgICAgICA6dmlkZW9EYXRhPVwidmlkZW9EYXRhXCJcclxuICAgICAgICA6d2luV2lkdGg9XCJ3aW5XaWR0aFwiXHJcbiAgICAgICAgOndpbkhlaWdodD1cIndpbkhlaWdodFwiXHJcbiAgICAgICAgOmN1cnJlbnRWaWRlb0xpc3Q9XCJjdXJyZW50VmlkZW9MaXN0XCJcclxuICAgICAgICA6Zmlyc3RUaW1lPVwiZmlyc3RUaW1lXCJcclxuICAgICAgICA6aXNmcmVzaD1cImlzZnJlc2hcIlxyXG4gICAgICAgIDpwbGF0Zm9ybT1cInBsYXRmb3JtXCJcclxuICAgICAgICA6aXNTZXRGaXJzdFRpbWU9XCJpc1NldEZpcnN0VGltZVwiXHJcbiAgICAgICAgOmlzQ2hhbmdlPVwiaXNDaGFuZ2VcIlxyXG4gICAgICAgIDpjaGFuZ2U6dmlkZW9EYXRhPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVNc2dcIlxyXG4gICAgICAgIDpjaGFuZ2U6d2luV2lkdGg9XCJyZW5kZXJTY3JpcHQucmVjZWl2ZVdpbldpZHRoXCJcclxuICAgICAgICA6Y2hhbmdlOndpbkhlaWdodD1cInJlbmRlclNjcmlwdC5yZWNlaXZlV2luSGVpZ2h0XCJcclxuICAgICAgICA6Y2hhbmdlOmZpcnN0VGltZT1cInJlbmRlclNjcmlwdC5yZWNlaXZlRmlyc3RUaW1lXCJcclxuICAgICAgICA6Y2hhbmdlOmlzU2V0Rmlyc3RUaW1lPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVpc1NldEZpcnN0VGltZVwiXHJcbiAgICAgICAgOmNoYW5nZTppc2ZyZXNoPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVJc2ZyZXNoXCJcclxuICAgICAgICA6Y2hhbmdlOnBsYXRmb3JtPVwicmVuZGVyU2NyaXB0LnJlY2VpdmVwbGF0Zm9ybVwiXHJcbiAgICAgICAgOmNoYW5nZTppc0NoYW5nZT1cInJlbmRlclNjcmlwdC5yZWNlaXZlSXNDaGFuZ2VcIlxyXG4gICAgICAgIDpjaGFuZ2U6Y3VycmVudFZpZGVvTGlzdD1cInJlbmRlclNjcmlwdC5yZWNlaXZlVmlkZW9MaXN0XCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgICA8ZGl2IEB0YXA9XCJyZW5kZXJTY3JpcHQuZW1pdERhdGFcIiByZWY9XCJ2aWRlb0NvbnRlbnQxXCIgdi1zaG93PVwiZmFsc2VcIj5cclxuICAgICAgICDnm7TmjqXosIPnlKhyZW5kZXJqc+S4reeahGVtaXREYXRh55qE5pa55rOVLOS8oOmAkuW9k+WJjeaSreaUvuaXtumVv1xyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgQHRhcD1cInJlbmRlclNjcmlwdC5lbmRFbWl0RGF0YVwiIHJlZj1cInZpZGVvQ29udGVudDJcIiB2LXNob3c9XCJmYWxzZVwiPlxyXG4gICAgICAgIOebkeWQrOe7k+adn+aWueazle+8jOiusOW9leaSreaUvuaXtumVv1xyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBAdGFwPVwicmVuZGVyU2NyaXB0LmNoYW5nZVZpZGVvRGF0YVwiXHJcbiAgICAgICAgcmVmPVwidmlkZW9Db250ZW50M1wiXHJcbiAgICAgICAgdi1zaG93PVwiZmFsc2VcIlxyXG4gICAgICA+XHJcbiAgICAgICAg55uR5ZCs5YiH5o2i6KeG6aKR5pa55rOVXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IEB0YXA9XCJyZW5kZXJTY3JpcHQuZW1pdFNldERhdGFcIiByZWY9XCJ2aWRlb0NvbnRlbnQ0XCIgdi1zaG93PVwiZmFsc2VcIj5cclxuICAgICAgICDnm5HlkKzliIfmjaLop4bpopHmlrnms5VcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmdWxsU2NyZWVuQnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIDpjbGFzcz1cImBwcmlzbS1mdWxsc2NyZWVuLWJ0biAke2lzRnVsbFNjcmVlbiA/ICdmdWxsc2NyZWVuJyA6ICcnfWBcIlxyXG4gICAgICAgICAgQHRhcD1cInJlbmRlclNjcmlwdC5jaGFuZ2VWaWRlb1NjcmVlblwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvdmlldz5cclxuICA8L3ZpZXc+XHJcbjwvdGVtcGxhdGU+XHJcbjxzY3JpcHQ+XHJcbmltcG9ydCBzdG9yZSBmcm9tIFwiQC9zdG9yZS9pbmRleC5qc1wiO1xyXG5pbXBvcnQgJGh0dHAgZnJvbSBcIkAvY29uZmlnL3JlcXVlc3RDb25maWcuanNcIjtcclxuaW1wb3J0IHsgbWFwU3RhdGUsIG1hcE11dGF0aW9ucyB9IGZyb20gXCJ2dWV4XCI7XHJcblxyXG4vLyBpbXBvcnRTY3JpcHRzKCdAL3N0YXRpYy9hbGlwbGF5ZXIvYWxpcGxheWVyLW1pbi5qcycpXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBwcm9wczogW1wiY3VycmVudFZpZGVvXCIsIFwiY3VycmVudFZpZGVvTGlzdFwiXSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGxhdGZvcm06IG51bGwsXHJcbiAgICAgIGlzU2hvd1ZpZGVvdmlldzogZmFsc2UsXHJcbiAgICAgIC8v5b2T5YmN5piv5ZCm5piv5YWo5bGP5qih5byPXHJcbiAgICAgIGlzRnVsbFNjcmVlbjogZmFsc2UsXHJcbiAgICAgIGlzZnJlc2g6IGZhbHNlLFxyXG4gICAgICBpc0NoYW5nZTogZmFsc2UsXHJcbiAgICAgIGlzQ29udHJvbDogdHJ1ZSxcclxuICAgICAgdGltZXI6IG51bGwsXHJcbiAgICAgIHZpZGVvVGl0bGU6IFwiXCIsXHJcbiAgICAgIHZpZGVvTGlzdDogW10sXHJcbiAgICAgIGZpcnN0VGltZTogMCxcclxuICAgICAgb3B0aW9uczoge30sXHJcbiAgICAgIHBsYXlBdXRoOiBcIlwiLFxyXG4gICAgICBjdXJyZW50VGltZTogXCJcIixcclxuICAgICAgdmlkZW9JZDogXCJcIixcclxuICAgICAgdmlkZW9EYXRhOiB7fSxcclxuICAgICAgaXNTZXRGaXJzdFRpbWU6IGZhbHNlLFxyXG4gICAgICBzY3JlZW5UeXBlOiBudWxsLFxyXG4gICAgICB2aWRlb1VybDogbnVsbCxcclxuICAgICAgdmlkZW9UaW1lcjogbnVsbCxcclxuICAgICAgY3VyVGltZTogbnVsbCxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLi4ubWFwU3RhdGUoW1widmlkZW9Pc3NMaXN0XCJdKSxcclxuICB9LFxyXG5cclxuICB3YXRjaDoge1xyXG4gICAgY3VycmVudFZpZGVvOiB7XHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgICAgaGFuZGxlcihuZXdSb3V0ZSkge30sXHJcbiAgICB9LFxyXG4gICAgY3VyVGltZToge1xyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICAgIGhhbmRsZXIobmV3Um91dGUpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJUaW1lKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuY3VyVGltZSBhdCBsaW5lIDEzMTonLCB0aGlzLmN1clRpbWUpXHJcbiAgICAgICAgICB0aGlzLnJlY29yZFRpbWUoe1xyXG4gICAgICAgICAgICB0aW1lOiB0aGlzLmN1clRpbWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgdGltZXIobmV3VmFsdWUpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImNoaWxkLWV2ZW50XCIsIG5ld1ZhbHVlKTtcclxuICAgIH0sXHJcbiAgfSxcclxuXHJcbiAgLy8gLy/pobXpnaLmmL7npLpcclxuICBtb3VudGVkKCkge30sXHJcbiAgYXN5bmMgYmVmb3JlRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaGFuZGxlRW5kKCk7XHJcbiAgICBjb25zb2xlLmxvZyhcIuaYr+WQpui1sOWVpuS5oOmUgOavgVwiKTtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMudmlkZW9UaW1lcik7XHJcbiAgICB0aGlzLnZpZGVvVGltZXIgPSBudWxsO1xyXG4gICAgLy8gc3RvcmUuY29tbWl0KFwic2V0TG9hZGluZ1Nob3dcIiwgbnVsbCk7XHJcbiAgICBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwi5piv5ZCm6LWw5ZWm5Lmg6ZSA5q+B5a6a5pe25ZmoXCIsIHRoaXMudGltZXIpO1xyXG4gICAgYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuICB9LFxyXG4gIGFzeW5jIG9uVW5sb2FkKCkge1xyXG4gICAgdW5pLm5hdmlnYXRlVG8oe1xyXG4gICAgICB1cmw6IFwiL3BhZ2VzL2N1cnJpY3VsdW0vb3JkZXIvY3VycmljdWx1bS9iYWNrXCIsXHJcbiAgICB9KTtcclxuICAgIC8vICNpZmRlZiBBUFAtUExVU1xyXG4gICAgcGx1cy5zY3JlZW4ubG9ja09yaWVudGF0aW9uKFwicG9ydHJhaXQtcHJpbWFyeVwiKTsgLy/plIHmrbvlsY/luZXmlrnlkJHkuLrnq5blsY9cclxuXHJcbiAgICAvLyBwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpO1xyXG4gICAgLy8gI2VuZGlmXHJcblxyXG4gICAgLy8gdGhpcy5wbGF5ZXIuZGlzcG9zZSgpO1xyXG4gIH0sXHJcblxyXG4gIC8v56ys5LiA5qyh5Yqg6L29XHJcbiAgb25Mb2FkKG9wdGlvbnMpIHt9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICBvbnN0YXJ0KGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJvbnN0YXJ0OlwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xyXG4gICAgfSxcclxuICAgIG9ucGF1c2UoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIm9ucGF1c2U6XCIgKyBKU09OLnN0cmluZ2lmeShlKSk7XHJcbiAgICB9LFxyXG4gICAgb25maW5pc2goZSkge1xyXG4gICAgICB0aGlzLmhhbmRsZUVuZCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIm9uZmluaXNoOlwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xyXG4gICAgfSxcclxuICAgIG9uZmFpbChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwib25mYWlsOlwiICsgSlNPTi5zdHJpbmdpZnkoZSkpO1xyXG4gICAgfSxcclxuICAgIGZ1bGxzY3JlZW5jaGFuZ2UoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZ1bGxzY3JlZW5jaGFuZ2U6XCIgKyBKU09OLnN0cmluZ2lmeShlKSk7XHJcbiAgICB9LFxyXG4gICAgd2FpdGluZyhlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwid2FpdGluZzpcIiArIEpTT04uc3RyaW5naWZ5KGUpKTtcclxuICAgIH0sXHJcbiAgICB0aW1ldXBkYXRlKGUpIHtcclxuICAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGltZXVwZGF0ZTpcIiArIEpTT04uc3RyaW5naWZ5KGUpKTtcclxuICAgICAgdGhpcy52aWRlb1RpbWVyID0gbnVsbDtcclxuICAgICAgdGhpcy52aWRlb1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgICAgICB0aGF0LmN1clRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcbiAgICAgICAgLy8gdGhhdC5jdXJTdGF0dXMgPSB0aGlzLnBsYXllci5nZXRTdGF0dXMoKVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHBhcnNlSW50KGUuZGV0YWlsLmN1cnJlbnRUaW1lKTtcclxuICAgIH0sXHJcbiAgICBwbGF5KCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQucGxheSgpO1xyXG4gICAgfSxcclxuICAgIHBhdXNlKCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQucGF1c2UoKTtcclxuICAgIH0sXHJcbiAgICBzZWVrKCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQuc2VlaygyMCk7XHJcbiAgICB9LFxyXG4gICAgc3RvcCgpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LnN0b3AoKTtcclxuICAgIH0sXHJcbiAgICBmdWxsU2NyZWVuKCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQucmVxdWVzdEZ1bGxTY3JlZW4oe1xyXG4gICAgICAgIGRpcmVjdGlvbjogOTAsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGV4aXRGdWxsU2NyZWVuKCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQuZXhpdEZ1bGxTY3JlZW4oKTtcclxuICAgIH0sXHJcbiAgICBzZW5kRGFubXUoKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5zZW5kRGFubXUoe1xyXG4gICAgICAgIHRleHQ6IFwi6KaB5pi+56S655qE5by55bmV5paH5pysXCIsXHJcbiAgICAgICAgY29sb3I6IFwiI0ZGMDAwMFwiLFxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBwbGF5YmFja1JhdGUoKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5wbGF5YmFja1JhdGUoMik7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlVmlkZW9EYXRhKCkge1xyXG4gICAgICB0aGlzLmlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgY2hhbmdlVmlkZW8oZGF0YSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gXCJcIjtcclxuICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICB0aGlzLmlzU2V0Rmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgdGhpcy5pbml0KGRhdGEsIHRydWUpO1xyXG4gICAgfSxcclxuICAgIHNjcmVlbkNoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwic3RhdHVzIGF0IGxpbmUg6L+Z5piv5b2T5YmN55qE54q25oCBMTU4OlwiLFxyXG4gICAgICAgIGRhdGEuc3RhdHVzLFxyXG4gICAgICAgIGRhdGEucHJpbWFyeVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmlzRnVsbFNjcmVlbiA9ICFkYXRhLnN0YXR1cztcclxuICAgICAgdGhpcy4kZW1pdChcImNoYW5nZVNjcmVlblwiLCB0aGlzLmlzRnVsbFNjcmVlbik7XHJcbiAgICAgIC8vIGxldCBmdWxsU2NyZWVuID0gZS5kZXRhaWwuZnVsbFNjcmVlbjsgLy8g5YC8dHJ1ZeS4uui/m+WFpeWFqOWxj++8jGZhbHNl5Li66YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vIGlmICghZnVsbFNjcmVlbikge1xyXG4gICAgICAvLyAgIC8v6YCA5Ye65YWo5bGPXHJcbiAgICAgIC8vICAgdGhpcy5pc0Z1bGxTY3JlZW4gPSBmYWxzZTtcclxuICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgLy8gICB0aGlzLmlzRnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjqfliLblmajnmoTmmL7npLrpmpDol49cclxuICAgIGNvbnRyb2xDaGFuZ2UoZSkge1xyXG4gICAgICB0aGlzLmlzQ29udHJvbCA9IGUuZGV0YWlsLnNob3c7XHJcbiAgICB9LFxyXG4gICAgcXVpdFNjcmVlbigpIHtcclxuICAgICAgLy8g6YCA5Ye65YWo5bGPXHJcbiAgICAgIGNvbnN0IGN0eCA9IHRoaXMuJHJlZnMubXlWaWRlbztcclxuICAgICAgY3R4LmV4aXRGdWxsU2NyZWVuKCk7XHJcbiAgICB9LFxyXG4gICAgLy8g5pKt5pS+6L+b5bqm5pS55Y+YXHJcbiAgICB2aWRlb1RpbWVVcGRhdGVFdmVudChlKSB7XHJcbiAgICAgIHRoaXMucGxheVRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5jdXJyZW50VGltZSk7XHJcblxyXG4gICAgICB0aGlzLmFsbFRpbWUgPSBwYXJzZUludChlLmRldGFpbC5kdXJhdGlvbik7XHJcblxyXG4gICAgICB0aGlzLnJlY29yZFRpbWUoe1xyXG4gICAgICAgIHRpbWU6IHRoaXMucGxheVRpbWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGluaXQoZGF0YSwgaXNDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5wbGF0Zm9ybSA9IHRoaXMuJHBsYXRmb3JtO1xyXG4gICAgICB0aGlzLmlzZnJlc2ggPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImF0IGxpbmUgNTk6XCIsIFwi5piv5ZCm5YWI6LWwaW5pdOi/memHjFwiLCB0aGlzLnBsYXRmb3JtKTtcclxuICAgICAgaWYgKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkge1xyXG4gICAgICAgIHRoaXMudmlkZW9MaXN0ID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IGRhdGEuY3VycmVudFZpZGVvO1xyXG5cclxuICAgICAgdGhpcy52aWRlb0lkID0gdGhpcy5vcHRpb25zLnZpZGVvO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIui/meaYr+iLueaenOinhuWxj2lkXCIsIHRoaXMudmlkZW9JZCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0TGl2ZShpc0NoYW5nZSk7XHJcbiAgICAgIC8vICAgdGhpcy4kZW1pdChcImNoaWxkLWV2ZW50XCIsIHRoaXMudGltZXIpO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGdldERhdGEoZGF0YSwgaXNDaGFuZ2UpIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2V0Rmlyc3RUaW1lKSB7XHJcbiAgICAgICAgdmFyIG5ldFdvcmsgPSBkYXRhLnVzZXJDb3Vyc2VWaWRlb1Bvc2l0aW9uRW50aXR5XHJcbiAgICAgICAgICA/IGRhdGEudXNlckNvdXJzZVZpZGVvUG9zaXRpb25FbnRpdHkucG9zaXRpb25cclxuICAgICAgICAgIDogMDtcclxuICAgICAgICB2YXIgbGlzdCA9IFtdO1xyXG4gICAgICAgIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuICAgICAgICAgIGxpc3QgPSBKU09OLnBhcnNlKHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSk7XHJcbiAgICAgICAgICB2YXIgaW5kZXggPSBsaXN0LmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PSBkYXRhLmlkKTtcclxuXHJcbiAgICAgICAgICBpZiAobmV0V29yaykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlyc3RUaW1lID1cclxuICAgICAgICAgICAgICAgIGxpc3RbaW5kZXhdLnRpbWUgPiBuZXRXb3JrID8gbGlzdFtpbmRleF0udGltZSA6IG5ldFdvcms7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSBuZXRXb3JrID8gbmV0V29yayA6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSBsaXN0W2luZGV4XS50aW1lID8gbGlzdFtpbmRleF0udGltZSA6IDA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmlyc3RUaW1lID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudmlkZW9EYXRhID0ge1xyXG4gICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaXNDaGFuZ2UgPSBpc0NoYW5nZSA/IGlzQ2hhbmdlIDogZmFsc2U7XHJcbiAgICAgICAgLy8gdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZmlyc3RUaW1lO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlyc3RUaW1lLCBcIui/meaYr+esrOS4gOasoeaSreaUvuaXtumVvzIyMlwiKTtcclxuICAgICAgICAvLyBhd2FpdCB0aGlzLnNldFZpZGVvVGltZSgpO1xyXG4gICAgICAgIHVuaS5zZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XHJcblxyXG4gICAgICAgIC8vIGlmICh0aGlzLmN1cnJlbnRWaWRlby50eXBlID09IDAgfHwgdGhpcy5jdXJyZW50VmlkZW8udHlwZSA9PSAyKSB7XHJcbiAgICAgICAgLy8gICBhd2FpdCB0aGlzLnBsYXlWaWRlbygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmZpcnN0VGltZSwgXCLov5nmmK/nrKzkuIDmrKHmkq3mlL7ml7bplb9cIik7XHJcblxyXG4gICAgICAgIHRoaXMuaXNTZXRGaXJzdFRpbWUgPSB0cnVlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdFZpZGVvKCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgaW5pdFZpZGVvKCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB1bmkuY3JlYXRlVmlkZW9Db250ZXh0KFwidmlkZW8xXCIsIHRoaXMpO1xyXG4gICAgICBpZiAodGhpcy5pc1NldEZpcnN0VGltZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0LnNlZWsodGhpcy5maXJzdFRpbWUpO1xyXG4gICAgICAgICAgdGhpcy5zZXRWaWRlb0ZpcnRzZXRUaW1lKCk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICByZWNvcmRUaW1lKGRhdGEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZSA9IGRhdGEudGltZTtcclxuXHJcbiAgICAgIHZhciBsaXN0ID0gW107XHJcbiAgICAgIGlmICh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpIHtcclxuICAgICAgICBsaXN0ID0gSlNPTi5wYXJzZSh1bmkuZ2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIikpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2YXIgaW5kZXggPSBsaXN0LmZpbmRJbmRleCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcbiAgICAgIGlmIChsaXN0Lmxlbmd0aCA+IDAgJiYgaW5kZXggPj0gMCkge1xyXG4gICAgICAgIGxpc3RbaW5kZXhdID0ge1xyXG4gICAgICAgICAgLi4udGhpcy52aWRlb0RhdGEsXHJcblxyXG4gICAgICAgICAgdGltZTogZGF0YS50aW1lLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGlzdC5wdXNoKHtcclxuICAgICAgICAgIC4uLnRoaXMudmlkZW9EYXRhLFxyXG4gICAgICAgICAgdGltZTogZGF0YS50aW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB1bmkuc2V0U3RvcmFnZVN5bmMoXCJ2aWRlb09zc0xpc3RcIiwgSlNPTi5zdHJpbmdpZnkobGlzdCkpO1xyXG4gICAgfSxcclxuICAgIC8vIOiOt+WPluaVsOaNrlxyXG4gICAgYXN5bmMgZ2V0TGl2ZShpc0NoYW5nZSkge1xyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgIHRoaXMuaXNmcmVzaCA9IGZhbHNlO1xyXG4gICAgICB2YXIgZGF0YSA9IHtcclxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBhd2FpdCAkaHR0cFxyXG4gICAgICAgIC5yZXF1ZXN0KHtcclxuICAgICAgICAgIHVybDogYHNvY2lvbG9neS9jb3Vyc2UvY2hlY2tWaWRlb2AsXHJcbiAgICAgICAgICBtZXRob2Q6IFwiUG9zdFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgaGVhZGVyOiB7XHJcbiAgICAgICAgICAgIC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICAgICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgICAgIC4uLnJlcy52aWRlbyxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50VmlkZW8udHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgIHZhciBwbGF5QXV0aCA9IHJlcy52aWRlby5wbGF5QXV0aC5yZXBsYWNlKC89L2csIFwiXCIpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIui/meaYr+aOpeWPo+iOt+WPlueahOinhuWxj+WHreivgTExMVwiLCByZXMudmlkZW8pO1xyXG4gICAgICAgICAgICBkYXRhID0ge1xyXG4gICAgICAgICAgICAgIC4uLmRhdGEsXHJcbiAgICAgICAgICAgICAgdmlkZW9JZDogcmVzLnZpZGVvLnZpZGVvLFxyXG4gICAgICAgICAgICAgIHBsYXlBdXRoOiBwbGF5QXV0aCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5wbGF5QXV0aCA9IHBsYXlBdXRoO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhhdC5nZXREYXRhKGRhdGEsIGlzQ2hhbmdlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6L+Z5piv5o6l5Y+j6I635Y+W55qE6KeG5bGP5Yet6K+BMjIyXCIsIHJlcy52aWRlbywgZGF0YSk7XHJcbiAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgICBwbGF5QXV0aDogbmV3IERhdGUoKS5nZXRUaW1lKCksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGF3YWl0IHRoYXQuZ2V0RGF0YShkYXRhLCBpc0NoYW5nZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIuaYr+WQpuiOt+WPluWIsOWIneWni+aSreaUvuWAvFwiLCBkYXRhKTtcclxuXHJcbiAgICAgICAgICB0aGF0LiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIGhhbmRsZUVuZCgpIHtcclxuICAgICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKSkpO1xyXG4gICAgICB2YXIgZGF0YSA9IGxpc3QuZmluZCgoZSkgPT4gZS5pZCA9PSB0aGlzLnZpZGVvRGF0YS5pZCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWUgPSBkYXRhLnRpbWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwidGhpcy5jdXJyZW50VGltZSBhdCBsaW5lIOi/meaYr+e7k+adn+eahOaXtuWAmeaOieeahOWtmOWCqOinhumikTpcIixcclxuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuICAgIH0sXHJcbiAgICBzZXRWaWRlb1RpbWUodGltZSkge1xyXG4gICAgICB2YXIgZGF0YSA9IHt9O1xyXG4gICAgICAvLyB2YXIgbGlzdCA9IHVuaS5nZXRTdG9yYWdlU3luYyhcInZpZGVvT3NzTGlzdFwiKTtcclxuXHJcbiAgICAgIC8vIGRhdGEgPSBsaXN0LmZpbmQoKGUpID0+IGUuaWQgPT0gdGhpcy52aWRlb0RhdGEuaWQpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIui/meaYr+WGjei1sOeUn+WRveWRqOacn+WTplwiLCB0aGlzLmN1cnJlbnRUaW1lKTtcclxuICAgICAgY29uc29sZS5sb2coXCLmmK/lkKbotbDkuoblrZjlgqjop4blsY8sXCIgKyB0aGlzLnZpZGVvRGF0YS5pZCwgdGhpcy5jdXJyZW50VGltZSk7XHJcbiAgICAgIHZhciBkYXRhID0ge1xyXG4gICAgICAgIHZpZGVvSWQ6IHRoaXMudmlkZW9EYXRhLmlkLFxyXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLmN1cnJlbnRUaW1lLCAvL+enkuaVsFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgJGh0dHBcclxuICAgICAgICAucmVxdWVzdCh7XHJcbiAgICAgICAgICB1cmw6IGBzb2Npb2xvZ3kvY291cnNlL3NhdmVDb3Vyc2VQb3NpdGlvbmAsXHJcbiAgICAgICAgICBtZXRob2Q6IFwiUG9zdFwiLCAvLyBQT1NU44CBR0VU44CBUFVU44CBREVMRVRF77yM5YW35L2T6K+05piO5p+l55yL5a6Y5pa55paH5qGjXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgaGVhZGVyOiB7XHJcbiAgICAgICAgICAgIC8v6buY6K6kIOaXoCDor7TmmI7vvJror7fmsYLlpLRcclxuICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCLlrZjlgqjop4blsY/ml7bplb/mjqXlj6Pov5Tlm57kv6Hmga9cIiwgcmVzKTtcclxuICAgICAgICAgIHRoaXMuJGZvcmNlVXBkYXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlUGxheWVyVGltZShwbGF5ZXIpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzLmZpcnN0VGltZSBhdCBsaW5lIDEwNjpcIiwgdGhpcy5maXJzdFRpbWUpO1xyXG4gICAgICBwbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcbiAgICB9LFxyXG4gICAgZ29CYWNrKCkge1xyXG4gICAgICB1bmkubmF2aWdhdGVCYWNrKHtcclxuICAgICAgICBkZWx0YTogMSxcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHNldFZpZGVvRmlydHNldFRpbWUodGltZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5maXJzdFRpbWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi6L+Z6YeM5YeG5aSH5byA5aeL6K6+572u5pKt5pS+5pe26Ze0OlwiLCB0aGlzLmN1cnJlbnRUaW1lKTtcclxuICAgICAgLy8gYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIC8vIGNsZWFySW50ZXJ2YWwodGhpcy4kc3RvcmUuc3RhdGUudmlkZW9UaW1lcik7XHJcblxyXG4gICAgICBzdG9yZS5jb21taXQoXHJcbiAgICAgICAgXCJzZXRWaWRlb1RpbWVyXCIsXHJcbiAgICAgICAgc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuY3VycmVudFRpbWUpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VmlkZW9UaW1lKCk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfSwgNjAwMDApXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIH0sIDUwMDApO1xyXG4gICAgfSxcclxuICB9LFxyXG5cclxuICBjcmVhdGVkKCkge30sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHNjcmlwdCBtb2R1bGU9XCJyZW5kZXJTY3JpcHRcIiBsYW5nPVwicmVuZGVyanNcIj5cclxuXHRpbXBvcnQgJCBmcm9tICdqcXVlcnknXHJcblx0Ly8gIGltcG9ydCBTdGF0aWNBRENvbXBvbmVudCBmcm9tICcuL3N0YXRpY2FkY29tcG9uZW50L2luZGV4LmpzJztcclxuXHQvKipcclxuXHQgKiDpnZnmgIHlub/lkYrnu4Tku7ZcclxuXHQgKi9cclxuXHJcblxyXG5cdGV4cG9ydCBkZWZhdWx0IHtcclxuXHRcdC8qKlxyXG5cdFx0ICog6Z2Z5oCB5bm/5ZGK57uE5Lu2XHJcblx0XHQgKi9cclxuXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdC8vIE15Q29tcG9uZW50XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0Ly8g5Zyo6YCC5ZCI55qE55Sf5ZG95ZGo5pyf77yM6YCa6L+Hc2NyaXB05ZKMbGlua+agh+etvuW8leWFpeaSreaUvuWZqHNka+OAgWNzc1xyXG5cdFx0XHRjb25zb2xlLmxvZyh0aGlzLm9wdGlvbnMsICfov5nmmK9tb250ZWQnKVxyXG5cdFx0XHQvLyB0aGlzLmxvYWRXZWJQbGF5ZXJTREsoKVxyXG5cdFx0XHQvLyB0aGlzLmxvYWRDb21wb25lbnQoKVxyXG5cdFx0fSxcclxuXHRcdGRhdGEoKSB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0cGxheWVyOiBudWxsLFxyXG5cdFx0XHRcdHZpZGVvVGltZXI6IG51bGwsXHJcblx0XHRcdFx0Y3VyVGltZTogbnVsbCxcclxuXHRcdFx0XHQvLyBmaXJzdFRpbWU6IG51bGwsXHJcblx0XHRcdFx0Y3VyU3RhdHVzOiBudWxsLFxyXG5cdFx0XHRcdC8vIGN1cnJlbnRUaW1lOm51bGwsXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cclxuXHRcdHdhdGNoOiB7XHJcblxyXG5cclxuXHRcdFx0Y3VyVGltZSh2YWwpIHtcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuY3VyVGltZSAhPT0gbnVsbCAmJiB0aGlzLmN1clN0YXR1cyAhPT0gbnVsbCkge1xyXG5cdFx0XHRcdHRoaXMucmVcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0bWV0aG9kczoge1xyXG5cclxuXHRcdFx0aGFuZGxlQ2xpY2soZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm5LqG6LWw5LqG54K55Ye7dmlkZW/kuovku7YnLCBldmVudClcclxuXHRcdFx0XHQvLyAgICAgICAgICAgICB0aGlzLnBsYXllci5vbigncmVhZHknLGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0Ly8gICAgdmFyIHN0YXR1cz0gIHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLmdldElzRnVsbFNjcmVlbigpXHJcblx0XHRcdFx0Ly8gICAgY29uc29sZS5sb2coJ3N0YXR1cyBhdCBsaW5lIDQwMzonLCBzdGF0dXMpXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ+inpuWPkeeCueWHu+S6i+S7ticsc3RhdHVzKSlcclxuXHRcdFx0XHQvLyAgIH0pXHJcblxyXG5cdFx0XHRcdC8vIG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnZ2V0RGF0YScpXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRlbWl0RGF0YShldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHJcblx0XHRcdFx0b3duZXJJbnN0YW5jZS5jYWxsTWV0aG9kKCdyZWNvcmRUaW1lJywge1xyXG5cdFx0XHRcdFx0dGltZTogdGhhdC5jdXJUaW1lLFxyXG5cdFx0XHRcdFx0c3RhdHVzOiB0aGF0LmN1clN0YXR1c1xyXG5cdFx0XHRcdH0pXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdGFzeW5jIHJlY2VpdmVGaXJzdFRpbWUobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cclxuXHRcdFx0XHQvLyBpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHQvLyAvLyB0aGlzLmZpcnN0VGltZT1uZXdWYWx1ZTtcclxuXHRcdFx0XHQvLyAvLyBjb25zb2xlLmxvZygn6L+Z5piv5Yid5aeL5pKt5pS+5pe26Ze0MTExJywgdGhpcy5maXJzdFRpbWUsdGhpcy5wbGF5ZXIpXHJcblx0XHRcdFx0Ly8gLy8gIGF3YWl0IHRoaXMucGxheWVyLnNlZWsobmV3VmFsdWUpO1xyXG5cdFx0XHRcdC8vICBhd2FpdCB0aGlzLiRyZWZzLnZpZGVvQ29udGVudDQuY2xpY2soKVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIH1cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyByZWNlaXZlaXNTZXRGaXJzdFRpbWUobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmmK/lkKbliJrlvIDlp4vorr7nva7mkq3mlL7ml7bpl7QnLCBuZXdWYWx1ZSwgdGhpcy5maXJzdFRpbWUsIHRoaXMucGxheWVyKTtcclxuXHRcdFx0XHQvLyBpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHRcdFx0XHQvLyBcdC8vIHRoaXMuZmlyc3RUaW1lPW5ld1ZhbHVlO1xyXG5cdFx0XHRcdC8vIFx0Ly8gYXdhaXQgdGhpcy5wbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdC8vIH1cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0ZW1pdFNldERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2Vlayh0aGlzLmZpcnN0VGltZSlcclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm6K6+572u55qE56ys5LiA5qyh5Yid5aeL5pKt5pS+JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhLmlkKTtcclxuXHJcblxyXG5cdFx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnc2V0VmlkZW9GaXJ0c2V0VGltZScpXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRjaGFuZ2VWaWRlb1NjcmVlbihldmVudCwgb3duZXJJbnN0YW5jZSkge1xyXG5cdFx0XHRcdHZhciB0aGF0ID0gdGhpcztcclxuXHRcdFx0XHQvLyB0aGlzLiRlbWl0KCdjaGFuZ2VTY3JlZW5Mb2FkaW5nJyx0cnVlKVxyXG5cdFx0XHRcdHZhciBzdGF0dXMgPSB0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5nZXRJc0Z1bGxTY3JlZW4oKTtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ3NjcmVlbkNoYW5nZScsIHtcclxuXHRcdFx0XHRcdHN0YXR1czogc3RhdHVzLFxyXG5cdFx0XHRcdFx0cHJpbWFyeTogc3RhdHVzID8gJ3BvcnRyYWl0JyA6ICdsYW5kc2NhcGUnXHJcblx0XHRcdFx0fSlcclxuXHJcblxyXG5cdFx0XHRcdGlmIChzdGF0dXMpIHtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJwb3J0cmFpdC1wcmltYXJ5XCIpOyAvL+mUgeatu+Wxj+W5leaWueWQkeS4uuerluWxj1xyXG5cdFx0XHRcdFx0XHR0aGlzLnBsYXllci5mdWxsc2NyZWVuU2VydmljZS5jYW5jZWxGdWxsU2NyZWVuKCk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGVtaXQoJ2NoYW5nZVNjcmVlbkxvYWRpbmcnLGZhbHNlKTtcclxuXHJcblxyXG5cdFx0XHRcdFx0fSwgMTAwKTtcclxuXHJcblxyXG5cdFx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2V0UGxheWVyU2l6ZSgnMTAwJScsJzIwMHB4Jyk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gICAgICAgICAgICAgICB0aGlzLnBsYXllci5zZXRQbGF5ZXJTaXplKHtcclxuXHRcdFx0XHRcdC8vICAgdzpcIjQwMHB4XCIsXHJcblx0XHRcdFx0XHQvLyAgIGhlaWdodDonNjAlJ1xyXG5cdFx0XHRcdFx0Ly8gIH0pO1xyXG5cdFx0XHRcdFx0Ly8gcGx1cy5zY3JlZW4udW5sb2NrT3JpZW50YXRpb24oKTtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLnJlcXVlc3RGdWxsU2NyZWVuKCk7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kZW1pdCgnY2hhbmdlU2NyZWVuTG9hZGluZycsZmFsc2UpO1xyXG5cdFx0XHRcdFx0XHRwbHVzLnNjcmVlbi5sb2NrT3JpZW50YXRpb24oXCJsYW5kc2NhcGUtcHJpbWFyeVwiKTtcclxuXHJcblx0XHRcdFx0XHR9LCAxMDApO1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0Y2hhbmdlVmlkZW9EYXRhKGV2ZW50LCBvd25lckluc3RhbmNlKSB7XHJcblx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cclxuXHRcdFx0XHRvd25lckluc3RhbmNlLmNhbGxNZXRob2QoJ2NoYW5nZVZpZGVvRGF0YScsIClcclxuXHRcdFx0fSxcclxuXHRcdFx0ZW5kRW1pdERhdGEoZXZlbnQsIG93bmVySW5zdGFuY2UpIHtcclxuXHRcdFx0XHR2YXIgdGhhdCA9IHRoaXM7XHJcblxyXG5cdFx0XHRcdG93bmVySW5zdGFuY2UuY2FsbE1ldGhvZCgnaGFuZGxlRW5kJywgKVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRnZXRMaXZlKCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfov5nmmK/ov5nlj6rlj6rmmK82NjY2NjY6JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhKVxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5wbGF5ZXIpIHtcclxuXHJcblx0XHRcdFx0XHR0aGlzLnBsYXllci5kaXNwb3NlKCk7XHJcblx0XHRcdFx0XHQkKCcjdXJsLXBsYXllci10ZXN0JykuZW1wdHkoKTtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyID0gbnVsbDtcclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblxyXG5cdFx0XHRcdHZhciBmdWxsU2NyZWVuQnV0dG9uQ29tcG9uZW50ID0gQWxpcGxheWVyLkNvbXBvbmVudCh7XHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOWIneWni+WHveaVsO+8jOWcqG5ld+WvueixoeaXtuiwg+eUqFxyXG5cdFx0XHRcdFx0ICpcclxuXHRcdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBhZEFkZHJlc3MgLSDlub/lkYrop4bpopHlnLDlnYBcclxuXHRcdFx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB0b0FkZHJlc3MgLSDlub/lkYrpk77mjqXlnLDlnYBcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0aW5pdDogZnVuY3Rpb24oc3RhdHVzLCB0b0FkZHJlc3MpIHtcclxuXHJcblx0XHRcdFx0XHRcdHRoaXMuZnVsbFNjcmVlblN0YXR1cyA9IHN0YXR1c1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLmFkQWRkcmVzcyA9IGFkQWRkcmVzcztcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy50b0FkZHJlc3MgPSB0b0FkZHJlc3M7XHJcblxyXG5cdFx0XHRcdFx0XHR0aGlzLiRodG1sID0gJCgnLmZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyJyk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuaGlkZSgpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOWIm+W7uuW5v+WRikRvbeWFg+e0oFxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRjcmVhdGVFbDogZnVuY3Rpb24oZWwpIHtcclxuXHJcblxyXG5cdFx0XHRcdFx0XHR0aGlzLiRodG1sLmZpbmQoJy5hZCcpLmF0dHIoJ3NyYycsIHRoaXMuYWRBZGRyZXNzKTtcclxuXHRcdFx0XHRcdFx0dmFyICRhZFdyYXBwZXIgPSB0aGlzLiRodG1sLmZpbmQoJy5hZC13cmFwcGVyJyk7XHJcblx0XHRcdFx0XHRcdCRhZFdyYXBwZXIuYXR0cignaHJlZicsIHRoaXMudG9BZGRyZXNzKTtcclxuXHRcdFx0XHRcdFx0JGFkV3JhcHBlci5jbGljayhmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyBBbGlwbGF5ZXIudXRpbC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuZmluZCgnLmNsb3NlJykuY2xpY2soZnVuY3Rpb24gKCkge1xyXG5cdFx0XHRcdFx0XHQvLyAgIHRoaXMuJGh0bWwuaGlkZSgpO1xyXG5cdFx0XHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0XHRcdFx0Ly8gJChlbCkuZmluZCgnLnByaXNtLWNvbnRyb2xiYXInKS5hcHBlbmQodGhpcy4kaHRtbCk7XHJcblx0XHRcdFx0XHRcdCQoZWwpLmZpbmQoJy5wcmlzbS10aW1lLWRpc3BsYXknKS5hZnRlcih0aGlzLiRodG1sKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRyZWFkeTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuaGlkZSgpXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDpmpDol4/lub/lkYpcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0cGxheTogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC8qKlxyXG5cdFx0XHRcdFx0ICog5pi+56S65bm/5ZGKXHJcblx0XHRcdFx0XHQgKi9cclxuXHRcdFx0XHRcdHBhdXNlOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5zaG93KCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0LyoqXHJcblx0XHRcdFx0XHQgKiDpmpDol4/lub/lkYpcclxuXHRcdFx0XHRcdCAqL1xyXG5cdFx0XHRcdFx0cGxheWluZzogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0XHQvLyB0aGlzLiRodG1sLmhpZGUoKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR3YWl0aW5nOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHtcclxuXHRcdFx0XHRcdFx0Ly8gdGhpcy4kaHRtbC5oaWRlKClcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR0aW1ldXBkYXRlOiBmdW5jdGlvbihwbGF5ZXIsIGUpIHt9LFxyXG5cdFx0XHRcdFx0ZXJyb3I6IGZ1bmN0aW9uKHBsYXllciwgZSkge30sXHJcblx0XHRcdFx0XHQvKipcclxuXHRcdFx0XHRcdCAqIOaYvuekuuW5v+WRilxyXG5cdFx0XHRcdFx0ICovXHJcblx0XHRcdFx0XHRlbmRlZDogZnVuY3Rpb24ocGxheWVyLCBlKSB7XHJcblx0XHRcdFx0XHRcdC8vIHRoaXMuJGh0bWwuc2hvdygpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRjb25zb2xlLmxvZygndGhpcy5jdXJyZW50VmlkZW9MaXN0IGF0IGxpbmUgNDU2MTExMTExMTExMTExMTExMTExMTExOicsIHRoaXMudmlkZW9MaXN0KVxyXG5cclxuXHJcblx0XHRcdFx0dmFyIHBsYXllck9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRpZDogXCJ1cmwtcGxheWVyLXRlc3RcIixcclxuXHRcdFx0XHRcdFwidmlkXCI6IHRoaXMudmlkZW9EYXRhXHJcblx0XHRcdFx0XHRcdC52aWRlb0lkLCAvLyDlv4XpgInlj4LmlbDvvIzlj6/ku6XpgJrov4fngrnmkq3mjqfliLblj7DvvIjot6/lvoTvvJrlqpLotYTlupM+6Z+zL+inhumike+8ieafpeivouOAguekuuS+i++8mjFlMDY3YTI4MzFiNjQxZGI5MGQ1NzBiNjQ4MGYqKioq44CCXHJcblxyXG5cdFx0XHRcdFx0d2lkdGg6ICcxMDAlJywgLy/lrrnlmajnmoTlpKflsI9cclxuXHRcdFx0XHRcdC8vIHZpZGVvV2lkdGg6ICcxMDB2dycsIC8v5a655Zmo55qE5aSn5bCPXHJcblx0XHRcdFx0XHQvLyB2aWRlb0hlaWdodDogJzEwMHZoJywgLy/lrrnlmajnmoTlpKflsI9cclxuXHRcdFx0XHRcdGhlaWdodDogJzEwMCUnLCAvL+WuueWZqOeahOWkp+Wwj1xyXG5cdFx0XHRcdFx0cGxheXNpbmxpbmU6IHRydWUsXHJcblx0XHRcdFx0XHRjb250cm9sQmFyVmlzaWJpbGl0eTogXCJjbGlja1wiLFxyXG5cdFx0XHRcdFx0Y292ZXI6IFwiXCIsXHJcblx0XHRcdFx0XHRjb21wb25lbnRzOiBbXHJcblx0XHRcdFx0XHRcdC8vICB7XHJcblx0XHRcdFx0XHRcdC8vICAgbmFtZTogJ0J1bGxldFNjcmVlbkNvbXBvbmVudCcsXHJcblx0XHRcdFx0XHRcdC8vICAgdHlwZTogQWxpUGxheWVyQ29tcG9uZW50LkJ1bGxldFNjcmVlbkNvbXBvbmVudCxcclxuXHRcdFx0XHRcdFx0Ly8gICAvKiogRGVzY3JpcHRpb25zIG9mIHRoZSBzY3JvbGxpbmcgdGV4dCBjb21wb25lbnQgcGFyYW1ldGVyczogdGV4dCwgc3R5bGUsIGJ1bGxldFBvc2l0aW9uXHJcblx0XHRcdFx0XHRcdC8vICAgICogdGV4dDogVGhlIHNjcm9sbGluZyB0ZXh0XHJcblx0XHRcdFx0XHRcdC8vICAgICogc3R5bGU6IFRoZSBzdHlsZSBvZiB0aGUgc2Nyb2xsaW5nIHRleHRcclxuXHRcdFx0XHRcdFx0Ly8gICAgKiBidWxsZXRQb3NpdGlvbjogVGhlIHBvc2l0aW9uIG9mIHRoZSBzY3JvbGxpbmcgdGV4dC4gVmFsaWQgdmFsdWVzOiAndG9wJywgJ2JvdHRvbScsIGFuZCAncmFuZG9tJy4gVGhlIGRlZmF1bHQgaXMgJ3JhbmRvbScuXHJcblx0XHRcdFx0XHRcdC8vICAgICovXHJcblx0XHRcdFx0XHRcdC8vICAgYXJnczogWydodHRwOi8vMTAxLjIwMS4xNDYuMTY1OjgwODgvUGYtRUgvc3RhdGljcy91cGxvYWRGaWxlLzIwMjQtMDUtMTAvYjBmNDIwYzctOTE3OC00MWFkLTlkZDYtZjU5YTY0YTZlMTkwLnBuZyddXHJcblx0XHRcdFx0XHRcdC8vIH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnYWRDb21wb25lbnQnLFxyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IGZ1bGxTY3JlZW5CdXR0b25Db21wb25lbnQsXHJcblx0XHRcdFx0XHRcdFx0YXJnczogW1xyXG5cdFx0XHRcdFx0XHRcdFx0J2h0dHA6Ly8xMDEuMjAxLjE0Ni4xNjU6ODA4OC9QZi1FSC9zdGF0aWNzL3VwbG9hZEZpbGUvMjAyNC0wNS0xMC9iMGY0MjBjNy05MTc4LTQxYWQtOWRkNi1mNTlhNjRhNmUxOTAucG5nJ1xyXG5cdFx0XHRcdFx0XHRcdF1cclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdSYXRlQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBBbGlQbGF5ZXJDb21wb25lbnQuUmF0ZUNvbXBvbmVudFxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cclxuXHJcblx0XHRcdFx0XHRcdC8vIHtcclxuXHRcdFx0XHRcdFx0Ly8gICBuYW1lOiAnUm90YXRlTWlycm9yQ29tcG9uZW50JyxcclxuXHRcdFx0XHRcdFx0Ly8gICB0eXBlOiBBbGlQbGF5ZXJDb21wb25lbnQuUm90YXRlTWlycm9yQ29tcG9uZW50XHJcblx0XHRcdFx0XHRcdC8vIH0sXHJcblxyXG5cclxuXHRcdFx0XHRcdF0sXHJcblxyXG5cdFx0XHRcdFx0c2tpbkxheW91dDogW3tcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcImJpZ1BsYXlCdXR0b25cIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDMwLFxyXG5cdFx0XHRcdFx0XHRcdHk6IDgwXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcIkg1TG9hZGluZ1wiLFxyXG5cdFx0XHRcdFx0XHRcdGFsaWduOiBcImNjXCJcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiZXJyb3JEaXNwbGF5XCIsXHJcblx0XHRcdFx0XHRcdFx0YWxpZ246IFwidGxhYnNcIixcclxuXHRcdFx0XHRcdFx0XHR4OiAwLFxyXG5cdFx0XHRcdFx0XHRcdHk6IDBcclxuXHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IFwiaW5mb0Rpc3BsYXlcIlxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogXCJ0b29sdGlwXCIsXHJcblx0XHRcdFx0XHRcdFx0YWxpZ246IFwiYmxhYnNcIixcclxuXHRcdFx0XHRcdFx0XHR4OiAwLFxyXG5cdFx0XHRcdFx0XHRcdHk6IDU2XHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcInRodW1ibmFpbFwiXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiBcImNvbnRyb2xCYXJcIixcclxuXHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdHg6IDAsXHJcblx0XHRcdFx0XHRcdFx0eTogMCxcclxuXHRcdFx0XHRcdFx0XHRjaGlsZHJlbjogW3tcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJwcm9ncmVzc1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJibGFic1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiA0NFxyXG5cdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJwbGF5QnV0dG9uXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcInRsXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDE1LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiAxMlxyXG5cdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJ0aW1lRGlzcGxheVwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhbGlnbjogXCJ0bFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR4OiAxMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eTogN1xyXG5cdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHtuYW1lOiBcImZ1bGxTY3JlZW5CdXR0b25cIiwgYWxpZ246IFwidHJcIiwgeDogMTAsIHk6IDEyfSxcclxuXHRcdFx0XHRcdFx0XHRcdC8vIHtuYW1lOlwic3VidGl0bGVcIiwgYWxpZ246XCJ0clwiLHg6MTUsIHk6MTJ9LFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gXHRuYW1lOiBcInNldHRpbmdcIixcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0YWxpZ246IFwidHJcIixcclxuXHRcdFx0XHRcdFx0XHRcdC8vIFx0eDogMTUsXHJcblx0XHRcdFx0XHRcdFx0XHQvLyBcdHk6IDEyXHJcblx0XHRcdFx0XHRcdFx0XHQvLyB9LFxyXG5cdFx0XHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBcInByaXNtLXNwZWVkLXNlbGVjdG9yXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduOiBcInRyXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHg6IDE1LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR5OiAxMlxyXG5cdFx0XHRcdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bmFtZTogXCJ2b2x1bWVcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWxpZ246IFwidHJcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0eDogNSxcclxuXHRcdFx0XHRcdFx0XHRcdFx0eTogMTBcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRdXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdF1cclxuXHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdFx0aWYgKHRoaXMudmlkZW9EYXRhLnR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0cGxheWVyT3B0aW9ucyA9IHtcclxuXHRcdFx0XHRcdFx0Li4ucGxheWVyT3B0aW9ucyxcclxuICAgICAgICAgICAgXCJwbGF5YXV0aFwiOiB0aGlzLnZpZGVvRGF0YS5wbGF5QXV0aCwgLy8g5b+F6YCJ5Y+C5pWw77yM5Y+C5pWw5YC85Y+v6YCa6L+H6LCD55SoR2V0VmlkZW9QbGF5QXV0aOaOpeWPo+iOt+WPluOAglxyXG5cdFx0XHRcdFx0XHRcImVuY3J5cHRUeXBlXCI6IDEsIC8vIOW/hemAieWPguaVsO+8jOW9k+aSreaUvuengeacieWKoOWvhua1geaXtumcgOimgeiuvue9ruacrOWPguaVsOWAvOS4ujHjgILlhbblroPmg4XlhrXml6DpnIDorr7nva7jgIJcclxuXHRcdFx0XHRcdFx0XCJwbGF5Q29uZmlnXCI6IHtcclxuXHRcdFx0XHRcdFx0XHRcIkVuY3J5cHRUeXBlXCI6ICdBbGl5dW5Wb0RFbmNyeXB0aW9uJ1xyXG5cdFx0XHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHBsYXllck9wdGlvbnMgPSB7XHJcblx0XHRcdFx0XHRcdC4uLnBsYXllck9wdGlvbnMsXHJcblx0XHRcdFx0XHRcdHNvdXJjZTogdGhpcy52aWRlb0RhdGEudmlkZW9VcmxcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dmFyIHBsYXllciA9IG5ldyBBbGlwbGF5ZXIocGxheWVyT3B0aW9ucywgZnVuY3Rpb24ocGxheWVyKSB7IH0pO1xyXG5cdHRoaXMucGxheWVyID0gcGxheWVyO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCfmmK/lkKbmi7/liLDnrKzkuIDmrKHliJ3lp4vlgLzlkaInLHRoaXMucGxhdGZvcm0sIHR5cGVvZiB0aGlzLmZpcnN0VGltZSwgdGhpcy5maXJzdFRpbWUpXHJcbmlmKHRoaXMucGxhdGZvcm0gPT0gJ2lvcycpe1xyXG4gIHBsYXllci5vbignY2FucGxheScsZnVuY3Rpb24oKXtcclxuICAgIGNvbnNvbGUubG9nKCfov5nmmK9pb3PmlbDmja7nvJPlhrLliJ3mrKHorr7nva7mkq3mlL7kvY3nva7liKTmlq3vvIHvvIHvvIHvvIEnKVxyXG4gICAgdGhpcy5wbGF5ZXIuc2VlaygyMCk7XHJcbiAgICAgIH0pXHJcbi8vICAgdmFyIHNlZWtlZCA9IGZhbHNlO1xyXG4vLyBwbGF5ZXIub24oJ2xvYWRlZG1ldGFkYXRhJyxmdW5jdGlvbiAgKGUpIHtcclxuLy8gICBpZighc2Vla2VkKVxyXG4vLyAgIHtcclxuLy8gICAgIHNlZWtlZCA9IHRydWU7XHJcbi8vICAgICB0aGlzLnBsYXllci5zZWVrKDIwKTtcclxuLy8gICB9XHJcbi8vIH0pO1xyXG4gIC8vIHBsYXllci5vbignd2FpdGluZycsZnVuY3Rpb24oKXtcclxuICAvLyAgIGNvbnNvbGUubG9nKCfov5nmmK9pb3PmlbDmja7nvJPlhrLliJ3mrKHorr7nva7mkq3mlL7kvY3nva7liKTmlq3vvIHvvIHvvIHvvIEnKVxyXG4gIC8vICAgc2V0VGltZW91dCgoKT0+e1xyXG4gIC8vICAgICAgcGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpXHJcbiAgLy8gICB9LDUwMClcclxuXHJcbiAgLy8gICAgIH0pXHJcbn1lbHNle1xyXG4gIHRoaXMucGxheWVyLnNlZWsodGhpcy5maXJzdFRpbWUpXHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgIC8vIHZhciBzZWVrZWQgPSBmYWxzZTtcclxuLy8gICAgICAgICB0aGlzLnBsYXllci5vbignbG9hZGVkbWV0YWRhdGEnLGZ1bmN0aW9uICAoZSkge1xyXG4vLyAgIGlmKCFzZWVrZWQpXHJcbi8vICAge1xyXG4vLyAgICAgc2Vla2VkID0gdHJ1ZTtcclxuLy8gICAgIHBsYXllci5zZWVrKHRoaXMuZmlyc3RUaW1lKTtcclxuLy8gICB9XHJcbi8vIH0pO1xyXG5cclxuXHJcblxyXG5cclxuXHRcdFx0XHRjbGVhckludGVydmFsKHRoaXMudmlkZW9UaW1lcik7XHJcblxyXG5cdFx0XHRcdHRoaXMudmlkZW9UaW1lciA9IG51bGw7XHJcblx0XHRcdFx0dGhpcy52aWRlb1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG5cdFx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzO1xyXG5cdFx0XHRcdFx0dGhhdC5jdXJUaW1lID0gcGFyc2VJbnQodGhpcy5wbGF5ZXIuZ2V0Q3VycmVudFRpbWUoKSk7XHJcblx0XHRcdFx0XHR0aGF0LmN1clN0YXR1cyA9IHRoaXMucGxheWVyLmdldFN0YXR1cygpXHJcblxyXG5cclxuXHRcdFx0XHR9LCAxMDAwKTtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLnZpZGVvQ29udGVudDQuY2xpY2soKVxyXG5cdFx0XHRcdHBsYXllci5vbigncmVhZHknLCBmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdFx0XHQvLyAgcGxheWVyLmZ1bGxzY3JlZW5TZXJ2aWNlLnJlcXVlc3RGdWxsU2NyZWVuKClcclxuXHJcblx0XHRcdFx0fSlcclxuXHJcblx0XHRcdFx0Ly8gIHRoaXMuXHJcblxyXG5cclxuXHRcdFx0XHQvLyB0aGlzLiRyZWZzLnZpZGVvQ29udGVudC5jbGljaygpXHJcblx0XHRcdFx0dGhpcy5wbGF5ZXIub24oJ2VuZGVkJywgZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygndGhhdC5jdXJUaW1lIGF0IGxpbmUgMjQyOicsIHRoaXMuY3VyVGltZSlcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKCd0aGF0LmN1clN0YXR1cyBhdCBsaW5lIDIxMDonLCB0aGlzLmN1clN0YXR1cylcclxuXHRcdFx0XHRcdHRoaXMuJHJlZnMudmlkZW9Db250ZW50Mi5jbGljaygpXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHRcdH0pXHJcblxyXG5cclxuXHJcblx0XHRcdFx0Ly8gcGxheWVyLnNldFJvdGF0ZSg5MClcclxuXHJcblx0XHRcdFx0Ly/lhajlsY/mkq3mlL5cclxuXHJcblx0XHRcdFx0Ly8gcGxheWVyLm9uZSgnY2FucGxheScsIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdC8vICAgICAvLyBjb25zb2xlLmxvZygnY2FucGxheScsIHRoaXMucGxheWVyLnRhZyk7XHJcblx0XHRcdFx0Ly8gICAgIHBsYXllci50YWcucGxheSgpO1xyXG5cclxuXHRcdFx0XHQvLyB9KTtcclxuXHJcblxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0c2hvd1ByZXZpZXcoZSkge1xyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdlIGF0IGxpbmUgNTY6JywgZSlcclxuXHRcdFx0XHRsZXQgY29uaW1nID0gZS50YXJnZXQuZGF0YXNldC5ub2RlcztcclxuXHRcdFx0XHRsZXQgaW1ncyA9IGNvbmltZy5tYXRjaCgvPGltZ1tePl0rPi9nKTsgLy/pgInmi6noioLngrnkuK3nmoRpbWdcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnaW1ncyBhdCBsaW5lIDU5OicsIGltZ3MpXHJcblx0XHRcdFx0bGV0IGltZ0xpc3QgPSBbXTtcclxuXHRcdFx0XHQvL+mBjeWOhmltZ+agh+etvueahHNyY+mHjOmdoueahOWGheWuueaUvuWcqOWumuS5ieeahOaVsOe7hGltZ0xpc3TkuK1cclxuXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGltZ3MubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRcdGltZ3Nbal0ucmVwbGFjZSgvPGltZ1tePl0qc3JjPVsnXCJdKFteJ1wiXSspW14+XSo+L2dpLCBmdW5jdGlvbihtYXRjaCwgY2FwdHVyZSkge1xyXG5cdFx0XHRcdFx0XHRpbWdMaXN0LnB1c2goY2FwdHVyZSlcclxuXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zb2xlLmxvZygnaW1nTGlzdC5wdXNoIGF0IGxpbmUgNjQ6JywgaW1nTGlzdClcclxuXHJcblxyXG5cdFx0XHRcdC8v5pyA5ZCO5LiA5q2l5bCx5piv5omA5pyJ5Zu+54mH5pS+5Zyo6aKE6KeI55qE5pa55rOVcHJldmlld0ltYWdl5Lit5bCx5Y+v5Lul5LqGXHJcblx0XHRcdFx0Ly8gdW5pLnByZXZpZXdJbWFnZSh7XHJcblx0XHRcdFx0Ly8gICAgIGN1cnJlbnQ6IGltZ0xpc3QsXHJcblx0XHRcdFx0Ly8gICAgIHVybHM6IGltZ0xpc3QsXHJcblx0XHRcdFx0Ly8gfSlcclxuXHRcdFx0XHR1bmkucHJldmlld0ltYWdlKHtcclxuXHRcdFx0XHRcdHVybHM6IGltZ0xpc3QsXHJcblx0XHRcdFx0XHRsb25nUHJlc3NBY3Rpb25zOiB7XHJcblx0XHRcdFx0XHRcdGl0ZW1MaXN0OiBbJ+W+iOaKseatie+8jOaaguS4jeaUr+aMgeS/neWtmOWbvueJh+WIsOacrOWcsCddLFxyXG5cdFx0XHRcdFx0XHRzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHtcclxuXHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhyZXMsJysrKysrJylcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHJlY2VpdmVTY3JlZW5UeXBlKG5ld1ZhbHVlKSB7XHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ25ld1ZhbHVlIGF0IGxpbmUgNDI35bGP5bmV5pa55ZCRMTExMTExMTExMTExOicsIG5ld1ZhbHVlKVxyXG5cclxuXHRcdFx0fSxcclxuXHRcdFx0YXN5bmMgcmVjZWl2ZUlzZnJlc2gobmV3VmFsdWUpIHtcclxuXHJcblxyXG5cclxuXHRcdFx0XHRjb25zb2xlLmxvZygn5piv5ZCm6LWw5LqG5Yi35paw6ZSA5q+B5pa55rOVOicsIHRoaXMucGxheWVyKVxyXG5cdFx0XHRcdGlmICh0aGlzLnBsYXllcikge1xyXG5cdFx0XHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLiRzdG9yZS5zdGF0ZS52aWRlb1RpbWVyKVxyXG5cdFx0XHRcdFx0Ly8gYXdhaXQgdGhpcy5zZXRWaWRlb1RpbWUoKTtcclxuXHRcdFx0XHRcdHRoaXMucGxheWVyLmRpc3Bvc2UoKTtcclxuXHRcdFx0XHRcdC8vICQoJyN1cmwtcGxheWVyLXRlc3QnKS5lbXB0eSgpXHJcblxyXG5cdFx0XHRcdFx0Ly8gdGhpcy5wbGF5ZXIuc2VlayhuZXdWYWx1ZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHJcblx0XHRcdH0sXHJcblx0XHRcdGFzeW5jIHJlY2VpdmVwbGF0Zm9ybShuZXdWYWx1ZSkge1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRhc3luYyByZWNlaXZlSXNDaGFuZ2UobmV3VmFsdWUpIHtcclxuXHJcblxyXG5cdFx0XHRcdC8vIHRoaXMudGltZXI9bnVsbFxyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5pc0NoYW5nZSkge1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuY2hlY2tWYWx1ZSgpXHJcblxyXG5cdFx0XHRcdFx0Ly8gaWYgKHRoaXMudmlkZW9EYXRhLnR5cGUgPT0gMSkge1xyXG5cdFx0XHRcdFx0Ly8gXHRjb25zb2xlLmxvZygn5piv5ZCm6LWw5LqG5YiH5o2i5Yqg5a+G6KeG6aKR5pa55rOVOicsIHRoaXMuaXNDaGFuZ2UsIHRoaXMudmlkZW9EYXRhKVxyXG5cdFx0XHRcdFx0Ly8gXHRhd2FpdCB0aGlzLnBsYXllci5yZXBsYXlCeVZpZEFuZFBsYXlBdXRoKHRoaXMudmlkZW9EYXRhLnZpZGVvLCB0aGlzLnZpZGVvRGF0YS5wbGF5QXV0aClcclxuXHRcdFx0XHRcdC8vICAgdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQuY2xpY2soKVxyXG5cdFx0XHRcdFx0Ly8gfSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIFx0Y29uc29sZS5sb2coJ+aYr+WQpui1sOS6huWIh+aNouiAgeinhumikS/pn7PpopHmlrnms5U6JywgdGhpcy5pc0NoYW5nZSwgdGhpcy52aWRlb0RhdGEpXHJcblx0XHRcdFx0XHQvLyBhd2FpdFx0dGhpcy5wbGF5ZXIubG9hZEJ5VXJsKHRoaXMudmlkZW9EYXRhLnZpZGVvVXJsKVxyXG5cdFx0XHRcdFx0Ly8gdGhpcy4kcmVmcy52aWRlb0NvbnRlbnQuY2xpY2soKVxyXG5cdFx0XHRcdFx0Ly8gfVxyXG5cclxuXHRcdFx0XHR9XHJcblxyXG5cclxuXHRcdFx0XHQvLyB0aGlzLiRyZWZzLnZpZGVvQ29udGVudDMuY2xpY2soKVxyXG5cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHJlY2VpdmVWaWRlb0xpc3QobmV3VmFsdWUsIG9sZFZhbHVlLCBvd25lclZtLCB2bSkge1xyXG5cdFx0XHRcdC8vIC8v5pWw5o2u5Y+Y5YyWXHJcblxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCdjdXJyZW50VmlkZW9MaXN0Y3VycmVudFZpZGVvTGlzdGN1cnJlbnRWaWRlb0xpc3QnLCBuZXdWYWx1ZSlcclxuXHJcblxyXG5cclxuXHJcblxyXG5cdFx0XHR9LFxyXG5cdFx0XHRyZWNlaXZlTXNnKG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHRcdFx0XHQvL+aVsOaNruWPmOWMllxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCduZXdWYWx1ZScsIG5ld1ZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvbGRWYWx1ZScsIG9sZFZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvd25lclZtJywgb3duZXJWbSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygndm0nLCB2bSlcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVjZWl2ZVdpbldpZHRoKG5ld1ZhbHVlLCBvbGRWYWx1ZSwgb3duZXJWbSwgdm0pIHtcclxuXHRcdFx0XHQvL+aVsOaNruWPmOWMllxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCduZXdWYWx1ZScsIG5ld1ZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvbGRWYWx1ZScsIG9sZFZhbHVlKVxyXG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKCdvd25lclZtJywgb3duZXJWbSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygndm0nLCB2bSlcclxuXHRcdFx0fSxcclxuXHRcdFx0cmVjZWl2ZVdpbkhlaWdodChuZXdWYWx1ZSwgb2xkVmFsdWUsIG93bmVyVm0sIHZtKSB7XHJcblx0XHRcdFx0Ly/mlbDmja7lj5jljJZcclxuXHRcdFx0XHRjb25zb2xlLmxvZygnbmV3VmFsdWUnLCBuZXdWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb2xkVmFsdWUnLCBvbGRWYWx1ZSlcclxuXHRcdFx0XHQvLyBjb25zb2xlLmxvZygnb3duZXJWbScsIG93bmVyVm0pXHJcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3ZtJywgdm0pXHJcblx0XHRcdH0sXHJcblx0XHRcdGNoZWNrVmFsdWUoKSB7XHJcblx0XHRcdFx0Y29uc29sZS5sb2codGhpcy52aWRlb0lkLCB0aGlzLmF1dGhJZCwgdGhpcy52aWRlb0RhdGEsIFwiMTExMTg4ODg4OFwiKVxyXG5cdFx0XHRcdGlmICgoIXRoaXMudmlkZW9EYXRhLnBsYXlBdXRoIHx8ICF0aGlzLmN1cnJlbnRWaWRlb0xpc3QpKSB7XHJcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jaGVja1ZhbHVlKCk7XHJcblx0XHRcdFx0XHR9LCAxMDAwKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCfov5nmmK/ov5nlj6rlj6rmmK81OTQ6JywgdGhpcy5maXJzdFRpbWUsIHRoaXMudmlkZW9EYXRhKVxyXG5cdFx0XHRcdFx0dGhpcy5nZXRMaXZlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRsb2FkV2ViUGxheWVyU0RLKCkge1xyXG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG5cclxuXHJcblx0XHRcdFx0XHRjb25zdCBzX3RhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyAvLyDlvJXlhaXmkq3mlL7lmahqc1xyXG5cdFx0XHRcdFx0c190YWcudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG5cdFx0XHRcdFx0c190YWcuc3JjID0gJ2h0dHBzOi8vZy5hbGljZG4uY29tL2Fwc2FyYS1tZWRpYS1ib3gvaW1wLXdlYi1wbGF5ZXIvMi4yMC4zL2FsaXBsYXllci1taW4uanMnO1xyXG5cdFx0XHRcdFx0c190YWcuY2hhcnNldCA9ICd1dGYtOCc7XHJcblx0XHRcdFx0XHRzX3RhZy5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHNfdGFnMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOyAvLyDlvJXlhaXmkq3mlL7lmahqc1xyXG5cdFx0XHRcdFx0XHRzX3RhZzEudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG5cdFx0XHRcdFx0XHRzX3RhZzEuc3JjID1cclxuXHRcdFx0XHRcdFx0XHQnaHR0cHM6Ly9wbGF5ZXIuYWxpY2RuLmNvbS9hbGlwbGF5ZXIvcHJlc2VudGF0aW9uL2pzL2FsaXBsYXllcmNvbXBvbmVudHMubWluLmpzJztcclxuXHRcdFx0XHRcdFx0c190YWcxLmNoYXJzZXQgPSAndXRmLTgnO1xyXG5cdFx0XHRcdFx0XHRzX3RhZzEub25sb2FkID0gKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tWYWx1ZSgpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzX3RhZzEpO1xyXG5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc190YWcpO1xyXG5cclxuXHJcblxyXG5cdFx0XHRcdFx0Y29uc3QgbF90YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7IC8vIOW8leWFpeaSreaUvuWZqGNzc1xyXG5cdFx0XHRcdFx0bF90YWcucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG5cdFx0XHRcdFx0bF90YWcuaHJlZiA9XHJcblx0XHRcdFx0XHRcdCdodHRwczovL2cuYWxpY2RuLmNvbS9hcHNhcmEtbWVkaWEtYm94L2ltcC13ZWItcGxheWVyLzIuMjAuMy9za2lucy9kZWZhdWx0L2FsaXBsYXllci1taW4uY3NzJztcclxuXHJcblxyXG5cclxuXHRcdFx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobF90YWcpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRsb2FkQ29tcG9uZW50KCkge1xyXG5cdFx0XHRcdC8vIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdFx0Ly8gICAgIGNvbnN0IHNfdGFnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcblx0XHRcdFx0Ly8gICAgIHNfdGFnLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuXHRcdFx0XHQvLyAgICAgLy8g6ZyA6KaB5YWI5LiL6L2957uE5Lu2IGpzIOaWh+S7tu+8jOaUvuWIsOmhueebriAvc3RhdGljLyDnm67lvZXkuItcclxuXHRcdFx0XHQvLyAgICAgLy8g5LiL6L295Zyw5Z2A77yaaHR0cHM6Ly9naXRodWIuY29tL2FsaXl1bnZpZGVvL0FsaXl1blBsYXllcl9XZWIvYmxvYi9tYXN0ZXIvY3VzdG9tQ29tcG9uZW50cy9kaXN0L2FsaXBsYXllci1jb21wb25lbnRzL2FsaXBsYXllcmNvbXBvbmVudHMtMS4wLjkubWluLmpzXHJcblx0XHRcdFx0Ly8gICAgIHNfdGFnLnNyYyA9ICdAL3N0YXRpYy9hbGlwbGF5ZXJjb21wb25lbnRzLmpzJztcclxuXHRcdFx0XHQvLyAgICAgc190YWcuY2hhcnNldCA9ICd1dGYtOCc7XHJcblx0XHRcdFx0Ly8gICAgIHNfdGFnLm9ubG9hZCA9ICgpID0+IHtcclxuXHRcdFx0XHQvLyAgICAgICAgIHJlc29sdmUoKTtcclxuXHRcdFx0XHQvLyAgICAgfVxyXG5cdFx0XHRcdC8vICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNfdGFnKTtcclxuXHRcdFx0XHQvLyB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZT5cclxuLmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogYXV0bztcclxuXHJcbiAgL2RlZXAvLnBhdXNlIHtcclxuICAgIHdpZHRoOiA2MHJweCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiA2MHJweCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLmZkcyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcclxuICBoZWlnaHQ6IDYwMHJweDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiA2MHJweDtcclxufVxyXG5cclxuLnJldHVybkJhY2sge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiA4OHJweDtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcnB4O1xyXG59XHJcblxyXG4udHh0IHtcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnJpZ2h0X3RpdGxlIHtcclxuICBiYWNrZ3JvdW5kOiAjMDAwO1xyXG4gIGhlaWdodDogOTZycHg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxufVxyXG5cclxuLnJldHVybiB7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4ucmlnaHRfaGFuZGxlIHtcclxuICB3aWR0aDogMjAwcnB4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICBwYWRkaW5nLXJpZ2h0OiAyMHJweDtcclxufVxyXG5cclxuY292ZXItdmlldyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbn1cclxuXHJcbmNvdmVyLXZpZXcge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcclxufVxyXG5cclxuY292ZXItaW1hZ2Uge1xyXG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZ1bGxTY3JlZW5CdXR0b24tY29udGFpbmVyIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBmbG9hdDogcmlnaHQ7XHJcbiAgaGVpZ2h0OiAzNXB4O1xyXG4gIG1hcmdpbi10b3A6IDZweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICBpIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW4tdG9wOiA3cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblxyXG4gICAgJiArIGkge1xyXG4gICAgICBtYXJnaW4tbGVmdDogM3B4O1xyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICAmOmhvdmVyICsgLnBsYXllci10b29sdGlwIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnBsYXllci10b29sdGlwIHtcclxuICAgICYucHJldiB7XHJcbiAgICAgIGxlZnQ6IC0xMHB4O1xyXG4gICAgfVxyXG5cclxuICAgICYubGlzdCB7XHJcbiAgICAgIGxlZnQ6IDVweDtcclxuICAgIH1cclxuXHJcbiAgICAmLm5leHQge1xyXG4gICAgICByaWdodDogLTEycHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4ucGxheWxpc3QtY29udGVudCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHdpZHRoOiAwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMzhzIGVhc2UtaW4tb3V0O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG4gIC5saXN0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdzogYXV0bztcclxuXHJcbiAgICAudmlkZW8taXRlbSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICBwYWRkaW5nOiAwcHggMTBweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDM1cHg7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xyXG4gICAgICAgIGNvbG9yOiAjMDBkZGZmO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XHJcbiAgICAgICAgICBjb2xvcjogIzAwZGRmZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5wbGF5ZXItdG9vbHRpcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xyXG4gIGxldHRlci1zcGFjaW5nOiAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiAjM2MzYzNjO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgaGVpZ2h0OiAyOHB4O1xyXG4gIHRvcDogLTQ4cHg7XHJcbiAgcGFkZGluZzogMCA1cHg7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLnBsYXlsaXN0LXNraXAtdGlwIHtcclxuICBwYWRkaW5nOiA1cHggMTVweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHotaW5kZXg6IDMwO1xyXG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xyXG4gIGNvbG9yOiAjMDAwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxufVxyXG5cclxuI3JvdGF0aW5nLWRpdiB7XHJcbiAgd2lkdGg6IDEwMHZ3O1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM0OThkYjtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XHJcbiAgLyog5peL6L2sOTDluqYgKi9cclxuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xyXG4gIC8qIOiuvue9ruaXi+i9rOS4reW/g+eCueWcqGRpduS4reW/gyAqL1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICAvKiDlm7rlrprlrprkvY3vvIzlhajlsY/mmL7npLogKi9cclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbn1cclxuLnZpZGVvLXZpZXcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgei1pbmRleDogOTk5O1xyXG59XHJcblxyXG4gIC5zcGVlZCB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiAyMHJweDtcclxuICAgICAgICB0b3A6IDE2cnB4O1xyXG5cclxuICAgICAgICAuZG91YmxlU3BlZWQge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHJweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA0cnB4IDZycHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L3N0eWxlPlxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1056\n"); /***/ }), /* 1057 */ diff --git a/unpackage/dist/dev/app-plus/app-view.js b/unpackage/dist/dev/app-plus/app-view.js index e3c4e4e..4bdd7cc 100644 --- a/unpackage/dist/dev/app-plus/app-view.js +++ b/unpackage/dist/dev/app-plus/app-view.js @@ -33473,7 +33473,7 @@ var render = function () { "uni-view", { style: _vm._$g(5, "s"), attrs: { _i: 5 } }, [ - _c("common-video", { + _c("common-video-ios", { ref: "commonVideo", attrs: { _i: 6 }, on: { @@ -62601,7 +62601,7 @@ module.exports = exports; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& */ 1165); +/* harmony import */ var _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& */ 1165); /* harmony import */ var _index_vue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.vue?vue&type=renderjs&module=renderScript&lang=js& */ 1167); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _index_vue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _index_vue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.vue?vue&type=script&lang=js& */ 1172); @@ -62621,14 +62621,14 @@ _index_vue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODU var component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])( _index_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__["default"], - _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"], - _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"], + _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], false, null, "387f0d1b", null, false, - _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"], + _index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"], _index_vue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"] ) @@ -62638,28 +62638,28 @@ component.options.__file = "pages/component/commonComponents/video/index.vue" /***/ }), /* 1165 */ /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& ***! + !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& */ 1166); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& */ 1166); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_index_vue_vue_type_template_id_387f0d1b_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 1166 */ /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxNTIwMSwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzExMjV9fQ%3D%3D& ***! + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/index.vue?vue&type=template&id=387f0d1b&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzkyNywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MzAzMjJ9fQ%3D%3D& ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -62905,12 +62905,12 @@ var _jquery = _interopRequireDefault(__webpack_require__(/*! jquery */ 1157)); function 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; } function _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; } // import StaticADComponent from './staticadcomponent/index.js'; -/** - * 静态广告组件 +/** + * 静态广告组件 */ var _default = { - /** - * 静态广告组件 + /** + * 静态广告组件 */ components: { @@ -63052,11 +63052,11 @@ var _default = { this.player = null; } var fullScreenButtonComponent = Aliplayer.Component({ - /** - * 初始函数,在new对象时调用 - * - * @param {string} adAddress - 广告视频地址 - * @param {string} toAddress - 广告链接地址 + /** + * 初始函数,在new对象时调用 + * + * @param {string} adAddress - 广告视频地址 + * @param {string} toAddress - 广告链接地址 */ init: function init(status, toAddress) { this.fullScreenStatus = status; @@ -63067,8 +63067,8 @@ var _default = { // this.$html.hide(); }, - /** - * 创建广告Dom元素 + /** + * 创建广告Dom元素 */ createEl: function createEl(el) { this.$html.find('.ad').attr('src', this.adAddress); @@ -63086,20 +63086,20 @@ var _default = { ready: function ready(player, e) { // this.$html.hide() }, - /** - * 隐藏广告 + /** + * 隐藏广告 */ play: function play(player, e) { // this.$html.show(); }, - /** - * 显示广告 + /** + * 显示广告 */ pause: function pause(player, e) { // this.$html.show(); }, - /** - * 隐藏广告 + /** + * 隐藏广告 */ playing: function playing(player, e) { this.$html.show(); @@ -63111,8 +63111,8 @@ var _default = { }, timeupdate: function timeupdate(player, e) {}, error: function error(player, e) {}, - /** - * 显示广告 + /** + * 显示广告 */ ended: function ended(player, e) { // this.$html.show(); @@ -63227,32 +63227,36 @@ var _default = { if (this.videoData.type == 1) { // if(this.$platform=='ios'){ //标准加密 - playerOptions = _objectSpread(_objectSpread({}, playerOptions), {}, { - source: this.videoData.m3u8Url, - // ...playerOptions, - // source: this.videoData.m3u8Url, - // "playauth": this.videoData.playAuth, // 必选参数,参数值可通过调用GetVideoPlayAuth接口获取。 - format: 'm3u8' - // // "encryptType": 1, // 必选参数,当播放私有加密流时需要设置本参数值为1。其它情况无需设置。 - // "playConfig": { - // "EncryptType": 'HLSEncryption', - // "MtsHlsUriToken": this.videoData.mtsHlsUriToken, + // playerOptions = { - // }, - }); - // }else{ - // //私有加密 - // playerOptions = { - // ...playerOptions, - // "playauth": this.videoData.playAuth, // 必选参数,参数值可通过调用GetVideoPlayAuth接口获取。 + // ...playerOptions, + // source: this.videoData.m3u8Url, + // // ...playerOptions, + // // source: this.videoData.m3u8Url, + // // "playauth": this.videoData.playAuth, // 必选参数,参数值可通过调用GetVideoPlayAuth接口获取。 + // format:'m3u8', + // // // "encryptType": 1, // 必选参数,当播放私有加密流时需要设置本参数值为1。其它情况无需设置。 + // // "playConfig": { + // // "EncryptType": 'HLSEncryption', + // // "MtsHlsUriToken": this.videoData.mtsHlsUriToken, - // "encryptType": 1, // 必选参数,当播放私有加密流时需要设置本参数值为1。其它情况无需设置。 - // "playConfig": { - // "EncryptType": 'AliyunVoDEncryption' - // }, + // // }, // } - // } + // }else{ + //私有加密 + playerOptions = _objectSpread(_objectSpread({}, playerOptions), {}, { + "playauth": this.videoData.playAuth, + // 必选参数,参数值可通过调用GetVideoPlayAuth接口获取。 + + "encryptType": 1, + // 必选参数,当播放私有加密流时需要设置本参数值为1。其它情况无需设置。 + "playConfig": { + "EncryptType": 'AliyunVoDEncryption' + } + + // } + }); } else { playerOptions = _objectSpread(_objectSpread({}, playerOptions), {}, { source: this.videoData.videoUrl @@ -63663,7 +63667,7 @@ if(false) {} var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19); exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.i, "\n.container[data-v-387f0d1b] {\r\n width: 100vw;\r\n height: auto;\n/deep/.pause {\r\n width: 60rpx !important;\r\n height: 60rpx !important;\n}\n}\n.fds[data-v-387f0d1b] {\r\n background-color: blue;\r\n height: 600rpx;\r\n position: fixed;\r\n top: 60rpx;\n}\n.returnBack[data-v-387f0d1b] {\r\n flex-direction: row;\r\n justify-content: flex-start;\r\n align-items: center;\r\n height: 88rpx;\r\n padding-left: 20rpx;\n}\n.txt[data-v-387f0d1b] {\r\n color: #fff;\n}\n.right_title[data-v-387f0d1b] {\r\n background: #000;\r\n height: 96rpx;\r\n justify-content: space-between;\r\n flex-direction: row;\r\n align-items: center;\r\n margin-left: auto;\n}\n.return[data-v-387f0d1b] {\r\n flex-direction: row;\r\n align-items: center;\r\n color: #fff;\n}\n.right_handle[data-v-387f0d1b] {\r\n width: 200rpx;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n padding-right: 20rpx;\n}\nuni-cover-view[data-v-387f0d1b] {\r\n display: block;\r\n line-height: 1.2;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n pointer-events: auto;\n}\nuni-cover-view[data-v-387f0d1b] {\r\n visibility: visible !important;\n}\nuni-cover-image[data-v-387f0d1b] {\r\n visibility: visible !important;\n}\n.fullScreenButton-container[data-v-387f0d1b] {\r\n color: #fff;\r\n float: right;\r\n height: 35px;\r\n margin-top: 6px;\r\n margin-right: 5px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\ni {\r\n color: #fff;\r\n display: inline-block;\r\n font-size: 22px;\r\n display: block;\r\n margin-top: 7px;\r\n cursor: pointer;\n& + i {\r\n margin-left: 3px;\n}\n@media (min-width: 768px) {\n&:hover + .player-tooltip {\r\n display: block;\n}\n}\n}\n.player-tooltip {\n&.prev {\r\n left: -10px;\n}\n&.list {\r\n left: 5px;\n}\n&.next {\r\n right: -12px;\n}\n}\n}\n.playlist-content[data-v-387f0d1b] {\r\n position: absolute;\r\n right: 0;\r\n width: 0px;\r\n padding-bottom: 48px;\r\n box-sizing: border-box;\r\n height: 100%;\r\n transition: all 0.38s ease-in-out;\r\n overflow: hidden;\n.list {\r\n background-color: #000;\r\n background-color: rgba(0, 0, 0, 0.3);\r\n height: 100%;\r\n overflow: auto;\n.video-item {\r\n color: #fff;\r\n padding: 0px 10px;\r\n line-height: 35px;\r\n font-size: 14px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n cursor: pointer;\n&.active {\r\n background-color: #000;\r\n color: #00ddff;\n}\n@media (min-width: 768px) {\n&:hover {\r\n background-color: #000;\r\n color: #00ddff;\n}\n}\n}\n}\n}\n.player-tooltip[data-v-387f0d1b] {\r\n position: absolute;\r\n display: none;\r\n font-size: 12px;\r\n color: #fff;\r\n line-height: 28px;\r\n letter-spacing: 0;\r\n text-align: center;\r\n background: #3c3c3c;\r\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\r\n height: 28px;\r\n top: -48px;\r\n padding: 0 5px;\r\n white-space: nowrap;\n}\n.playlist-skip-tip[data-v-387f0d1b] {\r\n padding: 5px 15px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n z-index: 30;\r\n line-height: 30px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n background: rgba(255, 255, 255, 0.8);\r\n color: #000;\r\n text-align: center;\r\n -webkit-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\n}\n#rotating-div[data-v-387f0d1b] {\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: #3498db;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n /* 旋转90度 */\r\n -webkit-transform-origin: center center;\r\n transform-origin: center center;\r\n /* 设置旋转中心点在div中心 */\r\n position: fixed;\r\n /* 固定定位,全屏显示 */\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\n}\r\n", ""]); +exports.push([module.i, "\n.container[data-v-387f0d1b] {\n\twidth: 100vw;\n\theight: auto;\n/deep/.pause {\n\t\twidth: 60rpx !important;\n\t\theight: 60rpx !important;\n}\n}\n.fds[data-v-387f0d1b] {\n\tbackground-color: blue;\n\theight: 600rpx;\n\tposition: fixed;\n\ttop: 60rpx;\n}\n.returnBack[data-v-387f0d1b] {\n\tflex-direction: row;\n\tjustify-content: flex-start;\n\talign-items: center;\n\theight: 88rpx;\n\tpadding-left: 20rpx;\n}\n.txt[data-v-387f0d1b] {\n\tcolor: #fff;\n}\n.right_title[data-v-387f0d1b] {\n\tbackground: #000;\n\theight: 96rpx;\n\tjustify-content: space-between;\n\tflex-direction: row;\n\talign-items: center;\n\tmargin-left: auto;\n}\n.return[data-v-387f0d1b] {\n\tflex-direction: row;\n\talign-items: center;\n\tcolor: #fff;\n}\n.right_handle[data-v-387f0d1b] {\n\twidth: 200rpx;\n\tflex-direction: row;\n\tjustify-content: flex-end;\n\tpadding-right: 20rpx;\n}\nuni-cover-view[data-v-387f0d1b] {\n\tdisplay: block;\n\tline-height: 1.2;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\tpointer-events: auto;\n}\nuni-cover-view[data-v-387f0d1b] {\n\tvisibility: visible !important;\n}\nuni-cover-image[data-v-387f0d1b] {\n\tvisibility: visible !important;\n}\n.fullScreenButton-container[data-v-387f0d1b] {\n\tcolor: #fff;\n\tfloat: right;\n\theight: 35px;\n\tmargin-top: 6px;\n\tmargin-right: 5px;\n\tdisplay: flex;\n\talign-items: center;\n\tposition: relative;\ni {\n\t\tcolor: #fff;\n\t\tdisplay: inline-block;\n\t\tfont-size: 22px;\n\t\tdisplay: block;\n\t\tmargin-top: 7px;\n\t\tcursor: pointer;\n&+i {\n\t\t\tmargin-left: 3px;\n}\n@media (min-width: 768px) {\n&:hover+.player-tooltip {\n\t\t\t\tdisplay: block;\n}\n}\n}\n.player-tooltip {\n&.prev {\n\t\t\tleft: -10px;\n}\n&.list {\n\t\t\tleft: 5px;\n}\n&.next {\n\t\t\tright: -12px;\n}\n}\n}\n.playlist-content[data-v-387f0d1b] {\n\tposition: absolute;\n\tright: 0;\n\twidth: 0px;\n\tpadding-bottom: 48px;\n\tbox-sizing: border-box;\n\theight: 100%;\n\ttransition: all 0.38s ease-in-out;\n\toverflow: hidden;\n.list {\n\t\tbackground-color: #000;\n\t\tbackground-color: rgba(0, 0, 0, 0.3);\n\t\theight: 100%;\n\t\toverflow: auto;\n.video-item {\n\t\t\tcolor: #fff;\n\t\t\tpadding: 0px 10px;\n\t\t\tline-height: 35px;\n\t\t\tfont-size: 14px;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n&.active {\n\t\t\t\tbackground-color: #000;\n\t\t\t\tcolor: #00ddff;\n}\n@media (min-width: 768px) {\n&:hover {\n\t\t\t\t\tbackground-color: #000;\n\t\t\t\t\tcolor: #00ddff;\n}\n}\n}\n}\n}\n.player-tooltip[data-v-387f0d1b] {\n\tposition: absolute;\n\tdisplay: none;\n\tfont-size: 12px;\n\tcolor: #fff;\n\tline-height: 28px;\n\tletter-spacing: 0;\n\ttext-align: center;\n\tbackground: #3c3c3c;\n\tbox-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\n\theight: 28px;\n\ttop: -48px;\n\tpadding: 0 5px;\n\twhite-space: nowrap;\n}\n.playlist-skip-tip[data-v-387f0d1b] {\n\tpadding: 5px 15px;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tz-index: 30;\n\tline-height: 30px;\n\tfont-size: 14px;\n\tborder-radius: 4px;\n\tbackground: rgba(255, 255, 255, 0.8);\n\tcolor: #000;\n\ttext-align: center;\n\t-webkit-transform: translate(-50%, -50%);\n\t transform: translate(-50%, -50%);\n}\n#rotating-div[data-v-387f0d1b] {\n\twidth: 100vw;\n\theight: 100vh;\n\tbackground-color: #3498db;\n\t-webkit-transform: rotate(90deg);\n\t transform: rotate(90deg);\n\t/* 旋转90度 */\n\t-webkit-transform-origin: center center;\n\t transform-origin: center center;\n\t/* 设置旋转中心点在div中心 */\n\tposition: fixed;\n\t/* 固定定位,全屏显示 */\n\tleft: 0;\n\ttop: 0;\n\tbottom: 0;\n\tright: 0;\n}\n", ""]); // Exports module.exports = exports; @@ -63678,7 +63682,7 @@ module.exports = exports; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& */ 1178); +/* harmony import */ var _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& */ 1178); /* harmony import */ var _ios_nvue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ios.nvue?vue&type=renderjs&module=renderScript&lang=js& */ 1180); /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _ios_nvue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _ios_nvue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ios.nvue?vue&type=script&lang=js& */ 1182); @@ -63698,14 +63702,14 @@ _ios_nvue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODUL var component = Object(_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])( _ios_nvue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_2__["default"], - _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"], - _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"], + _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], false, null, "6db43270", null, false, - _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"], + _ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"], _ios_nvue_vue_type_renderjs_module_renderScript_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"] ) @@ -63715,28 +63719,28 @@ component.options.__file = "pages/component/commonComponents/video/ios.nvue" /***/ }), /* 1178 */ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& ***! + !*** D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& */ 1179); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!./ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& */ 1179); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["render"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_17_0_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_filter_modules_template_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_view_style_js_ios_nvue_vue_type_template_id_6db43270_scoped_true_filter_modules_eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ_3D_3D___WEBPACK_IMPORTED_MODULE_0__["components"]; }); /***/ }), /* 1179 */ /*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMTEwMywiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjY2NTR9fQ%3D%3D& ***! + !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--17-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/filter-modules-template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/style.js!D:/0--------------------xulu/sociology_app/pages/component/commonComponents/video/ios.nvue?vue&type=template&id=6db43270&scoped=true&filter-modules=eyJyZW5kZXJTY3JpcHQiOnsidHlwZSI6InJlbmRlcmpzIiwiY29udGVudCI6IiIsInN0YXJ0IjoxMzg3NCwiYXR0cnMiOnsibW9kdWxlIjoicmVuZGVyU2NyaXB0IiwibGFuZyI6ImpzIn0sImVuZCI6MjkyNzJ9fQ%3D%3D& ***! \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns, recyclableRender, components */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -63756,16 +63760,79 @@ var render = function () { "uni-view", { staticClass: _vm._$g(0, "sc"), - staticStyle: { "background-color": "#fff", position: "relative" }, + staticStyle: { "background-color": "#000", position: "relative" }, attrs: { _i: 0 }, }, [ - _vm._$g(1, "i") - ? _c("v-uni-web-view", { - staticStyle: { height: "200px" }, - attrs: { src: "../../../../static/html/aliplayer.html", _i: 1 }, - }) - : _vm._e(), + _c( + "uni-view", + { staticStyle: { width: "100%", height: "200px" }, attrs: { _i: 1 } }, + [ + _c( + "v-uni-video", + { + staticClass: _vm._$g(2, "sc"), + staticStyle: { width: "100%", height: "100%" }, + attrs: { + id: "video1", + src: _vm._$g(2, "a-src"), + autoplay: "true", + duration: "", + "enable-danmu": "true", + loop: true, + "initial-time": "", + direction: "-90", + "show-mute-btn": "true", + _i: 2, + }, + on: { + play: function ($event) { + return _vm.$handleViewEvent($event) + }, + pause: function ($event) { + return _vm.$handleViewEvent($event) + }, + ended: function ($event) { + return _vm.$handleViewEvent($event) + }, + error: function ($event) { + return _vm.$handleViewEvent($event) + }, + waiting: function ($event) { + return _vm.$handleViewEvent($event) + }, + timeupdate: function ($event) { + return _vm.$handleViewEvent($event) + }, + fullscreenchange: function ($event) { + return _vm.$handleViewEvent($event) + }, + }, + }, + [ + _c( + "v-uni-cover-view", + { + staticStyle: { + position: "absolute", + top: "128rpx", + right: "60rpx", + }, + attrs: { _i: 3 }, + on: { + click: function ($event) { + return _vm.$handleViewEvent($event) + }, + }, + }, + [_vm._v("倍速")] + ), + ], + 1 + ), + ], + 1 + ), ], 1 ) @@ -63846,7 +63913,7 @@ var _default = { watch: { curTime: function curTime(val) { if (this.curTime !== null && this.curStatus !== null) { - this.$refs.videoContent1.click(); + this.re; } } }, @@ -64031,7 +64098,6 @@ var _default = { __f__("log", 'this.currentVideoList at line 456111111111111111111111:', this.videoList, " at pages/component/commonComponents/video/ios.nvue:251"); var playerOptions = { id: "url-player-test", - preload: false, "vid": this.videoData.videoId, // 必选参数,可以通过点播控制台(路径:媒资库>音/视频)查询。示例:1e067a2831b641db90d570b6480f****。 @@ -64151,14 +64217,11 @@ var _default = { } var player = new Aliplayer(playerOptions, function (player) {}); this.player = player; - __f__("log", '是否拿到第一次初始值呢', this.platform, (0, _typeof2.default)(this.firstTime), this.firstTime, " at pages/component/commonComponents/video/ios.nvue:396"); + __f__("log", '是否拿到第一次初始值呢', this.platform, (0, _typeof2.default)(this.firstTime), this.firstTime, " at pages/component/commonComponents/video/ios.nvue:395"); if (this.platform == 'ios') { - this.player.one('timeupdate', function () { - _this3.player.seek(_this3.firstTime); - }); player.on('canplay', function () { - __f__("log", '这是ios数据缓冲初次设置播放位置判断!!!!', " at pages/component/commonComponents/video/ios.nvue:404"); - this.player.seek(this.firstTime); + __f__("log", '这是ios数据缓冲初次设置播放位置判断!!!!', " at pages/component/commonComponents/video/ios.nvue:398"); + this.player.seek(20); }); // var seeked = false; // player.on('loadedmetadata',function (e) { @@ -64224,7 +64287,7 @@ var _default = { // console.log('e at line 56:', e) var conimg = e.target.dataset.nodes; var imgs = conimg.match(/]+>/g); //选择节点中的img - __f__("log", 'imgs at line 59:', imgs, " at pages/component/commonComponents/video/ios.nvue:492"); + __f__("log", 'imgs at line 59:', imgs, " at pages/component/commonComponents/video/ios.nvue:486"); var imgList = []; //遍历img标签的src里面的内容放在定义的数组imgList中 for (var j = 0; j < imgs.length; j++) { @@ -64232,7 +64295,7 @@ var _default = { imgList.push(capture); }); } - __f__("log", 'imgList.push at line 64:', imgList, " at pages/component/commonComponents/video/ios.nvue:501"); + __f__("log", 'imgList.push at line 64:', imgList, " at pages/component/commonComponents/video/ios.nvue:495"); //最后一步就是所有图片放在预览的方法previewImage中就可以了 // uni.previewImage({ @@ -64259,7 +64322,7 @@ var _default = { while (1) { switch (_context3.prev = _context3.next) { case 0: - __f__("log", '是否走了刷新销毁方法:', _this4.player, " at pages/component/commonComponents/video/ios.nvue:529"); + __f__("log", '是否走了刷新销毁方法:', _this4.player, " at pages/component/commonComponents/video/ios.nvue:523"); if (_this4.player) { clearInterval(_this4.$store.state.videoTimer); // await this.setVideoTime(); @@ -64324,7 +64387,7 @@ var _default = { receiveVideoList: function receiveVideoList(newValue, oldValue, ownerVm, vm) { // //数据变化 - __f__("log", 'currentVideoListcurrentVideoListcurrentVideoList', newValue, " at pages/component/commonComponents/video/ios.nvue:578"); + __f__("log", 'currentVideoListcurrentVideoListcurrentVideoList', newValue, " at pages/component/commonComponents/video/ios.nvue:572"); }, receiveMsg: function receiveMsg(newValue, oldValue, ownerVm, vm) { //数据变化 @@ -64335,27 +64398,27 @@ var _default = { }, receiveWinWidth: function receiveWinWidth(newValue, oldValue, ownerVm, vm) { //数据变化 - __f__("log", 'newValue', newValue, " at pages/component/commonComponents/video/ios.nvue:594"); + __f__("log", 'newValue', newValue, " at pages/component/commonComponents/video/ios.nvue:588"); // console.log('oldValue', oldValue) // console.log('ownerVm', ownerVm) // console.log('vm', vm) }, receiveWinHeight: function receiveWinHeight(newValue, oldValue, ownerVm, vm) { //数据变化 - __f__("log", 'newValue', newValue, " at pages/component/commonComponents/video/ios.nvue:601"); + __f__("log", 'newValue', newValue, " at pages/component/commonComponents/video/ios.nvue:595"); // console.log('oldValue', oldValue) // console.log('ownerVm', ownerVm) // console.log('vm', vm) }, checkValue: function checkValue() { var _this6 = this; - __f__("log", this.videoId, this.authId, this.videoData, "1111888888", " at pages/component/commonComponents/video/ios.nvue:607"); + __f__("log", this.videoId, this.authId, this.videoData, "1111888888", " at pages/component/commonComponents/video/ios.nvue:601"); if (!this.videoData.playAuth || !this.currentVideoList) { setTimeout(function () { _this6.checkValue(); }, 1000); } else { - __f__("log", '这是这只只是594:', this.firstTime, this.videoData, " at pages/component/commonComponents/video/ios.nvue:614"); + __f__("log", '这是这只只是594:', this.firstTime, this.videoData, " at pages/component/commonComponents/video/ios.nvue:608"); this.getLive(); } }, @@ -64492,7 +64555,7 @@ if(false) {} var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../软件/软件/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/runtime/api.js */ 19); exports = ___CSS_LOADER_API_IMPORT___(false); // Module -exports.push([module.i, "\n.container[data-v-6db43270] {\r\n width: 100vw;\r\n height: auto;\n/deep/.pause {\r\n width: 60rpx !important;\r\n height: 60rpx !important;\n}\n}\n.fds[data-v-6db43270] {\r\n background-color: blue;\r\n height: 600rpx;\r\n position: fixed;\r\n top: 60rpx;\n}\n.returnBack[data-v-6db43270] {\r\n flex-direction: row;\r\n justify-content: flex-start;\r\n align-items: center;\r\n height: 88rpx;\r\n padding-left: 20rpx;\n}\n.txt[data-v-6db43270] {\r\n color: #fff;\n}\n.right_title[data-v-6db43270] {\r\n background: #000;\r\n height: 96rpx;\r\n justify-content: space-between;\r\n flex-direction: row;\r\n align-items: center;\r\n margin-left: auto;\n}\n.return[data-v-6db43270] {\r\n flex-direction: row;\r\n align-items: center;\r\n color: #fff;\n}\n.right_handle[data-v-6db43270] {\r\n width: 200rpx;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n padding-right: 20rpx;\n}\nuni-cover-view[data-v-6db43270] {\r\n display: block;\r\n line-height: 1.2;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n pointer-events: auto;\n}\nuni-cover-view[data-v-6db43270] {\r\n visibility: visible !important;\n}\nuni-cover-image[data-v-6db43270] {\r\n visibility: visible !important;\n}\n.fullScreenButton-container[data-v-6db43270] {\r\n color: #fff;\r\n float: right;\r\n height: 35px;\r\n margin-top: 6px;\r\n margin-right: 5px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\ni {\r\n color: #fff;\r\n display: inline-block;\r\n font-size: 22px;\r\n display: block;\r\n margin-top: 7px;\r\n cursor: pointer;\n& + i {\r\n margin-left: 3px;\n}\n@media (min-width: 768px) {\n&:hover + .player-tooltip {\r\n display: block;\n}\n}\n}\n.player-tooltip {\n&.prev {\r\n left: -10px;\n}\n&.list {\r\n left: 5px;\n}\n&.next {\r\n right: -12px;\n}\n}\n}\n.playlist-content[data-v-6db43270] {\r\n position: absolute;\r\n right: 0;\r\n width: 0px;\r\n padding-bottom: 48px;\r\n box-sizing: border-box;\r\n height: 100%;\r\n transition: all 0.38s ease-in-out;\r\n overflow: hidden;\n.list {\r\n background-color: #000;\r\n background-color: rgba(0, 0, 0, 0.3);\r\n height: 100%;\r\n overflow: auto;\n.video-item {\r\n color: #fff;\r\n padding: 0px 10px;\r\n line-height: 35px;\r\n font-size: 14px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n cursor: pointer;\n&.active {\r\n background-color: #000;\r\n color: #00ddff;\n}\n@media (min-width: 768px) {\n&:hover {\r\n background-color: #000;\r\n color: #00ddff;\n}\n}\n}\n}\n}\n.player-tooltip[data-v-6db43270] {\r\n position: absolute;\r\n display: none;\r\n font-size: 12px;\r\n color: #fff;\r\n line-height: 28px;\r\n letter-spacing: 0;\r\n text-align: center;\r\n background: #3c3c3c;\r\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\r\n height: 28px;\r\n top: -48px;\r\n padding: 0 5px;\r\n white-space: nowrap;\n}\n.playlist-skip-tip[data-v-6db43270] {\r\n padding: 5px 15px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n z-index: 30;\r\n line-height: 30px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n background: rgba(255, 255, 255, 0.8);\r\n color: #000;\r\n text-align: center;\r\n -webkit-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\n}\n#rotating-div[data-v-6db43270] {\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: #3498db;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n /* 旋转90度 */\r\n -webkit-transform-origin: center center;\r\n transform-origin: center center;\r\n /* 设置旋转中心点在div中心 */\r\n position: fixed;\r\n /* 固定定位,全屏显示 */\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\n}\r\n", ""]); +exports.push([module.i, "\n.container[data-v-6db43270] {\r\n width: 100vw;\r\n height: auto;\n/deep/.pause {\r\n width: 60rpx !important;\r\n height: 60rpx !important;\n}\n}\n.fds[data-v-6db43270] {\r\n background-color: blue;\r\n height: 600rpx;\r\n position: fixed;\r\n top: 60rpx;\n}\n.returnBack[data-v-6db43270] {\r\n flex-direction: row;\r\n justify-content: flex-start;\r\n align-items: center;\r\n height: 88rpx;\r\n padding-left: 20rpx;\n}\n.txt[data-v-6db43270] {\r\n color: #fff;\n}\n.right_title[data-v-6db43270] {\r\n background: #000;\r\n height: 96rpx;\r\n justify-content: space-between;\r\n flex-direction: row;\r\n align-items: center;\r\n margin-left: auto;\n}\n.return[data-v-6db43270] {\r\n flex-direction: row;\r\n align-items: center;\r\n color: #fff;\n}\n.right_handle[data-v-6db43270] {\r\n width: 200rpx;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n padding-right: 20rpx;\n}\nuni-cover-view[data-v-6db43270] {\r\n display: block;\r\n line-height: 1.2;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n pointer-events: auto;\n}\nuni-cover-view[data-v-6db43270] {\r\n visibility: visible !important;\n}\nuni-cover-image[data-v-6db43270] {\r\n visibility: visible !important;\n}\n.fullScreenButton-container[data-v-6db43270] {\r\n color: #fff;\r\n float: right;\r\n height: 35px;\r\n margin-top: 6px;\r\n margin-right: 5px;\r\n display: flex;\r\n align-items: center;\r\n position: relative;\ni {\r\n color: #fff;\r\n display: inline-block;\r\n font-size: 22px;\r\n display: block;\r\n margin-top: 7px;\r\n cursor: pointer;\n& + i {\r\n margin-left: 3px;\n}\n@media (min-width: 768px) {\n&:hover + .player-tooltip {\r\n display: block;\n}\n}\n}\n.player-tooltip {\n&.prev {\r\n left: -10px;\n}\n&.list {\r\n left: 5px;\n}\n&.next {\r\n right: -12px;\n}\n}\n}\n.playlist-content[data-v-6db43270] {\r\n position: absolute;\r\n right: 0;\r\n width: 0px;\r\n padding-bottom: 48px;\r\n box-sizing: border-box;\r\n height: 100%;\r\n transition: all 0.38s ease-in-out;\r\n overflow: hidden;\n.list {\r\n background-color: #000;\r\n background-color: rgba(0, 0, 0, 0.3);\r\n height: 100%;\r\n overflow: auto;\n.video-item {\r\n color: #fff;\r\n padding: 0px 10px;\r\n line-height: 35px;\r\n font-size: 14px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n cursor: pointer;\n&.active {\r\n background-color: #000;\r\n color: #00ddff;\n}\n@media (min-width: 768px) {\n&:hover {\r\n background-color: #000;\r\n color: #00ddff;\n}\n}\n}\n}\n}\n.player-tooltip[data-v-6db43270] {\r\n position: absolute;\r\n display: none;\r\n font-size: 12px;\r\n color: #fff;\r\n line-height: 28px;\r\n letter-spacing: 0;\r\n text-align: center;\r\n background: #3c3c3c;\r\n box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);\r\n height: 28px;\r\n top: -48px;\r\n padding: 0 5px;\r\n white-space: nowrap;\n}\n.playlist-skip-tip[data-v-6db43270] {\r\n padding: 5px 15px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n z-index: 30;\r\n line-height: 30px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n background: rgba(255, 255, 255, 0.8);\r\n color: #000;\r\n text-align: center;\r\n -webkit-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\n}\n#rotating-div[data-v-6db43270] {\r\n width: 100vw;\r\n height: 100vh;\r\n background-color: #3498db;\r\n -webkit-transform: rotate(90deg);\r\n transform: rotate(90deg);\r\n /* 旋转90度 */\r\n -webkit-transform-origin: center center;\r\n transform-origin: center center;\r\n /* 设置旋转中心点在div中心 */\r\n position: fixed;\r\n /* 固定定位,全屏显示 */\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\n}\n.video-view[data-v-6db43270] {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 999;\n}\n.speed[data-v-6db43270] {\r\n position: absolute;\r\n right: 20rpx;\r\n top: 16rpx;\n.doubleSpeed {\r\n color: #fff;\r\n font-size: 14rpx;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n padding: 4rpx 6rpx;\n}\n}\r\n", ""]); // Exports module.exports = exports; diff --git a/utils/myIapCheck.js b/utils/myIapCheck.js index 75d0b33..ba64a25 100644 --- a/utils/myIapCheck.js +++ b/utils/myIapCheck.js @@ -11,29 +11,37 @@ const ComplateRequestArr = [] var iap = { + getProvider() { + return new Promise((resolve, reject) => { + uni.getProvider({ + service: 'payment', + success: (res) => { + const iapChannel = res.providers.find((channel) => { + return (channel.id === 'appleiap') + }) + resolve(iapChannel); + // 如果 iapChannel 为 null,说明当前包没有包含iap支付模块。注意:HBuilder基座不包含 iap 通道 + } + }); + }) + }, // 检测支付通道 - getChannels(){ + async getChannels(){ const that = this; console.log('检测支付通道') - plus.payment.getChannels(async (channels) => { - for (var i in channels) { - // 判断是否苹果支付1 - if (channels[i].id === "appleiap") { - console.log("存在苹果内购channels",channels, ); - that.iapChannel = channels[i]; - // 先检测有没有未完成的订单 - that.restoreComplateRequest() - }else{ - console.log('安卓客户端'); - } - } - }); + this.iapChannel = await this.getProvider() + if(this.iapChannel){ + // this.requestOrder(); + this.restoreComplateRequest() + }else{ + console.log("不支持iap支付"); + } }, // 检测是否有未关闭订单 restoreComplateRequest() { let that = this console.log('检测未完成订单') - this.iapChannel.restoreComplateRequest({ + this.iapChannel.restoreCompletedTransactions({ manualFinishTransaction: true }, function(results) { if (!that.checking) { @@ -50,7 +58,7 @@ var iap = { // return false // 已经支付,但是没有走逻辑的内购订单 就发给后台做验证 that.iapCheck(item, index) - // that.finishTransaction(item) + // that.finishTransaction(item) } else { // 其他状态的内购订单 that.finishTransaction(item)