(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/scripts/prefabs/LeveRankItem.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, '6bab23+1R5JurQ3NisvK/RF', 'LeveRankItem'); // scripts/prefabs/LeveRankItem.ts "use strict"; // Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var SaveDataManager_1 = require("../component/SaveDataManager"); var Global_1 = require("../Global"); var BattleConst_1 = require("../kernel/battle/BattleConst"); var TableDefine_1 = require("../kernel/table/TableDefine"); var UIManager_1 = require("../ui/UIManager"); var UITitleData_1 = require("../ui/uiView/UITitleData"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var LevelRankItem = /** @class */ (function (_super) { __extends(LevelRankItem, _super); function LevelRankItem() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._levelId = 0; return _this; } LevelRankItem.prototype.onLoad = function () { this._line = this.node.getChildByName('line'); }; LevelRankItem.prototype.start = function () { BattleConst_1.getGlobalNode().on(Global_1.GlobalEvent.LEVEL_STAR_CHANGE, this.onStarChange, this); }; LevelRankItem.prototype.onDestroy = function () { BattleConst_1.getGlobalNode().targetOff(this); }; LevelRankItem.prototype.setLevelId = function (id) { this._levelId = id; this.refresh(); }; LevelRankItem.prototype.setLineLayer = function (node) { this._lineLayer = node; // this._line.removeFromParent(); // this._lineLayer.addChild(this._line); // this._line.active = true; }; LevelRankItem.prototype.refresh = function () { var isUnlocked = (this._levelId <= SaveDataManager_1.SaveDataManager.ins.runtimeData.curLevel); this.node.getChildByName('btn').getComponentInChildren(cc.Label).string = this._levelId.toString(); var curNext = (this._levelId == SaveDataManager_1.SaveDataManager.ins.runtimeData.curLevel + 1); if (!isUnlocked && curNext) { this.node.getChildByName('back').active = false; this.node.getChildByName('btn').active = true; var backSp = this.node.getChildByName('btn').getChildByName('Background').getComponent(cc.Sprite); backSp.spriteFrame = this.node.getChildByName('linkRes').getChildByName('UI_gqlb_2').getComponent(cc.Sprite).spriteFrame; this.node.getChildByName('imgCur').active = true; } else { this.node.getChildByName('btn').active = isUnlocked; if (isUnlocked) { var backSp = this.node.getChildByName('btn').getChildByName('Background').getComponent(cc.Sprite); backSp.spriteFrame = this.node.getChildByName('linkRes').getChildByName('UI_gqlb_1').getComponent(cc.Sprite).spriteFrame; } this.node.getChildByName('back').active = !isUnlocked; this.node.getChildByName('imgCur').active = false; } var star = 0; if (SaveDataManager_1.SaveDataManager.ins.runtimeData.levelScoreMap[this._levelId]) { star = SaveDataManager_1.SaveDataManager.ins.runtimeData.levelScoreMap[this._levelId]; } var starContainer = cc.find('btn/Background/starContainer', this.node); for (var i = 0; i < 3; ++i) { var starNode = starContainer.children[i]; starNode.getComponent(cc.Sprite).spriteFrame = this.node.getChildByName('linkRes').getChildByName('star' + (i + 1 <= star ? '1' : '2')).getComponent(cc.Sprite).spriteFrame; } this.scheduleOnce(this.updateLine.bind(this), 0); }; LevelRankItem.prototype.updateLine = function () { if (this._line.parent != this._lineLayer) { this._line.removeFromParent(); this._lineLayer.addChild(this._line); this._line.active = true; } var nextLv = this._levelId + 1; var maxLv = Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, 22).Value; if (nextLv > maxLv) { this._line.active = false; return; } var nextIsLihgt = (nextLv <= SaveDataManager_1.SaveDataManager.ins.runtimeData.curLevel + 1); this._line.getComponent(cc.Sprite).spriteFrame = (this.node.getChildByName('linkRes').getChildByName('line' + (nextIsLihgt ? '1' : '2'))).getComponent(cc.Sprite).spriteFrame; var isEnd = (this._levelId % 5 == 0); var isReverse = (Math.ceil(this._levelId / 5) % 2 == 0); //是否反向 if (isEnd) { this._line.angle = 90; this._line.setPosition(this.node.position.x, this.node.position.y - this.node.height / 2); } else { this._line.angle = 0; this._line.setPosition(this.node.position.x + this.node.width / 2 * (isReverse ? -1 : 1), this.node.position.y); } }; LevelRankItem.prototype.onStarChange = function (level) { if (level == this._levelId || level == this._levelId - 1) { this.refresh(); } }; LevelRankItem.prototype.onBtnClick = function () { UITitleData_1.UITitleData.id = this._levelId; // UIManager.ins.closeWindow(WindowName.LEVEL_RANK); UIManager_1.UIManager.ins.openWindow(Global_1.WindowName.PREVIEW, UITitleData_1.UITitleData.id); }; LevelRankItem = __decorate([ ccclass ], LevelRankItem); return LevelRankItem; }(cc.Component)); exports.default = LevelRankItem; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0c1xccHJlZmFic1xcTGV2ZVJhbmtJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxGLGdFQUErRDtBQUMvRCxvQ0FBMEQ7QUFDMUQsNERBQTZEO0FBQzdELDJEQUF1RTtBQUN2RSw2Q0FBNEM7QUFDNUMsd0RBQXVEO0FBRWpELElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQTJDLGlDQUFZO0lBQXZEO1FBQUEscUVBaUhDO1FBL0dXLGNBQVEsR0FBVyxDQUFDLENBQUM7O0lBK0dqQyxDQUFDO0lBM0dzQiw4QkFBTSxHQUFOO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRWtCLDZCQUFLLEdBQUw7UUFDZiwyQkFBYSxFQUFFLENBQUMsRUFBRSxDQUFDLG9CQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRVMsaUNBQVMsR0FBbkI7UUFDSSwyQkFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQ0FBVSxHQUFWLFVBQVcsRUFBVTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELG9DQUFZLEdBQVosVUFBYSxJQUFhO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGlDQUFpQztRQUNqQyx3Q0FBd0M7UUFDeEMsNEJBQTRCO0lBQ2hDLENBQUM7SUFFRCwrQkFBTyxHQUFQO1FBQ0ksSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGlDQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUc3RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbkcsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGlDQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzlDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3pILElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEQ7YUFDSTtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDcEQsSUFBSSxVQUFVLEVBQUU7Z0JBQ1osSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDO2FBQzVIO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckQ7UUFFRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixJQUFJLGlDQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlELElBQUksR0FBRyxpQ0FBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RTtRQUVELElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUM7U0FDL0s7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxrQ0FBVSxHQUFsQjtRQUVJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUM1QjtRQUVELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksS0FBSyxHQUFJLGFBQUksQ0FBQyxTQUFTLENBQUMsdUJBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFtQixDQUFDLEtBQUssQ0FBQztRQUM3RSxJQUFJLE1BQU0sR0FBRyxLQUFLLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE9BQU87U0FDVjtRQUVELElBQUksV0FBVyxHQUFHLENBQUMsTUFBTSxJQUFJLGlDQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzlLLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtRQUUvRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdGO2FBQ0k7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25IO0lBQ0wsQ0FBQztJQUVELG9DQUFZLEdBQVosVUFBYSxLQUFhO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFFRCxrQ0FBVSxHQUFWO1FBQ0kseUJBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixvREFBb0Q7UUFDcEQscUJBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLG1CQUFVLENBQUMsT0FBTyxFQUFFLHlCQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQS9HZ0IsYUFBYTtRQURqQyxPQUFPO09BQ2EsYUFBYSxDQWlIakM7SUFBRCxvQkFBQztDQWpIRCxBQWlIQyxDQWpIMEMsRUFBRSxDQUFDLFNBQVMsR0FpSHREO2tCQWpIb0IsYUFBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExlYXJuIFR5cGVTY3JpcHQ6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3R5cGVzY3JpcHQuaHRtbFxyXG4vLyBMZWFybiBBdHRyaWJ1dGU6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL3JlZmVyZW5jZS9hdHRyaWJ1dGVzLmh0bWxcclxuLy8gTGVhcm4gbGlmZS1jeWNsZSBjYWxsYmFja3M6XHJcbi8vICAtIGh0dHBzOi8vZG9jcy5jb2Nvcy5jb20vY3JlYXRvci9tYW51YWwvZW4vc2NyaXB0aW5nL2xpZmUtY3ljbGUtY2FsbGJhY2tzLmh0bWxcclxuXHJcbmltcG9ydCB7IFNhdmVEYXRhTWFuYWdlciB9IGZyb20gXCIuLi9jb21wb25lbnQvU2F2ZURhdGFNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IEdsb2JhbEV2ZW50LCB0TWdyLCBXaW5kb3dOYW1lIH0gZnJvbSBcIi4uL0dsb2JhbFwiO1xyXG5pbXBvcnQgeyBnZXRHbG9iYWxOb2RlIH0gZnJvbSBcIi4uL2tlcm5lbC9iYXR0bGUvQmF0dGxlQ29uc3RcIjtcclxuaW1wb3J0IHsgR2FtZVBsYXlUYWJsZSwgVGFibGVOYW1lIH0gZnJvbSBcIi4uL2tlcm5lbC90YWJsZS9UYWJsZURlZmluZVwiO1xyXG5pbXBvcnQgeyBVSU1hbmFnZXIgfSBmcm9tIFwiLi4vdWkvVUlNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IFVJVGl0bGVEYXRhIH0gZnJvbSBcIi4uL3VpL3VpVmlldy9VSVRpdGxlRGF0YVwiO1xyXG5cclxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSB9ID0gY2MuX2RlY29yYXRvcjtcclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExldmVsUmFua0l0ZW0gZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIHByaXZhdGUgX2xldmVsSWQ6IG51bWJlciA9IDA7XHJcbiAgICBwcml2YXRlIF9saW5lTGF5ZXI6IGNjLk5vZGU7XHJcbiAgICBwcml2YXRlIF9saW5lOiBjYy5Ob2RlO1xyXG5cclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBvbkxvYWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGluZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnbGluZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzdGFydCgpOiB2b2lkIHtcclxuICAgICAgICBnZXRHbG9iYWxOb2RlKCkub24oR2xvYmFsRXZlbnQuTEVWRUxfU1RBUl9DSEFOR0UsIHRoaXMub25TdGFyQ2hhbmdlLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGdldEdsb2JhbE5vZGUoKS50YXJnZXRPZmYodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TGV2ZWxJZChpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fbGV2ZWxJZCA9IGlkO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExpbmVMYXllcihub2RlOiBjYy5Ob2RlKSB7XHJcbiAgICAgICAgdGhpcy5fbGluZUxheWVyID0gbm9kZTtcclxuICAgICAgICAvLyB0aGlzLl9saW5lLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAvLyB0aGlzLl9saW5lTGF5ZXIuYWRkQ2hpbGQodGhpcy5fbGluZSk7XHJcbiAgICAgICAgLy8gdGhpcy5fbGluZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2goKSB7XHJcbiAgICAgICAgbGV0IGlzVW5sb2NrZWQgPSAodGhpcy5fbGV2ZWxJZCA8PSBTYXZlRGF0YU1hbmFnZXIuaW5zLnJ1bnRpbWVEYXRhLmN1ckxldmVsKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuJykuZ2V0Q29tcG9uZW50SW5DaGlsZHJlbihjYy5MYWJlbCkuc3RyaW5nID0gdGhpcy5fbGV2ZWxJZC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICBsZXQgY3VyTmV4dCA9ICh0aGlzLl9sZXZlbElkID09IFNhdmVEYXRhTWFuYWdlci5pbnMucnVudGltZURhdGEuY3VyTGV2ZWwgKyAxKTtcclxuXHJcbiAgICAgICAgaWYgKCFpc1VubG9ja2VkICYmIGN1ck5leHQpIHtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdiYWNrJykuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuJykuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGJhY2tTcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuJykuZ2V0Q2hpbGRCeU5hbWUoJ0JhY2tncm91bmQnKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgYmFja1NwLnNwcml0ZUZyYW1lID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdsaW5rUmVzJykuZ2V0Q2hpbGRCeU5hbWUoJ1VJX2dxbGJfMicpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2ltZ0N1cicpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdidG4nKS5hY3RpdmUgPSBpc1VubG9ja2VkO1xyXG4gICAgICAgICAgICBpZiAoaXNVbmxvY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJhY2tTcCA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnYnRuJykuZ2V0Q2hpbGRCeU5hbWUoJ0JhY2tncm91bmQnKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKTtcclxuICAgICAgICAgICAgICAgIGJhY2tTcC5zcHJpdGVGcmFtZSA9IHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnbGlua1JlcycpLmdldENoaWxkQnlOYW1lKCdVSV9ncWxiXzEnKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ2JhY2snKS5hY3RpdmUgPSAhaXNVbmxvY2tlZDtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdpbWdDdXInKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzdGFyID0gMDtcclxuICAgICAgICBpZiAoU2F2ZURhdGFNYW5hZ2VyLmlucy5ydW50aW1lRGF0YS5sZXZlbFNjb3JlTWFwW3RoaXMuX2xldmVsSWRdKSB7XHJcbiAgICAgICAgICAgIHN0YXIgPSBTYXZlRGF0YU1hbmFnZXIuaW5zLnJ1bnRpbWVEYXRhLmxldmVsU2NvcmVNYXBbdGhpcy5fbGV2ZWxJZF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc3RhckNvbnRhaW5lciA9IGNjLmZpbmQoJ2J0bi9CYWNrZ3JvdW5kL3N0YXJDb250YWluZXInLCB0aGlzLm5vZGUpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCBzdGFyTm9kZSA9IHN0YXJDb250YWluZXIuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIHN0YXJOb2RlLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdsaW5rUmVzJykuZ2V0Q2hpbGRCeU5hbWUoJ3N0YXInICsgKGkgKyAxIDw9IHN0YXIgPyAnMScgOiAnMicpKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVPbmNlKHRoaXMudXBkYXRlTGluZS5iaW5kKHRoaXMpLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUxpbmUoKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9saW5lLnBhcmVudCAhPSB0aGlzLl9saW5lTGF5ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5fbGluZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpbmVMYXllci5hZGRDaGlsZCh0aGlzLl9saW5lKTtcclxuICAgICAgICAgICAgdGhpcy5fbGluZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IG5leHRMdiA9IHRoaXMuX2xldmVsSWQgKyAxO1xyXG5cclxuICAgICAgICBsZXQgbWF4THYgPSAodE1nci5nZXRDb25maWcoVGFibGVOYW1lLkdBTUVfUExBWSwgMjIpIGFzIEdhbWVQbGF5VGFibGUpLlZhbHVlO1xyXG4gICAgICAgIGlmIChuZXh0THYgPiBtYXhMdikge1xyXG4gICAgICAgICAgICB0aGlzLl9saW5lLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbmV4dElzTGloZ3QgPSAobmV4dEx2IDw9IFNhdmVEYXRhTWFuYWdlci5pbnMucnVudGltZURhdGEuY3VyTGV2ZWwgKyAxKTtcclxuICAgICAgICB0aGlzLl9saW5lLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lID0gKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZSgnbGlua1JlcycpLmdldENoaWxkQnlOYW1lKCdsaW5lJyArIChuZXh0SXNMaWhndCA/ICcxJyA6ICcyJykpKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZTtcclxuICAgICAgICBsZXQgaXNFbmQgPSAodGhpcy5fbGV2ZWxJZCAlIDUgPT0gMCk7XHJcbiAgICAgICAgbGV0IGlzUmV2ZXJzZSA9IChNYXRoLmNlaWwodGhpcy5fbGV2ZWxJZCAvIDUpICUgMiA9PSAwKTsgLy/mmK/lkKblj43lkJFcclxuXHJcbiAgICAgICAgaWYgKGlzRW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpbmUuYW5nbGUgPSA5MDtcclxuICAgICAgICAgICAgdGhpcy5fbGluZS5zZXRQb3NpdGlvbih0aGlzLm5vZGUucG9zaXRpb24ueCwgdGhpcy5ub2RlLnBvc2l0aW9uLnkgLSB0aGlzLm5vZGUuaGVpZ2h0IC8gMik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9saW5lLmFuZ2xlID0gMDtcclxuICAgICAgICAgICAgdGhpcy5fbGluZS5zZXRQb3NpdGlvbih0aGlzLm5vZGUucG9zaXRpb24ueCArIHRoaXMubm9kZS53aWR0aCAvIDIgKiAoaXNSZXZlcnNlID8gLTEgOiAxKSwgdGhpcy5ub2RlLnBvc2l0aW9uLnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblN0YXJDaGFuZ2UobGV2ZWw6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChsZXZlbCA9PSB0aGlzLl9sZXZlbElkIHx8IGxldmVsID09IHRoaXMuX2xldmVsSWQgLSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkJ0bkNsaWNrKCkge1xyXG4gICAgICAgIFVJVGl0bGVEYXRhLmlkID0gdGhpcy5fbGV2ZWxJZDtcclxuICAgICAgICAvLyBVSU1hbmFnZXIuaW5zLmNsb3NlV2luZG93KFdpbmRvd05hbWUuTEVWRUxfUkFOSyk7XHJcbiAgICAgICAgVUlNYW5hZ2VyLmlucy5vcGVuV2luZG93KFdpbmRvd05hbWUuUFJFVklFVywgVUlUaXRsZURhdGEuaWQpXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==