|
(function() {
|
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
|
var __module = nodeEnv ? module : {exports:{}};
|
var __filename = 'preview-scripts/assets/Scripts/mod/mainui/view/function_icon_vo.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, '6323c6c9RBEWoj+IY7WdwxX', 'function_icon_vo');
|
// Scripts/mod/mainui/view/function_icon_vo.js
|
|
"use strict";
|
|
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
/*-----------------------------------------------------+
|
* 图标数据内存缓存数据,数据事件,更新自身
|
* @author zys
|
+-----------------------------------------------------*/
|
var FunctionIconVo = cc.Class({
|
"extends": gcore.BaseEvent,
|
ctor: function ctor() {
|
this.config = arguments[0] || {};
|
this.pos = this.config.type || 1;
|
this.sort = this.config && this.config.index || 1;
|
this.is_new = false;
|
this.is_lock = arguments[1];
|
this.tips_status = false;
|
this.res_id = this.config.icon_res;
|
this.unclick = false;
|
this.status = 0;
|
this.end_time = 0;
|
this.action_id = 0;
|
this.dynamicres_id = 0;
|
this.real_name = ""; //动态调整的名字
|
|
this.tips_status_list = {};
|
this.real_res_id = ""; //动态调整的资源
|
},
|
setConfig: function setConfig(conf) {
|
this.config = conf;
|
},
|
setLock: function setLock(status) {
|
this.is_lock = status;
|
},
|
//刚进入主场景的时候锁定点击状态,避免引导出问题
|
setUnclick: function setUnclick(status) {
|
this.unclick = status;
|
},
|
update: function update(params) {
|
if (params == null || Utils.next(params) == null) return;
|
|
if (Utils.getArrLen(params) == 1) {
|
var arg = params[0];
|
|
if (_typeof(arg) == "object") {
|
if (arg instanceof Object) {
|
this.id = arg.id;
|
this.status = arg.status; // 活动状态 0结束,1开始, 2准备
|
|
this.int_args = arg.int_args; //整型数组: 默认第一个参数为持续时间(单位秒),第二个是图标资源
|
}
|
|
if (this.int_args && Utils.next(this.int_args) != null) {
|
this.end_time = this.int_args[0].val || 0;
|
}
|
|
var ext_args = arg.ext_args;
|
|
if (ext_args && Utils.next(ext_args)) {
|
for (var k in ext_args) {
|
var v = ext_args[k];
|
|
if (v.type == 1) {
|
this.dynamicres_id = v.val;
|
this.real_name = v.str;
|
|
if (v.val != 0) {
|
this.changeDynamicResId();
|
}
|
|
break;
|
}
|
}
|
}
|
} else if (typeof arg == "number") {
|
this.status = arg;
|
} else if (typeof arg == "string") {
|
var config = Config.function_data.data_convert_icon[arg];
|
|
if (config) {
|
this.real_name = config.icon_name;
|
this.real_res_id = config.icon_res;
|
}
|
}
|
} else if (Utils.getArrLen(params) >= 2) {
|
this.status = params[0] || 0;
|
this.end_time = params[1] || 0;
|
}
|
|
this.fire(FunctionIconVo.UPDATE_SELF_EVENT);
|
},
|
//设置图标红点状态, 如果是table则必须包含 bid 这个作为唯一标志去储存的
|
setTipsStatus: function setTipsStatus(data) {
|
if (data instanceof Object) {
|
if (data.bid != null) {
|
this.tips_status_list[data.bid] = data;
|
} else {
|
for (var k in data) {
|
var v = data[k];
|
|
if (data[k].bid != null) {
|
this.tips_status_list[v.bid] = v;
|
}
|
}
|
}
|
} else {
|
if (data != null) {
|
this.tips_status = data;
|
} else {
|
this.tips_status = !this.tips_status;
|
}
|
}
|
|
this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "tips_status");
|
},
|
//获取图标红点状态
|
getTipsStatus: function getTipsStatus() {
|
for (var k in this.tips_status_list) {
|
var v = this.tips_status_list[k];
|
|
if (v.num != null && typeof v.num == "number" && v.num > 0) {
|
return true;
|
}
|
}
|
|
return this.tips_status;
|
},
|
//获取当前红点的总数量
|
getTipsNum: function getTipsNum() {
|
var num = 0;
|
|
if (this.tips_status_list && Utils.next(this.tips_status_list)) {
|
for (var k in this.tips_status_list) {
|
var v = this.tips_status_list[k];
|
num = num + (v.num || 0);
|
}
|
}
|
|
return num;
|
},
|
changeDynamicResId: function changeDynamicResId() {
|
if (this.dynamicres_id == 0) return;
|
var res_id = "icon" + this.dynamicres_id;
|
this.changeIcon(res_id);
|
},
|
getBattleIconRes: function getBattleIconRes() {
|
return this.dynamicres_id || 1;
|
},
|
changeIcon: function changeIcon(id) {
|
this.res_id = id;
|
this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "res_id");
|
},
|
changeTime: function changeTime(time) {
|
this.end_time = time;
|
this.fire(FunctionIconVo.UPDATE_SELF_EVENT, "end_time");
|
},
|
//获取配置表的id
|
getID: function getID() {
|
if (this.config != null) {
|
return this.config.id;
|
}
|
},
|
_delete: function _delete() {}
|
});
|
FunctionIconVo.UPDATE_SELF_EVENT = "FunctionIconVo.UPDATE_SELF_EVENT";
|
FunctionIconVo.type = {
|
right_top_1: 1,
|
right_top_2: 2,
|
right_bottom_1: 3,
|
right_bottom_2: 4
|
};
|
module.exports = FunctionIconVo;
|
|
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxtYWludWlcXHZpZXdcXGZ1bmN0aW9uX2ljb25fdm8uanMiXSwibmFtZXMiOlsiRnVuY3Rpb25JY29uVm8iLCJjYyIsIkNsYXNzIiwiZ2NvcmUiLCJCYXNlRXZlbnQiLCJjdG9yIiwiY29uZmlnIiwiYXJndW1lbnRzIiwicG9zIiwidHlwZSIsInNvcnQiLCJpbmRleCIsImlzX25ldyIsImlzX2xvY2siLCJ0aXBzX3N0YXR1cyIsInJlc19pZCIsImljb25fcmVzIiwidW5jbGljayIsInN0YXR1cyIsImVuZF90aW1lIiwiYWN0aW9uX2lkIiwiZHluYW1pY3Jlc19pZCIsInJlYWxfbmFtZSIsInRpcHNfc3RhdHVzX2xpc3QiLCJyZWFsX3Jlc19pZCIsInNldENvbmZpZyIsImNvbmYiLCJzZXRMb2NrIiwic2V0VW5jbGljayIsInVwZGF0ZSIsInBhcmFtcyIsIlV0aWxzIiwibmV4dCIsImdldEFyckxlbiIsImFyZyIsIk9iamVjdCIsImlkIiwiaW50X2FyZ3MiLCJ2YWwiLCJleHRfYXJncyIsImsiLCJ2Iiwic3RyIiwiY2hhbmdlRHluYW1pY1Jlc0lkIiwiQ29uZmlnIiwiZnVuY3Rpb25fZGF0YSIsImRhdGFfY29udmVydF9pY29uIiwiaWNvbl9uYW1lIiwiZmlyZSIsIlVQREFURV9TRUxGX0VWRU5UIiwic2V0VGlwc1N0YXR1cyIsImRhdGEiLCJiaWQiLCJnZXRUaXBzU3RhdHVzIiwibnVtIiwiZ2V0VGlwc051bSIsImNoYW5nZUljb24iLCJnZXRCYXR0bGVJY29uUmVzIiwiY2hhbmdlVGltZSIsInRpbWUiLCJnZXRJRCIsIl9kZWxldGUiLCJyaWdodF90b3BfMSIsInJpZ2h0X3RvcF8yIiwicmlnaHRfYm90dG9tXzEiLCJyaWdodF9ib3R0b21fMiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUtBLElBQUlBLGNBQWMsR0FBR0MsRUFBRSxDQUFDQyxLQUFI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Y0FBYyxDQUFDUyxJQUFmLEdBQXNCO0FBQ2xCcUQsRUFBQUEsV0FBVyxFQUFFLENBREs7QUFFbEJDLEVBQUFBLFdBQVcsRUFBRSxDQUZLO0FBR2xCQyxFQUFBQSxjQUFjLEVBQUUsQ0FIRTtBQUlsQkMsRUFBQUEsY0FBYyxFQUFFO0FBSkUsQ0FBdEI7QUFRQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkUsY0FBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXHJcbiAqIOWbvuagh+aVsOaNruWGheWtmOe8k+WtmOaVsOaNrizmlbDmja7kuovku7Ys5pu05paw6Ieq6LqrXHJcbiAqIEBhdXRob3IgenlzXHJcbiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxudmFyIEZ1bmN0aW9uSWNvblZvID0gY2MuQ2xhc3Moe1xyXG4gICAgZXh0ZW5kczogZ2NvcmUuQmFzZUV2ZW50LFxyXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gYXJndW1lbnRzWzBdIHx8IHt9O1xyXG4gICAgICAgIHRoaXMucG9zID0gdGhpcy5jb25maWcudHlwZSB8fCAxO1xyXG4gICAgICAgIHRoaXMuc29ydCA9IHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmluZGV4IHx8IDE7XHJcbiAgICAgICAgdGhpcy5pc19uZXcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzX2xvY2sgPSBhcmd1bWVudHNbMV07XHJcbiAgICAgICAgdGhpcy50aXBzX3N0YXR1cyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucmVzX2lkID0gdGhpcy5jb25maWcuaWNvbl9yZXM7XHJcbiAgICAgICAgdGhpcy51bmNsaWNrID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAwO1xyXG4gICAgICAgIHRoaXMuZW5kX3RpbWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uX2lkID0gMDtcclxuICAgICAgICB0aGlzLmR5bmFtaWNyZXNfaWQgPSAwO1xyXG4gICAgICAgIHRoaXMucmVhbF9uYW1lID0gXCJcIjsgICAgICAgIC8v5Yqo5oCB6LCD5pW055qE5ZCN5a2XXHJcbiAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0ID0ge307XHJcbiAgICAgICAgdGhpcy5yZWFsX3Jlc19pZCA9IFwiXCI7ICAgICAgLy/liqjmgIHosIPmlbTnmoTotYTmupBcclxuICAgIH0sXHJcblxyXG4gICAgc2V0Q29uZmlnOiBmdW5jdGlvbiAoY29uZikge1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZjtcclxuICAgIH0sXHJcblxyXG4gICAgc2V0TG9jazogZnVuY3Rpb24gKHN0YXR1cykge1xyXG4gICAgICAgIHRoaXMuaXNfbG9jayA9IHN0YXR1cztcclxuICAgIH0sXHJcblxyXG4gICAgLy/liJrov5vlhaXkuLvlnLrmma/nmoTml7blgJnplIHlrprngrnlh7vnirbmgIEs6YG/5YWN5byV5a+85Ye66Zeu6aKYXHJcbiAgICBzZXRVbmNsaWNrOiBmdW5jdGlvbiAoc3RhdHVzKSB7XHJcbiAgICAgICAgdGhpcy51bmNsaWNrID0gc3RhdHVzO1xyXG4gICAgfSxcclxuXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIChwYXJhbXMpIHtcclxuICAgICAgICBpZiAocGFyYW1zID09IG51bGwgfHwgVXRpbHMubmV4dChwYXJhbXMpID09IG51bGwpIHJldHVyblxyXG4gICAgICAgIGlmIChVdGlscy5nZXRBcnJMZW4ocGFyYW1zKSA9PSAxKSB7XHJcbiAgICAgICAgICAgIGxldCBhcmcgPSBwYXJhbXNbMF1cclxuICAgICAgICAgICAgaWYodHlwZW9mKGFyZykgID09IFwib2JqZWN0XCIpe1xyXG4gICAgICAgICAgICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBhcmcuaWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBhcmcuc3RhdHVzOyAgICAgICAvLyDmtLvliqjnirbmgIEgMOe7k+adn++8jDHlvIDlp4vvvIwgMuWHhuWkh1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50X2FyZ3MgPSBhcmcuaW50X2FyZ3M7ICAgLy/mlbTlnovmlbDnu4Q6IOm7mOiupOesrOS4gOS4quWPguaVsOS4uuaMgee7reaXtumXtCjljZXkvY3np5IpLOesrOS6jOS4quaYr+Wbvuagh+i1hOa6kFxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmludF9hcmdzICYmIFV0aWxzLm5leHQodGhpcy5pbnRfYXJncykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kX3RpbWUgPSB0aGlzLmludF9hcmdzWzBdLnZhbCB8fCAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBleHRfYXJncyA9IGFyZy5leHRfYXJncztcclxuICAgICAgICAgICAgICAgIGlmIChleHRfYXJncyAmJiBVdGlscy5uZXh0KGV4dF9hcmdzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgaW4gZXh0X2FyZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSBleHRfYXJnc1trXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYudHlwZSA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmR5bmFtaWNyZXNfaWQgPSB2LnZhbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVhbF9uYW1lID0gdi5zdHI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodi52YWwgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRHluYW1pY1Jlc0lkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiAoYXJnKSA9PSBcIm51bWJlclwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IGFyZztcclxuICAgICAgICAgICAgfWVsc2UgaWYgKHR5cGVvZihhcmcpID09IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpZyA9IENvbmZpZy5mdW5jdGlvbl9kYXRhLmRhdGFfY29udmVydF9pY29uW2FyZ107XHJcbiAgICAgICAgICAgICAgICBpZihjb25maWcpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhbF9uYW1lID0gY29uZmlnLmljb25fbmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWxfcmVzX2lkID0gY29uZmlnLmljb25fcmVzO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYgKFV0aWxzLmdldEFyckxlbihwYXJhbXMpID49IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBwYXJhbXNbMF0gfHwgMDtcclxuICAgICAgICAgICAgdGhpcy5lbmRfdGltZSA9IHBhcmFtc1sxXSB8fCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpcmUoRnVuY3Rpb25JY29uVm8uVVBEQVRFX1NFTEZfRVZFTlQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+iuvue9ruWbvuagh+e6oueCueeKtuaAgSwg5aaC5p6c5pivdGFibGXliJnlv4XpobvljIXlkKsgYmlkIOi/meS4quS9nOS4uuWUr+S4gOagh+W/l+WOu+WCqOWtmOeahFxyXG4gICAgc2V0VGlwc1N0YXR1czogZnVuY3Rpb24gKGRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICBpZiAoZGF0YS5iaWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0W2RhdGEuYmlkXSA9IGRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBrIGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdiA9IGRhdGFba107XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba10uYmlkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1c19saXN0W3YuYmlkXSA9IHY7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aXBzX3N0YXR1cyA9IGRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpcHNfc3RhdHVzID0gIXRoaXMudGlwc19zdGF0dXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maXJlKEZ1bmN0aW9uSWNvblZvLlVQREFURV9TRUxGX0VWRU5ULCBcInRpcHNfc3RhdHVzXCIpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPluWbvuagh+e6oueCueeKtuaAgVxyXG4gICAgZ2V0VGlwc1N0YXR1czogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gdGhpcy50aXBzX3N0YXR1c19saXN0KSB7XHJcbiAgICAgICAgICAgIHZhciB2ID0gdGhpcy50aXBzX3N0YXR1c19saXN0W2tdO1xyXG4gICAgICAgICAgICBpZiAodi5udW0gIT0gbnVsbCAmJiB0eXBlb2YgKHYubnVtKSA9PSBcIm51bWJlclwiICYmIHYubnVtID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGlwc19zdGF0dXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W5b2T5YmN57qi54K555qE5oC75pWw6YePXHJcbiAgICBnZXRUaXBzTnVtOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIG51bSA9IDA7XHJcbiAgICAgICAgaWYgKHRoaXMudGlwc19zdGF0dXNfbGlzdCAmJiBVdGlscy5uZXh0KHRoaXMudGlwc19zdGF0dXNfbGlzdCkpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgayBpbiB0aGlzLnRpcHNfc3RhdHVzX2xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHZhciB2ID0gdGhpcy50aXBzX3N0YXR1c19saXN0W2tdO1xyXG4gICAgICAgICAgICAgICAgbnVtID0gbnVtICsgKHYubnVtIHx8IDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1cclxuICAgIH0sXHJcblxyXG4gICAgY2hhbmdlRHluYW1pY1Jlc0lkOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY3Jlc19pZCA9PSAwKSByZXR1cm5cclxuICAgICAgICB2YXIgcmVzX2lkID0gXCJpY29uXCIgKyB0aGlzLmR5bmFtaWNyZXNfaWQ7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJY29uKHJlc19pZCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGdldEJhdHRsZUljb25SZXM6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5keW5hbWljcmVzX2lkIHx8IDE7XHJcbiAgICB9LFxyXG5cclxuICAgIGNoYW5nZUljb246IGZ1bmN0aW9uIChpZCkge1xyXG4gICAgICAgIHRoaXMucmVzX2lkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5maXJlKEZ1bmN0aW9uSWNvblZvLlVQREFURV9TRUxGX0VWRU5ULCBcInJlc19pZFwiKVxyXG4gICAgfSxcclxuXHJcbiAgICBjaGFuZ2VUaW1lOiBmdW5jdGlvbiAodGltZSkge1xyXG4gICAgICAgIHRoaXMuZW5kX3RpbWUgPSB0aW1lO1xyXG4gICAgICAgIHRoaXMuZmlyZShGdW5jdGlvbkljb25Wby5VUERBVEVfU0VMRl9FVkVOVCwgXCJlbmRfdGltZVwiKVxyXG4gICAgfSxcclxuXHJcbiAgICAvL+iOt+WPlumFjee9ruihqOeahGlkXHJcbiAgICBnZXRJRDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5pZDtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIF9kZWxldGU6IGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICB9LFxyXG5cclxufSk7XHJcblxyXG5GdW5jdGlvbkljb25Wby5VUERBVEVfU0VMRl9FVkVOVCA9IFwiRnVuY3Rpb25JY29uVm8uVVBEQVRFX1NFTEZfRVZFTlRcIjtcclxuRnVuY3Rpb25JY29uVm8udHlwZSA9IHtcclxuICAgIHJpZ2h0X3RvcF8xOiAxLFxyXG4gICAgcmlnaHRfdG9wXzI6IDIsXHJcbiAgICByaWdodF9ib3R0b21fMTogMyxcclxuICAgIHJpZ2h0X2JvdHRvbV8yOiA0LFxyXG59XHJcblxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbkljb25WbzsiXX0=
|