difenduandada
2024-12-31 34abe6963b344c882358274957f4b992456fee40
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
 
                (function() {
                    var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
                    var __module = nodeEnv ? module : {exports:{}};
                    var __filename = 'preview-scripts/assets/Scripts/mod/rank/rank_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, '490d1uCJXtIoL7oaw9StSoQ', 'rank_controller');
// Scripts/mod/rank/rank_controller.js
 
"use strict";
 
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
//      这里填写详细说明,主要填写该模块的功能简要
// <br/>Create: 2019-01-29 10:47:25
// --------------------------------------------------------------------
var RankEvent = require("rank_event");
 
var MainuiController = require("mainui_controller");
 
var MainuiConst = require("mainui_const");
 
var RankController = cc.Class({
  "extends": BaseController,
  ctor: function ctor() {},
  // 初始化配置数据
  initConfig: function initConfig() {
    var RankModel = require("rank_model");
 
    this.model = new RankModel();
    this.model.initConfig();
  },
  // 返回当前的model
  getModel: function getModel() {
    return this.model;
  },
  // 注册监听事件
  registerEvents: function registerEvents() {},
  // 注册协议接受事件
  registerProtocals: function registerProtocals() {
    this.RegisterProtocal(12900, this.handle_12900); //排行榜数据
 
    this.RegisterProtocal(12901, this.handle_12901); //指定排行榜最后更新时间
 
    this.RegisterProtocal(12902, this.handle_12902); //请求各个排行榜第一数据
 
    this.RegisterProtocal(12903, this.handle_12903); //请求公会排行榜数据
 
    this.RegisterProtocal(12904, this.handle_12904); //请求公会排行榜数据
  },
  //排行榜
  send_12900: function send_12900(rank_type, start, num, is_cluster) {
    //请求排行榜
    var cluster = 0;
 
    if (is_cluster == true) {
      cluster = 1;
    }
 
    var protocal = {};
    protocal.type = rank_type;
    protocal.start = start || 1;
    protocal.num = num || 100;
    protocal.is_cluster = cluster;
    this.SendProtocal(12900, protocal);
  },
  handle_12900: function handle_12900(data) {
    gcore.GlobalEvent.fire(RankEvent.RankEvent_Get_Rank_data, data);
  },
  //指定排行榜最后更新时间
  send_12901: function send_12901(type, is_cluster) {
    //请求排行榜
    var cluster = 0;
    if (is_cluster == true) cluster = 1;
    var protocal = {};
    protocal.type = type;
    protocal.is_cluster = cluster;
    this.SendProtocal(12901, protocal);
  },
  handle_12901: function handle_12901(data) {
    gcore.GlobalEvent.fire(RankEvent.RankEvent_Get_Time_event, data);
  },
  //请求各个排行榜第一数据
  send_12902: function send_12902(is_cluster) {
    //请求排行榜
    var cluster = 0;
    if (is_cluster == true) cluster = 1;
    var protocal = {};
    protocal.is_cluster = cluster;
    this.SendProtocal(12902, protocal);
  },
  handle_12902: function handle_12902(data) {
    gcore.GlobalEvent.fire(RankEvent.RankEvent_Get_First_data, data);
  },
  //请求公会排行榜数据
  send_12903: function send_12903(start, num) {
    //请求排行榜
    var protocal = {};
    protocal.start = start || 1;
    protocal.num = num || 100;
    this.SendProtocal(12903, protocal);
  },
  handle_12903: function handle_12903(data) {
    gcore.GlobalEvent.fire(RankEvent.RankEvent_Get_Rank_data, data);
  },
  //请求英雄排行榜数据
  send_12904: function send_12904(start, num) {
    var protocal = {};
    protocal.start = start || 1;
    protocal.num = num || 100;
    this.SendProtocal(12904, protocal);
  },
  handle_12904: function handle_12904(data) {
    gcore.GlobalEvent.fire(RankEvent.RankEvent_Get_Rank_data, data);
  },
  //index打开对应的标签页
  openMainView: function openMainView(bool) {
    if (bool == true) {
      if (MainuiController.getInstance().checkMainFunctionOpenStatus(MainuiConst.icon.rank, MainuiConst.function_type.other) == false) return;
 
      if (!this.main_view) {
        this.main_view = Utils.createClass("rank_main_window");
      }
 
      this.main_view.open();
    } else {
      if (this.main_view) {
        this.main_view.close();
        this.main_view = null;
      }
    }
  },
  //打开排行榜信息
  openRankView: function openRankView(bool, index, is_cluster, data) {
    if (bool == true) {
      if (!this.rank_panel) {
        var view = require("rank_window");
 
        this.rank_panel = new view(index, is_cluster);
      }
 
      this.rank_panel.open(data);
    } else {
      if (this.rank_panel) {
        this.rank_panel.close();
        this.rank_panel = null;
      }
    }
  },
  //打开奖励排行榜界面
  openRankRewardPanel: function openRankRewardPanel(bool, rank_reward_type) {
    if (bool == true) {
      if (!this.rank_reward_panel) {
        this.rank_reward_panel = Utils.createClass("rank_reward_window");
      }
 
      this.rank_reward_panel.open(rank_reward_type);
    } else {
      if (this.rank_reward_panel) {
        this.rank_reward_panel.close();
        this.rank_reward_panel = null;
      }
    }
  }
});
module.exports = RankController;
 
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxyYW5rXFxyYW5rX2NvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUmFua0V2ZW50IiwicmVxdWlyZSIsIk1haW51aUNvbnRyb2xsZXIiLCJNYWludWlDb25zdCIsIlJhbmtDb250cm9sbGVyIiwiY2MiLCJDbGFzcyIsIkJhc2VDb250cm9sbGVyIiwiY3RvciIsImluaXRDb25maWciLCJSYW5rTW9kZWwiLCJtb2RlbCIsImdldE1vZGVsIiwicmVnaXN0ZXJFdmVudHMiLCJyZWdpc3RlclByb3RvY2FscyIsIlJlZ2lzdGVyUHJvdG9jYWwiLCJoYW5kbGVfMTI5MDAiLCJoYW5kbGVfMTI5MDEiLCJoYW5kbGVfMTI5MDIiLCJoYW5kbGVfMTI5MDMiLCJoYW5kbGVfMTI5MDQiLCJzZW5kXzEyOTAwIiwicmFua190eXBlIiwic3RhcnQiLCJudW0iLCJpc19jbHVzdGVyIiwiY2x1c3RlciIsInByb3RvY2FsIiwidHlwZSIsIlNlbmRQcm90b2NhbCIsImRhdGEiLCJnY29yZSIsIkdsb2JhbEV2ZW50IiwiZmlyZSIsIlJhbmtFdmVudF9HZXRfUmFua19kYXRhIiwic2VuZF8xMjkwMSIsIlJhbmtFdmVudF9HZXRfVGltZV9ldmVudCIsInNlbmRfMTI5MDIiLCJSYW5rRXZlbnRfR2V0X0ZpcnN0X2RhdGEiLCJzZW5kXzEyOTAzIiwic2VuZF8xMjkwNCIsIm9wZW5NYWluVmlldyIsImJvb2wiLCJnZXRJbnN0YW5jZSIsImNoZWNrTWFpbkZ1bmN0aW9uT3BlblN0YXR1cyIsImljb24iLCJyYW5rIiwiZnVuY3Rpb25fdHlwZSIsIm90aGVyIiwibWFpbl92aWV3IiwiVXRpbHMiLCJjcmVhdGVDbGFzcyIsIm9wZW4iLCJjbG9zZSIsIm9wZW5SYW5rVmlldyIsImluZGV4IiwicmFua19wYW5lbCIsInZpZXciLCJvcGVuUmFua1Jld2FyZFBhbmVsIiwicmFua19yZXdhcmRfdHlwZSIsInJhbmtfcmV3YXJkX3BhbmVsIiwibW9kdWxlIiwiZXhw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QmEsS0FBaEIsRUFBdUI5QixVQUF2QixFQUFrQ0ssSUFBbEMsRUFBd0M7QUFDbEQsUUFBSVksSUFBSSxJQUFJLElBQVosRUFBa0I7QUFDZCxVQUFJLENBQUMsS0FBS2MsVUFBVixFQUFzQjtBQUNsQixZQUFJQyxJQUFJLEdBQUd4RCxPQUFPLENBQUMsYUFBRCxDQUFsQjs7QUFDQSxhQUFLdUQsVUFBTCxHQUFrQixJQUFJQyxJQUFKLENBQVNGLEtBQVQsRUFBZ0I5QixVQUFoQixDQUFsQjtBQUNIOztBQUNELFdBQUsrQixVQUFMLENBQWdCSixJQUFoQixDQUFxQnRCLElBQXJCO0FBQ0gsS0FORCxNQU1PO0FBQ0gsVUFBSSxLQUFLMEIsVUFBVCxFQUFxQjtBQUNqQixhQUFLQSxVQUFMLENBQWdCSCxLQUFoQjtBQUNBLGFBQUtHLFVBQUwsR0FBa0IsSUFBbEI7QUFDSDtBQUNKO0FBQ0osR0ExSXlCO0FBNEkxQjtBQUNBRSxFQUFBQSxtQkFBbUIsRUFBRSw2QkFBVWhCLElBQVYsRUFBZ0JpQixnQkFBaEIsRUFBa0M7QUFDbkQsUUFBSWpCLElBQUksSUFBSSxJQUFaLEVBQWtCO0FBQ2QsVUFBSSxDQUFDLEtBQUtrQixpQkFBVixFQUE2QjtBQUN6QixhQUFLQSxpQkFBTCxHQUF5QlYsS0FBSyxDQUFDQyxXQUFOLENBQWtCLG9CQUFsQixDQUF6QjtBQUNIOztBQUNELFdBQUtTLGlCQUFMLENBQXVCUixJQUF2QixDQUE0Qk8sZ0JBQTVCO0FBQ0gsS0FMRCxNQUtPO0FBQ0gsVUFBSSxLQUFLQyxpQkFBVCxFQUE0QjtBQUN4QixhQUFLQSxpQkFBTCxDQUF1QlAsS0FBdkI7QUFDQSxhQUFLTyxpQkFBTCxHQUF5QixJQUF6QjtBQUNIO0FBQ0o7QUFDSjtBQXpKeUIsQ0FBVCxDQUFyQjtBQTRKQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCMUQsY0FBakIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAYXV0aG9yOiB4eHhAc3lnLmNvbSjlv4XloassIOWIm+W7uuaooeWdl+eahOS6uuWRmClcbi8vIEBkZXNjcmlwdGlvbjpcbi8vICAgICAg6L+Z6YeM5aGr5YaZ6K+m57uG6K+05piOLOS4u+imgeWhq+WGmeivpeaooeWdl+eahOWKn+iDveeugOimgVxuLy8gPGJyLz5DcmVhdGU6IDIwMTktMDEtMjkgMTA6NDc6MjVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG52YXIgUmFua0V2ZW50ID0gcmVxdWlyZShcInJhbmtfZXZlbnRcIik7XG52YXIgTWFpbnVpQ29udHJvbGxlciA9IHJlcXVpcmUoXCJtYWludWlfY29udHJvbGxlclwiKTtcbnZhciBNYWludWlDb25zdCA9IHJlcXVpcmUoXCJtYWludWlfY29uc3RcIik7XG5cbnZhciBSYW5rQ29udHJvbGxlciA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ29udHJvbGxlcixcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMlumFjee9ruaVsOaNrlxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIFJhbmtNb2RlbCA9IHJlcXVpcmUoXCJyYW5rX21vZGVsXCIpO1xuXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgUmFua01vZGVsKCk7XG4gICAgICAgIHRoaXMubW9kZWwuaW5pdENvbmZpZygpO1xuICAgIH0sXG5cbiAgICAvLyDov5Tlm57lvZPliY3nmoRtb2RlbFxuICAgIGdldE1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsO1xuICAgIH0sXG5cbiAgICAvLyDms6jlhoznm5HlkKzkuovku7ZcbiAgICByZWdpc3RlckV2ZW50czogZnVuY3Rpb24gKCkge1xuICAgIH0sXG5cbiAgICAvLyDms6jlhozljY/orq7mjqXlj5fkuovku7ZcbiAgICByZWdpc3RlclByb3RvY2FsczogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTI5MDAsIHRoaXMuaGFuZGxlXzEyOTAwKSAgLy/mjpLooYzmppzmlbDmja5cbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEyOTAxLCB0aGlzLmhhbmRsZV8xMjkwMSkgIC8v5oyH5a6a5o6S6KGM5qac5pyA5ZCO5pu05paw5pe26Ze0XG4gICAgICAgIHRoaXMuUmVnaXN0ZXJQcm90b2NhbCgxMjkwMiwgdGhpcy5oYW5kbGVfMTI5MDIpICAvL+ivt+axguWQhOS4quaOkuihjOamnOesrOS4gOaVsOaNrlxuICAgICAgICB0aGlzLlJlZ2lzdGVyUHJvdG9jYWwoMTI5MDMsIHRoaXMuaGFuZGxlXzEyOTAzKSAgLy/or7fmsYLlhazkvJrmjpLooYzmppzmlbDmja5cbiAgICAgICAgdGhpcy5SZWdpc3RlclByb3RvY2FsKDEyOTA0LCB0aGlzLmhhbmRsZV8xMjkwNCkgIC8v6K+35rGC5YWs5Lya5o6S6KGM5qac5pWw5o2uXG4gICAgfSxcblxuICAgIC8v5o6S6KGM5qacXG4gICAgc2VuZF8xMjkwMDogZnVuY3Rpb24gKHJhbmtfdHlwZSwgc3RhcnQsIG51bSwgaXNfY2x1c3Rlcikge1xuICAgICAgICAvL+ivt+axguaOkuihjOamnFxuICAgICAgICB2YXIgY2x1c3RlciA9IDA7XG4gICAgICAgIGlmIChpc19jbHVzdGVyID09IHRydWUpIHtcbiAgICAgICAgICAgIGNsdXN0ZXIgPSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcm90b2NhbCA9IHt9O1xuICAgICAgICBwcm90b2NhbC50eXBlID0gcmFua190eXBlO1xuICAgICAgICBwcm90b2NhbC5zdGFydCA9IHN0YXJ0IHx8IDE7XG4gICAgICAgIHByb3RvY2FsLm51bSA9IG51bSB8fCAxMDA7XG4gICAgICAgIHByb3RvY2FsLmlzX2NsdXN0ZXIgPSBjbHVzdGVyO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgxMjkwMCwgcHJvdG9jYWwpO1xuICAgIH0sXG5cbiAgICBoYW5kbGVfMTI5MDA6ZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoUmFua0V2ZW50LlJhbmtFdmVudF9HZXRfUmFua19kYXRhLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy/mjIflrprmjpLooYzmppzmnIDlkI7mm7TmlrDml7bpl7RcbiAgICBzZW5kXzEyOTAxOiBmdW5jdGlvbiAodHlwZSwgaXNfY2x1c3Rlcikge1xuICAgICAgICAvL+ivt+axguaOkuihjOamnFxuICAgICAgICB2YXIgY2x1c3RlciA9IDA7XG4gICAgICAgIGlmIChpc19jbHVzdGVyID09IHRydWUpXG4gICAgICAgICAgICBjbHVzdGVyID0gMTtcbiAgICAgICAgdmFyIHByb3RvY2FsID0ge307XG4gICAgICAgIHByb3RvY2FsLnR5cGUgPSB0eXBlO1xuICAgICAgICBwcm90b2NhbC5pc19jbHVzdGVyID0gY2x1c3RlcjtcbiAgICAgICAgdGhpcy5TZW5kUHJvdG9jYWwoMTI5MDEsIHByb3RvY2FsKTtcbiAgICB9LFxuXG4gICAgaGFuZGxlXzEyOTAxOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICBnY29yZS5HbG9iYWxFdmVudC5maXJlKFJhbmtFdmVudC5SYW5rRXZlbnRfR2V0X1RpbWVfZXZlbnQsIGRhdGEpO1xuICAgIH0sXG5cbiAgICAvL+ivt+axguWQhOS4quaOkuihjOamnOesrOS4gOaVsOaNrlxuICAgIHNlbmRfMTI5MDI6IGZ1bmN0aW9uIChpc19jbHVzdGVyKSB7XG4gICAgICAgIC8v6K+35rGC5o6S6KGM5qacXG4gICAgICAgIHZhciBjbHVzdGVyID0gMDtcbiAgICAgICAgaWYgKGlzX2NsdXN0ZXIgPT0gdHJ1ZSlcbiAgICAgICAgICAgIGNsdXN0ZXIgPSAxO1xuICAgICAgICB2YXIgcHJvdG9jYWwgPSB7fTtcbiAgICAgICAgcHJvdG9jYWwuaXNfY2x1c3RlciA9IGNsdXN0ZXI7XG4gICAgICAgIHRoaXMuU2VuZFByb3RvY2FsKDEyOTAyLCBwcm90b2NhbCk7XG4gICAgfSxcblxuICAgIGhhbmRsZV8xMjkwMjogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgZ2NvcmUuR2xvYmFsRXZlbnQuZmlyZShSYW5rRXZlbnQuUmFua0V2ZW50X0dldF9GaXJzdF9kYXRhLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy/or7fmsYLlhazkvJrmjpLooYzmppzmlbDmja5cbiAgICBzZW5kXzEyOTAzOiBmdW5jdGlvbiAoc3RhcnQsIG51bSkge1xuICAgICAgICAvL+ivt+axguaOkuihjOamnFxuICAgICAgICB2YXIgcHJvdG9jYWwgPSB7fTtcbiAgICAgICAgcHJvdG9jYWwuc3RhcnQgPSBzdGFydCB8fCAxO1xuICAgICAgICBwcm90b2NhbC5udW0gPSBudW0gfHwgMTAwO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgxMjkwMywgcHJvdG9jYWwpO1xuICAgIH0sXG5cbiAgICBoYW5kbGVfMTI5MDM6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoUmFua0V2ZW50LlJhbmtFdmVudF9HZXRfUmFua19kYXRhLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy/or7fmsYLoi7Hpm4TmjpLooYzmppzmlbDmja5cbiAgICBzZW5kXzEyOTA0OiBmdW5jdGlvbiAoc3RhcnQsIG51bSkge1xuICAgICAgICB2YXIgcHJvdG9jYWwgPSB7fTtcbiAgICAgICAgcHJvdG9jYWwuc3RhcnQgPSBzdGFydCB8fCAxO1xuICAgICAgICBwcm90b2NhbC5udW0gPSBudW0gfHwgMTAwO1xuICAgICAgICB0aGlzLlNlbmRQcm90b2NhbCgxMjkwNCwgcHJvdG9jYWwpO1xuICAgIH0sXG5cbiAgICBoYW5kbGVfMTI5MDQ6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIGdjb3JlLkdsb2JhbEV2ZW50LmZpcmUoUmFua0V2ZW50LlJhbmtFdmVudF9HZXRfUmFua19kYXRhLCBkYXRhKTtcbiAgICB9LFxuXG4gICAgLy9pbmRleOaJk+W8gOWvueW6lOeahOagh+etvumhtVxuICAgIG9wZW5NYWluVmlldzogZnVuY3Rpb24gKGJvb2wpIHtcbiAgICAgICAgaWYgKGJvb2wgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKE1haW51aUNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKS5jaGVja01haW5GdW5jdGlvbk9wZW5TdGF0dXMoTWFpbnVpQ29uc3QuaWNvbi5yYW5rLCBNYWludWlDb25zdC5mdW5jdGlvbl90eXBlLm90aGVyKSA9PSBmYWxzZSlcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIGlmICghdGhpcy5tYWluX3ZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5fdmlldyA9IFV0aWxzLmNyZWF0ZUNsYXNzKFwicmFua19tYWluX3dpbmRvd1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubWFpbl92aWV3Lm9wZW4oKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWFpbl92aWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWluX3ZpZXcuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5fdmlldyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLy/miZPlvIDmjpLooYzmppzkv6Hmga9cbiAgICBvcGVuUmFua1ZpZXc6IGZ1bmN0aW9uIChib29sLCBpbmRleCwgaXNfY2x1c3RlcixkYXRhKSB7XG4gICAgICAgIGlmIChib29sID09IHRydWUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yYW5rX3BhbmVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZpZXcgPSByZXF1aXJlKFwicmFua193aW5kb3dcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5rX3BhbmVsID0gbmV3IHZpZXcoaW5kZXgsIGlzX2NsdXN0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yYW5rX3BhbmVsLm9wZW4oZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yYW5rX3BhbmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5rX3BhbmVsLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5rX3BhbmVsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvL+aJk+W8gOWlluWKseaOkuihjOamnOeVjOmdolxuICAgIG9wZW5SYW5rUmV3YXJkUGFuZWw6IGZ1bmN0aW9uIChib29sLCByYW5rX3Jld2FyZF90eXBlKSB7XG4gICAgICAgIGlmIChib29sID09IHRydWUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yYW5rX3Jld2FyZF9wYW5lbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFua19yZXdhcmRfcGFuZWwgPSBVdGlscy5jcmVhdGVDbGFzcyhcInJhbmtfcmV3YXJkX3dpbmRvd1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmFua19yZXdhcmRfcGFuZWwub3BlbihyYW5rX3Jld2FyZF90eXBlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmtfcmV3YXJkX3BhbmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yYW5rX3Jld2FyZF9wYW5lbC5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmFua19yZXdhcmRfcGFuZWwgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmFua0NvbnRyb2xsZXI7Il19