|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/arena/arena_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, '96a6c/OkeZJu4NhjPlRHfom', 'arena_model');
|
// Scripts/mod/arena/arena_model.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里填写详细说明,主要填写该模块的功能简要
|
// <br/>Create: 2019-03-06 11:18:06
|
// --------------------------------------------------------------------
|
var ArenaEvent = require("arena_event");
|
|
var ArenaLoopChallengeVo = require("arena_loop_challenge_vo");
|
|
var ArenaConst = require("arena_const");
|
|
var ArenaModel = cc.Class({
|
"extends": BaseClass,
|
ctor: function ctor() {},
|
properties: {},
|
initConfig: function initConfig() {
|
this.my_loop_data = null;
|
this.times_awards = null;
|
this.loop_challenge_list = null;
|
this.arena_loop_red_list = {};
|
this.had_combat_num = 0;
|
},
|
updateMyLoopData: function updateMyLoopData(data) {
|
this.my_loop_data = data;
|
gcore.GlobalEvent.fire(ArenaEvent.UpdateMyLoopData); // 更新挑战次数红点
|
|
this.updateArenaRedStatus(ArenaConst.red_type.loop_challenge, data.can_combat_num > 0);
|
},
|
// 循环赛信息
|
getMyLoopData: function getMyLoopData() {
|
return this.my_loop_data;
|
},
|
// 更新挑战次数奖励信息
|
updateChallengeTimesAwards: function updateChallengeTimesAwards(data) {
|
this.times_awards = data; // 更新奖励红点
|
|
var bool_status = {};
|
this.had_combat_num = data.had_combat_num || 0;
|
|
for (var reward_i in Config.arena_data.data_season_num_reward) {
|
var reward_info = Config.arena_data.data_season_num_reward[reward_i];
|
bool_status[reward_i] = 0;
|
|
if (data.had_combat_num) {
|
if (reward_info.num <= data.had_combat_num) {
|
bool_status[reward_i] = 1;
|
|
for (var num_i in data.num_list) {
|
var num_info = data.num_list[num_i];
|
|
if (num_info.num == reward_info.num) {
|
bool_status[reward_i] = 2;
|
}
|
}
|
}
|
}
|
}
|
|
var need_red = false;
|
|
for (var status_i in bool_status) {
|
if (bool_status[status_i] === 1) {
|
need_red = true;
|
break;
|
}
|
}
|
|
this.updateArenaRedStatus(ArenaConst.red_type.loop_reward, need_red);
|
gcore.GlobalEvent.fire(ArenaEvent.UpdateLoopChallengeTimesList, data);
|
},
|
getChallengeTimesAwards: function getChallengeTimesAwards() {
|
return this.times_awards;
|
},
|
updateLoopChallengeList: function updateLoopChallengeList(data) {
|
if (!this.loop_challenge_list && data.type === 1) return;
|
if (!this.loop_challenge_list) this.loop_challenge_list = {};
|
|
for (var list_i in data.f_list) {
|
if (!this.loop_challenge_list[data.f_list[list_i].idx]) this.loop_challenge_list[data.f_list[list_i].idx] = new ArenaLoopChallengeVo();
|
this.loop_challenge_list[data.f_list[list_i].idx].updatetAttributeData(data.f_list[list_i]);
|
}
|
|
if (data.type === 0) gcore.GlobalEvent.fire(ArenaEvent.UpdateLoopChallengeList);
|
},
|
getLoopChallengeList: function getLoopChallengeList() {
|
var challente_list = [];
|
|
for (var cha_i in this.loop_challenge_list) {
|
challente_list.push(this.loop_challenge_list[cha_i]);
|
}
|
|
return challente_list;
|
},
|
cleanChallengeList: function cleanChallengeList() {
|
this.loop_challenge_list = null;
|
},
|
// 根据积分获取奖杯配置数据,统一一个接口,如果不传入,就默认用自己的
|
getZoneConfigBySoure: function getZoneConfigBySoure(score) {
|
score = score || this.my_loop_data.score;
|
var cur_config = null;
|
var first_config = Config.arena_data.data_cup[0];
|
|
if (!score || score < first_config.min_score) {
|
cur_config = first_config;
|
} else {
|
for (var cfg_i in Config.arena_data.data_cup) {
|
if (Config.arena_data.data_cup[cfg_i].min_score <= score && score <= Config.arena_data.data_cup[cfg_i].max_score) {
|
cur_config = Config.arena_data.data_cup[cfg_i];
|
break;
|
}
|
}
|
} // var next_config = null;
|
// if (cur_config) {
|
// var next_config_index = cur_config.index + 1;
|
// for (var cfg_i in Config.arena_data.data_cup) {
|
// if (Config.arena_data.data_cup[cfg_i].index === next_config_index) {
|
// next_config = Config.arena_data.data_cup[cfg_i];
|
// break;
|
// }
|
// }
|
// }
|
|
|
return cur_config; // {cur_config: cur_config, next_config: next_config}
|
},
|
// 红点相关
|
updateArenaRedStatus: function updateArenaRedStatus(type, status) {
|
var cur_status = this.arena_loop_red_list[type];
|
if (cur_status === status) return;
|
this.arena_loop_red_list[type] = status;
|
|
var SceneConst = require("scene_const");
|
|
var MainSceneController = require("mainscene_controller");
|
|
MainSceneController.getInstance().setBuildRedStatus(SceneConst.CenterSceneBuild.arena, {
|
bid: type,
|
status: status
|
});
|
gcore.GlobalEvent.fire(ArenaEvent.UpdateArenaRedStatus, type);
|
},
|
// 挑战记录红点更新
|
updateArenaLoopLogStatus: function updateArenaLoopLogStatus(flag) {
|
this.updateArenaRedStatus(ArenaConst.red_type.loop_log, !!flag);
|
},
|
getHadCombatNum: function getHadCombatNum() {
|
return this.had_combat_num || 0;
|
},
|
getArenaLoopLogStatus: function getArenaLoopLogStatus() {
|
return this.arena_loop_red_list[ArenaConst.red_type.loop_log];
|
}
|
});
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxhcmVuYVxcYXJlbmFfbW9kZWwuanMiXSwibmFtZXMiOlsiQXJlbmFFdmVudCIsInJlcXVpcmUiLCJBcmVuYUxvb3BDaGFsbGVuZ2VWbyIsIkFyZW5hQ29uc3QiLCJBcmVuYU1vZGVsIiwiY2MiLCJDbGFzcyIsIkJhc2VDbGFzcyIsImN0b3IiLCJwcm9wZXJ0aWVzIiwiaW5pdENvbmZpZyIsIm15X2xvb3BfZGF0YSIsInRpbWVzX2F3YXJkcyIsImxvb3BfY2hhbGxlbmdlX2xpc3QiLCJhcmVuYV9sb29wX3JlZF9saXN0IiwiaGFkX2NvbWJhdF9udW0iLCJ1cGRhdGVNeUxvb3BEYXRhIiwiZGF0YSIsImdjb3JlIiwiR2xvYmFsRXZlbnQiLCJmaXJlIiwiVXBkYXRlTXlMb29wRGF0YSIsInVwZGF0ZUFyZW5hUmVkU3RhdHVzIiwicmVkX3R5cGUiLCJsb29wX2NoYWxsZW5nZSIsImNhbl9jb21iYXRfbnVtIiwiZ2V0TXlMb29wRGF0YSIsInVwZGF0ZUNoYWxsZW5nZVRpbWVzQXdhcmRzIiwiYm9vbF9zdGF0dXMiLCJyZXdhcmRfaSIsIkNvbmZpZyIsImFyZW5hX2RhdGEiLCJkYXRhX3NlYXNvbl9udW1fcmV3YXJkIiwicmV3YXJkX2luZm8iLCJudW0iLCJudW1faSIsIm51bV9saXN0IiwibnVtX2luZm8iLCJuZWVkX3JlZCIsInN0YXR1c19pIiwibG9vcF9yZXdhcmQiLCJVcGRhdGVMb29wQ2hhbGxlbmdlVGltZXNMaXN0IiwiZ2V0Q2hhbGxlbmdlVGltZXNBd2FyZHMiLCJ1cGRhdGVMb29wQ2hhbGxlbmdlTGlzdCIsInR5cGUiLCJsaXN0X2kiLCJmX2xpc3QiLCJpZHgiLCJ1cGRhdGV0QXR0cmlidXRlRGF0YSIsIlVwZGF0ZUxvb3BDaGFsbGVuZ2VMaXN0IiwiZ2V0TG9vcENoYWxsZW5nZUxpc3QiLCJjaGFsbGVudGVfbGlzdCIsImNoYV9pIiwicHVzaCIsImNsZWFuQ2hhbGxlbmdlTGlzdCIsImdldFpvbmVDb25maWdCeVNvdXJlIiwic2NvcmUiLCJjdXJfY29uZmlnIiwiZmlyc3RfY29uZmlnIiwiZGF0YV9jdXAiLCJtaW5fc2NvcmUiLCJjZmdfaSIsIm1heF9zY29yZSIsInN0YXR1cyIsImN1cl9zdGF0dXMiLCJTY2VuZUNvbnN0IiwiTWFpblNjZW5lQ29udHJvbGxlciIsImdldEluc3RhbmNlIiwic2V0QnVpbGRSZWRTdGF0dXMiLCJDZW50ZXJTY2VuZUJ1aWxkIiwiYXJlbmEiLCJiaWQiLCJVcGRhdGVBcmVuYVJlZFN0YXR1cyIsInVwZGF0ZUFyZW5hTG9vcExvZ1N0YXR1cyIsImZsYWciLCJsb29wX2xvZyIsImdldEhhZENvbWJhdE51bSIsImdldEFyZW5hTG9vcExvZ1N0YXR1cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxVQUFVLEdBQUdDLE9BQU8sQ0FBQyxhQUFELENBQXhCOztBQUNBLElBQUlDLG9CQUFvQixHQUFHRCxPQUFPLENBQUMseUJBQUQsQ0FBbEM7O0FBQ0EsSUFBSUUsVUFBVSxHQUFHRixPQUFPLENBQUMsYUFBRCxDQUF4Qjs7QUFFQSxJQUFJRyxVQUFVLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ3RCLGFBQVNDLFNBRGE7QUFFdEJDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUhxQjtBQUt0QkMsRUFBQUEsVUFBVSxFQUFFLEVBTFU7QUFRdEJDLEVBQUFBLFVBQVUsRUFBRSxzQkFBWTtBQUN2QixTQUFLQyxZQUFMLEdBQW9CLElBQXBCO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixJQUFwQjtBQUNHLFNBQUtDLG1CQUFMLEdBQTJCLElBQTNCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkIsRUFBM0I7QUFDQSxTQUFLQyxjQUFMLEdBQXNCLENBQXRCO0FBQ0gsR0FkcUI7QUFnQnRCQyxFQUFBQSxnQkFBZ0IsRUFBRSwwQkFBU0MsSUFBVCxFQUFlO0FBQ2hDLFNBQUtOLFlBQUwsR0FBb0JNLElBQXBC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QUNBNkIsRUFBQUEsd0JBQXdCLEVBQUUsa0NBQVNDLElBQVQsRUFBZTtBQUNyQyxTQUFLcEQsb0JBQUwsQ0FBMEJuQixVQUFVLENBQUNvQixRQUFYLENBQW9Cb0QsUUFBOUMsRUFBd0QsQ0FBQyxDQUFDRCxJQUExRDtBQUNILEdBakpxQjtBQW1KdEJFLEVBQUFBLGVBQWUsRUFBQywyQkFBVTtBQUN0QixXQUFPLEtBQUs3RCxjQUFMLElBQXVCLENBQTlCO0FBQ0gsR0FySnFCO0FBdUp0QjhELEVBQUFBLHFCQUFxQixFQUFFLGlDQUFXO0FBQzlCLFdBQU8sS0FBSy9ELG1CQUFMLENBQXlCWCxVQUFVLENBQUNvQixRQUFYLENBQW9Cb0QsUUFBN0MsQ0FBUDtBQUNIO0FBekpxQixDQUFULENBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTA2IDExOjE4OjA2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIEFyZW5hRXZlbnQgPSByZXF1aXJlKFwiYXJlbmFfZXZlbnRcIik7XG52YXIgQXJlbmFMb29wQ2hhbGxlbmdlVm8gPSByZXF1aXJlKFwiYXJlbmFfbG9vcF9jaGFsbGVuZ2Vfdm9cIik7XG52YXIgQXJlbmFDb25zdCA9IHJlcXVpcmUoXCJhcmVuYV9jb25zdFwiKTtcblxudmFyIEFyZW5hTW9kZWwgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNsYXNzLFxuICAgIGN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICB9LFxuXG4gICAgcHJvcGVydGllczoge1xuICAgIH0sXG5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgXHR0aGlzLm15X2xvb3BfZGF0YSA9IG51bGw7XG4gICAgXHR0aGlzLnRpbWVzX2F3YXJkcyA9IG51bGw7XG4gICAgICAgIHRoaXMubG9vcF9jaGFsbGVuZ2VfbGlzdCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXJlbmFfbG9vcF9yZWRfbGlzdCA9IHt9O1xuICAgICAgICB0aGlzLmhhZF9jb21iYXRfbnVtID0gMFxuICAgIH0sXG5cbiAgICB1cGRhdGVNeUxvb3BEYXRhOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgXHR0aGlzLm15X2xvb3BfZGF0YSA9IGRhdGE7XG4gICAgXHRnY29yZS5HbG9iYWxFdmVudC5maXJlKEFyZW5hRXZlbnQuVXBkYXRlTXlMb29wRGF0YSk7XG5cbiAgICBcdC8vIOabtOaWsOaMkeaImOasoeaVsOe6oueCuVxuICAgICAgICB0aGlzLnVwZGF0ZUFyZW5hUmVkU3RhdHVzKEFyZW5hQ29uc3QucmVkX3R5cGUubG9vcF9jaGFsbGVuZ2UsIGRhdGEuY2FuX2NvbWJhdF9udW0gPiAwKTsgICAgICAgIFxuICAgIH0sXG5cbiAgICAvLyDlvqrnjq/otZvkv6Hmga9cbiAgICBnZXRNeUxvb3BEYXRhOiBmdW5jdGlvbigpIHtcblx0ICAgIHJldHVybiB0aGlzLm15X2xvb3BfZGF0YTtcbiAgICB9LFxuXG4gICAgLy8g5pu05paw5oyR5oiY5qyh5pWw5aWW5Yqx5L+h5oGvXG4gICAgdXBkYXRlQ2hhbGxlbmdlVGltZXNBd2FyZHM6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICBcdHRoaXMudGltZXNfYXdhcmRzID0gZGF0YTsgXG4gICAgXHQvLyDmm7TmlrDlpZblirHnuqLngrlcbiAgICAgICAgdmFyIGJvb2xfc3RhdHVzID0ge307XG4gICAgICAgIHRoaXMuaGFkX2NvbWJhdF9udW0gPSBkYXRhLmhhZF9jb21iYXRfbnVtIHx8IDA7XG5cbiAgICAgICAgZm9yICh2YXIgcmV3YXJkX2kgaW4gQ29uZmlnLmFyZW5hX2RhdGEuZGF0YV9zZWFzb25fbnVtX3Jld2FyZCkge1xuICAgICAgICAgICAgdmFyIHJld2FyZF9pbmZvID0gQ29uZmlnLmFyZW5hX2RhdGEuZGF0YV9zZWFzb25fbnVtX3Jld2FyZFtyZXdhcmRfaV07XG4gICAgICAgICAgICBib29sX3N0YXR1c1tyZXdhcmRfaV0gPSAwO1xuICAgICAgICAgICAgaWYgKGRhdGEuaGFkX2NvbWJhdF9udW0pIHtcbiAgICAgICAgICAgICAgICBpZiAocmV3YXJkX2luZm8ubnVtIDw9IGRhdGEuaGFkX2NvbWJhdF9udW0pIHtcbiAgICAgICAgICAgICAgICAgICAgYm9vbF9zdGF0dXNbcmV3YXJkX2ldID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgbnVtX2kgaW4gZGF0YS5udW1fbGlzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG51bV9pbmZvID0gZGF0YS5udW1fbGlzdFtudW1faV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtX2luZm8ubnVtID09IHJld2FyZF9pbmZvLm51bSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfc3RhdHVzW3Jld2FyZF9pXSA9IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmVlZF9yZWQgPSBmYWxzZVxuICAgICAgICBmb3IgKHZhciBzdGF0dXNfaSBpbiBib29sX3N0YXR1cykge1xuICAgICAgICAgICAgaWYgKGJvb2xfc3RhdHVzW3N0YXR1c19pXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIG5lZWRfcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlQXJlbmFSZWRTdGF0dXMoQXJlbmFDb25zdC5yZWRfdHlwZS5sb29wX3Jld2FyZCwgbmVlZF9yZWQpO1xuICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKEFyZW5hRXZlbnQuVXBkYXRlTG9vcENoYWxsZW5nZVRpbWVzTGlzdCwgZGF0YSk7ICAgICAgICBcbiAgICB9LFxuXG4gICAgZ2V0Q2hhbGxlbmdlVGltZXNBd2FyZHM6IGZ1bmN0aW9uKCkge1xuICAgIFx0cmV0dXJuIHRoaXMudGltZXNfYXdhcmRzO1xuICAgIH0sIFxuXG4gICAgdXBkYXRlTG9vcENoYWxsZW5nZUxpc3Q6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxvb3BfY2hhbGxlbmdlX2xpc3QgJiYgZGF0YS50eXBlID09PSAxKSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5sb29wX2NoYWxsZW5nZV9saXN0KVxuICAgICAgICAgICAgdGhpcy5sb29wX2NoYWxsZW5nZV9saXN0ID0ge307XG5cbiAgICAgICAgZm9yICh2YXIgbGlzdF9pIGluIGRhdGEuZl9saXN0KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubG9vcF9jaGFsbGVuZ2VfbGlzdFtkYXRhLmZfbGlzdFtsaXN0X2ldLmlkeF0pXG4gICAgICAgICAgICAgICAgdGhpcy5sb29wX2NoYWxsZW5nZV9saXN0W2RhdGEuZl9saXN0W2xpc3RfaV0uaWR4XSA9IG5ldyBBcmVuYUxvb3BDaGFsbGVuZ2VWbygpO1xuICAgICAgICAgICAgdGhpcy5sb29wX2NoYWxsZW5nZV9saXN0W2RhdGEuZl9saXN0W2xpc3RfaV0uaWR4XS51cGRhdGV0QXR0cmlidXRlRGF0YShkYXRhLmZfbGlzdFtsaXN0X2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09IDApXG4gICAgICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKEFyZW5hRXZlbnQuVXBkYXRlTG9vcENoYWxsZW5nZUxpc3QpO1xuICAgIH0sXG5cbiAgICBnZXRMb29wQ2hhbGxlbmdlTGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjaGFsbGVudGVfbGlzdCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBjaGFfaSBpbiB0aGlzLmxvb3BfY2hhbGxlbmdlX2xpc3QpIHtcbiAgICAgICAgICAgIGNoYWxsZW50ZV9saXN0LnB1c2godGhpcy5sb29wX2NoYWxsZW5nZV9saXN0W2NoYV9pXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hhbGxlbnRlX2xpc3Q7XG4gICAgfSxcblxuICAgIGNsZWFuQ2hhbGxlbmdlTGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMubG9vcF9jaGFsbGVuZ2VfbGlzdCA9IG51bGw7XG4gICAgfSxcblxuXG4gICAgLy8g5qC55o2u56ev5YiG6I635Y+W5aWW5p2v6YWN572u5pWw5o2u77yM57uf5LiA5LiA5Liq5o6l5Y+jLOWmguaenOS4jeS8oOWFpe+8jOWwsem7mOiupOeUqOiHquW3seeahFxuICAgIGdldFpvbmVDb25maWdCeVNvdXJlOiBmdW5jdGlvbihzY29yZSkge1xuICAgICAgICBzY29yZSA9IHNjb3JlIHx8IHRoaXMubXlfbG9vcF9kYXRhLnNjb3JlO1xuXG4gICAgICAgIHZhciBjdXJfY29uZmlnID0gbnVsbDtcbiAgICAgICAgdmFyIGZpcnN0X2NvbmZpZyA9IENvbmZpZy5hcmVuYV9kYXRhLmRhdGFfY3VwWzBdO1xuICAgICAgICBpZiAoIXNjb3JlIHx8IHNjb3JlIDwgZmlyc3RfY29uZmlnLm1pbl9zY29yZSkge1xuICAgICAgICAgICAgY3VyX2NvbmZpZyA9IGZpcnN0X2NvbmZpZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAodmFyIGNmZ19pIGluIENvbmZpZy5hcmVuYV9kYXRhLmRhdGFfY3VwKSB7XG4gICAgICAgICAgICAgICAgaWYgKENvbmZpZy5hcmVuYV9kYXRhLmRhdGFfY3VwW2NmZ19pXS5taW5fc2NvcmUgPD0gc2NvcmUgJiYgc2NvcmUgPD0gQ29uZmlnLmFyZW5hX2RhdGEuZGF0YV9jdXBbY2ZnX2ldLm1heF9zY29yZSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJfY29uZmlnID0gQ29uZmlnLmFyZW5hX2RhdGEuZGF0YV9jdXBbY2ZnX2ldO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YXIgbmV4dF9jb25maWcgPSBudWxsO1xuICAgICAgICAvLyBpZiAoY3VyX2NvbmZpZykge1xuICAgICAgICAvLyAgICAgdmFyIG5leHRfY29uZmlnX2luZGV4ID0gY3VyX2NvbmZpZy5pbmRleCArIDE7XG4gICAgICAgIC8vICAgICBmb3IgKHZhciBjZmdfaSBpbiBDb25maWcuYXJlbmFfZGF0YS5kYXRhX2N1cCkge1xuICAgICAgICAvLyAgICAgICAgIGlmIChDb25maWcuYXJlbmFfZGF0YS5kYXRhX2N1cFtjZmdfaV0uaW5kZXggPT09IG5leHRfY29uZmlnX2luZGV4KSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIG5leHRfY29uZmlnID0gQ29uZmlnLmFyZW5hX2RhdGEuZGF0YV9jdXBbY2ZnX2ldO1xuICAgICAgICAvLyAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cblxuICAgICAgICByZXR1cm4gY3VyX2NvbmZpZztcbiAgICAgICAgLy8ge2N1cl9jb25maWc6IGN1cl9jb25maWcsIG5leHRfY29uZmlnOiBuZXh0X2NvbmZpZ30gICAgICAgICBcbiAgICB9LFxuXG4gICAgLy8g57qi54K555u45YWzXG4gICAgdXBkYXRlQXJlbmFSZWRTdGF0dXM6IGZ1bmN0aW9uKHR5cGUsIHN0YXR1cykge1xuICAgICAgICB2YXIgY3VyX3N0YXR1cyA9IHRoaXMuYXJlbmFfbG9vcF9yZWRfbGlzdFt0eXBlXTtcbiAgICAgICAgaWYgKGN1cl9zdGF0dXMgPT09IHN0YXR1cykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuYXJlbmFfbG9vcF9yZWRfbGlzdFt0eXBlXSA9IHN0YXR1cztcblxuICAgICAgICB2YXIgU2NlbmVDb25zdCA9IHJlcXVpcmUoXCJzY2VuZV9jb25zdFwiKTtcbiAgICAgICAgdmFyIE1haW5TY2VuZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwibWFpbnNjZW5lX2NvbnRyb2xsZXJcIik7XG4gICAgICAgIE1haW5TY2VuZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5zZXRCdWlsZFJlZFN0YXR1cyhTY2VuZUNvbnN0LkNlbnRlclNjZW5lQnVpbGQuYXJlbmEsIHtiaWQ6IHR5cGUsIHN0YXR1czogc3RhdHVzfSk7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoQXJlbmFFdmVudC5VcGRhdGVBcmVuYVJlZFN0YXR1cywgdHlwZSk7XG4gICAgfSxcblxuICAgIC8vIOaMkeaImOiusOW9lee6oueCueabtOaWsFxuICAgIHVwZGF0ZUFyZW5hTG9vcExvZ1N0YXR1czogZnVuY3Rpb24oZmxhZykge1xuICAgICAgICB0aGlzLnVwZGF0ZUFyZW5hUmVkU3RhdHVzKEFyZW5hQ29uc3QucmVkX3R5cGUubG9vcF9sb2csICEhZmxhZyk7XG4gICAgfSxcblxuICAgIGdldEhhZENvbWJhdE51bTpmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gdGhpcy5oYWRfY29tYmF0X251bSB8fCAwO1xuICAgIH0sXG5cbiAgICBnZXRBcmVuYUxvb3BMb2dTdGF0dXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmVuYV9sb29wX3JlZF9saXN0W0FyZW5hQ29uc3QucmVkX3R5cGUubG9vcF9sb2ddO1xuICAgIH0sXG5cbn0pOyJdfQ==
|