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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
|
| (function() {
| var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
| var __module = nodeEnv ? module : {exports:{}};
| var __filename = 'preview-scripts/assets/Scripts/mod/battle/battle_const.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, 'da627tjxzpNZL4bM5lpxwlz', 'battle_const');
| // Scripts/mod/battle/battle_const.js
|
| "use strict";
|
| var _Old_Halo_Id_Change;
|
| function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
| // --------------------------------------------------------------------
| // @author: shiraho@syg.com(必填, 创建模块的人员)
| // @description:
| // 战斗的常量控制
| // <br/>Create: new Date().toISOString()
| // --------------------------------------------------------------------
| var BattleConst = {
| Fight_Type: {
| Nil: 0,
| Default: 1,
| Arena: 2,
| //竞技场
| Darma: 3,
| //剧情副本战斗
| SingleBoss: 4,
| //个人Boss
| WorldBoss: 5,
| //世界boss
| Adventrue: 6,
| //神界探险
| StarTower: 7,
| //星命塔
| PK: 8,
| //切磋
| GuildDun: 9,
| //帮会副本
| Champion: 10,
| //冠军联赛
| Endless: 11,
| //无尽试炼
| LimitBoss: 12,
| //限时BOSS
| Escort: 13,
| //护送
| DungeonStone: 14,
| //宝石副本
| Godbattle: 15,
| //众神战场
| GuildWar: 16,
| //联盟战
| PrimusWar: 17,
| //荣耀神殿战
| LadderWar: 18,
| //跨服天梯
| ExpeditFight: 21,
| //远征
| EliteMatchWar: 23,
| //精英赛
| EliteKingMatchWar: 24,
| //王者赛
| ElementWar: 25,
| // 元素圣殿
| HeroTestWar: 26,
| // 英雄试玩
| HeavenWar: 27,
| // 天界副本
| CrossArenaWar: 28,
| // 跨服竞技场
| LimitExercise: 29,
| // 试炼之境
| AdventrueMine: 30 //秘矿冒险
|
| },
| // 战斗单位类型
| Unit_Type: {
| Role: 1,
| // 主角单位,暂时没有用了
| Hero: 2,
| // 伙伴
| Monster: 3,
| // 怪物
| Hallows: 4 // 神器
|
| },
| Group_Type: {
| Friend: 1,
| Enemgy: 2
| },
| Battle_Type_Conf: {
| TYPE_ENEMY: -1,
| TYPE_ROLE: 1,
| BATTLE_EXIT: 1
| },
| Skill_Type: {
| ACTIVE_SKILL: "active_skill",
| //主动技能
| PASSIVE_SKILL: "passive_skill",
| //被动技能
| EQM_PASSIVE_SKILL: "eqm_passive_skill" //装备被动技能
|
| },
| // 战斗特效播放类型
| Effect_Play_Type: {
| ROLE: 1,
| // 自己
| SCENE: 2,
| // 场景
| ROLE_SCENE: 3,
| // 友方场景
| ENEMY_SCENE: 4,
| // 敌方场景
| TARGET: 5 // 敌方目标
|
| },
| // 是否在战斗中的类型
| Battle_In_Type: {
| Nil: 0,
| // 当前不在战斗
| UnReal: 1,
| // 假战斗
| Real: 2 // 真战斗
|
| },
| // 分享类型
| ShareType: {
| SharePk: 1,
| //轮播
| SharePlunder: 2,
| //一直播
| ShareLadder: 3 // 天梯
|
| },
| JumpType: {
| Summon: 1,
| // 召唤
| HeroBag: 2,
| // 英雄背包
| Forge: 3,
| // 锻造屋
| Hallows: 4 // 神器
|
| },
| // 根据战斗类型判断当前的ui类型
| getUIFightByFightType: function getUIFightByFightType(fight_type) {
| var MainuiConst = require("mainui_const");
|
| switch (fight_type) {
| case this.Fight_Type.Darma:
| case this.Fight_Type.Nil:
| return MainuiConst.ui_fight_type.drama_scene;
|
| case this.Fight_Type.StarTower:
| return MainuiConst.ui_fight_type.star_tower;
|
| case this.Fight_Type.GuildDun:
| return MainuiConst.ui_fight_type.guild_dun;
|
| case this.Fight_Type.Arena:
| return MainuiConst.ui_fight_type.arena;
|
| case this.Fight_Type.LimitBoss:
| return MainuiConst.ui_fight_type.limit_boss;
|
| case this.Fight_Type.GuildWar:
| return MainuiConst.ui_fight_type.guildwar;
|
| case this.Fight_Type.PrimusWar:
| return MainuiConst.ui_fight_type.primusWar;
|
| case this.Fight_Type.LadderWar:
| return MainuiConst.ui_fight_type.ladderwar;
|
| case this.Fight_Type.Endless:
| //无尽试炼
| return MainuiConst.ui_fight_type.endless;
|
| case this.Fight_Type.ExpeditFight:
| //远征
| return MainuiConst.ui_fight_type.expedit_fight;
|
| case this.Fight_Type.DungeonStone:
| return MainuiConst.ui_fight_type.dungeon_stone;
|
| case this.Fight_Type.ElementWar:
| //元素圣殿
| return MainuiConst.ui_fight_type.dungeon_stone;
|
| case this.Fight_Type.HeavenWar:
| //天界副本
| return MainuiConst.ui_fight_type.dungeon_stone;
|
| case this.Fight_Type.Adventrue:
| //冒险
| return MainuiConst.ui_fight_type.sky_scene;
|
| default:
| return MainuiConst.ui_fight_type.drama_scene;
| }
| },
| // 特殊类型的战斗,
| isNoRequest: function isNoRequest(fight_type) {
| return fight_type == this.Fight_Type.Default || fight_type == this.Fight_Type.PK || fight_type == this.Fight_Type.HeroTestWar;
| },
| // 是否是pvp战斗
| isPvP: function isPvP(fight_type) {
| return fight_type == this.Fight_Type.Arena || fight_type == this.Fight_Type.Escort;
| },
| // 是否需要显示玩家名字的
| isNeedName: function isNeedName(fight_type) {
| return fight_type == this.Fight_Type.PK;
| },
| // 是否显示入场pk动画
| isNeedSpecStart: function isNeedSpecStart(fight_type) {
| return fight_type == BattleConst.Fight_Type.Arena || fight_type == BattleConst.Fight_Type.Champion || fight_type == BattleConst.Fight_Type.PK || fight_type == BattleConst.Fight_Type.LadderWar;
| },
| // 是否可以进战斗,这个时候就需要判断当前战斗类型的面板类型跟主界面缓存的类型是否一致
| canDoBattle: function canDoBattle(fight_type) {
| var target_ui_fight_type = this.getUIFightByFightType(fight_type);
|
| var MainUiController = require("mainui_controller");
|
| var BattleController = require("battle_controller");
|
| var cur_ui_fight_type = MainUiController.getInstance().getUIFightType();
| return cur_ui_fight_type == target_ui_fight_type || this.isNoRequest(fight_type) || BattleController.getInstance().getWatchReplayStatus();
| },
| //战斗分组
| BattleGroupTypeConf: {
| TYPE_GROUP_ENEMY: 2,
| //敌方
| TYPE_GROUP_ROLE: 1 //友方
|
| },
| // --战斗单位类型
| BattleObjectType: {
| Role: 1,
| //--角色(暂时没有了)
| Pet: 2,
| //--伙伴(配置表取partern)
| Unit: 3,
| //--单位(配置表取unit)
| Hallows: 4 //--神器
|
| },
| // -- 兼容旧的录像数据中阵营光环id(转为现在的id列表)
| Old_Halo_Id_Change: (_Old_Halo_Id_Change = {}, _defineProperty(_Old_Halo_Id_Change, 1, [1]), _defineProperty(_Old_Halo_Id_Change, 2, [2]), _defineProperty(_Old_Halo_Id_Change, 3, [3]), _defineProperty(_Old_Halo_Id_Change, 4, [4]), _defineProperty(_Old_Halo_Id_Change, 5, [5]), _defineProperty(_Old_Halo_Id_Change, 6, [21]), _defineProperty(_Old_Halo_Id_Change, 7, [6]), _defineProperty(_Old_Halo_Id_Change, 8, [6]), _defineProperty(_Old_Halo_Id_Change, 9, [7]), _defineProperty(_Old_Halo_Id_Change, 10, [7]), _defineProperty(_Old_Halo_Id_Change, 11, [8]), _defineProperty(_Old_Halo_Id_Change, 12, [8]), _defineProperty(_Old_Halo_Id_Change, 13, [11, 18]), _defineProperty(_Old_Halo_Id_Change, 14, [13, 17]), _defineProperty(_Old_Halo_Id_Change, 15, [12, 16]), _defineProperty(_Old_Halo_Id_Change, 16, [14, 20]), _defineProperty(_Old_Halo_Id_Change, 17, [15, 19]), _Old_Halo_Id_Change)
| };
| module.exports = BattleConst;
|
| 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxiYXR0bGVcXGJhdHRsZV9jb25zdC5qcyJdLCJuYW1lcyI6WyJCYXR0bGVDb25zdCIsIkZpZ2h0X1R5cGUiLCJOaWwiLCJEZWZhdWx0IiwiQXJlbmEiLCJEYXJtYSIsIlNpbmdsZUJvc3MiLCJXb3JsZEJvc3MiLCJBZHZlbnRydWUiLCJTdGFyVG93ZXIiLCJQSyIsIkd1aWxkRHVuIiwiQ2hhbXBpb24iLCJFbmRsZXNzIiwiTGltaXRCb3NzIiwiRXNjb3J0IiwiRHVuZ2VvblN0b25lIiwiR29kYmF0dGxlIiwiR3VpbGRXYXIiLCJQcmltdXNXYXIiLCJMYWRkZXJXYXIiLCJFeHBlZGl0RmlnaHQiLCJFbGl0ZU1hdGNoV2FyIiwiRWxpdGVLaW5nTWF0Y2hXYXIiLCJFbGVtZW50V2FyIiwiSGVyb1Rlc3RXYXIiLCJIZWF2ZW5XYXIiLCJDcm9zc0FyZW5hV2FyIiwiTGltaXRFeGVyY2lzZSIsIkFkdmVudHJ1ZU1pbmUiLCJVbml0X1R5cGUiLCJSb2xlIiwiSGVybyIsIk1vbnN0ZXIiLCJIYWxsb3dzIiwiR3JvdXBfVHlwZSIsIkZyaWVuZCIsIkVuZW1neSIsIkJhdHRsZV9UeXBlX0NvbmYiLCJUWVBFX0VORU1ZIiwiVFlQRV9ST0xFIiwiQkFUVExFX0VYSVQiLCJTa2lsbF9UeXBlIiwiQUNUSVZFX1NLSUxMIiwiUEFTU0lWRV9TS0lMTCIsIkVRTV9QQVNTSVZFX1NLSUxMIiwiRWZmZWN0X1BsYXlfVHlwZSIsIlJPTEUiLCJTQ0VORSIsIlJPTEVfU0NFTkUiLCJFTkVNWV9TQ0VORSIsIlRBUkdFVCIsIkJhdHRsZV9Jbl9UeXBlIiwiVW5SZWFsIiwiUmVhbCIsIlNoYXJlVHlwZSIsIlNoYXJlUGsiLCJTaGFyZVBsdW5kZXIiLCJTaGFyZUxhZGRlciIsIkp1bXBUeXBlIiwiU3VtbW9uIiwiSGVyb0JhZyIsIkZvcmdlIiwiZ2V0VUlGaWdodEJ5RmlnaHRUeXBlIiwiZmlnaHRfdHlwZSIsIk1haW51aUNvbnN0IiwicmVxdWlyZSIsInVpX2ZpZ2h0X3R5cGUiLCJkcmFtYV9zY2VuZSIsInN0YXJfdG93ZXIiLCJndWlsZF9kdW4iLCJhcmVuYSIsImxpbWl0X2Jvc3MiLCJndWlsZHdhciIsInByaW11c1dhciIsImxhZGRlcndhciIsImVuZGxlc3MiLCJleHBlZGl0X2ZpZ2h0IiwiZHVuZ2Vvbl9zdG9uZSIsInNreV9zY2VuZSIsImlzTm9SZXF1ZXN0IiwiaXNQdlAiLCJpc05lZWROYW1lIiwiaXNOZWVkU3BlY1N0YXJ0IiwiY2FuRG9CYXR0bGUiLCJ0YXJnZXRfdWlfZmlnaHRfdHlwZSIsIk1haW5VaUNvbnRyb2xsZXIiLCJCYXR0bGVDb250cm9sbGVyIiwiY3VyX3VpX2ZpZ2h0X3R5cGUiLCJnZXRJbnN0YW5jZSIsImdldFVJRmlnaHRUeXBlIiwiZ2V0V2F0Y2hSZXBsYXlTdGF0dXMiLCJCYXR0bGVHcm91cFR5cGVDb25mIiwiVFlQRV9HUk9VUF9FTkVNWSIsIlRZUEVfR1JPVVBfUk9MRSIsIkJhdHRsZU9iamVjdFR5cGUiLCJQZXQiLCJVbml0IiwiT2xkX0hhbG9fSWRfQ2hhbmdlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsV0FBVyxHQUFHO0FBQ2RDLEVBQUFBLFVBQVUsRUFBQztBQUNQQyxJQUFBQSxHQUFHLEVBQUUsQ0FERTtBQUVQQyxJQUFBQSxPQUFPLEVBQUUsQ0FGRjtBQUdQQyxJQUFBQSxLQUFLLEVBQUUsQ0FIQTtBQUdhO0FBQ3BCQyxJQUFBQSxLQUFLLEVBQUUsQ0FKQTtBQUlhO0FBQ3BCQyxJQUFBQSxVQUFVLEVBQUUsQ0FMTDtBQUthO0FBQ3BCQyxJQUFBQSxTQUFTLEVBQUUsQ0FOSjtBQU1hO0FBQ3BCQyxJQUFBQSxTQUFTLEVBQUUsQ0FQSjtBQU9hO0FBQ3BCQyxJQUFBQSxTQUFTLEVBQUUsQ0FSSjtBQVFhO0FBQ3BCQyxJQUFBQSxFQUFFLEVBQUUsQ0FURztBQVNhO0FBQ3BCQyxJQUFB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LENBSkssQ0FJQTs7QUFKQSxHQS9KTDtBQXNLZDtBQUNBZ0UsRUFBQUEsa0JBQWtCLGtFQUNiLENBRGEsRUFDUixDQUFDLENBQUQsQ0FEUSx3Q0FFYixDQUZhLEVBRVIsQ0FBQyxDQUFELENBRlEsd0NBR2IsQ0FIYSxFQUdSLENBQUMsQ0FBRCxDQUhRLHdDQUliLENBSmEsRUFJUixDQUFDLENBQUQsQ0FKUSx3Q0FLYixDQUxhLEVBS1IsQ0FBQyxDQUFELENBTFEsd0NBTWIsQ0FOYSxFQU1SLENBQUMsRUFBRCxDQU5RLHdDQU9iLENBUGEsRUFPUixDQUFDLENBQUQsQ0FQUSx3Q0FRYixDQVJhLEVBUVIsQ0FBQyxDQUFELENBUlEsd0NBU2IsQ0FUYSxFQVNSLENBQUMsQ0FBRCxDQVRRLHdDQVViLEVBVmEsRUFVUCxDQUFDLENBQUQsQ0FWTyx3Q0FXYixFQVhhLEVBV1AsQ0FBQyxDQUFELENBWE8sd0NBWWIsRUFaYSxFQVlQLENBQUMsQ0FBRCxDQVpPLHdDQWFiLEVBYmEsRUFhUCxDQUFDLEVBQUQsRUFBSSxFQUFKLENBYk8sd0NBY2IsRUFkYSxFQWNQLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FkTyx3Q0FlYixFQWZhLEVBZVAsQ0FBQyxFQUFELEVBQUksRUFBSixDQWZPLHdDQWdCYixFQWhCYSxFQWdCUCxDQUFDLEVBQUQsRUFBSSxFQUFKLENBaEJPLHdDQWlCYixFQWpCYSxFQWlCUCxDQUFDLEVBQUQsRUFBSSxFQUFKLENBakJPO0FBdktKLENBQWxCO0FBMkxBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJwRyxXQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHNoaXJhaG9Ac3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg5oiY5paX55qE5bi46YeP5o6n5Yi2XG4vLyA8YnIvPkNyZWF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIEJhdHRsZUNvbnN0ID0ge1xuICAgIEZpZ2h0X1R5cGU6e1xuICAgICAgICBOaWw6IDAsXG4gICAgICAgIERlZmF1bHQ6IDEsXG4gICAgICAgIEFyZW5hOiAyLCAgICAgICAgICAgLy/nq57mioDlnLpcbiAgICAgICAgRGFybWE6IDMsICAgICAgICAgICAvL+WJp+aDheWJr+acrOaImOaWl1xuICAgICAgICBTaW5nbGVCb3NzOiA0LCAgICAgIC8v5Liq5Lq6Qm9zc1xuICAgICAgICBXb3JsZEJvc3M6IDUsICAgICAgIC8v5LiW55WMYm9zc1xuICAgICAgICBBZHZlbnRydWU6IDYsICAgICAgIC8v56We55WM5o6i6ZmpXG4gICAgICAgIFN0YXJUb3dlcjogNywgICAgICAgLy/mmJ/lkb3loZRcbiAgICAgICAgUEs6IDgsICAgICAgICAgICAgICAvL+WIh+eji1xuICAgICAgICBHdWlsZER1bjogOSwgICAgICAgIC8v5biu5Lya5Ymv5pysXG4gICAgICAgIENoYW1waW9uOiAxMCwgICAgICAgLy/lhqDlhpvogZTotZtcbiAgICAgICAgRW5kbGVzczogMTEsICAgICAgICAvL+aXoOWwveivleeCvFxuICAgICAgICBMaW1pdEJvc3M6IDEyLCAgICAgIC8v6ZmQ5pe2Qk9TU1xuICAgICAgICBFc2NvcnQ6IDEzLCAgICAgICAgIC8v5oqk6YCBXG4gICAgICAgIER1bmdlb25TdG9uZTogMTQsICAgLy/lrp3nn7Plia/mnKxcbiAgICAgICAgR29kYmF0dGxlOiAxNSwgICAgICAvL+S8l+elnuaImOWculxuICAgICAgICBHdWlsZFdhcjogMTYsICAgICAgIC8v6IGU55uf5oiYXG4gICAgICAgIFByaW11c1dhcjogMTcsICAgICAgLy/ojaPogIDnpZ7mrr/miJhcbiAgICAgICAgTGFkZGVyV2FyOiAxOCwgICAgICAvL+i3qOacjeWkqeair1xuICAgICAgICBFeHBlZGl0RmlnaHQ6IDIxLCAgIC8v6L+c5b6BXG4gICAgICAgIEVsaXRlTWF0Y2hXYXIgOiAyMywgLy/nsr7oi7HotZtcbiAgICAgICAgRWxpdGVLaW5nTWF0Y2hXYXIgOiAyNCwgLy/njovogIXotZtcbiAgICAgICAgRWxlbWVudFdhcjogMjUsICAgICAvLyDlhYPntKDlnKPmrr9cbiAgICAgICAgSGVyb1Rlc3RXYXI6IDI2LCAgICAvLyDoi7Hpm4Tor5XnjqlcbiAgICAgICAgSGVhdmVuV2FyOiAyNywgICAgICAvLyDlpKnnlYzlia/mnKxcbiAgICAgICAgQ3Jvc3NBcmVuYVdhciA6IDI4LCAvLyDot6jmnI3nq57mioDlnLpcbiAgICAgICAgTGltaXRFeGVyY2lzZSA6IDI5LCAvLyDor5XngrzkuYvlooNcbiAgICAgICAgQWR2ZW50cnVlTWluZSA6IDMwLCAvL+enmOefv+WGkumZqVxuICAgIH0sXG5cbiAgICAvLyDmiJjmlpfljZXkvY3nsbvlnotcbiAgICBVbml0X1R5cGU6e1xuICAgICAgICBSb2xlOiAxLCAgICAgICAgICAgIC8vIOS4u+inkuWNleS9jSzmmoLml7bmsqHmnInnlKjkuoZcbiAgICAgICAgSGVybzogMiwgICAgICAgICAgICAvLyDkvJnkvLRcbiAgICAgICAgTW9uc3RlcjogMywgICAgICAgICAvLyDmgKrnialcbiAgICAgICAgSGFsbG93czogNCwgICAgICAgICAvLyDnpZ7lmahcbiAgICB9LFxuXG4gICAgR3JvdXBfVHlwZTp7XG4gICAgICAgIEZyaWVuZDoxLFxuICAgICAgICBFbmVtZ3k6MixcbiAgICB9LFxuXG4gICAgQmF0dGxlX1R5cGVfQ29uZjp7XG4gICAgICAgIFRZUEVfRU5FTVk6IC0gMSxcbiAgICAgICAgVFlQRV9ST0xFOiAxLFxuICAgICAgICBCQVRUTEVfRVhJVDogMVxuICAgIH0sXG5cbiAgICBTa2lsbF9UeXBlOntcbiAgICAgICAgQUNUSVZFX1NLSUxMOiBcImFjdGl2ZV9za2lsbFwiLCAgICAgICAgICAgICAgIC8v5Li75Yqo5oqA6IO9XG4gICAgICAgIFBBU1NJVkVfU0tJTEw6IFwicGFzc2l2ZV9za2lsbFwiLCAgICAgICAgICAgICAvL+iiq+WKqOaKgOiDvVxuICAgICAgICBFUU1fUEFTU0lWRV9TS0lMTDogXCJlcW1fcGFzc2l2ZV9za2lsbFwiLCAgICAgLy/oo4XlpIfooqvliqjmioDog71cbiAgICB9LFxuXG4gICAgLy8g5oiY5paX54m55pWI5pKt5pS+57G75Z6LXG4gICAgRWZmZWN0X1BsYXlfVHlwZTp7XG4gICAgICAgIFJPTEU6IDEsICAgICAgICAgICAgICAgIC8vIOiHquW3sVxuICAgICAgICBTQ0VORTogMiwgICAgICAgICAgICAgICAvLyDlnLrmma9cbiAgICAgICAgUk9MRV9TQ0VORTogMywgICAgICAgICAgLy8g5Y+L5pa55Zy65pmvXG4gICAgICAgIEVORU1ZX1NDRU5FOiA0LCAgICAgICAgIC8vIOaVjOaWueWcuuaZr1xuICAgICAgICBUQVJHRVQ6IDUsICAgICAgICAgICAgICAvLyDmlYzmlrnnm67moIdcbiAgICB9LFxuXG4gICAgLy8g5piv5ZCm5Zyo5oiY5paX5Lit55qE57G75Z6LXG4gICAgQmF0dGxlX0luX1R5cGU6e1xuICAgICAgICBOaWw6IDAsICAgICAgICAgICAgICAgICAvLyDlvZPliY3kuI3lnKjmiJjmlpdcbiAgICAgICAgVW5SZWFsOiAxLCAgICAgICAgICAgICAgLy8g5YGH5oiY5paXXG4gICAgICAgIFJlYWw6IDIsICAgICAgICAgICAgICAgIC8vIOecn+aImOaWl1xuICAgIH0sXG4gICAgLy8g5YiG5Lqr57G75Z6LXG4gICAgU2hhcmVUeXBlIDoge1xuICAgICAgICBTaGFyZVBrIDogMSwgLy/ova7mkq1cbiAgICAgICAgU2hhcmVQbHVuZGVyIDogMiwgLy/kuIDnm7Tmkq1cbiAgICAgICAgU2hhcmVMYWRkZXIgOiAzLCAgLy8g5aSp5qKvXG4gICAgfSxcbiAgICBKdW1wVHlwZSA6IHtcbiAgICAgICAgU3VtbW9uIDogMSwgICAvLyDlj6zllKRcbiAgICAgICAgSGVyb0JhZyA6IDIsICAvLyDoi7Hpm4Tog4zljIVcbiAgICAgICAgRm9yZ2UgOiAzLCAgICAvLyDplLvpgKDlsYtcbiAgICAgICAgSGFsbG93cyA6IDQsICAvLyDnpZ7lmahcbiAgICB9LFxuXG4gICAgLy8g5qC55o2u5oiY5paX57G75Z6L5Yik5pat5b2T5YmN55qEdWnnsbvlnotcbiAgICBnZXRVSUZpZ2h0QnlGaWdodFR5cGU6ZnVuY3Rpb24oZmlnaHRfdHlwZSl7XG4gICAgICAgIHZhciBNYWludWlDb25zdCA9IHJlcXVpcmUoXCJtYWludWlfY29uc3RcIik7XG4gICAgICAgIHN3aXRjaCAoZmlnaHRfdHlwZSkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLkZpZ2h0X1R5cGUuRGFybWE6XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5OaWw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1haW51aUNvbnN0LnVpX2ZpZ2h0X3R5cGUuZHJhbWFfc2NlbmU7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5TdGFyVG93ZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1haW51aUNvbnN0LnVpX2ZpZ2h0X3R5cGUuc3Rhcl90b3dlcjtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5GaWdodF9UeXBlLkd1aWxkRHVuOlxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmd1aWxkX2R1bjtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5GaWdodF9UeXBlLkFyZW5hOlxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmFyZW5hO1xuICAgICAgICAgICAgY2FzZSB0aGlzLkZpZ2h0X1R5cGUuTGltaXRCb3NzOlxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmxpbWl0X2Jvc3M7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5HdWlsZFdhcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFpbnVpQ29uc3QudWlfZmlnaHRfdHlwZS5ndWlsZHdhcjtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5GaWdodF9UeXBlLlByaW11c1dhcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFpbnVpQ29uc3QudWlfZmlnaHRfdHlwZS5wcmltdXNXYXI7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5MYWRkZXJXYXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1haW51aUNvbnN0LnVpX2ZpZ2h0X3R5cGUubGFkZGVyd2FyO1xuICAgICAgICAgICAgY2FzZSB0aGlzLkZpZ2h0X1R5cGUuRW5kbGVzczovL+aXoOWwveivleeCvFxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmVuZGxlc3M7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5FeHBlZGl0RmlnaHQ6Ly/ov5zlvoFcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFpbnVpQ29uc3QudWlfZmlnaHRfdHlwZS5leHBlZGl0X2ZpZ2h0O1xuICAgICAgICAgICAgY2FzZSB0aGlzLkZpZ2h0X1R5cGUuRHVuZ2VvblN0b25lOlxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmR1bmdlb25fc3RvbmU7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5FbGVtZW50V2FyOi8v5YWD57Sg5Zyj5q6/XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1haW51aUNvbnN0LnVpX2ZpZ2h0X3R5cGUuZHVuZ2Vvbl9zdG9uZTtcbiAgICAgICAgICAgIGNhc2UgdGhpcy5GaWdodF9UeXBlLkhlYXZlbldhcjovL+WkqeeVjOWJr+acrFxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmR1bmdlb25fc3RvbmU7XG4gICAgICAgICAgICBjYXNlIHRoaXMuRmlnaHRfVHlwZS5BZHZlbnRydWU6Ly/lhpLpmalcbiAgICAgICAgICAgICAgICByZXR1cm4gTWFpbnVpQ29uc3QudWlfZmlnaHRfdHlwZS5za3lfc2NlbmU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBNYWludWlDb25zdC51aV9maWdodF90eXBlLmRyYW1hX3NjZW5lO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8vIOeJueauiuexu+Wei+eahOaImOaWlyxcbiAgICBpc05vUmVxdWVzdDpmdW5jdGlvbihmaWdodF90eXBlKXtcbiAgICAgICAgcmV0dXJuIChmaWdodF90eXBlID09IHRoaXMuRmlnaHRfVHlwZS5EZWZhdWx0IHx8IGZpZ2h0X3R5cGUgPT0gdGhpcy5GaWdodF9UeXBlLlBLIHx8IGZpZ2h0X3R5cGUgPT0gdGhpcy5GaWdodF9UeXBlLkhlcm9UZXN0V2FyKTtcbiAgICB9LFxuXG4gICAgLy8g5piv5ZCm5pivcHZw5oiY5paXXG4gICAgaXNQdlA6ZnVuY3Rpb24oZmlnaHRfdHlwZSl7XG4gICAgICAgIHJldHVybiAoZmlnaHRfdHlwZSA9PSB0aGlzLkZpZ2h0X1R5cGUuQXJlbmEgfHwgZmlnaHRfdHlwZSA9PSB0aGlzLkZpZ2h0X1R5cGUuRXNjb3J0KTtcbiAgICB9LFxuXG4gICAgLy8g5piv5ZCm6ZyA6KaB5pi+56S6546p5a625ZCN5a2X55qEXG4gICAgaXNOZWVkTmFtZTpmdW5jdGlvbihmaWdodF90eXBlKXtcbiAgICAgICAgcmV0dXJuIChmaWdodF90eXBlID09IHRoaXMuRmlnaHRfVHlwZS5QSyk7XG4gICAgfSxcblxuICAgIC8vIOaYr+WQpuaYvuekuuWFpeWcunBr5Yqo55S7XG4gICAgaXNOZWVkU3BlY1N0YXJ0OiBmdW5jdGlvbiAoZmlnaHRfdHlwZSkge1xuICAgICAgICByZXR1cm4gZmlnaHRfdHlwZSA9PSBCYXR0bGVDb25zdC5GaWdodF9UeXBlLkFyZW5hIHx8IGZpZ2h0X3R5cGUgPT0gQmF0dGxlQ29uc3QuRmlnaHRfVHlwZS5DaGFtcGlvbiB8fCBmaWdodF90eXBlID09IEJhdHRsZUNvbnN0LkZpZ2h0X1R5cGUuUEsgfHwgZmlnaHRfdHlwZSA9PSBCYXR0bGVDb25zdC5GaWdodF9UeXBlLkxhZGRlcldhclxuICAgIH0sXG5cbiAgICAvLyDmmK/lkKblj6/ku6Xov5vmiJjmlpcs6L+Z5Liq5pe25YCZ5bCx6ZyA6KaB5Yik5pat5b2T5YmN5oiY5paX57G75Z6L55qE6Z2i5p2/57G75Z6L6Lef5Li755WM6Z2i57yT5a2Y55qE57G75Z6L5piv5ZCm5LiA6Ie0XG4gICAgY2FuRG9CYXR0bGU6ZnVuY3Rpb24oZmlnaHRfdHlwZSl7XG4gICAgICAgIHZhciB0YXJnZXRfdWlfZmlnaHRfdHlwZSA9IHRoaXMuZ2V0VUlGaWdodEJ5RmlnaHRUeXBlKGZpZ2h0X3R5cGUpO1xuICAgICAgICB2YXIgTWFpblVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbiAgICAgICAgdmFyIEJhdHRsZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwiYmF0dGxlX2NvbnRyb2xsZXJcIik7XG4gICAgICAgIHZhciBjdXJfdWlfZmlnaHRfdHlwZSA9IE1haW5VaUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRVSUZpZ2h0VHlwZSgpO1xuXG4gICAgICAgIHJldHVybiAoY3VyX3VpX2ZpZ2h0X3R5cGUgPT0gdGFyZ2V0X3VpX2ZpZ2h0X3R5cGUpIHx8IHRoaXMuaXNOb1JlcXVlc3QoZmlnaHRfdHlwZSkgfHwgQmF0dGxlQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldFdhdGNoUmVwbGF5U3RhdHVzKCk7XG4gICAgfSxcbiAgICAvL+aImOaWl+WIhue7hFxuICAgIEJhdHRsZUdyb3VwVHlwZUNvbmYgOiB7XG4gICAgICAgIFRZUEVfR1JPVVBfRU5FTVkgOiAyLCBcdC8v5pWM5pa5XG4gICAgICAgIFRZUEVfR1JPVVBfUk9MRSA6IDEsIFx0Ly/lj4vmlrlcbiAgICB9LCAgXG5cbiAgICAvLyAtLeaImOaWl+WNleS9jeexu+Wei1xuICAgIEJhdHRsZU9iamVjdFR5cGUgOiB7XG4gICAgICAgIFJvbGUgOiAxLCAgICAgIC8vLS3op5LoibIo5pqC5pe25rKh5pyJ5LqGKVxuICAgICAgICBQZXQgOiAyLCAgICAgICAvLy0t5LyZ5Ly0KOmFjee9ruihqOWPlnBhcnRlcm4pXG4gICAgICAgIFVuaXQgOiAzLCAgICAgIC8vLS3ljZXkvY0o6YWN572u6KGo5Y+WdW5pdClcbiAgICAgICAgSGFsbG93cyA6IDQgICAgLy8tLeelnuWZqFxuICAgIH0sXG5cbiAgICAvLyAtLSDlhbzlrrnml6fnmoTlvZXlg4/mlbDmja7kuK3pmLXokKXlhYnnjq9pZO+8iOi9rOS4uueOsOWcqOeahGlk5YiX6KGo77yJXG4gICAgT2xkX0hhbG9fSWRfQ2hhbmdlIDoge1xuICAgICAgICBbMV0gOiBbMV0sXG4gICAgICAgIFsyXSA6IFsyXSxcbiAgICAgICAgWzNdIDogWzNdLFxuICAgICAgICBbNF0gOiBbNF0sXG4gICAgICAgIFs1XSA6IFs1XSxcbiAgICAgICAgWzZdIDogWzIxXSxcbiAgICAgICAgWzddIDogWzZdLFxuICAgICAgICBbOF0gOiBbNl0sXG4gICAgICAgIFs5XSA6IFs3XSxcbiAgICAgICAgWzEwXSA6IFs3XSxcbiAgICAgICAgWzExXSA6IFs4XSxcbiAgICAgICAgWzEyXSA6IFs4XSxcbiAgICAgICAgWzEzXSA6IFsxMSwxOF0sXG4gICAgICAgIFsxNF0gOiBbMTMsMTddLFxuICAgICAgICBbMTVdIDogWzEyLDE2XSxcbiAgICAgICAgWzE2XSA6IFsxNCwyMF0sXG4gICAgICAgIFsxN10gOiBbMTUsMTldLFxuICAgIH1cbn07XG5tb2R1bGUuZXhwb3J0cyA9IEJhdHRsZUNvbnN0OyJdfQ==
|
|