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
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/activity/activity_controller.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, '0a0ef13dQdBuLYQG/euicni', 'activity_controller');
// Scripts/mod/activity/activity_controller.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-05-06 14:29:17
// --------------------------------------------------------------------
var GuildbossEvent = require("guildboss_event");
 
var MainuiController = require("mainui_controller");
 
var BattleConst = require("battle_const");
 
var ActivityConst = require("activity_const");
 
var MainuiConst = require("mainui_const");
 
var ActivityController = cc.Class({
  "extends": BaseController,
  ctor: function ctor() {},
  // 初始化配置数据
  initConfig: function initConfig() {
    var ActivityModel = require("activity_model");
 
    this.model = new ActivityModel();
    this.model.initConfig();
  },
  // 返回当前的model
  getModel: function getModel() {
    return this.model;
  },
  // 注册监听事件
  registerEvents: function registerEvents() {
    if (this.init_role_event == null) {
      this.init_role_event = gcore.GlobalEvent.bind(EventId.EVT_ROLE_CREATE_SUCCESS, function () {
        gcore.GlobalEvent.unbind(this.init_role_event);
        this.init_role_event = null;
 
        var RoleController = require("role_controller");
 
        this._roleVo = RoleController.getInstance().getRoleVo();
 
        if (this._roleVo != null) {
          if (this.role_assets_event == null) {
            var RoleEvent = require("role_event");
 
            this.role_assets_event = this.role_vo.bind(EventId.UPDATE_ROLE_ATTRIBUTE, function (key, value) {
              if (key == "lev") {
                this.requestInitProtocal();
              }
            }.bind(this));
          }
        }
      }.bind(this));
    }
 
    if (!this.re_link_game_event) {
      this.re_link_game_event = gcore.GlobalEvent.bind(EventId.EVT_RE_LINK_GAME, function () {
        this.requestInitProtocal();
      }.bind(this));
    }
  },
  requestInitProtocal: function requestInitProtocal() {
    // --暂时没用到
    var config = Config.dailyplay_data.data_limitactivity;
 
    if (config[2].is_open == 1 && this._roleVo) {
      if (this._roleVo.lev >= config[2].activate[0][1]) {
        this.SendProtocal(21322, {});
      }
    }
  },
  // 注册协议接受事件
  registerProtocals: function registerProtocals() {
    this.RegisterProtocal(21322, this.handle21322); // 公会副本双倍时间
  },
  handle21322: function handle21322(data) {
    if (!data) return;
 
    if (data.code == 0) {
      this._doubleTime = false;
    } else if (data.code == 1) {
      this._doubleTime = true;
    }
 
    this._firstComein = this._doubleTime;
    var limitRed = false;
 
    var GuildBossController = require("guildboss_controller");
 
    var base_info = GuildBossController.getInstance().getModel().getBaseInfo();
 
    if (this._doubleTime == true) {
      if (base_info && base_info.count) {
        if (base_info.count > 0) {
          limitRed = true;
        }
      }
    }
 
    gcore.GlobalEvent.fire(GuildbossEvent.BossActivityDoubleTime, this._doubleTime);
  },
  setFirstComeGuild: function setFirstComeGuild(status) {
    this._firstComein = status;
  },
  getFirstComeGuild: function getFirstComeGuild() {
    return this._firstComein;
  },
  getBossActivityDoubleTime: function getBossActivityDoubleTime() {
    return this._doubleTime;
  },
  openActivityView: function openActivityView(bool) {
    if (bool == true) {
      if (!this.activityView) {
        this.activityView = Utils.createClass("activity_window", this);
      }
 
      if (this.activityView && this.activityView.isOpen() == false) {
        this.activityView.open();
      }
    } else {
      if (this.activityView) {
        this.activityView.close();
        this.activityView = null;
      }
    }
  },
  //  通用报名面板
  openSignView: function openSignView(value, id, data) {
    if (value == false) {
      if (this.activity_sign_view != null) {
        this.activity_sign_view.close();
        this.activity_sign_view = null;
      }
    } else {
      if (this.activity_sign_view == null) {
        this.activity_sign_view = Utils.createClass("activity_sign_window", this);
      }
 
      if (this.activity_sign_view && this.activity_sign_view.isOpen() == false) {
        this.activity_sign_view.open([id, data]);
      }
    }
  },
  // 进入活动名称(1:萌兽寻宝 2:公会Boss狂欢 3:首席争霸 4:众神战场 5:公会战 6:冠军赛)
  switchLimitActivityView: function switchLimitActivityView(_type) {
    if (_type == ActivityConst.limit_index.escort) {
      MainuiController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.Escort);
    } else if (_type == ActivityConst.limit_index.union) {
      if (this.getBossActivityDoubleTime() == false) {
        message(Utils.TI18N("当前不处于活动时段,请在活动开启后再来哦"));
      } else {
        MainuiController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.GuildDun);
      }
    } else if (_type == ActivityConst.limit_index.fightFirst) {} else if (_type == ActivityConst.limit_index.allGod) {
      MainuiController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.Godbattle);
    } else if (_type == ActivityConst.limit_index.guildwar) {// var is_open = GuildwarController:getInstance():checkIsCanOpenGuildWarWindow();
      // if(is_open == true){
      //     MainuiController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.GuildWar);;
      // }
    } else if (_type == ActivityConst.limit_index.champion) {
      MainuiController.getInstance().changeMainUIStatus(MainuiConst.btn_index.main_scene, MainuiConst.sub_type.champion_call);
    } else if (_type == ActivityConst.limit_index.ladder) {// var is_open = LadderController:getInstance():getModel():getLadderOpenStatus();
      // if(is_open == true){
      //     MainuiController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.LadderWar)
      // }
    }
  },
  //  引导使用
  getActivityRoot: function getActivityRoot() {
    if (this.activityView) {
      return this.activityView.root_wnd;
    }
  }
});
module.exports = ActivityController;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxhY3Rpdml0eVxcYWN0aXZpdHlfY29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJHdWlsZGJvc3NFdmVudCIsInJlcXVpcmUiLCJNYWludWlDb250cm9sbGVyIiwiQmF0dGxlQ29uc3QiLCJBY3Rpdml0eUNvbnN0IiwiTWFpbnVpQ29uc3QiLCJBY3Rpdml0eUNvbnRyb2xsZXIiLCJjYyIsIkNsYXNzIiwiQmFzZUNvbnRyb2xsZXIiLCJjdG9yIiwiaW5pdENvbmZpZyIsIkFjdGl2aXR5TW9kZWwiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJpbml0X3JvbGVfZXZlbnQiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiYmluZCIsIkV2ZW50SWQiLCJFVlRfUk9MRV9DUkVBVEVfU1VDQ0VTUyIsInVuYmluZCIsIlJvbGVDb250cm9sbGVyIiwiX3JvbGVWbyIsImdldEluc3RhbmNlIiwiZ2V0Um9sZVZvIiwicm9sZV9hc3NldHNfZXZlbnQiLCJSb2xlRXZlbnQiLCJyb2xlX3ZvIiwiVVBEQVRFX1JPTEVfQVRUUklCVVRFIiwia2V5IiwidmFsdWUiLCJyZXF1ZXN0SW5pdFByb3RvY2FsIiwicmVfbGlua19nYW1lX2V2ZW50IiwiRVZUX1JFX0xJTktfR0FNRSIsImNvbmZpZyIsIkNvbmZpZyIsImRhaWx5cGxheV9kYXRhIiwiZGF0YV9saW1pdGFjdGl2aXR5IiwiaXNfb3BlbiIsImxldiIsImFjdGl2YXRlIiwiU2VuZFByb3RvY2FsIiwicmVnaXN0ZXJQcm90b2NhbHMiLCJSZWdpc3RlclByb3RvY2FsIiwiaGFuZGxlMjEzMjIiLCJkYXRhIiwiY29kZSIsIl9kb3VibGVUaW1lIiwiX2ZpcnN0Q29tZWluIiwibGltaXRSZWQiLCJHdWlsZEJvc3NDb250cm9sbGVyIiwiYmFzZV9pbmZvIiwiZ2V0QmFzZUluZm8iLCJjb3VudCIsImZpcmUiLCJCb3NzQWN0aXZpdHlEb3VibGVUaW1lIiwic2V0Rmlyc3RDb21lR3VpbGQiLCJzdGF0dXMiLCJnZXRGaXJzdENvbWVHdWlsZCIsImdldEJvc3NBY3Rpdml0eURvdWJsZVRpbWUiLCJvcGVuQWN0aXZpdHlWaWV3IiwiYm9vbCIsImFjdGl2aXR5VmlldyIsIlV0aWxzIiwiY3JlYXRlQ2xhc3MiLCJpc09wZW4iLCJvcGVuIiwiY2xvc2UiLCJvcGVuU2lnblZpZXciLCJpZCIsImFjdGl2aXR5X3NpZ25fdmlldyIsInN3aXRjaExpbWl0QWN0aXZpdHlWaWV3IiwiX3R5cGUiLCJsaW1pdF9pbmRleCIsImVzY29ydCIsInJlcXVlc3RPcGVuQmF0dGxlUmVsZXZhbmNlV2luZG93IiwiRmlnaHRfVHlwZSIsIkVzY29ydCIsInVuaW9uIiwibWVzc2FnZSIsIlRJMThOIiwiR3VpbGREdW4iLCJmaWdodEZpcnN0IiwiYWxsR29kIiwiR29kYmF0dGxlIiwiZ3VpbGR3YXIiLCJjaGFtcGlvbiIsImNoYW5nZU1haW5VSVN0YXR1cyIsImJ0bl9pbmRleCIsIm1haW5fc2NlbmUiLCJzdWJfdHlwZSIsImNoYW1waW9uX2NhbGwiLCJsYWRkZXIiLCJnZXRBY3Rpdml0eVJvb3QiLCJyb290X3duZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsY0FBYyxHQUFHQyxPQUFPLENBQUMsaUJBQUQsQ0FBNUI7O0FBQ0EsSUFBSUMsZ0JBQWdCLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUE5Qjs7QUFDQSxJQUFJRSxXQUFXLEdBQVdGLE9BQU8sQ0FBQyxjQUFELENBQWpDOztBQUNBLElBQUlHLGFBQWEsR0FBR0gsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQUlJLFdBQVcsR0FBR0osT0FBTyxDQUFDLGNBQUQsQ0FBekI7O0FBRUEsSUFBSUssa0JBQWtCLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQzlCLGFBQVNDLGNBRHFCO0FBRTlCQyxFQUFBQSxJQUFJLEVBQUUsZ0JBQVksQ0FDakIsQ0FINkI7QUFLOUI7QUFDQUMsRUFBQUEsVUFBVSxFQUFFLHNCQUFZO0FBQ3BCLFFBQUlDLGFBQWEsR0FBR1gsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUVBLFNBQUtZLEtBQUwsR0FBYSxJQUFJRCxhQUFKLEVBQWI7QUFDQSxTQUFLQyxLQUFMLENBQVdGLFVBQVg7QUFDSCxHQVg2QjtBQWE5QjtBQUNBRyxFQUFBQSxRQUFRLEVBQUUsb0JBQVk7QUFDbEIsV0FBTyxLQUFLRCxLQUFaO0FBQ0gsR0FoQjZCO0FBa0I5QjtBQUNBRSxFQUFBQSxjQUFjLEVBQUUsMEJBQVk7QUFDeEIsUUFBRyxLQUFLQyxlQUFMLElBQXdCLElBQTNCLEVBQWdDO0FBQzVCLFdBQUtBLGVBQUwsR0FBdUJDLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkMsSUFBbEIsQ0FBdUJDLE9BQU8sQ0FBQ0MsdUJBQS9CLEVBQXdELFlBQVc7QUFDdEZKLFFBQUFBLEtBQUssQ0FBQ0MsV0FBTixDQUFrQkksTUFBbEIsQ0FBeUIsS0FBS04sZUFBOUI7QUFDQSxhQUFLQSxlQUFMLEdBQXVCLElBQXZCOztBQUNBLFlBQUlPLGNBQWMsR0FBR3RCLE9BQU8sQ0FBQyxpQkFBRCxDQUE1Qjs7QUFDQSxhQUFLdUIsT0FBTCxHQUFlRCxjQUFjLENBQUNFLFdBQWYsR0FBNkJDLFNBQTdCLEVBQWY7O0FBQ0EsWUFBRyxLQUFLRixPQUFMLElBQWMsSUFBakIsRUFBc0I7QUFDbEIsY0FBRyxLQUFLRyxpQkFBTCxJQUEwQixJQUE3QixFQUFrQztBQUM5QixnQkFBSUMsU0FBUyxHQUFHM0IsT0FBTyxDQUFDLFlBQUQsQ0FBdkI7O0FBQ0EsaUJBQUswQixpQkFBTCxHQUF5QixLQUFLRSxPQUFMLENBQWFWLElBQWIsQ0FBa0JDLE9BQU8sQ0FBQ1UscUJBQTFCLEVBQWlELFVBQVNDLEdBQVQsRUFBY0MsS0FBZCxFQUFvQjtBQUMxRixrQkFBR0QsR0FBRyxJQUFJLEtBQVYsRUFBZ0I7QUFDWixxQkFBS0UsbUJBQUw7QUFDSDtBQUNKLGFBSnlFLENBSXhFZCxJQUp3RSxDQUluRSxJQUptRSxDQUFqRCxDQUF6QjtBQUtIO0FBQ0o7QUFDSixPQWY4RSxDQWU3RUEsSUFmNkUsQ0FleEUsSUFmd0UsQ0FBeEQsQ0FBdkI7QUFnQkg7O0FBR0QsUUFBSSxDQUFDLEtBQUtlLGtCQUFWLEVBQThCO0FBQzFCLFdBQUtBLGtCQUFMLEdBQTBCakIsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxJQUFsQixDQUF1QkMsT0FBTyxDQUFDZSxnQkFBL0IsRUFBaUQsWUFBVTtBQUNqRixhQUFLRixtQkFBTDtBQUNILE9BRjBFLENBRXpFZCxJQUZ5RSxDQUVwRSxJQUZvRSxDQUFqRCxDQUExQjtBQUdIO0FBRUosR0E5QzZCO0FBK0M5QmMsRUFBQUEsbUJBL0M4QixpQ0ErQ1Q7QUFDakI7QUFDQSxRQUFJRyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsa0JBQW5DOztBQUNBLFFBQUdILE1BQU0sQ0FBQyxDQUFELENBQU4sQ0FBVUksT0FBVixJQUFxQixDQUFyQixJQUEwQixLQUFLaEIsT0FBbEMsRUFBMEM7QUFDdEMsVUFBRyxLQUFLQSxPQUFMLENBQWFpQixHQUFiLElBQW9CTCxNQUFNLENBQUMsQ0FBRCxDQUFOLENBQVVNLFFBQVYsQ0FBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FBdkIsRUFBZ0Q7QUFDNUMsYUFBS0MsWUFBTCxDQUFrQixLQUFsQixFQUF5QixFQUF6QjtBQUNIO0FBQ0o7QUFDSixHQXZENkI7QUF3RDlCO0FBQ0FDLEVBQUFBLGlCQUFpQixFQUFFLDZCQUFZO0FBQzNCLFNBQUtDLGdCQUFMLENBQXNCLEtBQXRCLEVBQTZCLEtBQUtDLFdBQWxDLEVBRDJCLENBQ3NCO0FBQ3BELEdBM0Q2QjtBQTZEOUJBLEVBQUFBLFdBQVcsRUFBQyxxQkFBU0MsSUFBVCxFQUFjO0FBQ3RCLFFBQUcsQ0FBQ0EsSUFBSixFQUFTOztBQUNULFFBQUdBLElBQUksQ0FBQ0MsSUFBTCxJQUFhLENBQWhCLEVBQWtCO0FBQ2QsV0FBS0MsV0FBTCxHQUFtQixLQUFuQjtBQUNILEtBRkQsTUFFTSxJQUFHRixJQUFJLENBQUNDLElBQUwsSUFBYSxDQUFoQixFQUFrQjtBQUNwQixXQUFLQyxXQUFMLEdBQW1CLElBQW5CO0FBQ0g7O0FBQ0QsU0FBS0MsWUFBTCxHQUFvQixLQUFLRCxXQUF6QjtBQUNBLFFBQUlFLFFBQVEsR0FBRyxLQUFmOztBQUNBLFFBQUlDLG1CQUFtQixHQUFHbkQsT0FBTyxDQUFDLHNCQUFELENBQWpDOztBQUNBLFFBQUlvRCxTQUFTLEdBQUdELG1CQUFtQixDQUFDM0IsV0FBcEIsR0FBa0NYLFFBQWxDLEdBQTZDd0MsV0FBN0MsRUFBaEI7O0FBRUEsUUFBRyxLQUFLTCxXQUFMLElBQW9CLElBQXZCLEVBQTRCO0FBQ3hCLFVBQUdJLFNBQVMsSUFBSUEsU0FBUyxDQUFDRSxLQUExQixFQUFnQztBQUM1QixZQUFHRixTQUFTLENBQUNFLEtBQVYsR0FBa0IsQ0FBckIsRUFBdUI7QUFDbkJKLFVBQUFBLFFBQVEsR0FBRyxJQUFYO0FBQ0g7QUFDSjtBQUNKOztBQUNEbEMsSUFBQUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCc0MsSUFBbEIsQ0FBdUJ4RCxjQUFjLENBQUN5RCxzQkFBdEMsRUFBOEQsS0FBS1IsV0FBbkU7QUFDSCxHQWpGNkI7QUFtRjlCUyxFQUFBQSxpQkFBaUIsRUFBQywyQkFBU0MsTUFBVCxFQUFnQjtBQUM5QixTQUFLVCxZQUFMLEdBQW9CUyxNQUFwQjtBQUNILEdBckY2QjtBQXVGOUJDLEVBQUFBLGlCQUFpQixFQUFDLDZCQUFVO0FBQ3hCLFdBQU8sS0FBS1YsWUFBWjtBQUNILEdBekY2QjtBQTJGOUJXLEVBQUFBLHlCQUF5QixFQUFDLHFDQUFVO0FBQ2hDLFdBQU8sS0FBS1osV0FBWjtBQUNILEdBN0Y2QjtBQStGOUJhLEVBQUFBLGdCQUFnQixFQUFDLDBCQUFTQyxJQUFULEVBQWM7QUFDM0IsUUFBR0EsSUFBSSxJQUFJLElBQVgsRUFBZ0I7QUFDWixVQUFHLENBQUMsS0FBS0MsWUFBVCxFQUFzQjtBQUNsQixhQUFLQSxZQUFMLEdBQW9CQyxLQUFLLENBQUNDLFdBQU4sQ0FBa0IsaUJBQWxCLEVBQW9DLElBQXBDLENBQXBCO0FBQ0g7O0FBQ0QsVUFBRyxLQUFLRixZQUFMLElBQXFCLEtBQUtBLFlBQUwsQ0FBa0JHLE1BQWxCLE1BQThCLEtBQXRELEVBQTREO0FBQ3hELGFBQUtILFlBQUwsQ0FBa0JJLElBQWxCO0FBQ0g7QUFFSixLQVJELE1BUUs7QUFDRCxVQUFHLEtBQUtKLFlBQVIsRUFBcUI7QUFDakIsYUFBS0EsWUFBTCxDQUFrQkssS0FBbEI7QUFDQSxhQUFLTCxZQUFMLEdBQW9CLElBQXBCO0FBQ0g7QUFDSjtBQUNKLEdBOUc2QjtBQWdIOUI7QUFDQU0sRUFBQUEsWUFBWSxFQUFDLHNCQUFTdEMsS0FBVCxFQUFnQnVDLEVBQWhCLEVBQW9CeEIsSUFBcEIsRUFBeUI7QUFDbEMsUUFBR2YsS0FBSyxJQUFJLEtBQVosRUFBa0I7QUFDZCxVQUFHLEtBQUt3QyxrQkFBTCxJQUF5QixJQUE1QixFQUFpQztBQUM3QixhQUFLQSxrQkFBTCxDQUF3QkgsS0FBeEI7QUFDQSxhQUFLRyxrQkFBTCxHQUEwQixJQUExQjtBQUNIO0FBQ0osS0FMRCxNQUtLO0FBQ0QsVUFBRyxLQUFLQSxrQkFBTCxJQUEyQixJQUE5QixFQUFtQztBQUMvQixhQUFLQSxrQkFBTCxHQUEwQlAsS0FBSyxDQUFDQyxXQUFOLENBQWtCLHNCQUFsQixFQUF5QyxJQUF6QyxDQUExQjtBQUNIOztBQUNELFVBQUcsS0FBS00sa0JBQUwsSUFBMkIsS0FBS0Esa0JBQUwsQ0FBd0JMLE1BQXhCLE1BQW9DLEtBQWxFLEVBQXdFO0FBQ3BFLGFBQUtLLGtCQUFMLENBQXdCSixJQUF4QixDQUE2QixDQUFDRyxFQUFELEVBQUt4QixJQUFMLENBQTdCO0FBQ0g7QUFDSjtBQUNKLEdBL0g2QjtBQWlJOUI7QUFDQTBCLEVBQUFBLHVCQUF1QixFQUFDLGlDQUFTQyxLQUFULEVBQWU7QUFDbkMsUUFBR0EsS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQkMsTUFBdEMsRUFBNkM7QUFDekMxRSxNQUFBQSxnQkFBZ0IsQ0FBQ3VCLFdBQWpCLEdBQStCb0QsZ0NBQS9CLENBQWdFMUUsV0FBVyxDQUFDMkUsVUFBWixDQUF1QkMsTUFBdkY7QUFDSCxLQUZELE1BRU0sSUFBR0wsS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQkssS0FBdEMsRUFBNEM7QUFDOUMsVUFBRyxLQUFLbkIseUJBQUwsTUFBb0MsS0FBdkMsRUFBNkM7QUFDekNvQixRQUFBQSxPQUFPLENBQUNoQixLQUFLLENBQUNpQixLQUFOLENBQVksc0JBQVosQ0FBRCxDQUFQO0FBQ0gsT0FGRCxNQUVLO0FBQ0RoRixRQUFBQSxnQkFBZ0IsQ0FBQ3VCLFdBQWpCLEdBQStCb0QsZ0NBQS9CLENBQWdFMUUsV0FBVyxDQUFDMkUsVUFBWixDQUF1QkssUUFBdkY7QUFDSDtBQUNKLEtBTkssTUFNQSxJQUFHVCxLQUFLLElBQUl0RSxhQUFhLENBQUN1RSxXQUFkLENBQTBCUyxVQUF0QyxFQUFpRCxDQUV0RCxDQUZLLE1BRUEsSUFBR1YsS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQlUsTUFBdEMsRUFBNkM7QUFDL0NuRixNQUFBQSxnQkFBZ0IsQ0FBQ3VCLFdBQWpCLEdBQStCb0QsZ0NBQS9CLENBQWdFMUUsV0FBVyxDQUFDMkUsVUFBWixDQUF1QlEsU0FBdkY7QUFDSCxLQUZLLE1BRUEsSUFBR1osS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQlksUUFBdEMsRUFBK0MsQ0FDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDSCxLQUxLLE1BS0EsSUFBR2IsS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQmEsUUFBdEMsRUFBK0M7QUFDakR0RixNQUFBQSxnQkFBZ0IsQ0FBQ3VCLFdBQWpCLEdBQStCZ0Usa0JBQS9CLENBQWtEcEYsV0FBVyxDQUFDcUYsU0FBWixDQUFzQkMsVUFBeEUsRUFBb0Z0RixXQUFXLENBQUN1RixRQUFaLENBQXFCQyxhQUF6RztBQUNILEtBRkssTUFFQSxJQUFHbkIsS0FBSyxJQUFJdEUsYUFBYSxDQUFDdUUsV0FBZCxDQUEwQm1CLE1BQXRDLEVBQTZDLENBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0g7QUFDSixHQTVKNkI7QUE4SjlCO0FBQ0FDLEVBQUFBLGVBQWUsRUFBQywyQkFBVTtBQUN0QixRQUFHLEtBQUsvQixZQUFSLEVBQXFCO0FBQ2pCLGFBQU8sS0FBS0EsWUFBTCxDQUFrQmdDLFFBQXpCO0FBQ0g7QUFDSjtBQW5LNkIsQ0FBVCxDQUF6QjtBQXNLQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCNUYsa0JBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTA1LTA2IDE0OjI5OjE3XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIEd1aWxkYm9zc0V2ZW50ID0gcmVxdWlyZShcImd1aWxkYm9zc19ldmVudFwiKTtcbnZhciBNYWludWlDb250cm9sbGVyID0gcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpXG52YXIgQmF0dGxlQ29uc3QgICAgICAgICA9IHJlcXVpcmUoXCJiYXR0bGVfY29uc3RcIik7XG52YXIgQWN0aXZpdHlDb25zdCA9IHJlcXVpcmUoXCJhY3Rpdml0eV9jb25zdFwiKTtcbnZhciBNYWludWlDb25zdCA9IHJlcXVpcmUoXCJtYWludWlfY29uc3RcIik7XG5cbnZhciBBY3Rpdml0eUNvbnRyb2xsZXIgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNvbnRyb2xsZXIsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbphY3nva7mlbDmja5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBBY3Rpdml0eU1vZGVsID0gcmVxdWlyZShcImFjdGl2aXR5X21vZGVsXCIpO1xuXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgQWN0aXZpdHlNb2RlbCgpO1xuICAgICAgICB0aGlzLm1vZGVsLmluaXRDb25maWcoKTtcbiAgICB9LFxuXG4gICAgLy8g6L+U5Zue5b2T5YmN55qEbW9kZWxcbiAgICBnZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgICB9LFxuXG4gICAgLy8g5rOo5YaM55uR5ZCs5LqL5Lu2XG4gICAgcmVnaXN0ZXJFdmVudHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYodGhpcy5pbml0X3JvbGVfZXZlbnQgPT0gbnVsbCl7XG4gICAgICAgICAgICB0aGlzLmluaXRfcm9sZV9ldmVudCA9IGdjb3JlLkdsb2JhbEV2ZW50LmJpbmQoRXZlbnRJZC5FVlRfUk9MRV9DUkVBVEVfU1VDQ0VTUywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQudW5iaW5kKHRoaXMuaW5pdF9yb2xlX2V2ZW50KVxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdF9yb2xlX2V2ZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB2YXIgUm9sZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwicm9sZV9jb250cm9sbGVyXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JvbGVWbyA9IFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fcm9sZVZvIT1udWxsKXtcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5yb2xlX2Fzc2V0c19ldmVudCA9PSBudWxsKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBSb2xlRXZlbnQgPSByZXF1aXJlKFwicm9sZV9ldmVudFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm9sZV9hc3NldHNfZXZlbnQgPSB0aGlzLnJvbGVfdm8uYmluZChFdmVudElkLlVQREFURV9ST0xFX0FUVFJJQlVURSwgZnVuY3Rpb24oa2V5LCB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoa2V5ID09IFwibGV2XCIpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RJbml0UHJvdG9jYWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LmJpbmQodGhpcykpXG4gICAgICAgIH1cblxuXG4gICAgICAgIGlmICghdGhpcy5yZV9saW5rX2dhbWVfZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVfbGlua19nYW1lX2V2ZW50ID0gZ2NvcmUuR2xvYmFsRXZlbnQuYmluZChFdmVudElkLkVWVF9SRV9MSU5LX0dBTUUsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0SW5pdFByb3RvY2FsKCk7XG4gICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICB9XG5cbiAgICB9LFxuICAgIHJlcXVlc3RJbml0UHJvdG9jYWwoKXtcbiAgICAgICAgLy8gLS3mmoLml7bmsqHnlKjliLBcbiAgICAgICAgbGV0IGNvbmZpZyA9IENvbmZpZy5kYWlseXBsYXlfZGF0YS5kYXRhX2xpbWl0YWN0aXZpdHlcbiAgICAgICAgaWYoY29uZmlnWzJdLmlzX29wZW4gPT0gMSAmJiB0aGlzLl9yb2xlVm8pe1xuICAgICAgICAgICAgaWYodGhpcy5fcm9sZVZvLmxldiA+PSBjb25maWdbMl0uYWN0aXZhdGVbMF1bMV0pe1xuICAgICAgICAgICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDIxMzIyLCB7fSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy8g5rOo5YaM5Y2P6K6u5o6l5Y+X5LqL5Lu2XG4gICAgcmVnaXN0ZXJQcm90b2NhbHM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDIxMzIyLCB0aGlzLmhhbmRsZTIxMzIyKSAgIC8vIOWFrOS8muWJr+acrOWPjOWAjeaXtumXtFxuICAgIH0sXG5cbiAgICBoYW5kbGUyMTMyMjpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgaWYoIWRhdGEpcmV0dXJuO1xuICAgICAgICBpZihkYXRhLmNvZGUgPT0gMCl7XG4gICAgICAgICAgICB0aGlzLl9kb3VibGVUaW1lID0gZmFsc2U7XG4gICAgICAgIH1lbHNlIGlmKGRhdGEuY29kZSA9PSAxKXtcbiAgICAgICAgICAgIHRoaXMuX2RvdWJsZVRpbWUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpcnN0Q29tZWluID0gdGhpcy5fZG91YmxlVGltZTtcbiAgICAgICAgdmFyIGxpbWl0UmVkID0gZmFsc2U7XG4gICAgICAgIHZhciBHdWlsZEJvc3NDb250cm9sbGVyID0gcmVxdWlyZShcImd1aWxkYm9zc19jb250cm9sbGVyXCIpO1xuICAgICAgICB2YXIgYmFzZV9pbmZvID0gR3VpbGRCb3NzQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldE1vZGVsKCkuZ2V0QmFzZUluZm8oKTtcblxuICAgICAgICBpZih0aGlzLl9kb3VibGVUaW1lID09IHRydWUpe1xuICAgICAgICAgICAgaWYoYmFzZV9pbmZvICYmIGJhc2VfaW5mby5jb3VudCl7XG4gICAgICAgICAgICAgICAgaWYoYmFzZV9pbmZvLmNvdW50ID4gMCl7XG4gICAgICAgICAgICAgICAgICAgIGxpbWl0UmVkID0gdHJ1ZTsgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoR3VpbGRib3NzRXZlbnQuQm9zc0FjdGl2aXR5RG91YmxlVGltZSwgdGhpcy5fZG91YmxlVGltZSk7XG4gICAgfSxcblxuICAgIHNldEZpcnN0Q29tZUd1aWxkOmZ1bmN0aW9uKHN0YXR1cyl7XG4gICAgICAgIHRoaXMuX2ZpcnN0Q29tZWluID0gc3RhdHVzO1xuICAgIH0sXG5cbiAgICBnZXRGaXJzdENvbWVHdWlsZDpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RDb21laW47XG4gICAgfSxcblxuICAgIGdldEJvc3NBY3Rpdml0eURvdWJsZVRpbWU6ZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvdWJsZVRpbWU7XG4gICAgfSxcblxuICAgIG9wZW5BY3Rpdml0eVZpZXc6ZnVuY3Rpb24oYm9vbCl7XG4gICAgICAgIGlmKGJvb2wgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZighdGhpcy5hY3Rpdml0eVZpZXcpe1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlWaWV3ID0gVXRpbHMuY3JlYXRlQ2xhc3MoXCJhY3Rpdml0eV93aW5kb3dcIix0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHRoaXMuYWN0aXZpdHlWaWV3ICYmIHRoaXMuYWN0aXZpdHlWaWV3LmlzT3BlbigpID09IGZhbHNlKXtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5Vmlldy5vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZih0aGlzLmFjdGl2aXR5Vmlldyl7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eVZpZXcuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5VmlldyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gIOmAmueUqOaKpeWQjemdouadv1xuICAgIG9wZW5TaWduVmlldzpmdW5jdGlvbih2YWx1ZSwgaWQsIGRhdGEpe1xuICAgICAgICBpZih2YWx1ZSA9PSBmYWxzZSl7XG4gICAgICAgICAgICBpZih0aGlzLmFjdGl2aXR5X3NpZ25fdmlldyE9bnVsbCl7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eV9zaWduX3ZpZXcuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXR5X3NpZ25fdmlldyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYodGhpcy5hY3Rpdml0eV9zaWduX3ZpZXcgPT0gbnVsbCl7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eV9zaWduX3ZpZXcgPSBVdGlscy5jcmVhdGVDbGFzcyhcImFjdGl2aXR5X3NpZ25fd2luZG93XCIsdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZih0aGlzLmFjdGl2aXR5X3NpZ25fdmlldyAmJiB0aGlzLmFjdGl2aXR5X3NpZ25fdmlldy5pc09wZW4oKSA9PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpdml0eV9zaWduX3ZpZXcub3BlbihbaWQsIGRhdGFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyDov5vlhaXmtLvliqjlkI3np7AoMTrokIzlhb3lr7vlrp0gMjrlhazkvJpCb3Nz54uC5qyiIDM66aaW5bit5LqJ6Zy4IDQ65LyX56We5oiY5Zy6IDU65YWs5Lya5oiYIDY65Yag5Yab6LWbKVxuICAgIHN3aXRjaExpbWl0QWN0aXZpdHlWaWV3OmZ1bmN0aW9uKF90eXBlKXtcbiAgICAgICAgaWYoX3R5cGUgPT0gQWN0aXZpdHlDb25zdC5saW1pdF9pbmRleC5lc2NvcnQpe1xuICAgICAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLnJlcXVlc3RPcGVuQmF0dGxlUmVsZXZhbmNlV2luZG93KEJhdHRsZUNvbnN0LkZpZ2h0X1R5cGUuRXNjb3J0KTtcbiAgICAgICAgfWVsc2UgaWYoX3R5cGUgPT0gQWN0aXZpdHlDb25zdC5saW1pdF9pbmRleC51bmlvbil7XG4gICAgICAgICAgICBpZih0aGlzLmdldEJvc3NBY3Rpdml0eURvdWJsZVRpbWUoKSA9PSBmYWxzZSl7XG4gICAgICAgICAgICAgICAgbWVzc2FnZShVdGlscy5USTE4TihcIuW9k+WJjeS4jeWkhOS6jua0u+WKqOaXtuaute+8jOivt+WcqOa0u+WKqOW8gOWQr+WQjuWGjeadpeWTplwiKSk7XG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkucmVxdWVzdE9wZW5CYXR0bGVSZWxldmFuY2VXaW5kb3coQmF0dGxlQ29uc3QuRmlnaHRfVHlwZS5HdWlsZER1bikgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9ZWxzZSBpZihfdHlwZSA9PSBBY3Rpdml0eUNvbnN0LmxpbWl0X2luZGV4LmZpZ2h0Rmlyc3Qpe1xuICAgICAgICAgICAgXG4gICAgICAgIH1lbHNlIGlmKF90eXBlID09IEFjdGl2aXR5Q29uc3QubGltaXRfaW5kZXguYWxsR29kKXtcbiAgICAgICAgICAgIE1haW51aUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5yZXF1ZXN0T3BlbkJhdHRsZVJlbGV2YW5jZVdpbmRvdyhCYXR0bGVDb25zdC5GaWdodF9UeXBlLkdvZGJhdHRsZSk7XG4gICAgICAgIH1lbHNlIGlmKF90eXBlID09IEFjdGl2aXR5Q29uc3QubGltaXRfaW5kZXguZ3VpbGR3YXIpe1xuICAgICAgICAgICAgLy8gdmFyIGlzX29wZW4gPSBHdWlsZHdhckNvbnRyb2xsZXI6Z2V0SW5zdGFuY2UoKTpjaGVja0lzQ2FuT3Blbkd1aWxkV2FyV2luZG93KCk7XG4gICAgICAgICAgICAvLyBpZihpc19vcGVuID09IHRydWUpe1xuICAgICAgICAgICAgLy8gICAgIE1haW51aUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5yZXF1ZXN0T3BlbkJhdHRsZVJlbGV2YW5jZVdpbmRvdyhCYXR0bGVDb25zdC5GaWdodF9UeXBlLkd1aWxkV2FyKTs7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1lbHNlIGlmKF90eXBlID09IEFjdGl2aXR5Q29uc3QubGltaXRfaW5kZXguY2hhbXBpb24pe1xuICAgICAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmNoYW5nZU1haW5VSVN0YXR1cyhNYWludWlDb25zdC5idG5faW5kZXgubWFpbl9zY2VuZSwgTWFpbnVpQ29uc3Quc3ViX3R5cGUuY2hhbXBpb25fY2FsbCk7XG4gICAgICAgIH1lbHNlIGlmKF90eXBlID09IEFjdGl2aXR5Q29uc3QubGltaXRfaW5kZXgubGFkZGVyKXtcbiAgICAgICAgICAgIC8vIHZhciBpc19vcGVuID0gTGFkZGVyQ29udHJvbGxlcjpnZXRJbnN0YW5jZSgpOmdldE1vZGVsKCk6Z2V0TGFkZGVyT3BlblN0YXR1cygpO1xuICAgICAgICAgICAgLy8gaWYoaXNfb3BlbiA9PSB0cnVlKXtcbiAgICAgICAgICAgIC8vICAgICBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkucmVxdWVzdE9wZW5CYXR0bGVSZWxldmFuY2VXaW5kb3coQmF0dGxlQ29uc3QuRmlnaHRfVHlwZS5MYWRkZXJXYXIpXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gIOW8leWvvOS9v+eUqFxuICAgIGdldEFjdGl2aXR5Um9vdDpmdW5jdGlvbigpe1xuICAgICAgICBpZih0aGlzLmFjdGl2aXR5Vmlldyl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVZpZXcucm9vdF93bmQ7XG4gICAgICAgIH1cbiAgICB9LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQWN0aXZpdHlDb250cm9sbGVyOyJdfQ==