(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Scripts/mod/mall/mall_model.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, '45db275SQVGLYz1VNs3b22D', 'mall_model'); // Scripts/mod/mall/mall_model.js "use strict"; // -------------------------------------------------------------------- // @author: xxx@syg.com(必填, 创建模块的人员) // @description: // 商城的model //
Create: 2018-12-18 17:12:27 // -------------------------------------------------------------------- // var HeroController = require("hero_controller"); var RoleController = require("role_controller"); var BackpackController = require("backpack_controller"); var MallModel = cc.Class({ "extends": BaseClass, ctor: function ctor() { var MailController = require("mall_controller"); this.ctrl = MailController.getInstance(); }, properties: {}, initConfig: function initConfig() { this.buy_list = {}; this.shop_list = {}; }, setBuyList: function setBuyList(data) { this.buy_list = data; }, getBuyList: function getBuyList() { return this.buy_list; }, getScoreBuyList: function getScoreBuyList(shop_type) { if (this.shop_list[shop_type] && Utils.next(this.shop_list[shop_type]) != null) { return this.shop_list[shop_type]; } return null; }, //检查当前神格商店中是否存在上阵的的伙伴碎片 checkHeroChips: function checkHeroChips(item_id) { var is_has = false; var pos_list = []; // var pos_list = HeroController.getInstance().getModel().getMyPosList(); if (pos_list != null && Utils.next(pos_list || {}) != null) { for (var k in pos_list) { var v = pos_list[k]; var partner_data = PartnerController.getInstance().getModel().getPartnerById(v.id); if (partner_data && partner_data.chips_id == item_id) { is_has = true; } } return is_has; } return false; }, //根据商店类型以及支付类型和单价来判断能够买多少个 checkMoenyByType: function checkMoenyByType(pay_type, price) { var role_vo = RoleController.getInstance().getRoleVo(); var is_can_buy_num = 0; if (role_vo != null) { var config = Utils.deepCopy(Config.item_data.data_assets_label2id); if (typeof pay_type == "number") { if (pay_type == config.hero_soul) { //神格 var hero_soul = role_vo.hero_soul; is_can_buy_num = Math.floor(hero_soul / price); } else if (pay_type == config.silver_coin) { var silver_coin = role_vo.silver_coin; is_can_buy_num = Math.floor(silver_coin / price); } else if (pay_type == config.red_gold_or_gold) { var sum_gold = role_vo.red_gold + role_vo.gold; is_can_buy_num = Math.floor(sum_gold / price); } else if (pay_type == config.arena_guesscent) { var arena_guesscent = role_vo.arena_guesscent; is_can_buy_num = Math.floor(arena_guesscent / price); } else if (pay_type == config.star_point) { var star_point = role_vo.star_point; is_can_buy_num = Math.floor(star_point / price); } else if (pay_type == config.gold) { var sum_gold = role_vo.gold; is_can_buy_num = Math.floor(sum_gold / price); } else if (pay_type == config.coin) { var coin = role_vo.coin; is_can_buy_num = Math.floor(coin / price); } else { var count = BackpackController.getInstance().getModel().getItemNumByBid(pay_type); is_can_buy_num = Math.floor(count / price); } } else { if (pay_type == "gold") { var gold = role_vo.gold; is_can_buy_num = Math.floor(gold / price); } else if (pay_type == "red_gold_or_gold") { var sum_gold = role_vo.red_gold + role_vo.gold; is_can_buy_num = Math.floor(sum_gold / price); } else if (pay_type == "arena_cent") { var arena_cent = role_vo.arena_cent; is_can_buy_num = Math.floor(arena_cent / price); } else if (pay_type == "friend_point") { var friend_point = role_vo.friend_point; is_can_buy_num = Math.floor(friend_point / price); } else if (pay_type == "guild") { var guild = role_vo.guild; is_can_buy_num = Math.floor(guild / price); } else if (pay_type == "boss_point") { var boss_point = role_vo.boss_point; is_can_buy_num = Math.floor(boss_point / price); } else if (pay_type == "arena_guesscent") { var arena_guesscent = role_vo.arena_guesscent; is_can_buy_num = Math.floor(arena_guesscent / price); } else if (pay_type == "star_point") { var star_point = role_vo.star_point; is_can_buy_num = Math.floor(star_point / price); } else if (pay_type == "sky_coin") { var sky_coin = role_vo.sky_coin; is_can_buy_num = Math.floor(sky_coin / price); } else if (pay_type == "recruithigh_hero") { var recruithigh_hero = role_vo.recruithigh_hero; is_can_buy_num = Math.floor(recruithigh_hero / price); } else if (pay_type == "expedition_medal") { var expedition_medal = role_vo.expedition_medal; is_can_buy_num = Math.floor(expedition_medal / price); } else if (pay_type == "coin") { var coin = role_vo.coin; is_can_buy_num = Math.floor(coin / price); } else if (pay_type == "silver_coin") { var silver_coin = role_vo.silver_coin; is_can_buy_num = Math.floor(silver_coin / price); } } } return is_can_buy_num; }, checkActionMoenyByType: function checkActionMoenyByType(pay_type, price) { var role_vo = RoleController.getInstance().getRoleVo(); var is_can_buy_num = 0; if (role_vo) { var count = role_vo.getActionAssetsNumByBid(pay_type); is_can_buy_num = Math.floor(count / price); } return is_can_buy_num; } }); module.exports = MallModel; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0c1xcbW9kXFxtYWxsXFxtYWxsX21vZGVsLmpzIl0sIm5hbWVzIjpbIlJvbGVDb250cm9sbGVyIiwicmVxdWlyZSIsIkJhY2twYWNrQ29udHJvbGxlciIsIk1hbGxNb2RlbCIsImNjIiwiQ2xhc3MiLCJCYXNlQ2xhc3MiLCJjdG9yIiwiTWFpbENvbnRyb2xsZXIiLCJjdHJsIiwiZ2V0SW5zdGFuY2UiLCJwcm9wZXJ0aWVzIiwiaW5pdENvbmZpZyIsImJ1eV9saXN0Iiwic2hvcF9saXN0Iiwic2V0QnV5TGlzdCIsImRhdGEiLCJnZXRCdXlMaXN0IiwiZ2V0U2NvcmVCdXlMaXN0Iiwic2hvcF90eXBlIiwiVXRpbHMiLCJuZXh0IiwiY2hlY2tIZXJvQ2hpcHMiLCJpdGVtX2lkIiwiaXNfaGFzIiwicG9zX2xpc3QiLCJrIiwidiIsInBhcnRuZXJfZGF0YSIsIlBhcnRuZXJDb250cm9sbGVyIiwiZ2V0TW9kZWwiLCJnZXRQYXJ0bmVyQnlJZCIsImlkIiwiY2hpcHNfaWQiLCJjaGVja01vZW55QnlUeXBlIiwicGF5X3R5cGUiLCJwcmljZSIsInJvbGVfdm8iLCJnZXRSb2xlVm8iLCJpc19jYW5fYnV5X251bSIsImNvbmZpZyIsImRlZXBDb3B5IiwiQ29uZmlnIiwiaXRlbV9kYXRhIiwiZGF0YV9hc3NldHNfbGFiZWwyaWQiLCJoZXJvX3NvdWwiLCJNYXRoIiwiZmxvb3IiLCJzaWx2ZXJfY29pbiIsInJlZF9nb2xkX29yX2dvbGQiLCJzdW1fZ29sZCIsInJlZF9nb2xkIiwiZ29sZCIsImFyZW5hX2d1ZXNzY2VudCIsInN0YXJfcG9pbnQiLCJjb2luIiwiY291bnQiLCJnZXRJdGVtTnVtQnlCaWQiLCJhcmVuYV9jZW50IiwiZnJpZW5kX3BvaW50IiwiZ3VpbGQiLCJib3NzX3BvaW50Iiwic2t5X2NvaW4iLCJyZWNydWl0aGlnaF9oZXJvIiwiZXhwZWRpdGlvbl9tZWRhbCIsImNoZWNrQWN0aW9uTW9lbnlCeVR5cGUiLCJnZXRBY3Rpb25Bc3Nl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QUFHTyxJQUFJLENBQUNDLEtBQUwsQ0FBV1MsS0FBSyxHQUFDcEIsS0FBakIsQ0FBakI7QUFDSDs7QUFDRCxXQUFPRyxjQUFQO0FBQ0g7QUF6Sm9CLENBQVQsQ0FBaEI7QUE0SkE0QixNQUFNLENBQUNDLE9BQVAsR0FBaUJqRSxTQUFqQiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBhdXRob3I6IHh4eEBzeWcuY29tKOW/heWhqywg5Yib5bu65qih5Z2X55qE5Lq65ZGYKVxuLy8gQGRlc2NyaXB0aW9uOlxuLy8gICAgICDllYbln47nmoRtb2RlbFxuLy8gPGJyLz5DcmVhdGU6IDIwMTgtMTItMTggMTc6MTI6Mjdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB2YXIgSGVyb0NvbnRyb2xsZXIgPSByZXF1aXJlKFwiaGVyb19jb250cm9sbGVyXCIpO1xudmFyIFJvbGVDb250cm9sbGVyID0gcmVxdWlyZShcInJvbGVfY29udHJvbGxlclwiKTtcbnZhciBCYWNrcGFja0NvbnRyb2xsZXIgPSByZXF1aXJlKFwiYmFja3BhY2tfY29udHJvbGxlclwiKVxudmFyIE1hbGxNb2RlbCA9IGNjLkNsYXNzKHtcbiAgICBleHRlbmRzOiBCYXNlQ2xhc3MsXG4gICAgY3RvcjogZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgTWFpbENvbnRyb2xsZXIgPSByZXF1aXJlKFwibWFsbF9jb250cm9sbGVyXCIpO1xuICAgICAgICB0aGlzLmN0cmwgPSBNYWlsQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpO1xuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgfSxcblxuICAgIGluaXRDb25maWc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5idXlfbGlzdCA9IHt9O1xuICAgICAgICB0aGlzLnNob3BfbGlzdCA9IHt9O1xuICAgIH0sXG5cbiAgICBzZXRCdXlMaXN0OiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICB0aGlzLmJ1eV9saXN0ID0gZGF0YTtcbiAgICB9LFxuXG4gICAgZ2V0QnV5TGlzdDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5idXlfbGlzdFxuICAgIH0sXG5cbiAgICBnZXRTY29yZUJ1eUxpc3Q6IGZ1bmN0aW9uIChzaG9wX3R5cGUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvcF9saXN0W3Nob3BfdHlwZV0gJiYgVXRpbHMubmV4dCh0aGlzLnNob3BfbGlzdFtzaG9wX3R5cGVdKSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaG9wX2xpc3Rbc2hvcF90eXBlXVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfSxcblxuICAgIC8v5qOA5p+l5b2T5YmN56We5qC85ZWG5bqX5Lit5piv5ZCm5a2Y5Zyo5LiK6Zi155qE55qE5LyZ5Ly056KO54mHXG4gICAgY2hlY2tIZXJvQ2hpcHM6IGZ1bmN0aW9uIChpdGVtX2lkKSB7XG4gICAgICAgIHZhciBpc19oYXMgPSBmYWxzZTtcbiAgICAgICAgdmFyIHBvc19saXN0ID0gW107XG4gICAgICAgIC8vIHZhciBwb3NfbGlzdCA9IEhlcm9Db250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0TW9kZWwoKS5nZXRNeVBvc0xpc3QoKTtcbiAgICAgICAgaWYgKHBvc19saXN0ICE9IG51bGwgJiYgVXRpbHMubmV4dChwb3NfbGlzdCB8fCB7fSkgIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBwb3NfbGlzdCkge1xuICAgICAgICAgICAgICAgIHZhciB2ID0gcG9zX2xpc3Rba107XG4gICAgICAgICAgICAgICAgdmFyIHBhcnRuZXJfZGF0YSA9IFBhcnRuZXJDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0TW9kZWwoKS5nZXRQYXJ0bmVyQnlJZCh2LmlkKTtcbiAgICAgICAgICAgICAgICBpZiAocGFydG5lcl9kYXRhICYmIHBhcnRuZXJfZGF0YS5jaGlwc19pZCA9PSBpdGVtX2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzX2hhcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGlzX2hhc1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH0sXG5cbiAgICAvL+agueaNruWVhuW6l+exu+Wei+S7peWPiuaUr+S7mOexu+Wei+WSjOWNleS7t+adpeWIpOaWreiDveWkn+S5sOWkmuWwkeS4qlxuICAgIGNoZWNrTW9lbnlCeVR5cGU6IGZ1bmN0aW9uIChwYXlfdHlwZSwgcHJpY2UpIHtcbiAgICAgICAgdmFyIHJvbGVfdm8gPSBSb2xlQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldFJvbGVWbygpO1xuICAgICAgICB2YXIgaXNfY2FuX2J1eV9udW0gPSAwO1xuICAgICAgICBpZiAocm9sZV92byAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgY29uZmlnID0gVXRpbHMuZGVlcENvcHkoQ29uZmlnLml0ZW1fZGF0YS5kYXRhX2Fzc2V0c19sYWJlbDJpZClcbiAgICAgICAgICAgIGlmICh0eXBlb2YgKHBheV90eXBlKSA9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBheV90eXBlID09IGNvbmZpZy5oZXJvX3NvdWwpIHsgLy/npZ7moLxcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhlcm9fc291bCA9IHJvbGVfdm8uaGVyb19zb3VsO1xuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoaGVyb19zb3VsIC8gcHJpY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBjb25maWcuc2lsdmVyX2NvaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNpbHZlcl9jb2luID0gcm9sZV92by5zaWx2ZXJfY29pbjtcbiAgICAgICAgICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKHNpbHZlcl9jb2luIC8gcHJpY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBjb25maWcucmVkX2dvbGRfb3JfZ29sZCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3VtX2dvbGQgPSByb2xlX3ZvLnJlZF9nb2xkICsgcm9sZV92by5nb2xkO1xuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3Ioc3VtX2dvbGQgLyBwcmljZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IGNvbmZpZy5hcmVuYV9ndWVzc2NlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZW5hX2d1ZXNzY2VudCA9IHJvbGVfdm8uYXJlbmFfZ3Vlc3NjZW50O1xuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoYXJlbmFfZ3Vlc3NjZW50IC8gcHJpY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBjb25maWcuc3Rhcl9wb2ludCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3Rhcl9wb2ludCA9IHJvbGVfdm8uc3Rhcl9wb2ludDtcbiAgICAgICAgICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKHN0YXJfcG9pbnQgLyBwcmljZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IGNvbmZpZy5nb2xkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdW1fZ29sZCA9IHJvbGVfdm8uZ29sZDtcbiAgICAgICAgICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKHN1bV9nb2xkIC8gcHJpY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBjb25maWcuY29pbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29pbiA9IHJvbGVfdm8uY29pbjtcbiAgICAgICAgICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKGNvaW4gLyBwcmljZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IEJhY2twYWNrQ29udHJvbGxlci5nZXRJbnN0YW5jZSgpLmdldE1vZGVsKCkuZ2V0SXRlbU51bUJ5QmlkKHBheV90eXBlKVxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoY291bnQgLyBwcmljZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChwYXlfdHlwZSA9PSBcImdvbGRcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZ29sZCA9IHJvbGVfdm8uZ29sZDtcbiAgICAgICAgICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKGdvbGQgLyBwcmljZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IFwicmVkX2dvbGRfb3JfZ29sZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdW1fZ29sZCA9IHJvbGVfdm8ucmVkX2dvbGQgKyByb2xlX3ZvLmdvbGQ7XG4gICAgICAgICAgICAgICAgICAgIGlzX2Nhbl9idXlfbnVtID0gTWF0aC5mbG9vcihzdW1fZ29sZCAvIHByaWNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocGF5X3R5cGUgPT0gXCJhcmVuYV9jZW50XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZW5hX2NlbnQgPSByb2xlX3ZvLmFyZW5hX2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlzX2Nhbl9idXlfbnVtID0gTWF0aC5mbG9vcihhcmVuYV9jZW50IC8gcHJpY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcImZyaWVuZF9wb2ludFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmcmllbmRfcG9pbnQgPSByb2xlX3ZvLmZyaWVuZF9wb2ludFxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoZnJpZW5kX3BvaW50IC8gcHJpY2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IFwiZ3VpbGRcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZ3VpbGQgPSByb2xlX3ZvLmd1aWxkXG4gICAgICAgICAgICAgICAgICAgIGlzX2Nhbl9idXlfbnVtID0gTWF0aC5mbG9vcihndWlsZCAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcImJvc3NfcG9pbnRcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYm9zc19wb2ludCA9IHJvbGVfdm8uYm9zc19wb2ludFxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoYm9zc19wb2ludCAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcImFyZW5hX2d1ZXNzY2VudFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmVuYV9ndWVzc2NlbnQgPSByb2xlX3ZvLmFyZW5hX2d1ZXNzY2VudFxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoYXJlbmFfZ3Vlc3NjZW50IC8gcHJpY2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IFwic3Rhcl9wb2ludFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFyX3BvaW50ID0gcm9sZV92by5zdGFyX3BvaW50XG4gICAgICAgICAgICAgICAgICAgIGlzX2Nhbl9idXlfbnVtID0gTWF0aC5mbG9vcihzdGFyX3BvaW50IC8gcHJpY2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBheV90eXBlID09IFwic2t5X2NvaW5cIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2t5X2NvaW4gPSByb2xlX3ZvLnNreV9jb2luXG4gICAgICAgICAgICAgICAgICAgIGlzX2Nhbl9idXlfbnVtID0gTWF0aC5mbG9vcihza3lfY29pbiAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcInJlY3J1aXRoaWdoX2hlcm9cIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVjcnVpdGhpZ2hfaGVybyA9IHJvbGVfdm8ucmVjcnVpdGhpZ2hfaGVyb1xuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IocmVjcnVpdGhpZ2hfaGVybyAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcImV4cGVkaXRpb25fbWVkYWxcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZXhwZWRpdGlvbl9tZWRhbCA9IHJvbGVfdm8uZXhwZWRpdGlvbl9tZWRhbFxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoZXhwZWRpdGlvbl9tZWRhbCAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcImNvaW5cIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29pbiA9IHJvbGVfdm8uY29pblxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3IoY29pbiAvIHByaWNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChwYXlfdHlwZSA9PSBcInNpbHZlcl9jb2luXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNpbHZlcl9jb2luID0gcm9sZV92by5zaWx2ZXJfY29pblxuICAgICAgICAgICAgICAgICAgICBpc19jYW5fYnV5X251bSA9IE1hdGguZmxvb3Ioc2lsdmVyX2NvaW4gLyBwcmljZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzX2Nhbl9idXlfbnVtXG4gICAgfSxcblxuICAgIGNoZWNrQWN0aW9uTW9lbnlCeVR5cGU6ZnVuY3Rpb24ocGF5X3R5cGUscHJpY2Upe1xuICAgICAgICB2YXIgcm9sZV92byA9IFJvbGVDb250cm9sbGVyLmdldEluc3RhbmNlKCkuZ2V0Um9sZVZvKCk7XG4gICAgICAgIHZhciBpc19jYW5fYnV5X251bSA9IDA7XG4gICAgICAgIGlmIChyb2xlX3ZvKXtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IHJvbGVfdm8uZ2V0QWN0aW9uQXNzZXRzTnVtQnlCaWQocGF5X3R5cGUpO1xuICAgICAgICAgICAgaXNfY2FuX2J1eV9udW0gPSBNYXRoLmZsb29yKGNvdW50L3ByaWNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNfY2FuX2J1eV9udW07XG4gICAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gTWFsbE1vZGVsOyJdfQ==