(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/welfare/view/sign_panel.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, '00acdMJC4tMtqMvBfKNOA3e', 'sign_panel'); // Scripts/mod/welfare/view/sign_panel.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 这里是描述这个窗体的作用的 //
Create: 2019-03-06 11:27:30 // -------------------------------------------------------------------- var PathTool = require("pathtool"); var RoleController = require("role_controller"); var WelfareController = require("welfare_controller"); var CommonScrollView = require("common_scrollview"); var Timetool = require("timetool"); var SignItem = require("sign_item"); var WelfareEvent = require("welfare_event"); var SignPanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("welfare", "sign_panel"); }, // 可以初始化声明一些变量的 initConfig: function initConfig() { this.ctrl = WelfareController.getInstance(); this.model = this.ctrl.getModel(); this.role_vo = RoleController.getInstance().getRoleVo(); }, // 初始化一些配置数据,可以用于声明一些变量之类的 initPanel: function initPanel() { this.main_container_nd = this.seekChild("main_container"); this.title_con_nd = this.seekChild("title_con"); this.tips_btn_nd = this.seekChild("tips_btn"); this.goods_con_nd = this.seekChild("goods_con"); var img = this.title_con_nd.getChildByName("title_img").getComponent(cc.Sprite); this.loadRes(PathTool.getIconPath("welfare/welfare_banner", "txt_cn_welfare_banner2"), function (res) { img.spriteFrame = res; }.bind(this)); var tab_size = this.goods_con_nd.getContentSize(); var setting = { item_class: SignItem, // 单元类 start_x: 25, // 第一个单元的X起点 space_x: 28, // x方向的间隔 start_y: 20, // 第一个单元的Y起点 space_y: 30, // y方向的间隔 item_width: 107, // 单元的尺寸width item_height: 107, // 单元的尺寸height row: 0, // 行数,作用于水平滚动类型 col: 5, // 列数,作用于垂直滚动类型 need_dynamic: true }; this.item_scrollview = new CommonScrollView(); this.item_scrollview.createScroll(this.goods_con_nd, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, tab_size, setting, cc.v2(0.5, 0.5)); }, // 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent registerEvent: function registerEvent() { this.addGlobalEvent(WelfareEvent.Update_Sign_Info, function (data) { this.createList(data); }, this); this.addGlobalEvent(WelfareEvent.Sign_Success, function (data) { this.createList(data); }, this); this.tips_btn_nd.on(cc.Node.EventType.TOUCH_END, function (event) { Utils.playButtonSound(1); var pos = event.touch.getLocation(); var desc = StringUtil.parse(Config.checkin_data.data_const.checkin_rules.desc); require("tips_controller").getInstance().showCommonTips(desc, pos); }); this.ctrl.sender14100(); }, createList: function createList(data) { var config = Config.checkin_data.data_award; var now_time = gcore.SmartSocket.getTime(); var month = Number(Timetool.dateFtt("MM", now_time)); var data_list = Utils.deepCopy(config[month]); var has_day = data.day; var now_day = 0; var list = []; for (var k in data_list) { var v = data_list[k]; if (data.status > 0) { if (k < has_day) { //累计的 v.status = 2; //已领取全部奖励 } else if (k == has_day) { //今天 v.status = data.status; } else { //之后的 v.status = 0; } v.now_day = has_day; now_day = has_day; } else if (data.status == 0) { if (k <= has_day) { //累计的 v.status = 2; //已领取全部奖励 } else if (k == has_day + 1) { //今天 v.status = data.status; } else { //之后的 v.status = 0; } v.now_day = has_day + 1; now_day = has_day + 1; } list.push(v); } list.sort(Utils.tableLowerSorter(["day"])); this.item_scrollview.setData(list, function (cell) { var data = cell.getData(); if (data.status == 1 && data.now_day == data.day && this.model.getRechargeCount() == 0) { var str = Utils.TI18N("当天充值任意金额可额外获得一次奖励"); var fun = function fun() { require("vip_controller").getInstance().openVipMainWindow(true, VIPTABCONST.CHARGE); }; var CommonAlert = require("commonalert"); CommonAlert.show(str, Utils.TI18N("确认"), fun, Utils.TI18N("取消"), null, 2); } else if (data.day > data.now_day) { message(Utils.TI18N("未达到签到天数")); } else { this.ctrl.sender14101(); } }.bind(this)); this.item_scrollview.addEndCallBack(function () { var list = this.item_scrollview.getItemList(); var pos = null; for (var k in list) { var vo = list[k].getData(); if (vo.day == 26) { pos = list[k].getItemPosition(); } } if (now_day >= 25) { this.item_scrollview.jumpToMove(cc.v2(pos.x, pos.y + this.item_scrollview.getContentSize().height / 2), 0.1); } }.bind(this)); }, // 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了 onShow: function onShow(params) {}, // 面板设置不可见的回调,这里做一些不可见的屏蔽处理 onHide: function onHide() {}, // 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用 onDelete: function onDelete() { if (this.item_scrollview) { this.item_scrollview.deleteMe(); this.item_scrollview = null; } } }); 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFx3ZWxmYXJlXFx2aWV3XFxzaWduX3BhbmVsLmpzIl0sIm5hbWVzIjpbIlBhdGhUb29sIiwicmVxdWlyZSIsIlJvbGVDb250cm9sbGVyIiwiV2VsZmFyZUNvbnRyb2xsZXIiLCJDb21tb25TY3JvbGxWaWV3IiwiVGltZXRvb2wiLCJTaWduSXRlbSIsIldlbGZhcmVFdmVudCIsIlNpZ25QYW5lbCIsImNjIiwiQ2xhc3MiLCJCYXNlUGFuZWwiLCJjdG9yIiwicHJlZmFiUGF0aCIsImdldFByZWZhYlBhdGgiLCJpbml0Q29uZmlnIiwiY3RybCIsImdldEluc3RhbmNlIiwibW9kZWwiLCJnZXRNb2RlbCIsInJvbGVfdm8iLCJnZXRSb2xlVm8iLCJpbml0UGFuZWwiLCJtYWluX2NvbnRhaW5lcl9uZCIsInNlZWtDaGlsZCIsInRpdGxlX2Nvbl9uZCIsInRpcHNfYnRuX25kIiwiZ29vZHNfY29uX25kIiwiaW1nIiwiZ2V0Q2hpbGRCeU5hbWUiLCJnZXRDb21wb25lbnQiLCJTcHJpdGUiLCJsb2FkUmVzIiwiZ2V0SWNvblBhdGgiLCJyZXMiLCJzcHJpdGVGcmFtZSIsImJpbmQiLCJ0YWJfc2l6ZSIsImdldENvbnRlbnRTaXplIiwic2V0dGluZyIsIml0ZW1fY2xhc3MiLCJzdGFydF94Iiwic3BhY2VfeCIsInN0YXJ0X3kiLCJzcGFjZV95IiwiaXRlbV93aWR0aCIsIml0ZW1faGVpZ2h0Iiwicm93IiwiY29sIiwibmVlZF9keW5hbWljIiwiaXRlbV9zY3JvbGx2aWV3IiwiY3JlYXRlU2Nyb2xsIiwidjIiLCJTY3JvbGxWaWV3RGlyIiwidmVydGljYWwiLCJTY3JvbGxWaWV3U3RhcnRQb3MiLCJ0b3AiLCJyZWdpc3RlckV2ZW50IiwiYWRkR2xvYmFsRXZlbnQiLCJVcGRhdGVfU2lnbl9JbmZvIiwiZGF0YSIsImNyZWF0ZUxpc3QiLCJTaWduX1N1Y2Nlc3MiLCJvbiIsIk5vZGUiLCJFdmVudFR5cGUiLCJUT1VDSF9FTkQiLCJldmVudCIsIlV0aWxzIiwicGxheUJ1dHRvblNvdW5kIiwicG9zIiwidG91Y2giLCJnZXRMb2NhdGlvbiIsImRlc2MiLCJTdHJpbmdVdGlsIiwicGFyc2UiLCJDb25maWciLCJjaGVja2luX2RhdGEiLCJkYXRhX2NvbnN0IiwiY2hlY2tpbl9ydWxlcyIsInNob3dDb21tb25UaXBzIiwic2VuZGVyMTQxMDAiLCJjb25maWciLCJkYXRhX2F3YXJkIiwibm93X3RpbWUiLCJnY29yZSIsIlNtYXJ0U29ja2V0IiwiZ2V0VGltZSIsIm1vbnRoIiwiTnVtYmVyIiwiZGF0ZUZ0dCIsImRhdGFfbGlzdCIsImRlZXBDb3B5IiwiaGFzX2RheSIsImRheSIsIm5vd19kYXkiLCJsaXN0IiwiayIsInYiLCJzdGF0dXMiLCJwdXNoIiwic29ydCIsInRhYmxlTG93ZXJTb3J0ZXIiLCJzZXREYXRhIiwiY2VsbCIsImdldERhdGEiLCJnZXRSZWNoYXJnZUNvdW50Iiwic3RyIiwiVEkxOE4iLCJmdW4iLCJvcGVuVmlwTWFpbldpbmRvdyIsIlZJUFRBQkNPTlNUIiwiQ0hBUkdFIiwiQ29tbW9uQWxlcnQiLCJzaG93IiwibWVzc2FnZSIsInNlbmRlcjE0MTAxIiwiYWRkRW5kQ2FsbEJhY2siLCJnZXRJdGVtTGlzdCIsInZvIiwiZ2V0SXRlbVBvc2l0aW9uIiwianVtcFRvTW92ZSIsIngiLCJ5IiwiaGVpZ2h0Iiwib25TaG93IiwicGFyYW1zIiwib25IaWRlIiwib25EZWxldGUiLCJkZWxldGVNZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQUNBLElBQUlDLGNBQWMsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQTVCOztBQUNBLElBQUlFLGlCQUFpQixHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBL0I7O0FBQ0EsSUFBSUcsZ0JBQWdCLEdBQUdILE9BQU8sQ0FBQyxtQkFBRCxDQUE5Qjs7QUFD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QUFFLGtCQUFZLENBRW5CLENBOUlvQjtBQWdKckI7QUFDQUMsRUFBQUEsUUFBUSxFQUFFLG9CQUFZO0FBQ2xCLFFBQUksS0FBSzlFLGVBQVQsRUFBMEI7QUFDdEIsV0FBS0EsZUFBTCxDQUFxQitFLFFBQXJCO0FBQ0EsV0FBSy9FLGVBQUwsR0FBdUIsSUFBdkI7QUFDSDtBQUNKO0FBdEpvQixDQUFULENBQWhCIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGF1dGhvcjogeHh4QHN5Zy5jb20o5b+F5aGrLCDliJvlu7rmqKHlnZfnmoTkurrlkZgpXG4vLyBAZGVzY3JpcHRpb246XG4vLyAgICAg6L+Z6YeM5piv5o+P6L+w6L+Z5Liq56qX5L2T55qE5L2c55So55qEXG4vLyA8YnIvPkNyZWF0ZTogMjAxOS0wMy0wNiAxMToyNzozMFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnZhciBQYXRoVG9vbCA9IHJlcXVpcmUoXCJwYXRodG9vbFwiKTtcbnZhciBSb2xlQ29udHJvbGxlciA9IHJlcXVpcmUoXCJyb2xlX2NvbnRyb2xsZXJcIik7XG52YXIgV2VsZmFyZUNvbnRyb2xsZXIgPSByZXF1aXJlKFwid2VsZmFyZV9jb250cm9sbGVyXCIpO1xudmFyIENvbW1vblNjcm9sbFZpZXcgPSByZXF1aXJlKFwiY29tbW9uX3Njcm9sbHZpZXdcIik7XG52YXIgVGltZXRvb2wgPSByZXF1aXJlKFwidGltZXRvb2xcIik7XG52YXIgU2lnbkl0ZW0gPSByZXF1aXJlKFwic2lnbl9pdGVtXCIpO1xudmFyIFdlbGZhcmVFdmVudCA9IHJlcXVpcmUoXCJ3ZWxmYXJlX2V2ZW50XCIpO1xuXG52YXIgU2lnblBhbmVsID0gY2MuQ2xhc3Moe1xuICAgIGV4dGVuZHM6IEJhc2VQYW5lbCxcbiAgICBjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMucHJlZmFiUGF0aCA9IFBhdGhUb29sLmdldFByZWZhYlBhdGgoXCJ3ZWxmYXJlXCIsIFwic2lnbl9wYW5lbFwiKTtcbiAgICB9LFxuXG4gICAgLy8g5Y+v5Lul5Yid5aeL5YyW5aOw5piO5LiA5Lqb5Y+Y6YeP55qEXG4gICAgaW5pdENvbmZpZzogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmN0cmwgPSBXZWxmYXJlQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xuICAgICAgICB0aGlzLm1vZGVsID0gdGhpcy5jdHJsLmdldE1vZGVsKCk7XG4gICAgICAgIHRoaXMucm9sZV92byA9IFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgfSxcblxuICAgIC8vIOWIneWni+WMluS4gOS6m+mFjee9ruaVsOaNrizlj6/ku6XnlKjkuo7lo7DmmI7kuIDkupvlj5jph4/kuYvnsbvnmoRcbiAgICBpbml0UGFuZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5tYWluX2NvbnRhaW5lcl9uZCA9IHRoaXMuc2Vla0NoaWxkKFwibWFpbl9jb250YWluZXJcIik7XG4gICAgICAgIHRoaXMudGl0bGVfY29uX25kID0gdGhpcy5zZWVrQ2hpbGQoXCJ0aXRsZV9jb25cIik7XG4gICAgICAgIHRoaXMudGlwc19idG5fbmQgPSB0aGlzLnNlZWtDaGlsZChcInRpcHNfYnRuXCIpO1xuXG4gICAgICAgIHRoaXMuZ29vZHNfY29uX25kID0gdGhpcy5zZWVrQ2hpbGQoXCJnb29kc19jb25cIik7XG5cbiAgICAgICAgbGV0IGltZyA9IHRoaXMudGl0bGVfY29uX25kLmdldENoaWxkQnlOYW1lKFwidGl0bGVfaW1nXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpXG4gICAgICAgIHRoaXMubG9hZFJlcyhQYXRoVG9vbC5nZXRJY29uUGF0aChcIndlbGZhcmUvd2VsZmFyZV9iYW5uZXJcIixcInR4dF9jbl93ZWxmYXJlX2Jhbm5lcjJcIiksZnVuY3Rpb24ocmVzKXtcbiAgICAgICAgICAgIGltZy5zcHJpdGVGcmFtZSA9IHJlc1xuICAgICAgICB9LmJpbmQodGhpcykpXG4gICAgICAgIHZhciB0YWJfc2l6ZSA9IHRoaXMuZ29vZHNfY29uX25kLmdldENvbnRlbnRTaXplKCk7XG4gICAgICAgIHZhciBzZXR0aW5nID0ge1xuICAgICAgICAgICAgaXRlbV9jbGFzczogU2lnbkl0ZW0sICAgICAgLy8g5Y2V5YWD57G7XG4gICAgICAgICAgICBzdGFydF94OiAyNSwgICAgICAgICAgICAgICAgICAgIC8vIOesrOS4gOS4quWNleWFg+eahFjotbfngrlcbiAgICAgICAgICAgIHNwYWNlX3g6IDI4LCAgICAgICAgICAgICAgICAgICAgLy8geOaWueWQkeeahOmXtOmalFxuICAgICAgICAgICAgc3RhcnRfeTogMjAsICAgICAgICAgICAgICAgICAgICAvLyDnrKzkuIDkuKrljZXlhYPnmoRZ6LW354K5XG4gICAgICAgICAgICBzcGFjZV95OiAzMCwgICAgICAgICAgICAgICAgICAgLy8geeaWueWQkeeahOmXtOmalFxuICAgICAgICAgICAgaXRlbV93aWR0aDogMTA3LCAgICAgICAgICAgICAgIC8vIOWNleWFg+eahOWwuuWvuHdpZHRoXG4gICAgICAgICAgICBpdGVtX2hlaWdodDogMTA3LCAgICAgICAgICAgICAgLy8g5Y2V5YWD55qE5bC65a+4aGVpZ2h0XG4gICAgICAgICAgICByb3c6IDAsICAgICAgICAgICAgICAgICAgICAgICAgLy8g6KGM5pWw77yM5L2c55So5LqO5rC05bmz5rua5Yqo57G75Z6LXG4gICAgICAgICAgICBjb2w6IDUsICAgICAgICAgICAgICAgICAgICAgICAgLy8g5YiX5pWw77yM5L2c55So5LqO5Z6C55u05rua5Yqo57G75Z6LXG4gICAgICAgICAgICBuZWVkX2R5bmFtaWM6IHRydWVcbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldyA9IG5ldyBDb21tb25TY3JvbGxWaWV3KClcbiAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcuY3JlYXRlU2Nyb2xsKHRoaXMuZ29vZHNfY29uX25kLCBjYy52MigwLCAwKSwgU2Nyb2xsVmlld0Rpci52ZXJ0aWNhbCxcbiAgICAgICAgICAgIFNjcm9sbFZpZXdTdGFydFBvcy50b3AsIHRhYl9zaXplLCBzZXR0aW5nLCBjYy52MigwLjUsIDAuNSkpO1xuXG4gICAgfSxcblxuICAgIC8vIOazqOWGjOS6i+S7tuebkeWQrOeahOaOpeWPoyzkuI3pnIDopoHmiYvliqjosIPnlKgs5aaC5p6c5piv5L2/55SoZ2NvcmUuR2xvYmFsRXZlbnTnm5HlkKws5Y+v5Lul55u05o6l6LCD55SoYWRkR2xvYmFsRXZlbnRcbiAgICByZWdpc3RlckV2ZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnQoV2VsZmFyZUV2ZW50LlVwZGF0ZV9TaWduX0luZm8sIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoZGF0YSlcbiAgICAgICAgfSwgdGhpcylcblxuICAgICAgICB0aGlzLmFkZEdsb2JhbEV2ZW50KFdlbGZhcmVFdmVudC5TaWduX1N1Y2Nlc3MsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoZGF0YSk7XG4gICAgICAgIH0sIHRoaXMpXG5cblxuICAgICAgICB0aGlzLnRpcHNfYnRuX25kLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0VORCwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBVdGlscy5wbGF5QnV0dG9uU291bmQoMSk7XG4gICAgICAgICAgICB2YXIgcG9zID0gZXZlbnQudG91Y2guZ2V0TG9jYXRpb24oKTtcbiAgICAgICAgICAgIHZhciBkZXNjID0gU3RyaW5nVXRpbC5wYXJzZShDb25maWcuY2hlY2tpbl9kYXRhLmRhdGFfY29uc3QuY2hlY2tpbl9ydWxlcy5kZXNjKVxuICAgICAgICAgICAgcmVxdWlyZShcInRpcHNfY29udHJvbGxlclwiKS5nZXRJbnN0YW5jZSgpLnNob3dDb21tb25UaXBzKGRlc2MsIHBvcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY3RybC5zZW5kZXIxNDEwMCgpO1xuXG4gICAgfSxcblxuICAgIGNyZWF0ZUxpc3Q6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIHZhciBjb25maWcgPSBDb25maWcuY2hlY2tpbl9kYXRhLmRhdGFfYXdhcmQ7XG4gICAgICAgIHZhciBub3dfdGltZSA9IGdjb3JlLlNtYXJ0U29ja2V0LmdldFRpbWUoKTtcbiAgICAgICAgdmFyIG1vbnRoID0gTnVtYmVyKFRpbWV0b29sLmRhdGVGdHQoXCJNTVwiLCBub3dfdGltZSkpO1xuICAgICAgICB2YXIgZGF0YV9saXN0ID0gVXRpbHMuZGVlcENvcHkoY29uZmlnW21vbnRoXSk7XG4gICAgICAgIHZhciBoYXNfZGF5ID0gZGF0YS5kYXk7XG4gICAgICAgIHZhciBub3dfZGF5ID0gMDtcbiAgICAgICAgdmFyIGxpc3QgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgayBpbiBkYXRhX2xpc3QpIHtcbiAgICAgICAgICAgIHZhciB2ID0gZGF0YV9saXN0W2tdO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzID4gMCkge1xuICAgICAgICAgICAgICAgIGlmIChrIDwgaGFzX2RheSkgeyAgICAgICAgLy/ntK/orqHnmoRcbiAgICAgICAgICAgICAgICAgICAgdi5zdGF0dXMgPSAyOyAgICAgICAvL+W3sumihuWPluWFqOmDqOWlluWKsVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoayA9PSBoYXNfZGF5KSB7ICAgIC8v5LuK5aSpXG4gICAgICAgICAgICAgICAgICAgIHYuc3RhdHVzID0gZGF0YS5zdGF0dXM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgLy/kuYvlkI7nmoRcbiAgICAgICAgICAgICAgICAgICAgdi5zdGF0dXMgPSAwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHYubm93X2RheSA9IGhhc19kYXlcbiAgICAgICAgICAgICAgICBub3dfZGF5ID0gaGFzX2RheTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5zdGF0dXMgPT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChrIDw9IGhhc19kYXkpIHsgICAgICAgLy/ntK/orqHnmoRcbiAgICAgICAgICAgICAgICAgICAgdi5zdGF0dXMgPSAyOyAgICAgICAvL+W3sumihuWPluWFqOmDqOWlluWKsVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoayA9PSBoYXNfZGF5ICsgMSkgeyAgICAvL+S7iuWkqVxuICAgICAgICAgICAgICAgICAgICB2LnN0YXR1cyA9IGRhdGEuc3RhdHVzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgLy/kuYvlkI7nmoRcbiAgICAgICAgICAgICAgICAgICAgdi5zdGF0dXMgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2Lm5vd19kYXkgPSBoYXNfZGF5ICsgMTtcbiAgICAgICAgICAgICAgICBub3dfZGF5ID0gaGFzX2RheSArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGxpc3Quc29ydChVdGlscy50YWJsZUxvd2VyU29ydGVyKFtcImRheVwiXSkpXG5cblxuICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldy5zZXREYXRhKGxpc3QsIGZ1bmN0aW9uIChjZWxsKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IGNlbGwuZ2V0RGF0YSgpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzID09IDEgJiYgZGF0YS5ub3dfZGF5ID09IGRhdGEuZGF5ICYmIHRoaXMubW9kZWwuZ2V0UmVjaGFyZ2VDb3VudCgpID09IDApIHtcbiAgICAgICAgICAgICAgICB2YXIgc3RyID0gVXRpbHMuVEkxOE4oXCLlvZPlpKnlhYXlgLw8Y29sb3I9IzI4OWIxND7ku7vmhI/ph5Hpop08L2M+5Y+vPGNvbG9yPSMyODliMTQ+6aKd5aSWPC9jPuiOt+W+l+S4gOasoeWlluWKsVwiKTtcbiAgICAgICAgICAgICAgICB2YXIgZnVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlKFwidmlwX2NvbnRyb2xsZXJcIikuZ2V0SW5zdGFuY2UoKS5vcGVuVmlwTWFpbldpbmRvdyh0cnVlLCBWSVBUQUJDT05TVC5DSEFSR0UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgQ29tbW9uQWxlcnQgPSByZXF1aXJlKFwiY29tbW9uYWxlcnRcIik7XG4gICAgICAgICAgICAgICAgQ29tbW9uQWxlcnQuc2hvdyhzdHIsIFV0aWxzLlRJMThOKFwi56Gu6K6kXCIpLCBmdW4sIFV0aWxzLlRJMThOKFwi5Y+W5raIXCIpLCBudWxsLCAyKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5kYXkgPiBkYXRhLm5vd19kYXkpIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlKFV0aWxzLlRJMThOKFwi5pyq6L6+5Yiw562+5Yiw5aSp5pWwXCIpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN0cmwuc2VuZGVyMTQxMDEoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfS5iaW5kKHRoaXMpKVxuXG4gICAgICAgIHRoaXMuaXRlbV9zY3JvbGx2aWV3LmFkZEVuZENhbGxCYWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBsaXN0ID0gdGhpcy5pdGVtX3Njcm9sbHZpZXcuZ2V0SXRlbUxpc3QoKTtcbiAgICAgICAgICAgIHZhciBwb3MgPSBudWxsO1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBsaXN0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHZvID0gbGlzdFtrXS5nZXREYXRhKCk7XG4gICAgICAgICAgICAgICAgaWYgKHZvLmRheSA9PSAyNikge1xuICAgICAgICAgICAgICAgICAgICBwb3MgPSBsaXN0W2tdLmdldEl0ZW1Qb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub3dfZGF5ID49IDI1KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtX3Njcm9sbHZpZXcuanVtcFRvTW92ZShjYy52Mihwb3MueCwgcG9zLnkgKyB0aGlzLml0ZW1fc2Nyb2xsdmlldy5nZXRDb250ZW50U2l6ZSgpLmhlaWdodCAvIDIpLCAwLjEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LmJpbmQodGhpcykpXG4gICAgfSxcblxuICAgIC8vIOmihOWItuS9k+WKoOi9veWujOaIkOS5i+WQjizmt7vliqDliLDlr7nlupTkuLvoioLngrnkuYvlkI7nmoTlm57osIPlj6/ku6Xorr7nva7kuIDkupvmlbDmja7kuoZcbiAgICBvblNob3c6IGZ1bmN0aW9uIChwYXJhbXMpIHtcblxuICAgIH0sXG5cbiAgICAvLyDpnaLmnb/orr7nva7kuI3lj6/op4HnmoTlm57osIMs6L+Z6YeM5YGa5LiA5Lqb5LiN5Y+v6KeB55qE5bGP6JS95aSE55CGXG4gICAgb25IaWRlOiBmdW5jdGlvbiAoKSB7XG5cbiAgICB9LFxuXG4gICAgLy8g5b2T6Z2i5p2/5LuO5Li76IqC54K56YeK5pS+5o6J55qE6LCD55So5o6l5Y+jLOmcgOimgeaJi+WKqOiwg+eUqCzogIzkuJTkuZ/kuIDlrpropoHosIPnlKhcbiAgICBvbkRlbGV0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtX3Njcm9sbHZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuaXRlbV9zY3JvbGx2aWV3LmRlbGV0ZU1lKCk7XG4gICAgICAgICAgICB0aGlzLml0ZW1fc2Nyb2xsdmlldyA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9LFxufSkiXX0=