difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/exchange/view/exchange_window.js';
                    var __require = nodeEnv ? function (request) {
                        return cc.require(request);
                    } : function (request) {
                        return __quick_compile_project__.require(request, __filename);
                    };
                    function __define (exports, require, module) {
                        if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
cc._RF.push(module, '7fb6c1VdDVC6ok8cQp3cFLO', 'exchange_window');
// Scripts/mod/exchange/view/exchange_window.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
//      用户输入框
// <br/>Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
 
var LoaderManager = require("loadermanager");
 
var RoleController = require("role_controller");
 
var ExchangeController = require("exchange_controller");
 
var ExchangeEvent = require("exchange_event");
 
var TimeTool = require("timetool");
 
var ExchangeWindow = cc.Class({
  "extends": BaseView,
  ctor: function ctor() {
    this.prefabPath = PathTool.getPrefabPath("exchange", "exchange_main_win");
    this.viewTag = SCENE_TAG.dialogue;
  },
  openCallBack: function openCallBack() {
    var _this = this;
 
    this.main_container = this.root_wnd.getChildByName("main_container");
    this.background = this.root_wnd.getChildByName("background");
    this.bg = this.root_wnd.getChildByName("bg").getComponent(cc.Sprite);
    LoaderManager.getInstance().loadRes(PathTool.getBigBg("bigbg_65", "png"), function (spriteFrame) {
      this.bg.spriteFrame = spriteFrame;
    }.bind(this));
    this.objects = {};
 
    var _loop = function _loop(i) {
      item = {};
      item.remain = _this.main_container.getChildByName("remain_text_" + i).getComponent(cc.Label);
      item.btn = _this.main_container.getChildByName("btn_" + i);
      item.get = _this.main_container.getChildByName("get_" + i);
      item.gold = item.btn.getChildByName("label").getComponent(cc.Label);
      item.coin = _this.main_container.getChildByName("coin_" + i).getChildByName("label").getComponent(cc.Label);
      _this.objects[i] = item;
      LoaderManager.getInstance().loadRes(PathTool.getItemRes("1"), function (res) {
        this.main_container.getChildByName("coin_" + i).getChildByName("icon").getComponent(cc.Sprite).spriteFrame = res;
      }.bind(_this));
 
      if (_this.main_container.getChildByName("btn_" + i).getChildByName("icon")) {
        LoaderManager.getInstance().loadRes(PathTool.getItemRes("3"), function (res) {
          this.main_container.getChildByName("btn_" + i).getChildByName("icon").getComponent(cc.Sprite).spriteFrame = res;
        }.bind(_this));
      }
    };
 
    for (var i = 1; i <= 3; i++) {
      var item;
 
      _loop(i);
    }
 
    this.textTime = this.main_container.getChildByName("textTime").getComponent(cc.Label);
  },
  registerEvent: function registerEvent() {
    var _this2 = this;
 
    this.background.on(cc.Node.EventType.TOUCH_END, function (event) {
      Utils.playButtonSound(2);
      ExchangeController.getInstance().openExchangeMainView(false);
    }, this);
 
    var _loop2 = function _loop2(i) {
      _this2.objects[i].btn.on(cc.Node.EventType.TOUCH_END, function (event) {
        Utils.playButtonSound(1);
 
        if (this.objects[i].v) {
          ExchangeController.getInstance().send23607(this.objects[i].v.id);
        }
      }, _this2);
    };
 
    for (var i in this.objects) {
      _loop2(i);
    }
 
    this.addGlobalEvent(ExchangeEvent.Extra_Reward, function (data) {
      this.updateData(data);
    }, this);
  },
  openRootWnd: function openRootWnd() {
    ExchangeController.getInstance().send23606();
  },
  updateData: function updateData(data) {
    this.data = data;
    this.setLessTime();
 
    for (var i in data.list) {
      var v = data.list[i];
      var item = this.objects[v.id];
      item.v = v;
      item.remain.string = Utils.TI18N("剩余:" + Math.max(0, v.max - v.num));
      item.coin.string = v.gain;
 
      if (v.num >= v.max) {
        item.btn.active = false;
        item.get.active = true;
      } else {
        item.btn.active = true;
        item.get.active = false;
 
        if (v.price == 0) {
          item.gold.string = Utils.TI18N("免费获取");
        } else {
          item.gold.string = v.price + Utils.TI18N("获取");
        }
      }
    }
  },
  setLessTime: function setLessTime() {
    if (!cc.isValid(this.textTime) || !this.data) {
      return;
    }
 
    var lesstime = this.data.ref_time - gcore.SmartSocket.getTime(); // Log.info("====>>>", lesstime, this.data, gcore.SmartSocket.getTime());
 
    if (lesstime > 0) {
      this.textTime.string = TimeTool.getTimeFormat(lesstime);
      this.timer = gcore.Timer.set(function () {
        this.setLessTime();
        this.timer = null;
      }.bind(this), 1000, 1);
    } else {
      this.textTime.string = "00:00:00";
    }
  },
  closeCallBack: function closeCallBack() {
    ExchangeController.getInstance().openExchangeMainView(false);
 
    if (this.timer) {
      gcore.Timer.del(this.timer);
    }
 
    LoaderManager.getInstance().deleteRes(PathTool.getBigBg("bigbg_65", "png"));
  }
});
module.exports = ExchangeWindow;
 
cc._RF.pop();
                    }
                    if (nodeEnv) {
                        __define(__module.exports, __require, __module);
                    }
                    else {
                        __quick_compile_project__.registerModuleFunc(__filename, function () {
                            __define(__module.exports, __require, __module);
                        });
                    }
                })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxleGNoYW5nZVxcdmlld1xcZXhjaGFuZ2Vfd2luZG93LmpzIl0sIm5hbWVzIjpbIlBhdGhUb29sIiwicmVxdWlyZSIsIkxvYWRlck1hbmFnZXIiLCJSb2xlQ29udHJvbGxlciIsIkV4Y2hhbmdlQ29udHJvbGxlciIsIkV4Y2hhbmdlRXZlbnQiLCJUaW1lVG9vbCIsIkV4Y2hhbmdlV2luZG93IiwiY2MiLCJDbGFzcyIsIkJhc2VWaWV3IiwiY3RvciIsInByZWZhYlBhdGgiLCJnZXRQcmVmYWJQYXRoIiwidmlld1RhZyIsIlNDRU5FX1RBRyIsImRpYWxvZ3VlIiwib3BlbkNhbGxCYWNrIiwibWFpbl9jb250YWluZXIiLCJyb290X3duZCIsImdldENoaWxkQnlOYW1lIiwiYmFja2dyb3VuZCIsImJnIiwiZ2V0Q29tcG9uZW50IiwiU3ByaXRlIiwiZ2V0SW5zdGFuY2UiLCJsb2FkUmVzIiwiZ2V0QmlnQmciLCJzcHJpdGVGcmFtZSIsImJpbmQiLCJvYmplY3RzIiwiaSIsIml0ZW0iLCJyZW1haW4iLCJMYWJlbCIsImJ0biIsImdldCIsImdvbGQiLCJjb2luIiwiZ2V0SXRlbVJlcyIsInJlcyIsInRleHRUaW1lIiwicmVnaXN0ZXJFdmVudCIsIm9uIiwiTm9kZSIsIkV2ZW50VHlwZSIsIlRPVUNIX0VORCIsImV2ZW50IiwiVXRpbHMiLCJwbGF5QnV0dG9uU291bmQiLCJvcGVuRXhjaGFuZ2VNYWluVmlldyIsInYiLCJzZW5kMjM2MDciLCJpZCIsImFkZEdsb2JhbEV2ZW50IiwiRXh0cmFfUmV3YXJkIiwiZGF0YSIsInVwZGF0ZURhdGEiLCJvcGVuUm9vdFduZCIsInNlbmQyMzYwNiIsInNldExlc3NUaW1lIiwibGlzdCIsInN0cmluZyIsIlRJMThOIiwiTWF0aCIsIm1heCIsIm51bSIsImdhaW4iLCJhY3RpdmUiLCJwcmljZSIsImlzVmFsaWQiLCJsZXNzdGltZSIsInJlZl90aW1lIiwiZ2NvcmUiLCJTbWFydFNvY2tldCIsImdldFRpbWUiLCJnZXRUaW1lRm9ybWF0IiwidGltZXIiLCJUaW1lciIsInNldCIsImNsb3NlQ2FsbEJhY2siLCJkZWwiLCJkZWxldGVSZXMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFFBQVEsR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBQ0EsSUFBSUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZUFBRCxDQUEzQjs7QUFDQSxJQUFJRSxjQUFjLEdBQUdGLE9BQU8sQ0FBQyxpQkFBRCxDQUE1Qjs7QUFDQSxJQUFJRyxrQkFBa0IsR0FBR0gsT0FBTyxDQUFDLHFCQUFELENBQWhDOztBQUNBLElBQUlJLGFBQWEsR0FBR0osT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQUlLLFFBQVEsR0FBR0wsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBRUEsSUFBSU0sY0FBYyxHQUFHQyxFQUFFLENBQUNDLEtBQUgsQ0FBUztBQUMxQixhQUFTQyxRQURpQjtBQUUxQkMsRUFBQUEsSUFBSSxFQUFDLGdCQUFVO0FBQ1gsU0FBS0MsVUFBTCxHQUFrQlosUUFBUSxDQUFDYSxhQUFULENBQXVCLFVBQXZCLEVBQW1DLG1CQUFuQyxDQUFsQjtBQUNBLFNBQUtDLE9BQUwsR0FBZUMsU0FBUyxDQUFDQyxRQUF6QjtBQUNILEdBTHlCO0FBTzFCQyxFQUFBQSxZQUFZLEVBQUUsd0JBQVk7QUFBQTs7QUFDdEIsU0FBS0MsY0FBTCxHQUFzQixLQUFLQyxRQUFMLENBQWNDLGNBQWQsQ0FBNkIsZ0JBQTdCLENBQXRCO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixLQUFLRixRQUFMLENBQWNDLGNBQWQsQ0FBNkIsWUFBN0IsQ0FBbEI7QUFDQSxTQUFLRSxFQUFMLEdBQVUsS0FBS0gsUUFBTCxDQUFjQyxjQUFkLENBQTZCLElBQTdCLEVBQW1DRyxZQUFuQyxDQUFnRGYsRUFBRSxDQUFDZ0IsTUFBbkQsQ0FBVjtB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MkIsS0FBUixFQUFjO0FBQ1ZKLE1BQUFBLEtBQUssQ0FBQ0ssS0FBTixDQUFZRyxHQUFaLENBQWdCLEtBQUtKLEtBQXJCO0FBQ0g7O0FBQ0QzRSxJQUFBQSxhQUFhLENBQUN1QixXQUFkLEdBQTRCeUQsU0FBNUIsQ0FBc0NsRixRQUFRLENBQUMyQixRQUFULENBQWtCLFVBQWxCLEVBQThCLEtBQTlCLENBQXRDO0FBQ0g7QUEzR3lCLENBQVQsQ0FBckI7QUE4R0F3RCxNQUFNLENBQUNDLE9BQVAsR0FBaUI3RSxjQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHNoaXJhaG9Ac3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg55So5oi36L6T5YWl5qGGXG4vLyA8YnIvPkNyZWF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgUGF0aFRvb2wgPSByZXF1aXJlKFwicGF0aHRvb2xcIik7XG52YXIgTG9hZGVyTWFuYWdlciA9IHJlcXVpcmUoXCJsb2FkZXJtYW5hZ2VyXCIpXG52YXIgUm9sZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwicm9sZV9jb250cm9sbGVyXCIpO1xudmFyIEV4Y2hhbmdlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJleGNoYW5nZV9jb250cm9sbGVyXCIpO1xudmFyIEV4Y2hhbmdlRXZlbnQgPSByZXF1aXJlKFwiZXhjaGFuZ2VfZXZlbnRcIik7XG52YXIgVGltZVRvb2wgPSByZXF1aXJlKFwidGltZXRvb2xcIik7XG5cbnZhciBFeGNoYW5nZVdpbmRvdyA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlVmlldyxcbiAgICBjdG9yOmZ1bmN0aW9uKCl7XG4gICAgICAgIHRoaXMucHJlZmFiUGF0aCA9IFBhdGhUb29sLmdldFByZWZhYlBhdGgoXCJleGNoYW5nZVwiLCBcImV4Y2hhbmdlX21haW5fd2luXCIpO1xuICAgICAgICB0aGlzLnZpZXdUYWcgPSBTQ0VORV9UQUcuZGlhbG9ndWU7XG4gICAgfSxcblxuICAgIG9wZW5DYWxsQmFjazogZnVuY3Rpb24gKCkgeyBcbiAgICAgICAgdGhpcy5tYWluX2NvbnRhaW5lciA9IHRoaXMucm9vdF93bmQuZ2V0Q2hpbGRCeU5hbWUoXCJtYWluX2NvbnRhaW5lclwiKTtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kID0gdGhpcy5yb290X3duZC5nZXRDaGlsZEJ5TmFtZShcImJhY2tncm91bmRcIik7XG4gICAgICAgIHRoaXMuYmcgPSB0aGlzLnJvb3Rfd25kLmdldENoaWxkQnlOYW1lKFwiYmdcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG4gICAgICAgIExvYWRlck1hbmFnZXIuZ2V0SW5zdGFuY2UoKS5sb2FkUmVzKFBhdGhUb29sLmdldEJpZ0JnKFwiYmlnYmdfNjVcIiwgXCJwbmdcIiksIChmdW5jdGlvbiAoc3ByaXRlRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYmcuc3ByaXRlRnJhbWUgPSBzcHJpdGVGcmFtZTtcbiAgICAgICAgfSkuYmluZCh0aGlzKSlcbiAgICAgICAgdGhpcy5vYmplY3RzID0ge307XG4gICAgICAgIGZvcihsZXQgaT0xOyBpPD0zOyBpKyspe1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSB7fTtcbiAgICAgICAgICAgIGl0ZW0ucmVtYWluID0gdGhpcy5tYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcInJlbWFpbl90ZXh0X1wiICsgaSkuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcbiAgICAgICAgICAgIGl0ZW0uYnRuID0gdGhpcy5tYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcImJ0bl9cIiArIGkpO1xuICAgICAgICAgICAgaXRlbS5nZXQgPSB0aGlzLm1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiZ2V0X1wiICsgaSk7XG4gICAgICAgICAgICBpdGVtLmdvbGQgPSBpdGVtLmJ0bi5nZXRDaGlsZEJ5TmFtZShcImxhYmVsXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCk7XG4gICAgICAgICAgICBpdGVtLmNvaW4gPSB0aGlzLm1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiY29pbl9cIiArIGkpLmdldENoaWxkQnlOYW1lKFwibGFiZWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKTtcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c1tpXSA9IGl0ZW07XG4gICAgICAgICAgICBMb2FkZXJNYW5hZ2VyLmdldEluc3RhbmNlKCkubG9hZFJlcyhQYXRoVG9vbC5nZXRJdGVtUmVzKFwiMVwiKSwgKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiY29pbl9cIiArIGkpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHJlc1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSlcbiAgICAgICAgICAgIGlmKHRoaXMubWFpbl9jb250YWluZXIuZ2V0Q2hpbGRCeU5hbWUoXCJidG5fXCIgKyBpKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikpe1xuICAgICAgICAgICAgICAgIExvYWRlck1hbmFnZXIuZ2V0SW5zdGFuY2UoKS5sb2FkUmVzKFBhdGhUb29sLmdldEl0ZW1SZXMoXCIzXCIpLCAoZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1haW5fY29udGFpbmVyLmdldENoaWxkQnlOYW1lKFwiYnRuX1wiICsgaSkuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gcmVzXG4gICAgICAgICAgICAgICAgfSkuYmluZCh0aGlzKSlcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRleHRUaW1lID0gdGhpcy5tYWluX2NvbnRhaW5lci5nZXRDaGlsZEJ5TmFtZShcInRleHRUaW1lXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCk7XG4gICAgfSxcblxuICAgIHJlZ2lzdGVyRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgICAgICAgVXRpbHMucGxheUJ1dHRvblNvdW5kKDIpXG4gICAgICAgICAgICBFeGNoYW5nZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5vcGVuRXhjaGFuZ2VNYWluVmlldyhmYWxzZSk7XG4gICAgICAgIH0sIHRoaXMpO1xuXG4gICAgICAgIGZvcihsZXQgaSBpbiB0aGlzLm9iamVjdHMpe1xuICAgICAgICAgICAgdGhpcy5vYmplY3RzW2ldLmJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgICAgICAgICAgICBVdGlscy5wbGF5QnV0dG9uU291bmQoMSlcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vYmplY3RzW2ldLnYpe1xuICAgICAgICAgICAgICAgICAgICBFeGNoYW5nZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMjM2MDcodGhpcy5vYmplY3RzW2ldLnYuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZEdsb2JhbEV2ZW50KEV4Y2hhbmdlRXZlbnQuRXh0cmFfUmV3YXJkLCBmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YShkYXRhKTtcbiAgICAgICAgfSwgdGhpcyk7XG4gICAgfSxcblxuICAgIG9wZW5Sb290V25kOiBmdW5jdGlvbigpe1xuICAgICAgICBFeGNoYW5nZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZW5kMjM2MDYoKTtcbiAgICB9LFxuXG4gICAgdXBkYXRlRGF0YTogZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGFcbiAgICAgICAgdGhpcy5zZXRMZXNzVGltZSgpO1xuICAgICAgICBmb3IobGV0IGkgaW4gZGF0YS5saXN0KXtcbiAgICAgICAgICAgIHZhciB2ID0gZGF0YS5saXN0W2ldO1xuICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLm9iamVjdHNbdi5pZF07XG4gICAgICAgICAgICBpdGVtLnYgPSB2O1xuICAgICAgICAgICAgaXRlbS5yZW1haW4uc3RyaW5nID0gVXRpbHMuVEkxOE4oXCLliankvZnvvJpcIiArIE1hdGgubWF4KDAsIHYubWF4LXYubnVtKSk7XG4gICAgICAgICAgICBpdGVtLmNvaW4uc3RyaW5nID0gdi5nYWluO1xuICAgICAgICAgICAgaWYodi5udW0gPj0gdi5tYXgpe1xuICAgICAgICAgICAgICAgIGl0ZW0uYnRuLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0ZW0uZ2V0LmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBpdGVtLmJ0bi5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGl0ZW0uZ2V0LmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmKHYucHJpY2UgPT0gMCl7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ29sZC5zdHJpbmcgPSBVdGlscy5USTE4TihcIuWFjei0ueiOt+WPllwiKTtcbiAgICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5nb2xkLnN0cmluZyA9IHYucHJpY2UgKyBVdGlscy5USTE4TihcIuiOt+WPllwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgc2V0TGVzc1RpbWUgOiBmdW5jdGlvbigpe1xuICAgICAgICBpZighY2MuaXNWYWxpZCh0aGlzLnRleHRUaW1lKSB8fCAhdGhpcy5kYXRhKXtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGVzc3RpbWUgPSB0aGlzLmRhdGEucmVmX3RpbWUgLSBnY29yZS5TbWFydFNvY2tldC5nZXRUaW1lKCk7XG4gICAgICAgIC8vIExvZy5pbmZvKFwiPT09PT4+PlwiLCBsZXNzdGltZSwgdGhpcy5kYXRhLCBnY29yZS5TbWFydFNvY2tldC5nZXRUaW1lKCkpO1xuICAgICAgICBpZihsZXNzdGltZSA+IDApe1xuICAgICAgICAgICAgdGhpcy50ZXh0VGltZS5zdHJpbmcgPSBUaW1lVG9vbC5nZXRUaW1lRm9ybWF0KGxlc3N0aW1lKTtcbiAgICAgICAgICAgIHRoaXMudGltZXIgPSBnY29yZS5UaW1lci5zZXQoKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMZXNzVGltZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgfSkuYmluZCh0aGlzKSwgMTAwMCwgMSk7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdGhpcy50ZXh0VGltZS5zdHJpbmcgPSBcIjAwOjAwOjAwXCI7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgY2xvc2VDYWxsQmFjazogZnVuY3Rpb24gKCkge1xuICAgICAgICBFeGNoYW5nZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5vcGVuRXhjaGFuZ2VNYWluVmlldyhmYWxzZSk7XG4gICAgICAgIGlmKHRoaXMudGltZXIpe1xuICAgICAgICAgICAgZ2NvcmUuVGltZXIuZGVsKHRoaXMudGltZXIpO1xuICAgICAgICB9XG4gICAgICAgIExvYWRlck1hbmFnZXIuZ2V0SW5zdGFuY2UoKS5kZWxldGVSZXMoUGF0aFRvb2wuZ2V0QmlnQmcoXCJiaWdiZ182NVwiLCBcInBuZ1wiKSk7XG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gRXhjaGFuZ2VXaW5kb3c7Il19