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
206
207
208
209
210
211
212
213
214
215
216
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/heroexpedit/heroexpedit_model.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, 'b8c23UwNytK6oKjkXgsjzI7', 'heroexpedit_model');
// Scripts/mod/heroexpedit/heroexpedit_model.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-03-11 14:13:49
// --------------------------------------------------------------------
var MainuiController = require("mainui_controller");
 
var RoleController = require("role_controller");
 
var HeroExpeditEvent = require("heroexpedit_event");
 
var EsecsiceConst = require("esecsice_const");
 
var MainUiConst = require("mainui_const");
 
var HeroexpeditModel = cc.Class({
  "extends": BaseClass,
  ctor: function ctor() {
    this.ctrl = arguments[0];
  },
  properties: {},
  initConfig: function initConfig() {
    this.levelRedPointStatus = 0;
    this.sendRedPointStatus = 0;
  },
  // 24406
  setEmployPartner: function setEmployPartner(data) {
    this.employPartner = data;
  },
  getEmployPartner: function getEmployPartner() {
    return this.employPartner || {};
  },
  //24404
  setPartnerMessage: function setPartnerMessage(data) {
    this.partnerMessage = data;
  },
  getPartnerMessage: function getPartnerMessage() {
    return this.partnerMessage || {};
  },
  //远征的主界面数据
  setExpeditData: function setExpeditData(data) {
    if (!data) return;
    this.expeditData = data;
    this.guard_id = data.guard_id;
    this.updateRedPoint();
  },
  updateRedPoint: function updateRedPoint() {
    RedMgr.getInstance().addCalHandler(this.checkRed.bind(this), RedIds.Heroexpedit);
  },
  checkRed: function checkRed() {
    var status = this.checkRedStatus();
 
    var SceneConst = require("scene_const");
 
    MainuiController.getInstance().setBtnRedPoint(MainUiConst.btn_index.esecsice, {
      bid: SceneConst.RedPointType.heroexpedit,
      status: status
    });
  },
  getExpeditData: function getExpeditData() {
    return this.expeditData || {};
  },
  // 通关红点
  setLevelRedPoint: function setLevelRedPoint(status) {
    this.levelRedPointStatus = status;
  },
  // 派遣红点
  setHeroSendRedPoint: function setHeroSendRedPoint(status) {
    if (status == 0) {
      status = 1;
    } else {
      status = 0;
    }
 
    this.sendRedPointStatus = status;
    gcore.GlobalEvent.fire(HeroExpeditEvent.Red_Point_Event);
  },
  getHeroSendRedPoint: function getHeroSendRedPoint() {
    if (this.sendRedPointStatus == 1) {
      return true;
    } else {
      return false;
    }
  },
  //远征红点
  checkRedStatus: function checkRedStatus() {
    var open_data = Config.dailyplay_data.data_exerciseactivity;
    var bool = MainuiController.getInstance().checkIsOpenByActivate(open_data[EsecsiceConst.execsice_index.heroexpedit].activate);
    if (bool == false) return false;
    var num = this.levelRedPointStatus + this.sendRedPointStatus;
    var status = false;
 
    if (num <= 0) {
      status = false;
    } else {
      status = true;
    }
 
    return status;
  },
  //获取宝箱的位置
  getExpeditBoxData: function getExpeditBoxData() {
    var box = [];
    var data = Config.expedition_data.data_sign_info;
 
    for (var i in data) {
      if (data[i].type == 2) {
        box.push(i);
      }
    }
 
    return box;
  },
  // 血条
  setHeroBloodById: function setHeroBloodById(data) {
    this.HeroBloodData = [];
    this.hireHeroData = [];
    this.hireHeroIsUsedData = []; //雇佣的英雄是否使用过
 
    this.setExpeditEmployData(data.list); // 本身的
 
    var role_vo = RoleController.getInstance().getRoleVo();
    var rid = 0;
    var srv_id = "";
 
    if (role_vo) {
      rid = role_vo.rid;
      srv_id = role_vo.srv_id;
    }
 
    for (var i in data.p_list) {
      var key = Utils.getNorKey(rid, srv_id, data.p_list[i].id);
      this.HeroBloodData[key] = data.p_list[i].hp_per;
    } // 雇佣的
 
 
    if (Utils.next(data.list) != null) {
      for (var j in data.list) {
        var key = Utils.getNorKey(data.list[j].rid, data.list[j].srv_id, data.list[j].id);
        this.hireHeroData[key] = true;
        this.HeroBloodData[key] = data.list[j].hp_per;
        this.hireHeroIsUsedData[key] = data.list[j].is_used;
      }
    }
  },
  getHeroBloodById: function getHeroBloodById(id, rid, srv_id) {
    if (!this.HeroBloodData) return 100;
    if (!id || typeof id != "number") return 100;
    rid = rid || 0;
    srv_id = srv_id || "";
    var key = Utils.getNorKey(rid, srv_id, id);
 
    if (this.HeroBloodData[key] == null) {
      return 100;
    }
 
    return this.HeroBloodData[key];
  },
  // 雇佣的
  getHireHero: function getHireHero(id, rid, srv_id) {
    if (!this.hireHeroData) return false;
    if (!id || typeof id != "number") return false;
    rid = rid || 0;
    srv_id = srv_id || "";
    var key = Utils.getNorKey(rid, srv_id, id);
    return this.hireHeroData[key] || false;
  },
  // 雇佣使用的
  getHireHeroIsUsed: function getHireHeroIsUsed(id, rid, srv_id) {
    if (!this.hireHeroIsUsedData) return 0;
    if (!id || typeof id != "number") return 0;
    rid = rid || 0;
    srv_id = srv_id || "";
    var key = Utils.getNorKey(rid, srv_id, id);
    return this.hireHeroIsUsedData[key] || 0;
  },
  // 英雄出征的雇佣英雄
  setExpeditEmployData: function setExpeditEmployData(data) {
    this.expeditEmployData = data;
  },
  getExpeditEmployData: function getExpeditEmployData() {
    return this.expeditEmployData || {};
  },
  __delete: function __delete() {}
});
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxoZXJvZXhwZWRpdFxcaGVyb2V4cGVkaXRfbW9kZWwuanMiXSwibmFtZXMiOlsiTWFpbnVpQ29udHJvbGxlciIsInJlcXVpcmUiLCJSb2xlQ29udHJvbGxlciIsIkhlcm9FeHBlZGl0RXZlbnQiLCJFc2Vjc2ljZUNvbnN0IiwiTWFpblVpQ29uc3QiLCJIZXJvZXhwZWRpdE1vZGVsIiwiY2MiLCJDbGFzcyIsIkJhc2VDbGFzcyIsImN0b3IiLCJjdHJsIiwiYXJndW1lbnRzIiwicHJvcGVydGllcyIsImluaXRDb25maWciLCJsZXZlbFJlZFBvaW50U3RhdHVzIiwic2VuZFJlZFBvaW50U3RhdHVzIiwic2V0RW1wbG95UGFydG5lciIsImRhdGEiLCJlbXBsb3lQYXJ0bmVyIiwiZ2V0RW1wbG95UGFydG5lciIsInNldFBhcnRuZXJNZXNzYWdlIiwicGFydG5lck1lc3NhZ2UiLCJnZXRQYXJ0bmVyTWVzc2FnZSIsInNldEV4cGVkaXREYXRhIiwiZXhwZWRpdERhdGEiLCJndWFyZF9pZCIsInVwZGF0ZVJlZFBvaW50IiwiUmVkTWdyIiwiZ2V0SW5zdGFuY2UiLCJhZGRDYWxIYW5kbGVyIiwiY2hlY2tSZWQiLCJiaW5kIiwiUmVkSWRzIiwiSGVyb2V4cGVkaXQiLCJzdGF0dXMiLCJjaGVja1JlZFN0YXR1cyIsIlNjZW5lQ29uc3QiLCJzZXRCdG5SZWRQb2ludCIsImJ0bl9pbmRleCIsImVzZWNzaWNlIiwiYmlkIiwiUmVkUG9pbnRUeXBlIiwiaGVyb2V4cGVkaXQiLCJnZXRFeHBlZGl0RGF0YSIsInNldExldmVsUmVkUG9pbnQiLCJzZXRIZXJvU2VuZFJlZFBvaW50IiwiZ2NvcmUiLCJHbG9iYWxFdmVudCIsImZpcmUiLCJSZWRfUG9pbnRfRXZlbnQiLCJnZXRIZXJvU2VuZFJlZFBvaW50Iiwib3Blbl9kYXRhIiwiQ29uZmlnIiwiZGFpbHlwbGF5X2RhdGEiLCJkYXRhX2V4ZXJjaXNlYWN0aXZpdHkiLCJib29sIiwiY2hlY2tJc09wZW5CeUFjdGl2YXRlIiwiZXhlY3NpY2VfaW5kZXgiLCJhY3RpdmF0ZSIsIm51bSIsImdldEV4cGVkaXRCb3hEYXRhIiwiYm94IiwiZXhwZWRpdGlvbl9kYXRhIiwiZGF0YV9zaWduX2luZm8iLCJpIiwidHlwZSIsInB1c2giLCJzZXRIZXJvQmxvb2RCeUlkIiwiSGVyb0Jsb29kRGF0YSIsImhpcmVIZXJvRGF0YSIsImhpcmVIZXJvSXNVc2VkRGF0YSIsInNldEV4cGVkaXRFbXBsb3lEYXRhIiwibGlzdCIsInJvbGVfdm8iLCJnZXRSb2xlVm8iLCJyaWQiLCJzcnZfaWQiLCJwX2xpc3QiLCJrZXkiLCJVdGlscyIsImdldE5vcktleSIsImlkIiwiaHBfcGVyIiwibmV4dCIsImoiLCJpc191c2VkIiwiZ2V0SGVyb0Jsb29kQnlJZCIsImdldEhpcmVIZXJvIiwiZ2V0SGlyZUhlcm9Jc1VzZWQiLCJleHBlZGl0RW1wbG95RGF0YSIsImdldEV4cGVkaXRFbXBsb3lEYXRhIiwiX19kZWxldGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsZ0JBQWdCLEdBQUdDLE9BQU8sQ0FBQyxtQkFBRCxDQUE5Qjs7QUFDQSxJQUFJQyxjQUFjLEdBQUdELE9BQU8sQ0FBQyxpQkFBRCxDQUE1Qjs7QUFDQSxJQUFJRSxnQkFBZ0IsR0FBR0YsT0FBTyxDQUFDLG1CQUFELENBQTlCOztBQUNBLElBQUlHLGFBQWEsR0FBR0gsT0FBTyxDQUFDLGdCQUFELENBQTNCOztBQUNBLElBQUlJLFdBQVcsR0FBR0osT0FBTyxDQUFDLGNBQUQsQ0FBekI7O0FBRUEsSUFBSUssZ0JBQWdCLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQzVCLGFBQVNDLFNBRG1CO0FBRTVCQyxFQUFBQSxJQUFJLEVBQUUsZ0JBQVk7QUFDZCxTQUFLQyxJQUFMLEdBQVlDLFNBQVMsQ0FBQyxDQUFELENBQXJCO0FBQ0gsR0FKMkI7QUFNNUJDLEVBQUFBLFVBQVUsRUFBRSxFQU5nQjtBQVM1QkMsRUFBQUEsVUFBVSxFQUFFLHNCQUFZO0FBQ3BCLFNBQUtDLG1CQUFMLEdBQTJCLENBQTNCO0FBQ0gsU0FBS0Msa0JBQUwsR0FBMEIsQ0FBMUI7QUFDQSxHQVoyQjtBQWM1QjtBQUNBQyxFQUFBQSxnQkFBZ0IsRUFBQywwQkFBU0MsSUFBVCxFQUFjO0FBQzNCLFNBQUtDLGFBQUwsR0FBcUJELElBQXJCO0FBQ0gsR0FqQjJCO0FBbUI1QkUsRUFBQUEsZ0JBQWdCLEVBQUMsNEJBQVU7QUFDdkIsV0FBTyxLQUFLRCxhQUFMLElBQXNCLEVBQTdCO0FBQ0gsR0FyQjJCO0FBdUI1QjtBQUNBRSxFQUFBQSxpQkFBaUIsRUFBQywyQkFBU0gsSUFBVCxFQUFjO0FBQzVCLFNBQUtJLGNBQUwsR0FBc0JKLElBQXRCO0FBQ0gsR0ExQjJCO0FBNEI1QkssRUFBQUEsaUJBQWlCLEVBQUMsNkJBQVU7QUFDeEIsV0FBTyxLQUFLRCxjQUFMLElBQXVCLEVBQTlCO0FBQ0gsR0E5QjJCO0FBZ0M1QjtBQUNBRSxFQUFBQSxjQUFjLEVBQUMsd0JBQVNOLElBQVQsRUFBYztBQUN6QixRQUFHLENBQUNBLElBQUosRUFBUztBQUNULFNBQUtPLFdBQUwsR0FBbUJQLElBQW5CO0FBQ0EsU0FBS1EsUUFBTCxHQUFnQlIsSUFBSSxDQUFDUSxRQUFyQjtBQUNBLFNBQUtDLGNBQUw7QUFDSCxHQXRDMkI7QUF3QzVCQSxFQUFBQSxjQUFjLEVBQUUsMEJBQVc7QUFDdkJDLElBQUFBLE1BQU0sQ0FBQ0MsV0FBUCxHQUFxQkMsYUFBckIsQ0FBbUMsS0FBS0MsUUFBTCxDQUFjQyxJQUFkLENBQW1CLElBQW5CLENBQW5DLEVBQTZEQyxNQUFNLENBQUNDLFdBQXBFO0FBQ0gsR0ExQzJCO0FBNEM1QkgsRUFBQUEsUUFBUSxFQUFDLG9CQUFVO0FBQ2YsUUFBSUksTUFBTSxHQUFHLEtBQUtDLGNBQUwsRUFBYjs7QUFDQSxRQUFJQyxVQUFVLEdBQUdwQyxPQUFPLENBQUMsYUFBRCxDQUF4Qjs7QUFDQUQsSUFBQUEsZ0JBQWdCLENBQUM2QixXQUFqQixHQUErQlMsY0FBL0IsQ0FBOENqQyxXQUFXLENBQUNrQyxTQUFaLENBQXNCQyxRQUFwRSxFQUE4RTtBQUFDQyxNQUFBQSxHQUFHLEVBQUNKLFVBQVUsQ0FBQ0ssWUFBWCxDQUF3QkMsV0FBN0I7QUFBMENSLE1BQUFBLE1BQU0sRUFBQ0E7QUFBakQsS0FBOUU7QUFDSCxHQWhEMkI7QUFrRDVCUyxFQUFBQSxjQUFjLEVBQUMsMEJBQVU7QUFDckIsV0FBTyxLQUFLbkIsV0FBTCxJQUFvQixFQUEzQjtBQUNILEdBcEQyQjtBQXNENUI7QUFDQW9CLEVBQUFBLGdCQUFnQixFQUFDLDBCQUFTVixNQUFULEVBQWdCO0FBQzdCLFNBQUtwQixtQkFBTCxHQUEyQm9CLE1BQTNCO0FBQ0gsR0F6RDJCO0FBMkQ1QjtBQUNBVyxFQUFBQSxtQkFBbUIsRUFBQyw2QkFBU1gsTUFBVCxFQUFnQjtBQUNoQyxRQUFHQSxNQUFNLElBQUksQ0FBYixFQUFlO0FBQ1hBLE1BQUFBLE1BQU0sR0FBRyxDQUFUO0FBQ0gsS0FGRCxNQUVLO0FBQ0RBLE1BQUFBLE1BQU0sR0FBRyxDQUFUO0FBQ0g7O0FBRUQsU0FBS25CLGtCQUFMLEdBQTBCbUIsTUFBMUI7QUFDQVksSUFBQUEsS0FBSyxDQUFDQyxXQUFOLENBQWtCQyxJQUFsQixDQUF1QjlDLGdCQUFnQixDQUFDK0MsZUFBeEM7QUFFSCxHQXRFMkI7QUF3RTVCQyxFQUFBQSxtQkFBbUIsRUFBQywrQkFBVTtBQUMxQixRQUFHLEtBQUtuQyxrQkFBTCxJQUEyQixDQUE5QixFQUFnQztBQUM1QixhQUFPLElBQVA7QUFDSCxLQUZELE1BRUs7QUFDRCxhQUFPLEtBQVA7QUFDSDtBQUNKLEdBOUUyQjtBQWdGNUI7QUFDQW9CLEVBQUFBLGNBQWMsRUFBQywwQkFBVTtBQUNyQixRQUFJZ0IsU0FBUyxHQUFHQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLHFCQUF0QztBQUNBLFFBQUlDLElBQUksR0FBR3hELGdCQUFnQixDQUFDNkIsV0FBakIsR0FBK0I0QixxQkFBL0IsQ0FBcURMLFNBQVMsQ0FBQ2hELGFBQWEsQ0FBQ3NELGNBQWQsQ0FBNkJmLFdBQTlCLENBQVQsQ0FBb0RnQixRQUF6RyxDQUFYO0FBQ0EsUUFBR0gsSUFBSSxJQUFJLEtBQVgsRUFBaUIsT0FBTyxLQUFQO0FBQ2pCLFFBQUlJLEdBQUcsR0FBRyxLQUFLN0MsbUJBQUwsR0FBMkIsS0FBS0Msa0JBQTFDO0FBQ0EsUUFBSW1CLE1BQU0sR0FBRyxLQUFiOztBQUNBLFFBQUd5QixHQUFHLElBQUksQ0FBVixFQUFZO0FBQ1J6QixNQUFBQSxNQUFNLEdBQUcsS0FBVDtBQUNILEtBRkQsTUFFSztBQUNEQSxNQUFBQSxNQUFNLEdBQUcsSUFBVDtBQUNIOztBQUNELFdBQU9BLE1BQVA7QUFDSCxHQTdGMkI7QUErRjVCO0FBQ0EwQixFQUFBQSxpQkFBaUIsRUFBQyw2QkFBVTtBQUN4QixRQUFJQyxHQUFHLEdBQUcsRUFBVjtBQUNBLFFBQUk1QyxJQUFJLEdBQUdtQyxNQUFNLENBQUNVLGVBQVAsQ0FBdUJDLGNBQWxDOztBQUNBLFNBQUksSUFBSUMsQ0FBUixJQUFhL0MsSUFBYixFQUFrQjtBQUNkLFVBQUdBLElBQUksQ0FBQytDLENBQUQsQ0FBSixDQUFRQyxJQUFSLElBQWdCLENBQW5CLEVBQXFCO0FBQ2pCSixRQUFBQSxHQUFHLENBQUNLLElBQUosQ0FBU0YsQ0FBVDtBQUNIO0FBQ0o7O0FBQ0QsV0FBT0gsR0FBUDtBQUNILEdBekcyQjtBQTJHNUI7QUFDQU0sRUFBQUEsZ0JBQWdCLEVBQUMsMEJBQVNsRCxJQUFULEVBQWM7QUFDM0IsU0FBS21ELGFBQUwsR0FBcUIsRUFBckI7QUFDQSxTQUFLQyxZQUFMLEdBQW9CLEVBQXBCO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEIsRUFBMUIsQ0FIMkIsQ0FHRTs7QUFDN0IsU0FBS0Msb0JBQUwsQ0FBMEJ0RCxJQUFJLENBQUN1RCxJQUEvQixFQUoyQixDQUszQjs7QUFDQSxRQUFJQyxPQUFPLEdBQUd4RSxjQUFjLENBQUMyQixXQUFmLEdBQTZCOEMsU0FBN0IsRUFBZDtBQUNILFFBQUlDLEdBQUcsR0FBRyxDQUFWO0FBQ0csUUFBSUMsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsUUFBR0gsT0FBSCxFQUFXO0FBQ1BFLE1BQUFBLEdBQUcsR0FBR0YsT0FBTyxDQUFDRSxHQUFkO0FBQ05DLE1BQUFBLE1BQU0sR0FBR0gsT0FBTyxDQUFDRyxNQUFqQjtBQUNHOztBQUNELFNBQUksSUFBSVosQ0FBUixJQUFhL0MsSUFBSSxDQUFDNEQsTUFBbEIsRUFBeUI7QUFDckIsVUFBSUMsR0FBRyxHQUFHQyxLQUFLLENBQUNDLFNBQU4sQ0FBZ0JMLEdBQWhCLEVBQXFCQyxNQUFyQixFQUE2QjNELElBQUksQ0FBQzRELE1BQUwsQ0FBWWIsQ0FBWixFQUFlaUIsRUFBNUMsQ0FBVjtBQUNOLFdBQUtiLGFBQUwsQ0FBbUJVLEdBQW5CLElBQTBCN0QsSUFBSSxDQUFDNEQsTUFBTCxDQUFZYixDQUFaLEVBQWVrQixNQUF6QztBQUNHLEtBaEIwQixDQWlCM0I7OztBQUNBLFFBQUdILEtBQUssQ0FBQ0ksSUFBTixDQUFXbEUsSUFBSSxDQUFDdUQsSUFBaEIsS0FBdUIsSUFBMUIsRUFBK0I7QUFDM0IsV0FBSSxJQUFJWSxDQUFSLElBQWFuRSxJQUFJLENBQUN1RCxJQUFsQixFQUF1QjtBQUNuQixZQUFJTSxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQi9ELElBQUksQ0FBQ3VELElBQUwsQ0FBVVksQ0FBVixFQUFhVCxHQUE3QixFQUFrQzFELElBQUksQ0FBQ3VELElBQUwsQ0FBVVksQ0FBVixFQUFhUixNQUEvQyxFQUF1RDNELElBQUksQ0FBQ3VELElBQUwsQ0FBVVksQ0FBVixFQUFhSCxFQUFwRSxDQUFWO0FBQ0EsYUFBS1osWUFBTCxDQUFrQlMsR0FBbEIsSUFBeUIsSUFBekI7QUFDQSxhQUFLVixhQUFMLENBQW1CVSxHQUFuQixJQUEwQjdELElBQUksQ0FBQ3VELElBQUwsQ0FBVVksQ0FBVixFQUFhRixNQUF2QztBQUNBLGFBQUtaLGtCQUFMLENBQXdCUSxHQUF4QixJQUErQjdELElBQUksQ0FBQ3VELElBQUwsQ0FBVVksQ0FBVixFQUFhQyxPQUE1QztBQUNIO0FBQ0o7QUFDSixHQXRJMkI7QUF3STVCQyxFQUFBQSxnQkFBZ0IsRUFBQywwQkFBU0wsRUFBVCxFQUFhTixHQUFiLEVBQWtCQyxNQUFsQixFQUF5QjtBQUN0QyxRQUFHLENBQUMsS0FBS1IsYUFBVCxFQUF1QixPQUFPLEdBQVA7QUFDdkIsUUFBRyxDQUFDYSxFQUFELElBQVEsT0FBT0EsRUFBUCxJQUFhLFFBQXhCLEVBQWtDLE9BQU8sR0FBUDtBQUNsQ04sSUFBQUEsR0FBRyxHQUFHQSxHQUFHLElBQUksQ0FBYjtBQUNBQyxJQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxFQUFuQjtBQUNBLFFBQUlFLEdBQUcsR0FBR0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCTCxHQUFoQixFQUFxQkMsTUFBckIsRUFBNkJLLEVBQTdCLENBQVY7O0FBQ0EsUUFBRyxLQUFLYixhQUFMLENBQW1CVSxHQUFuQixLQUEyQixJQUE5QixFQUFtQztBQUMvQixhQUFPLEdBQVA7QUFDSDs7QUFDRCxXQUFPLEtBQUtWLGFBQUwsQ0FBbUJVLEdBQW5CLENBQVA7QUFDSCxHQWxKMkI7QUFvSjVCO0FBQ0FTLEVBQUFBLFdBQVcsRUFBQyxxQkFBU04sRUFBVCxFQUFhTixHQUFiLEVBQWtCQyxNQUFsQixFQUF5QjtBQUNqQyxRQUFHLENBQUMsS0FBS1AsWUFBVCxFQUFzQixPQUFPLEtBQVA7QUFDdEIsUUFBRyxDQUFDWSxFQUFELElBQVEsT0FBT0EsRUFBUCxJQUFhLFFBQXhCLEVBQWtDLE9BQU8sS0FBUDtBQUNsQ04sSUFBQUEsR0FBRyxHQUFHQSxHQUFHLElBQUksQ0FBYjtBQUNBQyxJQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxFQUFuQjtBQUNBLFFBQUlFLEdBQUcsR0FBR0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCTCxHQUFoQixFQUFxQkMsTUFBckIsRUFBNkJLLEVBQTdCLENBQVY7QUFDQSxXQUFPLEtBQUtaLFlBQUwsQ0FBa0JTLEdBQWxCLEtBQTBCLEtBQWpDO0FBQ0gsR0E1SjJCO0FBOEo1QjtBQUNBVSxFQUFBQSxpQkFBaUIsRUFBQywyQkFBU1AsRUFBVCxFQUFhTixHQUFiLEVBQWtCQyxNQUFsQixFQUF5QjtBQUN2QyxRQUFHLENBQUMsS0FBS04sa0JBQVQsRUFBNEIsT0FBTyxDQUFQO0FBQzVCLFFBQUcsQ0FBQ1csRUFBRCxJQUFRLE9BQU9BLEVBQVAsSUFBYSxRQUF4QixFQUFrQyxPQUFPLENBQVA7QUFDbENOLElBQUFBLEdBQUcsR0FBR0EsR0FBRyxJQUFJLENBQWI7QUFDQUMsSUFBQUEsTUFBTSxHQUFHQSxNQUFNLElBQUksRUFBbkI7QUFDQSxRQUFJRSxHQUFHLEdBQUdDLEtBQUssQ0FBQ0MsU0FBTixDQUFnQkwsR0FBaEIsRUFBcUJDLE1BQXJCLEVBQTZCSyxFQUE3QixDQUFWO0FBQ0EsV0FBTyxLQUFLWCxrQkFBTCxDQUF3QlEsR0FBeEIsS0FBZ0MsQ0FBdkM7QUFDSCxHQXRLMkI7QUF3SzVCO0FBQ0FQLEVBQUFBLG9CQUFvQixFQUFDLDhCQUFTdEQsSUFBVCxFQUFjO0FBQy9CLFNBQUt3RSxpQkFBTCxHQUF5QnhFLElBQXpCO0FBQ0gsR0EzSzJCO0FBNks1QnlFLEVBQUFBLG9CQUFvQixFQUFDLGdDQUFVO0FBQzNCLFdBQU8sS0FBS0QsaUJBQUwsSUFBMEIsRUFBakM7QUFDSCxHQS9LMkI7QUFpTDVCRSxFQUFBQSxRQUFRLEVBQUMsb0JBQVUsQ0FFbEI7QUFuTDJCLENBQVQsQ0FBdkIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg6L+Z6YeM5aGr5YaZ6K+m57uG6K+05piOLOS4u+imgeWhq+WGmeivpeaooeWdl+eahOWKn+iDveeugOimgVxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDMtMTEgMTQ6MTM6NDlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgTWFpbnVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbnZhciBSb2xlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyb2xlX2NvbnRyb2xsZXJcIik7XG52YXIgSGVyb0V4cGVkaXRFdmVudCA9IHJlcXVpcmUoXCJoZXJvZXhwZWRpdF9ldmVudFwiKTtcbnZhciBFc2Vjc2ljZUNvbnN0ID0gcmVxdWlyZShcImVzZWNzaWNlX2NvbnN0XCIpO1xudmFyIE1haW5VaUNvbnN0ID0gcmVxdWlyZShcIm1haW51aV9jb25zdFwiKTtcblxudmFyIEhlcm9leHBlZGl0TW9kZWwgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNsYXNzLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5jdHJsID0gYXJndW1lbnRzWzBdO1xuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgfSxcblxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5sZXZlbFJlZFBvaW50U3RhdHVzID0gMFxuXHQgICAgdGhpcy5zZW5kUmVkUG9pbnRTdGF0dXMgPSAwXG4gICAgfSxcblxuICAgIC8vIDI0NDA2XG4gICAgc2V0RW1wbG95UGFydG5lcjpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5lbXBsb3lQYXJ0bmVyID0gZGF0YTtcbiAgICB9LFxuXG4gICAgZ2V0RW1wbG95UGFydG5lcjpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5lbXBsb3lQYXJ0bmVyIHx8IHt9O1xuICAgIH0sXG4gICAgICAgIFxuICAgIC8vMjQ0MDRcbiAgICBzZXRQYXJ0bmVyTWVzc2FnZTpmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgdGhpcy5wYXJ0bmVyTWVzc2FnZSA9IGRhdGE7XG4gICAgfSxcblxuICAgIGdldFBhcnRuZXJNZXNzYWdlOmZ1bmN0aW9uKCl7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnRuZXJNZXNzYWdlIHx8IHt9O1xuICAgIH0sXG5cbiAgICAvL+i/nOW+geeahOS4u+eVjOmdouaVsOaNrlxuICAgIHNldEV4cGVkaXREYXRhOmZ1bmN0aW9uKGRhdGEpe1xuICAgICAgICBpZighZGF0YSlyZXR1cm47XG4gICAgICAgIHRoaXMuZXhwZWRpdERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLmd1YXJkX2lkID0gZGF0YS5ndWFyZF9pZDtcbiAgICAgICAgdGhpcy51cGRhdGVSZWRQb2ludCgpO1xuICAgIH0sXG5cbiAgICB1cGRhdGVSZWRQb2ludDogZnVuY3Rpb24oKSB7XG4gICAgICAgIFJlZE1nci5nZXRJbnN0YW5jZSgpLmFkZENhbEhhbmRsZXIodGhpcy5jaGVja1JlZC5iaW5kKHRoaXMpLCBSZWRJZHMuSGVyb2V4cGVkaXQpO1xuICAgIH0sXG5cbiAgICBjaGVja1JlZDpmdW5jdGlvbigpe1xuICAgICAgICB2YXIgc3RhdHVzID0gdGhpcy5jaGVja1JlZFN0YXR1cygpO1xuICAgICAgICB2YXIgU2NlbmVDb25zdCA9IHJlcXVpcmUoXCJzY2VuZV9jb25zdFwiKTtcbiAgICAgICAgTWFpbnVpQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLnNldEJ0blJlZFBvaW50KE1haW5VaUNvbnN0LmJ0bl9pbmRleC5lc2Vjc2ljZSwge2JpZDpTY2VuZUNvbnN0LlJlZFBvaW50VHlwZS5oZXJvZXhwZWRpdCwgc3RhdHVzOnN0YXR1c30pIFxuICAgIH0sXG5cbiAgICBnZXRFeHBlZGl0RGF0YTpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5leHBlZGl0RGF0YSB8fCB7fTtcbiAgICB9LFxuXG4gICAgLy8g6YCa5YWz57qi54K5XG4gICAgc2V0TGV2ZWxSZWRQb2ludDpmdW5jdGlvbihzdGF0dXMpe1xuICAgICAgICB0aGlzLmxldmVsUmVkUG9pbnRTdGF0dXMgPSBzdGF0dXNcbiAgICB9LFxuXG4gICAgLy8g5rS+6YGj57qi54K5XG4gICAgc2V0SGVyb1NlbmRSZWRQb2ludDpmdW5jdGlvbihzdGF0dXMpe1xuICAgICAgICBpZihzdGF0dXMgPT0gMCl7XG4gICAgICAgICAgICBzdGF0dXMgPSAxXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgc3RhdHVzID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZW5kUmVkUG9pbnRTdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoSGVyb0V4cGVkaXRFdmVudC5SZWRfUG9pbnRfRXZlbnQpO1xuXG4gICAgfSxcblxuICAgIGdldEhlcm9TZW5kUmVkUG9pbnQ6ZnVuY3Rpb24oKXtcbiAgICAgICAgaWYodGhpcy5zZW5kUmVkUG9pbnRTdGF0dXMgPT0gMSl7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/ov5zlvoHnuqLngrlcbiAgICBjaGVja1JlZFN0YXR1czpmdW5jdGlvbigpe1xuICAgICAgICB2YXIgb3Blbl9kYXRhID0gQ29uZmlnLmRhaWx5cGxheV9kYXRhLmRhdGFfZXhlcmNpc2VhY3Rpdml0eTtcbiAgICAgICAgdmFyIGJvb2wgPSBNYWludWlDb250cm9sbGVyLmdldEluc3RhbmNlKCkuY2hlY2tJc09wZW5CeUFjdGl2YXRlKG9wZW5fZGF0YVtFc2Vjc2ljZUNvbnN0LmV4ZWNzaWNlX2luZGV4Lmhlcm9leHBlZGl0XS5hY3RpdmF0ZSk7XG4gICAgICAgIGlmKGJvb2wgPT0gZmFsc2UpcmV0dXJuIGZhbHNlO1xuICAgICAgICB2YXIgbnVtID0gdGhpcy5sZXZlbFJlZFBvaW50U3RhdHVzICsgdGhpcy5zZW5kUmVkUG9pbnRTdGF0dXM7XG4gICAgICAgIHZhciBzdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgaWYobnVtIDw9IDApe1xuICAgICAgICAgICAgc3RhdHVzID0gZmFsc2VcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBzdGF0dXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfSxcblxuICAgIC8v6I635Y+W5a6d566x55qE5L2N572uXG4gICAgZ2V0RXhwZWRpdEJveERhdGE6ZnVuY3Rpb24oKXtcbiAgICAgICAgdmFyIGJveCA9IFtdO1xuICAgICAgICB2YXIgZGF0YSA9IENvbmZpZy5leHBlZGl0aW9uX2RhdGEuZGF0YV9zaWduX2luZm87XG4gICAgICAgIGZvcih2YXIgaSBpbiBkYXRhKXtcbiAgICAgICAgICAgIGlmKGRhdGFbaV0udHlwZSA9PSAyKXtcbiAgICAgICAgICAgICAgICBib3gucHVzaChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYm94XG4gICAgfSxcblxuICAgIC8vIOihgOadoVxuICAgIHNldEhlcm9CbG9vZEJ5SWQ6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIHRoaXMuSGVyb0Jsb29kRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmhpcmVIZXJvRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmhpcmVIZXJvSXNVc2VkRGF0YSA9IFtdIC8v6ZuH5L2j55qE6Iux6ZuE5piv5ZCm5L2/55So6L+HXG4gICAgICAgIHRoaXMuc2V0RXhwZWRpdEVtcGxveURhdGEoZGF0YS5saXN0KTtcbiAgICAgICAgLy8g5pys6Lqr55qEXG4gICAgICAgIHZhciByb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKTtcblx0ICAgIHZhciByaWQgPSAwO1xuICAgICAgICB2YXIgc3J2X2lkID0gXCJcIjtcbiAgICAgICAgaWYocm9sZV92byl7XG4gICAgICAgICAgICByaWQgPSByb2xlX3ZvLnJpZDtcblx0XHQgICAgc3J2X2lkID0gcm9sZV92by5zcnZfaWQ7XG4gICAgICAgIH1cbiAgICAgICAgZm9yKHZhciBpIGluIGRhdGEucF9saXN0KXtcbiAgICAgICAgICAgIHZhciBrZXkgPSBVdGlscy5nZXROb3JLZXkocmlkLCBzcnZfaWQsIGRhdGEucF9saXN0W2ldLmlkKVxuXHRcdCAgICB0aGlzLkhlcm9CbG9vZERhdGFba2V5XSA9IGRhdGEucF9saXN0W2ldLmhwX3BlcjtcbiAgICAgICAgfVxuICAgICAgICAvLyDpm4fkvaPnmoRcbiAgICAgICAgaWYoVXRpbHMubmV4dChkYXRhLmxpc3QpIT1udWxsKXtcbiAgICAgICAgICAgIGZvcih2YXIgaiBpbiBkYXRhLmxpc3Qpe1xuICAgICAgICAgICAgICAgIHZhciBrZXkgPSBVdGlscy5nZXROb3JLZXkoZGF0YS5saXN0W2pdLnJpZCwgZGF0YS5saXN0W2pdLnNydl9pZCwgZGF0YS5saXN0W2pdLmlkKVxuICAgICAgICAgICAgICAgIHRoaXMuaGlyZUhlcm9EYXRhW2tleV0gPSB0cnVlXG4gICAgICAgICAgICAgICAgdGhpcy5IZXJvQmxvb2REYXRhW2tleV0gPSBkYXRhLmxpc3Rbal0uaHBfcGVyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXJlSGVyb0lzVXNlZERhdGFba2V5XSA9IGRhdGEubGlzdFtqXS5pc191c2VkXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgZ2V0SGVyb0Jsb29kQnlJZDpmdW5jdGlvbihpZCwgcmlkLCBzcnZfaWQpe1xuICAgICAgICBpZighdGhpcy5IZXJvQmxvb2REYXRhKXJldHVybiAxMDA7XG4gICAgICAgIGlmKCFpZCB8fCAodHlwZW9mIGlkICE9IFwibnVtYmVyXCIpKXJldHVybiAxMDA7XG4gICAgICAgIHJpZCA9IHJpZCB8fCAwO1xuICAgICAgICBzcnZfaWQgPSBzcnZfaWQgfHwgXCJcIjtcbiAgICAgICAgdmFyIGtleSA9IFV0aWxzLmdldE5vcktleShyaWQsIHNydl9pZCwgaWQpXG4gICAgICAgIGlmKHRoaXMuSGVyb0Jsb29kRGF0YVtrZXldID09IG51bGwpe1xuICAgICAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5IZXJvQmxvb2REYXRhW2tleV07XG4gICAgfSxcblxuICAgIC8vIOmbh+S9o+eahFxuICAgIGdldEhpcmVIZXJvOmZ1bmN0aW9uKGlkLCByaWQsIHNydl9pZCl7XG4gICAgICAgIGlmKCF0aGlzLmhpcmVIZXJvRGF0YSlyZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmKCFpZCB8fCAodHlwZW9mIGlkICE9IFwibnVtYmVyXCIpKXJldHVybiBmYWxzZTtcbiAgICAgICAgcmlkID0gcmlkIHx8IDBcbiAgICAgICAgc3J2X2lkID0gc3J2X2lkIHx8IFwiXCJcbiAgICAgICAgdmFyIGtleSA9IFV0aWxzLmdldE5vcktleShyaWQsIHNydl9pZCwgaWQpXG4gICAgICAgIHJldHVybiB0aGlzLmhpcmVIZXJvRGF0YVtrZXldIHx8IGZhbHNlO1xuICAgIH0sXG5cbiAgICAvLyDpm4fkvaPkvb/nlKjnmoRcbiAgICBnZXRIaXJlSGVyb0lzVXNlZDpmdW5jdGlvbihpZCwgcmlkLCBzcnZfaWQpe1xuICAgICAgICBpZighdGhpcy5oaXJlSGVyb0lzVXNlZERhdGEpcmV0dXJuIDA7XG4gICAgICAgIGlmKCFpZCB8fCAodHlwZW9mIGlkICE9IFwibnVtYmVyXCIpKXJldHVybiAwO1xuICAgICAgICByaWQgPSByaWQgfHwgMDtcbiAgICAgICAgc3J2X2lkID0gc3J2X2lkIHx8IFwiXCI7XG4gICAgICAgIHZhciBrZXkgPSBVdGlscy5nZXROb3JLZXkocmlkLCBzcnZfaWQsIGlkKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGlyZUhlcm9Jc1VzZWREYXRhW2tleV0gfHwgMDtcbiAgICB9LFxuXG4gICAgLy8g6Iux6ZuE5Ye65b6B55qE6ZuH5L2j6Iux6ZuEXG4gICAgc2V0RXhwZWRpdEVtcGxveURhdGE6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIHRoaXMuZXhwZWRpdEVtcGxveURhdGEgPSBkYXRhXG4gICAgfSxcblxuICAgIGdldEV4cGVkaXRFbXBsb3lEYXRhOmZ1bmN0aW9uKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGVkaXRFbXBsb3lEYXRhIHx8IHt9O1xuICAgIH0sXG5cbiAgICBfX2RlbGV0ZTpmdW5jdGlvbigpe1xuXG4gICAgfSxcbn0pOyJdfQ==