(function() {
var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
var __module = nodeEnv ? module : {exports:{}};
var __filename = 'preview-scripts/assets/Scripts/mod/limitexercise/limitexercise_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, 'f8a8cOctShCb5V2PuPgXYZN', 'limitexercise_controller');
// Scripts/mod/limitexercise/limitexercise_controller.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 试炼之境
//
Create: 2019-09-09 19:11:57
// --------------------------------------------------------------------
var LimitExerciseEvent = require("limitexercise_event");
var LimitexerciseController = cc.Class({
"extends": BaseController,
ctor: function ctor() {},
// 初始化配置数据
initConfig: function initConfig() {
var LimitexerciseModel = require("limitexercise_model");
this.model = new LimitexerciseModel();
this.model.initConfig();
},
// 返回当前的model
getModel: function getModel() {
return this.model;
},
// 注册监听事件
registerEvents: function registerEvents() {},
// 注册协议接受事件
registerProtocals: function registerProtocals() {
// this.RegisterProtocal(1110, this.on1110);
this.RegisterProtocal(25410, this.handle25410);
this.RegisterProtocal(25411, this.handle25411);
this.RegisterProtocal(25412, this.handle25412);
this.RegisterProtocal(25413, this.handle25413);
this.RegisterProtocal(25414, this.handle25414);
},
// --活动boss信息
send25410: function send25410() {
this.SendProtocal(25410, {});
},
handle25410: function handle25410(data) {
this.model.setLimitExerciseData(data);
gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_Message_Event, data);
},
//购买挑战次数
send25411: function send25411() {
this.SendProtocal(25411, {});
},
handle25411: function handle25411(data) {
message(data.msg);
if (data.code == 1) {
this.model.setChangeCount(data.count, data.buy_count);
if (this.touch_buy_change && data.count == 1) {
this.send25413();
}
this.touch_buy_change = null;
gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_BuyCount_Event, data);
}
},
//当挑战次数为0的时候,可以根据购买次数是否为0来判断出战
checkJoinFight: function checkJoinFight() {
var const_data = Config.holiday_boss_new_data.data_const;
if (!const_data) return;
var max_count = const_data.fight_buy_max_count.val;
var cur_count = this.model.getDayBuyCount();
var remain_count = this.model.getReaminCount(); // cc.log("max_count,cur_count,remain_count",max_count,cur_count,remain_count)
if (cur_count >= max_count && remain_count == 0) {
message(Utils.TI18N("今日次数已用完~~"));
} else {
if (remain_count <= 0) {
var CommonAlert = require("commonalert");
var str = cc.js.formatStr("是否花费
%s购买一次挑战次数?", Config.item_data.data_assets_label2id.gold, const_data.action_num_espensive.val);
var res = PathTool.getItemRes(Config.item_data.data_assets_label2id.gold);
var call_back = function () {
this.touch_buy_change = true;
this.send25411();
}.bind(this);
CommonAlert.show(str, Utils.TI18N("确认"), call_back, Utils.TI18N("取消"), null, 2, null, {
resArr: [res]
});
} else {
this.send25413();
}
}
},
send25412: function send25412() {
this.SendProtocal(25412, {});
},
handle25412: function handle25412(data) {
message(data.msg);
gcore.GlobalEvent.fire(LimitExerciseEvent.LimitExercise_GetBox_Event, data);
},
// 挑战活动boss
send25413: function send25413() {
this.SendProtocal(25413, {});
},
handle25413: function handle25413(data) {
message(data.msg);
if (data.code == 1) {
var HeroController = require("hero_controller");
HeroController.getInstance().openFormGoFightPanel(false);
}
},
//当前伙伴已使用次数
send25414: function send25414() {
this.SendProtocal(25414, {});
},
handle25414: function handle25414(data) {
this.model.setHeroUseId(data.p_list);
},
openLimitExerciseChangeView: function openLimitExerciseChangeView(status) {
if (status == true) {
if (!this.limit_exercise_view) {
var LimitExerciseChangeWindow = require("limitexercise_change_window");
this.limit_exercise_view = new LimitExerciseChangeWindow(this);
}
this.limit_exercise_view.open();
} else {
if (this.limit_exercise_view) {
this.limit_exercise_view.close();
this.limit_exercise_view = null;
}
}
},
//打开查看奖励界面
openLimitExerciseRewardView: function openLimitExerciseRewardView(status) {
if (status == true) {
if (!this.open_reward_view) {
var LimitExerciseRewardWindow = require("limitexercise_reward_window");
this.open_reward_view = new LimitExerciseRewardWindow(this);
}
this.open_reward_view.open();
} else {
if (this.open_reward_view) {
this.open_reward_view.close();
this.open_reward_view = null;
}
}
}
});
module.exports = LimitexerciseController;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxsaW1pdGV4ZXJjaXNlXFxsaW1pdGV4ZXJjaXNlX2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiTGltaXRFeGVyY2lzZUV2ZW50IiwicmVxdWlyZSIsIkxpbWl0ZXhlcmNpc2VDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJMaW1pdGV4ZXJjaXNlTW9kZWwiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJoYW5kbGUyNTQxMCIsImhhbmRsZTI1NDExIiwiaGFuZGxlMjU0MTIiLCJoYW5kbGUyNTQxMyIsImhhbmRsZTI1NDE0Iiwic2VuZDI1NDEwIiwiU2VuZFByb3RvY2FsIiwiZGF0YSIsInNldExpbWl0RXhlcmNpc2VEYXRhIiwiZ2NvcmUiLCJHbG9iYWxFdmVudCIsImZpcmUiLCJMaW1pdEV4ZXJjaXNlX01lc3NhZ2VfRXZlbnQiLCJzZW5kMjU0MTEiLCJtZXNzYWdlIiwibXNnIiwiY29kZSIsInNldENoYW5nZUNvdW50IiwiY291bnQiLCJidXlfY291bnQiLCJ0b3VjaF9idXlfY2hhbmdlIiwic2VuZDI1NDEzIiwiTGltaXRFeGVyY2lzZV9CdXlDb3VudF9FdmVudCIsImNoZWNrSm9pbkZpZ2h0IiwiY29uc3RfZGF0YSIsIkNvbmZpZyIsImhvbGlkYXlfYm9zc19uZXdfZGF0YSIsImRhdGFfY29uc3QiLCJtYXhfY291bnQiLCJmaWdodF9idXlfbWF4X2NvdW50IiwidmFsIiwiY3VyX2NvdW50IiwiZ2V0RGF5QnV5Q291bnQiLCJyZW1haW5fY291bnQiLCJnZXRSZWFtaW5Db3VudCIsIlV0aWxzIiwiVEkxOE4iLCJDb21tb25BbGVydCIsInN0ciIsImpzIiwiZm9ybWF0U3RyIiwiaXRlbV9kYXRhIiwiZGF0YV9hc3NldHNfbGFiZWwyaWQiLCJnb2xkIiwiYWN0aW9uX251bV9lc3BlbnNpdmUiLCJyZXMiLCJQYXRoVG9vbCIsImdldEl0ZW1SZXMiLCJjYWxsX2JhY2siLCJiaW5kIiwic2hvdyIsInJlc0FyciIsInNlbmQyNTQxMiIsIkxpbWl0RXhlcmNpc2VfR2V0Qm94X0V2ZW50IiwiSGVyb0NvbnRyb2xsZXIiLCJnZXRJbnN0YW5jZSIsIm9wZW5Gb3JtR29GaWdodFBhbmVsIiwic2VuZDI1NDE0Iiwic2V0SGVyb1VzZUlkIiwicF9saXN0Iiwib3BlbkxpbWl0RXhlcmNpc2VDaGFuZ2VWaWV3Iiwic3RhdHVzIiwibGltaXRfZXhlcmNpc2VfdmlldyIsIkxpbWl0RXhlcmNpc2VDaGFuZ2VXaW5kb3ciLCJvcGVuIiwiY2xvc2UiLCJvcGVuTGltaXRFeGVyY2lzZVJld2FyZFZpZXciLCJvcGVuX3Jld2FyZF92aWV3IiwiTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsa0JBQWtCLEdBQUdDLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQzs7QUFDQSxJQUFJQyx1QkFBdUIsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDbkMsYUFBU0MsY0FEMEI7QUFFbkNDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUhrQztBQUtuQztBQUNBQyxFQUFBQSxVQUFVLEVBQUUsc0JBQVk7QUFDcEIsUUFBSUMsa0JBQWtCLEdBQUdQLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQzs7QUFFQSxTQUFLUSxLQUFMLEdBQWEsSUFBSUQsa0JBQUosRUFBYjtBQUNBLFNBQUtDLEtBQUwsQ0FBV0YsVUFBWDtBQUNILEdBWGtDO0FBYW5DO0FBQ0FHLEVBQUFBLFFBQVEsRUFBRSxvQkFBWTtBQUNsQixXQUFPLEtBQUtELEtBQVo7QUFDSCxHQWhCa0M7QUFrQm5DO0FBQ0FFLEVBQUFBLGNBQWMsRUFBRSwwQkFBWSxDQUMzQixDQXBCa0M7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V0FBS0QsZ0JBQUwsQ0FBc0JILElBQXRCO0FBQ0gsS0FORCxNQU1LO0FBQ0QsVUFBRyxLQUFLRyxnQkFBUixFQUF5QjtBQUNyQixhQUFLQSxnQkFBTCxDQUFzQkYsS0FBdEI7QUFDQSxhQUFLRSxnQkFBTCxHQUF3QixJQUF4QjtBQUNIO0FBQ0o7QUFDSjtBQXJJa0MsQ0FBVCxDQUE5QjtBQXdJQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbEYsdUJBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOivleeCvOS5i+Wig1xuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDktMDkgMTk6MTE6NTdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgTGltaXRFeGVyY2lzZUV2ZW50ID0gcmVxdWlyZShcImxpbWl0ZXhlcmNpc2VfZXZlbnRcIilcbnZhciBMaW1pdGV4ZXJjaXNlQ29udHJvbGxlciA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ29udHJvbGxlcixcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMlumFjee9ruaVsOaNrlxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIExpbWl0ZXhlcmNpc2VNb2RlbCA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX21vZGVsXCIpO1xuXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgTGltaXRleGVyY2lzZU1vZGVsKCk7XG4gICAgICAgIHRoaXMubW9kZWwuaW5pdENvbmZpZygpO1xuICAgIH0sXG5cbiAgICAvLyDov5Tlm57lvZPliY3nmoRtb2RlbFxuICAgIGdldE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhoznm5HlkKzkuovku7ZcbiAgICByZWdpc3RlckV2ZW50czogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTExMCwgdGhpcy5vbjExMTApO1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjU0MTAsIHRoaXMuaGFuZGxlMjU0MTApXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyNTQxMSwgdGhpcy5oYW5kbGUyNTQxMSlcbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDI1NDEyLCB0aGlzLmhhbmRsZTI1NDEyKVxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMjU0MTMsIHRoaXMuaGFuZGxlMjU0MTMpXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyNTQxNCwgdGhpcy5oYW5kbGUyNTQxNClcbiAgICB9LFxuICAgIC8vIC0t5rS75YqoYm9zc+S/oeaBr1xuICAgIHNlbmQyNTQxMCgpe1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyNTQxMCwge30pXG4gICAgfSxcbiAgICBoYW5kbGUyNTQxMChkYXRhKXtcbiAgICAgICAgdGhpcy5tb2RlbC5zZXRMaW1pdEV4ZXJjaXNlRGF0YShkYXRhKVxuICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKExpbWl0RXhlcmNpc2VFdmVudC5MaW1pdEV4ZXJjaXNlX01lc3NhZ2VfRXZlbnQsZGF0YSlcbiAgICB9LFxuICAgIC8v6LSt5Lmw5oyR5oiY5qyh5pWwXG4gICAgc2VuZDI1NDExKCl7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDI1NDExLCB7fSlcbiAgICB9LFxuICAgIGhhbmRsZTI1NDExKGRhdGEpe1xuICAgICAgICBtZXNzYWdlKGRhdGEubXNnKVxuICAgICAgICBpZihkYXRhLmNvZGUgPT0gMSl7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNldENoYW5nZUNvdW50KGRhdGEuY291bnQsZGF0YS5idXlfY291bnQpXG4gICAgICAgICAgICBpZih0aGlzLnRvdWNoX2J1eV9jaGFuZ2UgJiYgZGF0YS5jb3VudCA9PSAxKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmQyNTQxMygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnRvdWNoX2J1eV9jaGFuZ2UgPSBudWxsXG4gICAgICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKExpbWl0RXhlcmNpc2VFdmVudC5MaW1pdEV4ZXJjaXNlX0J1eUNvdW50X0V2ZW50LGRhdGEpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8v5b2T5oyR5oiY5qyh5pWw5Li6MOeahOaXtuWAme+8jOWPr+S7peagueaNrui0reS5sOasoeaVsOaYr+WQpuS4ujDmnaXliKTmlq3lh7rmiJhcbiAgICBjaGVja0pvaW5GaWdodCgpe1xuICAgICAgICBsZXQgY29uc3RfZGF0YSA9IENvbmZpZy5ob2xpZGF5X2Jvc3NfbmV3X2RhdGEuZGF0YV9jb25zdFxuICAgICAgICBpZighY29uc3RfZGF0YSkgcmV0dXJuO1xuXG4gICAgICAgIGxldCBtYXhfY291bnQgPSBjb25zdF9kYXRhLmZpZ2h0X2J1eV9tYXhfY291bnQudmFsXG4gICAgICAgIGxldCBjdXJfY291bnQgPSB0aGlzLm1vZGVsLmdldERheUJ1eUNvdW50KClcbiAgICAgICAgbGV0IHJlbWFpbl9jb3VudCA9IHRoaXMubW9kZWwuZ2V0UmVhbWluQ291bnQoKVxuICAgICAgICAvLyBjYy5sb2coXCJtYXhfY291bnQsY3VyX2NvdW50LHJlbWFpbl9jb3VudFwiLG1heF9jb3VudCxjdXJfY291bnQscmVtYWluX2NvdW50KVxuICAgICAgICBpZihjdXJfY291bnQgPj0gbWF4X2NvdW50ICYmIHJlbWFpbl9jb3VudCA9PSAwKXtcbiAgICAgICAgICAgIG1lc3NhZ2UoVXRpbHMuVEkxOE4oXCLku4rml6XmrKHmlbDlt7LnlKjlrox+flwiKSlcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZihyZW1haW5fY291bnQgPD0gMCl7XG4gICAgICAgICAgICAgICAgdmFyIENvbW1vbkFsZXJ0ID0gcmVxdWlyZShcImNvbW1vbmFsZXJ0XCIpO1xuICAgICAgICAgICAgICAgIHZhciBzdHIgPSBjYy5qcy5mb3JtYXRTdHIoXCLmmK/lkKboirHotLk8aW1nIHNyYz0nJXMnIHNjYWxlPTAuMyAvPiVz6LSt5Lmw5LiA5qyh5oyR5oiY5qyh5pWw77yfXCIsIENvbmZpZy5pdGVtX2RhdGEuZGF0YV9hc3NldHNfbGFiZWwyaWQuZ29sZCxjb25zdF9kYXRhLmFjdGlvbl9udW1fZXNwZW5zaXZlLnZhbClcbiAgICAgICAgICAgICAgICB2YXIgcmVzID0gUGF0aFRvb2wuZ2V0SXRlbVJlcyhDb25maWcuaXRlbV9kYXRhLmRhdGFfYXNzZXRzX2xhYmVsMmlkLmdvbGQpXG4gICAgICAgICAgICAgICAgdmFyIGNhbGxfYmFjayA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG91Y2hfYnV5X2NoYW5nZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kMjU0MTEoKVxuICAgICAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgIENvbW1vbkFsZXJ0LnNob3coc3RyLCBVdGlscy5USTE4TihcIuehruiupFwiKSwgY2FsbF9iYWNrLCBVdGlscy5USTE4TihcIuWPlua2iFwiKSwgbnVsbCwgMiwgbnVsbCwgeyByZXNBcnI6IFtyZXNdIH0pXG4gICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmQyNTQxMygpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNlbmQyNTQxMigpe1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyNTQxMiwge30pXG4gICAgfSxcbiAgICBoYW5kbGUyNTQxMihkYXRhKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZylcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShMaW1pdEV4ZXJjaXNlRXZlbnQuTGltaXRFeGVyY2lzZV9HZXRCb3hfRXZlbnQsZGF0YSlcbiAgICB9LFxuICAgIC8vIOaMkeaImOa0u+WKqGJvc3NcbiAgICBzZW5kMjU0MTMoKXtcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMjU0MTMsIHt9KVxuICAgIH0sXG4gICAgaGFuZGxlMjU0MTMoZGF0YSl7XG4gICAgICAgIG1lc3NhZ2UoZGF0YS5tc2cpXG4gICAgICAgIGlmKGRhdGEuY29kZSA9PSAxKXtcbiAgICAgICAgICAgIHZhciBIZXJvQ29udHJvbGxlciA9IHJlcXVpcmUoXCJoZXJvX2NvbnRyb2xsZXJcIilcbiAgICAgICAgICAgIEhlcm9Db250cm9sbGVyLmdldEluc3RhbmNlKCkub3BlbkZvcm1Hb0ZpZ2h0UGFuZWwoZmFsc2UpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIC8v5b2T5YmN5LyZ5Ly05bey5L2/55So5qyh5pWwXG4gICAgc2VuZDI1NDE0KCl7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDI1NDE0LCB7fSlcbiAgICB9LFxuICAgIGhhbmRsZTI1NDE0KGRhdGEpe1xuICAgICAgICB0aGlzLm1vZGVsLnNldEhlcm9Vc2VJZChkYXRhLnBfbGlzdClcbiAgICB9LFxuICAgIG9wZW5MaW1pdEV4ZXJjaXNlQ2hhbmdlVmlldyhzdGF0dXMpe1xuICAgICAgICBpZihzdGF0dXMgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZighdGhpcy5saW1pdF9leGVyY2lzZV92aWV3KXtcbiAgICAgICAgICAgICAgICB2YXIgTGltaXRFeGVyY2lzZUNoYW5nZVdpbmRvdyA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX2NoYW5nZV93aW5kb3dcIilcbiAgICAgICAgICAgICAgICB0aGlzLmxpbWl0X2V4ZXJjaXNlX3ZpZXcgPSBuZXcgTGltaXRFeGVyY2lzZUNoYW5nZVdpbmRvdyh0aGlzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5saW1pdF9leGVyY2lzZV92aWV3Lm9wZW4oKVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlmKHRoaXMubGltaXRfZXhlcmNpc2Vfdmlldyl7IFxuICAgICAgICAgICAgICAgIHRoaXMubGltaXRfZXhlcmNpc2Vfdmlldy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5saW1pdF9leGVyY2lzZV92aWV3ID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvL+aJk+W8gOafpeeci+WlluWKseeVjOmdolxuICAgIG9wZW5MaW1pdEV4ZXJjaXNlUmV3YXJkVmlldyhzdGF0dXMpe1xuICAgICAgICBpZihzdGF0dXMgPT0gdHJ1ZSl7XG4gICAgICAgICAgICBpZighdGhpcy5vcGVuX3Jld2FyZF92aWV3KXtcbiAgICAgICAgICAgICAgICB2YXIgTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyA9IHJlcXVpcmUoXCJsaW1pdGV4ZXJjaXNlX3Jld2FyZF93aW5kb3dcIilcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5fcmV3YXJkX3ZpZXcgPSBuZXcgTGltaXRFeGVyY2lzZVJld2FyZFdpbmRvdyh0aGlzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuX3Jld2FyZF92aWV3Lm9wZW4oKVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlmKHRoaXMub3Blbl9yZXdhcmRfdmlldyl7IFxuICAgICAgICAgICAgICAgIHRoaXMub3Blbl9yZXdhcmRfdmlldy5jbG9zZSgpXG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuX3Jld2FyZF92aWV3ID0gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gTGltaXRleGVyY2lzZUNvbnRyb2xsZXI7Il19