(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/seerpalace/seerpalace_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, '023a6O3lvpK5pDojYgNSZSj', 'seerpalace_controller'); // Scripts/mod/seerpalace/seerpalace_controller.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里填写详细说明,主要填写该模块的功能简要 //
Create: 2019-03-21 10:11:26 // -------------------------------------------------------------------- var SeerpalaceEvent = require("seerpalace_event"); var SeerpalaceController = cc.Class({ "extends": BaseController, ctor: function ctor() {}, // 初始化配置数据 initConfig: function initConfig() { var SeerpalaceModel = require("seerpalace_model"); this.model = new SeerpalaceModel(); this.model.initConfig(); }, // 返回当前的model getModel: function getModel() { return this.model; }, // 注册监听事件 registerEvents: function registerEvents() { var self = this; if (self.init_role_event == null) { self.init_role_event = gcore.GlobalEvent.bind(EventId.EVT_ROLE_CREATE_SUCCESS, function () { gcore.GlobalEvent.unbind(self.init_role_event); self.init_role_event = null; //-- 上线时请求 // self.requestSeerpalaceChangeInfo() }); } }, // 注册协议接受事件 registerProtocals: function registerProtocals() { this.RegisterProtocal(23213, this.handle23213.bind(this)); //--先知殿召唤返回 this.RegisterProtocal(23214, this.handle23214.bind(this)); //--先知殿置换当前状态数据 this.RegisterProtocal(23215, this.handle23215.bind(this)); //--先知殿置换结果 }, //打开先知界面 openSeerpalaceMainWindow: function openSeerpalaceMainWindow(bool, data) { if (bool) { var is_open = this.checkSeerpalaceIsOpen(); if (!is_open) { return; } var SeerpalaceWindow = require("seerpalace_main_window"); if (!this.seerpalace_window) { this.seerpalace_window = new SeerpalaceWindow(); } this.seerpalace_window.open(); } else { if (this.seerpalace_window) { this.seerpalace_window.close(); } this.seerpalace_window = null; } }, //先知商店 openShop: function openShop(bool, data) { if (bool) { var shopWindow = require("seerpalace_shop_window"); if (!this.shopWindow) { this.shopWindow = new shopWindow(); } this.shopWindow.open(); } else { if (this.shopWindow) { this.shopWindow.close(); } this.shopWindow = null; } }, handle23213: function handle23213(data) { if (data) { this.model.setLastSummonGroupId(data.group_id); var items = []; for (var i in data.rewards) { items[i] = {}; items[i].bid = data.rewards[i].base_id; items[i].num = data.rewards[i].num; } var MainUiConst = require("mainui_const"); require("mainui_controller").getInstance().openGetItemView(true, items, 0, { is_backpack: true }, MainUiConst.item_open_type.seerpalace); } }, handle23214: function handle23214(data) { this.model.setChangePartnerId(data.partner_id); //seerpalace_change_panel动态加载的,发射事件快,监听事件没注册 所以用不了 暂时拿model直接存 gcore.GlobalEvent.fire(SeerpalaceEvent.Change_Role_Info_Event, data); // this.model.setChangeInfo(data) }, handle23215: function handle23215(data) { message(data.msg); if (data.code == 1 && this.model.getChangeFlag()) { gcore.GlobalEvent.fire(SeerpalaceEvent.Change_Role_Success); this.model.setChangeFlag(false); } }, //-- 召唤预览 openSeerpalacePreviewWindow: function openSeerpalacePreviewWindow(status, index) { var self = this; if (status == true) { if (!self.seerpalace_preview) { var SeerpalacePreviewWindow = require("seerpalace_preview_window"); self.seerpalace_preview = new SeerpalacePreviewWindow(); } if (self.seerpalace_preview.isOpen() == false) { self.seerpalace_preview.open(index); } } else { if (self.seerpalace_preview) { self.seerpalace_preview.close(); self.seerpalace_preview = null; } } }, requestSeerpalaceSummon: function requestSeerpalaceSummon(group_id) { var protocal = {}; protocal.group_id = group_id; this.SendProtocal(23213, protocal); }, requestSeerpalaceChangeInfo: function requestSeerpalaceChangeInfo() { var protocal = {}; this.SendProtocal(23214, protocal); }, // -- 请求置换英雄 requestSeerpalaceChangeRole: function requestSeerpalaceChangeRole(partner_id, action) { var protocal = {}; protocal.partner_id = partner_id; protocal.action = action; if (action && action == 1) { this.model.setChangeFlag(true); } this.SendProtocal(23215, protocal); }, getSeerpalaceMainRoot: function getSeerpalaceMainRoot() { if (this.seerpalace_window) return this.seerpalace_window.root_wnd; }, // -- 获取先知殿是否开启 checkSeerpalaceIsOpen: function checkSeerpalaceIsOpen(not_tips) { var is_open = false; var RoleController = require("role_controller"); var role_vo = RoleController.getInstance().getRoleVo(); var limit_config = Config.recruit_high_data.data_seerpalace_const["common_limit"]; if (limit_config && role_vo.lev >= limit_config.val) { is_open = true; } else { is_open = false; if (!not_tips) { message(cc.js.formatStr(Utils.TI18N("%d级开启先知圣殿"), limit_config.val)); } } return is_open; } }); module.exports = SeerpalaceController; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxzZWVycGFsYWNlXFxzZWVycGFsYWNlX2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiU2VlcnBhbGFjZUV2ZW50IiwicmVxdWlyZSIsIlNlZXJwYWxhY2VDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJTZWVycGFsYWNlTW9kZWwiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJzZWxmIiwiaW5pdF9yb2xlX2V2ZW50IiwiZ2NvcmUiLCJHbG9iYWxFdmVudCIsImJpbmQiLCJFdmVudElkIiwiRVZUX1JPTEVfQ1JFQVRFX1NVQ0NFU1MiLCJ1bmJpbmQiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJoYW5kbGUyMzIxMyIsImhhbmRsZTIzMjE0IiwiaGFuZGxlMjMyMTUiLCJvcGVuU2VlcnBhbGFjZU1haW5XaW5kb3ciLCJib29sIiwiZGF0YSIsImlzX29wZW4iLCJjaGVja1NlZXJwYWxhY2VJc09wZW4iLCJTZWVycGFsYWNlV2luZG93Iiwic2VlcnBhbGFjZV93aW5kb3ciLCJvcGVuIiwiY2xvc2UiLCJvcGVuU2hvcCIsInNob3BXaW5kb3ciLCJzZXRMYXN0U3VtbW9uR3JvdXBJZCIsImdyb3VwX2lkIiwiaXRlbXMiLCJpIiwicmV3YXJkcyIsImJpZCIsImJhc2VfaWQiLCJudW0iLCJNYWluVWlDb25zdCIsImdldEluc3RhbmNlIiwib3BlbkdldEl0ZW1WaWV3IiwiaXNfYmFja3BhY2siLCJpdGVtX29wZW5fdHlwZSIsInNlZXJwYWxhY2UiLCJzZXRDaGFuZ2VQYXJ0bmVySWQiLCJwYXJ0bmVyX2lkIiwiZmlyZSIsIkNoYW5nZV9Sb2xlX0luZm9fRXZlbnQiLCJtZXNzYWdlIiwibXNnIiwiY29kZSIsImdldENoYW5nZUZsYWciLCJDaGFuZ2VfUm9sZV9TdWNjZXNzIiwic2V0Q2hhbmdlRmxhZyIsIm9wZW5TZWVycGFsYWNlUHJldmlld1dpbmRvdyIsInN0YXR1cyIsImluZGV4Iiwic2VlcnBhbGFjZV9wcmV2aWV3IiwiU2VlcnBhbGFjZVByZXZpZXdXaW5kb3ciLCJpc09wZW4iLCJyZXF1ZXN0U2VlcnBhbGFjZVN1bW1vbiIsInByb3RvY2FsIiwiU2VuZFByb3RvY2FsIiwicmVxdWVzdFNlZXJwYWxhY2VDaGFuZ2VJbmZvIiwicmVxdWVzdFNlZXJwYWxhY2VDaGFuZ2VSb2xlIiwiYWN0aW9uIiwiZ2V0U2VlcnBhbGFjZU1haW5Sb290Iiwicm9vdF93bmQiLCJub3RfdGlwcyIsIlJvbGVDb250cm9sbGVyIiwicm9sZV92byIsImdldFJvbGVWbyIsImxpbWl0X2NvbmZpZyIsIkNvbmZpZyIsInJlY3J1aXRfaGlnaF9kYXRhIiwiZGF0YV9zZWVycGFsYWNlX2NvbnN0IiwibGV2IiwidmFsIiwianMiLCJmb3JtYXRTdHIiLCJVdGlscyIsIlRJMThOIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxlQUFlLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUE3Qjs7QUFDQSxJQUFJQyxvQkFBb0IsR0FBR0MsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFDaEMsYUFBU0MsY0FEdUI7QUFFaENDLEVBQUFBLElBQUksRUFBRSxnQkFBWSxDQUNqQixDQUgrQjtBQUtoQztBQUNBQyxFQUFBQSxVQUFVLEVBQUUsc0JBQVk7QUFDcEIsUUFBSUMsZUFBZSxHQUFHUCxPQUFPLENBQUMsa0JBQUQsQ0FBN0I7O0FBQ0EsU0FBS1EsS0FBTCxHQUFhLElBQUlELGVBQUosRUFBYjtBQUNBLFNBQUtDLEtBQUwsQ0FBV0YsVUFBWDtBQUNILEdBVitCO0FBWWhDO0FBQ0FHLEVBQUFBLFFBQVEsRUFBRSxvQkFBWTtBQUNsQixXQUFPLEtBQUtELEtBQVo7QUFDSCxHQWYrQjtBQWlCaEM7QUFDQUUsRUFBQUEsY0FBYyxFQUFFLDBCQUFZ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NEQsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkYsb0JBQWpCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAgIOi/memHjOWhq+WGmeivpue7huivtOaYjizkuLvopoHloavlhpnor6XmqKHlnZfnmoTlip/og73nroDopoFcbi8vIDxici8+Q3JlYXRlOiAyMDE5LTAzLTIxIDEwOjExOjI2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIFNlZXJwYWxhY2VFdmVudCA9IHJlcXVpcmUoXCJzZWVycGFsYWNlX2V2ZW50XCIpXG52YXIgU2VlcnBhbGFjZUNvbnRyb2xsZXIgPSBjYy5DbGFzcyh7XG4gICAgZXh0ZW5kczogQmFzZUNvbnRyb2xsZXIsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDliJ3lp4vljJbphY3nva7mlbDmja5cbiAgICBpbml0Q29uZmlnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBTZWVycGFsYWNlTW9kZWwgPSByZXF1aXJlKFwic2VlcnBhbGFjZV9tb2RlbFwiKTtcbiAgICAgICAgdGhpcy5tb2RlbCA9IG5ldyBTZWVycGFsYWNlTW9kZWwoKTtcbiAgICAgICAgdGhpcy5tb2RlbC5pbml0Q29uZmlnKCk7XG4gICAgfSxcblxuICAgIC8vIOi/lOWbnuW9k+WJjeeahG1vZGVsXG4gICAgZ2V0TW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gICAgfSxcblxuICAgIC8vIOazqOWGjOebkeWQrOS6i+S7tlxuICAgIHJlZ2lzdGVyRXZlbnRzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpc1xuICAgICAgICBpZiAoc2VsZi5pbml0X3JvbGVfZXZlbnQgPT0gbnVsbCl7XG4gICAgICAgICAgICBzZWxmLmluaXRfcm9sZV9ldmVudCA9IGdjb3JlLkdsb2JhbEV2ZW50LmJpbmQoRXZlbnRJZC5FVlRfUk9MRV9DUkVBVEVfU1VDQ0VTUywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBnY29yZS5HbG9iYWxFdmVudC51bmJpbmQoc2VsZi5pbml0X3JvbGVfZXZlbnQpXG4gICAgICAgICAgICAgICAgc2VsZi5pbml0X3JvbGVfZXZlbnQgPSBudWxsXG4gICAgICAgICAgICAgICAgLy8tLSDkuIrnur/ml7bor7fmsYJcbiAgICAgICAgICAgICAgICAvLyBzZWxmLnJlcXVlc3RTZWVycGFsYWNlQ2hhbmdlSW5mbygpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8vIOazqOWGjOWNj+iuruaOpeWPl+S6i+S7tlxuICAgIHJlZ2lzdGVyUHJvdG9jYWxzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyMzIxMyx0aGlzLmhhbmRsZTIzMjEzLmJpbmQodGhpcykpOyAvLy0t5YWI55+l5q6/5Y+s5ZSk6L+U5ZueXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyMzIxNCx0aGlzLmhhbmRsZTIzMjE0LmJpbmQodGhpcykpOyAvLy0t5YWI55+l5q6/572u5o2i5b2T5YmN54q25oCB5pWw5o2uXG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgyMzIxNSx0aGlzLmhhbmRsZTIzMjE1LmJpbmQodGhpcykpOyAvLy0t5YWI55+l5q6/572u5o2i57uT5p6cXG4gICAgfSxcbiAgICAvL+aJk+W8gOWFiOefpeeVjOmdolxuICAgIG9wZW5TZWVycGFsYWNlTWFpbldpbmRvdyhib29sLGRhdGEpe1xuICAgICAgICBpZihib29sKXtcbiAgICAgICAgICAgIGxldCBpc19vcGVuID0gdGhpcy5jaGVja1NlZXJwYWxhY2VJc09wZW4oKVxuICAgICAgICAgICAgaWYoIWlzX29wZW4pe1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IFNlZXJwYWxhY2VXaW5kb3cgPSByZXF1aXJlKFwic2VlcnBhbGFjZV9tYWluX3dpbmRvd1wiKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5zZWVycGFsYWNlX3dpbmRvdykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VlcnBhbGFjZV93aW5kb3cgPSBuZXcgU2VlcnBhbGFjZVdpbmRvdygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlZXJwYWxhY2Vfd2luZG93Lm9wZW4oKTtcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICBpZih0aGlzLnNlZXJwYWxhY2Vfd2luZG93KXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlZXJwYWxhY2Vfd2luZG93LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlZXJwYWxhY2Vfd2luZG93ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgLy/lhYjnn6XllYblupdcbiAgICBvcGVuU2hvcChib29sLGRhdGEpe1xuICAgICAgICBpZihib29sKXtcbiAgICAgICAgICAgIGxldCBzaG9wV2luZG93ID0gcmVxdWlyZShcInNlZXJwYWxhY2Vfc2hvcF93aW5kb3dcIik7XG4gICAgICAgICAgICBpZighdGhpcy5zaG9wV2luZG93KXtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3BXaW5kb3cgPSBuZXcgc2hvcFdpbmRvdygpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNob3BXaW5kb3cub3BlbigpXG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYodGhpcy5zaG9wV2luZG93KXtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3BXaW5kb3cuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2hvcFdpbmRvdyA9IG51bGw7ICAgXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfSxcbiAgICBoYW5kbGUyMzIxMyhkYXRhKXtcbiAgICAgICAgaWYoZGF0YSl7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNldExhc3RTdW1tb25Hcm91cElkKGRhdGEuZ3JvdXBfaWQpO1xuICAgICAgICAgICAgbGV0IGl0ZW1zID0gW107XG4gICAgICAgICAgICBmb3IodmFyIGkgaW4gZGF0YS5yZXdhcmRzKXtcbiAgICAgICAgICAgICAgICBpdGVtc1tpXSA9IHt9O1xuICAgICAgICAgICAgICAgIGl0ZW1zW2ldLmJpZCA9IGRhdGEucmV3YXJkc1tpXS5iYXNlX2lkO1xuICAgICAgICAgICAgICAgIGl0ZW1zW2ldLm51bSA9IGRhdGEucmV3YXJkc1tpXS5udW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgTWFpblVpQ29uc3QgPSByZXF1aXJlKFwibWFpbnVpX2NvbnN0XCIpO1xuICAgICAgICAgICAgcmVxdWlyZShcIm1haW51aV9jb250cm9sbGVyXCIpLmdldEluc3RhbmNlKCkub3BlbkdldEl0ZW1WaWV3KHRydWUsIGl0ZW1zLCAwLCB7aXNfYmFja3BhY2s6IHRydWV9LCBNYWluVWlDb25zdC5pdGVtX29wZW5fdHlwZS5zZWVycGFsYWNlKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaGFuZGxlMjMyMTQoZGF0YSl7XG4gICAgICAgIHRoaXMubW9kZWwuc2V0Q2hhbmdlUGFydG5lcklkKGRhdGEucGFydG5lcl9pZClcbiAgICAgICAgLy9zZWVycGFsYWNlX2NoYW5nZV9wYW5lbOWKqOaAgeWKoOi9veeahO+8jOWPkeWwhOS6i+S7tuW/q++8jOebkeWQrOS6i+S7tuayoeazqOWGjCDmiYDku6XnlKjkuI3kuoYg5pqC5pe25ou/bW9kZWznm7TmjqXlrZhcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShTZWVycGFsYWNlRXZlbnQuQ2hhbmdlX1JvbGVfSW5mb19FdmVudCwgZGF0YSlcbiAgICAgICAgLy8gdGhpcy5tb2RlbC5zZXRDaGFuZ2VJbmZvKGRhdGEpXG4gICAgfSxcbiAgICBoYW5kbGUyMzIxNShkYXRhKXtcbiAgICAgICAgbWVzc2FnZShkYXRhLm1zZylcbiAgICAgICAgaWYgKGRhdGEuY29kZSA9PSAxICYmIHRoaXMubW9kZWwuZ2V0Q2hhbmdlRmxhZygpKSB7XG4gICAgICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKFNlZXJwYWxhY2VFdmVudC5DaGFuZ2VfUm9sZV9TdWNjZXNzKVxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZXRDaGFuZ2VGbGFnKGZhbHNlKVxuICAgICAgICB9XG4gICAgfSxcbiAgICAvLy0tIOWPrOWUpOmihOiniFxuICAgIG9wZW5TZWVycGFsYWNlUHJldmlld1dpbmRvdyggc3RhdHVzLCBpbmRleCApe1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXNcbiAgICAgICAgaWYgKHN0YXR1cyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBpZiAoIXNlbGYuc2VlcnBhbGFjZV9wcmV2aWV3KXtcbiAgICAgICAgICAgICAgICBsZXQgU2VlcnBhbGFjZVByZXZpZXdXaW5kb3cgPSByZXF1aXJlKFwic2VlcnBhbGFjZV9wcmV2aWV3X3dpbmRvd1wiKVxuICAgICAgICAgICAgICAgIHNlbGYuc2VlcnBhbGFjZV9wcmV2aWV3ID0gbmV3IFNlZXJwYWxhY2VQcmV2aWV3V2luZG93KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxmLnNlZXJwYWxhY2VfcHJldmlldy5pc09wZW4oKSA9PSBmYWxzZSApe1xuICAgICAgICAgICAgICAgIHNlbGYuc2VlcnBhbGFjZV9wcmV2aWV3Lm9wZW4oaW5kZXgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgaWYgKHNlbGYuc2VlcnBhbGFjZV9wcmV2aWV3KSB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWVycGFsYWNlX3ByZXZpZXcuY2xvc2UoKVxuICAgICAgICAgICAgICAgIHNlbGYuc2VlcnBhbGFjZV9wcmV2aWV3ID0gbnVsbFxuICAgICAgICAgICAgfSAgIFxuICAgICAgICB9XG4gICAgfSxcbiAgICByZXF1ZXN0U2VlcnBhbGFjZVN1bW1vbiggZ3JvdXBfaWQgKXtcbiAgICAgICAgbGV0IHByb3RvY2FsID0ge31cbiAgICAgICAgcHJvdG9jYWwuZ3JvdXBfaWQgPSBncm91cF9pZFxuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgyMzIxMywgcHJvdG9jYWwpXG4gICAgfSxcbiAgICByZXF1ZXN0U2VlcnBhbGFjZUNoYW5nZUluZm8oKXtcbiAgICAgICAgbGV0IHByb3RvY2FsID0ge31cbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMjMyMTQsIHByb3RvY2FsKVxuICAgIH0sXG4gICAgLy8gLS0g6K+35rGC572u5o2i6Iux6ZuEXG4gICAgcmVxdWVzdFNlZXJwYWxhY2VDaGFuZ2VSb2xlKHBhcnRuZXJfaWQsIGFjdGlvbil7XG4gICAgICAgIGxldCBwcm90b2NhbCA9IHt9XG4gICAgICAgIHByb3RvY2FsLnBhcnRuZXJfaWQgPSBwYXJ0bmVyX2lkXG4gICAgICAgIHByb3RvY2FsLmFjdGlvbiA9IGFjdGlvblxuICAgICAgICBpZiAoYWN0aW9uICYmIGFjdGlvbiA9PSAxKXtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0Q2hhbmdlRmxhZyh0cnVlKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDIzMjE1LCBwcm90b2NhbClcbiAgICB9LFxuXG4gICAgZ2V0U2VlcnBhbGFjZU1haW5Sb290OiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VlcnBhbGFjZV93aW5kb3cpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWVycGFsYWNlX3dpbmRvdy5yb290X3duZDtcbiAgICB9LFxuICAgIFxuICAgIC8vIC0tIOiOt+WPluWFiOefpeauv+aYr+WQpuW8gOWQr1xuICAgIGNoZWNrU2VlcnBhbGFjZUlzT3Blbiggbm90X3RpcHMgKXtcbiAgICAgICAgbGV0IGlzX29wZW4gPSBmYWxzZVxuICAgICAgICBsZXQgUm9sZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwicm9sZV9jb250cm9sbGVyXCIpXG4gICAgICAgIGxldCByb2xlX3ZvID0gUm9sZUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5nZXRSb2xlVm8oKVxuICAgICAgICBsZXQgbGltaXRfY29uZmlnID0gQ29uZmlnLnJlY3J1aXRfaGlnaF9kYXRhLmRhdGFfc2VlcnBhbGFjZV9jb25zdFtcImNvbW1vbl9saW1pdFwiXVxuICAgICAgICBpZihsaW1pdF9jb25maWcgJiYgcm9sZV92by5sZXYgPj0gbGltaXRfY29uZmlnLnZhbCl7XG4gICAgICAgICAgICBpc19vcGVuID0gdHJ1ZVxuICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIGlzX29wZW4gPSBmYWxzZVxuICAgICAgICAgICAgaWYoIW5vdF90aXBzKXtcbiAgICAgICAgICAgICAgICBtZXNzYWdlKGNjLmpzLmZvcm1hdFN0cihVdGlscy5USTE4TihcIiVk57qn5byA5ZCv5YWI55+l5Zyj5q6/XCIpLCBsaW1pdF9jb25maWcudmFsKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNfb3BlblxuICAgIH0sXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZWVycGFsYWNlQ29udHJvbGxlcjsiXX0=