{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/main/fav/FavListView.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/main/fav/FavListView.vue","mtime":1702016964387},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/babel-loader/lib/index.js","mtime":1702017034360},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/cache-loader/dist/cjs.js","mtime":1702017034107},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js","mtime":1702017029242}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBoZWxwZXIgZnJvbSAiLi4vLi4vdXRpbC9oZWxwZXIiOwppbXBvcnQgTWVzc2FnZUNvbnRlbnRUeXBlIGZyb20gIi4uLy4uLy4uL3dmYy9tZXNzYWdlcy9tZXNzYWdlQ29udGVudFR5cGUiOwppbXBvcnQgd2ZjIGZyb20gIi4uLy4uLy4uL3dmYy9jbGllbnQvd2ZjIjsKaW1wb3J0IEluZmluaXRlTG9hZGluZyBmcm9tICJ2dWUtaW5maW5pdGUtbG9hZGluZyI7CmltcG9ydCBzdG9yZSBmcm9tICIuLi8uLi8uLi9zdG9yZSI7CmltcG9ydCB7aXBjUmVuZGVyZXJ9IGZyb20gIi4uLy4uLy4uL3BsYXRmb3JtIjsKaW1wb3J0IEZhdkl0ZW0gZnJvbSAiLi4vLi4vLi4vd2ZjL21vZGVsL2Zhdkl0ZW0iOwppbXBvcnQge2lzRWxlY3Ryb24sIGN1cnJlbnRXaW5kb3d9IGZyb20gIi4uLy4uLy4uL3BsYXRmb3JtIjsKaW1wb3J0IHtfcmV2ZXJzZVRvSnNMb25nU3RyaW5nfSBmcm9tICIuLi8uLi8uLi93ZmMvdXRpbC9sb25nVXRpbCI7CmltcG9ydCBDb21wb3NpdGVNZXNzYWdlQ29udGVudCBmcm9tICIuLi8uLi8uLi93ZmMvbWVzc2FnZXMvY29tcG9zaXRlTWVzc2FnZUNvbnRlbnQiOwppbXBvcnQgQ29uZmlnIGZyb20gIi4uLy4uLy4uL2NvbmZpZyI7CmltcG9ydCBJcGNFdmVudFR5cGUgZnJvbSAiLi4vLi4vLi4vaXBjRXZlbnRUeXBlIjsKaW1wb3J0IGFwcFNlcnZlckFwaSBmcm9tICIuLi8uLi8uLi9hcGkvYXBwU2VydmVyQXBpIjsKCmV4cG9ydCBkZWZhdWx0IHsKICAgIG5hbWU6ICJGYXZMaXN0VmlldyIsCiAgICBwcm9wczogewogICAgICAgIGNhdGVnb3J5OiB7CiAgICAgICAgICAgIHR5cGU6IFN0cmluZywKICAgICAgICAgICAgZGVmYXVsdDogJ2FsbCcsCiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSwKICAgICAgICB9LAogICAgfSwKICAgIGRhdGEoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZmF2SXRlbXM6IFtdLAogICAgICAgICAgICBpbWFnZVBsYWNlSG9sZGVyOiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBRFVsRVFWUjQybU5jdW5EaGZ3QUd3Z0xvZTR0MmZ3QUFBQUJKUlU1RXJrSmdnZz09JywKICAgICAgICAgICAgaW5maW5pdGVJZDogK25ldyBEYXRlKCksCiAgICAgICAgfQogICAgfSwKICAgIG1ldGhvZHM6IHsKICAgICAgICAvKioKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSBjYXRlZ29yeQogICAgICAgICAqIEBwYXJhbSBjYiB7ZnVuY3Rpb24obnVtYmVyLCBib29sZWFuLCBib29sZWFuKX19CiAgICAgICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0KICAgICAgICAgKi8KICAgICAgICBhc3luYyBsb2FkRmF2TGlzdChjYXRlZ29yeSwgY2IpIHsKICAgICAgICAgICAgbGV0IHN0YXJ0SWQgPSB0aGlzLmZhdkl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLmZhdkl0ZW1zW3RoaXMuZmF2SXRlbXMubGVuZ3RoIC0gMV0uaWQgOiAwCiAgICAgICAgICAgIGxldCByZXNwb25zZURhdGEgPSBhd2FpdCBhcHBTZXJ2ZXJBcGkuZ2V0RmF2TGlzdChzdGFydElkLCAyMCk7CiAgICAgICAgICAgIGxldCBkYXRhID0gX3JldmVyc2VUb0pzTG9uZ1N0cmluZyhyZXNwb25zZURhdGEsICdtZXNzYWdlVWlkJyk7CiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnJlc3VsdCkgewogICAgICAgICAgICAgICAgbGV0IG9iaiA9IGRhdGEucmVzdWx0OwogICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gb2JqLml0ZW1zOwogICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7CiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSAnYWxsJykgewogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdmaWxlJyAmJiBpdGVtc1tpXS50eXBlID09PSBNZXNzYWdlQ29udGVudFR5cGUuRmlsZSkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT09ICdtZWRpYScgJiYgW01lc3NhZ2VDb250ZW50VHlwZS5JbWFnZSwgTWVzc2FnZUNvbnRlbnRUeXBlLlZpZGVvXS5pbmRleE9mKGl0ZW1zW2ldLnR5cGUpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09PSAnY29tcG9zaXRlJyAmJiBpdGVtc1tpXS50eXBlID09PSBNZXNzYWdlQ29udGVudFR5cGUuQ29tcG9zaXRlX01lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9wYXRjaEZhdkl0ZW0oaXRlbXMpOwogICAgICAgICAgICAgICAgdGhpcy5mYXZJdGVtcyA9IHRoaXMuZmF2SXRlbXMuY29uY2F0KGl0ZW1zKTsKICAgICAgICAgICAgICAgIGlmIChvYmouaGFzTW9yZSAmJiAhZm91bmQgJiYgY2IpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGYXZMaXN0KGNhdGVnb3J5LCBjYik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2IgJiYgY2Iob2JqLmhhc01vcmUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignbG9hZEZhdkxpc3QgZmFpbGVkJywgcmVzcG9uc2VEYXRhKQogICAgICAgICAgICAgICAgY2IgJiYgY2IoZmFsc2UpCiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBfcGF0Y2hGYXZJdGVtKGZhdkl0ZW1zKSB7CiAgICAgICAgICAgIGZhdkl0ZW1zLmZvckVhY2goZmkgPT4gewogICAgICAgICAgICAgICAgaWYgKGZpLmRhdGEpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZmkudHlwZSA9PT0gTWVzc2FnZUNvbnRlbnRUeXBlLkNvbXBvc2l0ZV9NZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmYXZJdGVtID0gT2JqZWN0LmFzc2lnbihuZXcgRmF2SXRlbSgpLCBmaSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZhdkl0ZW0uZmF2VHlwZSA9IGZpLnR5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gZmF2SXRlbS50b01lc3NhZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvc2l0ZUNvbnRlbnQgPSBtZXNzYWdlLm1lc3NhZ2VDb250ZW50OwogICAgICAgICAgICAgICAgICAgICAgICBmaS5fY29udGVudCA9IGZpLnRpdGxlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcG9zaXRlQ29udGVudCBpbnN0YW5jZW9mIENvbXBvc2l0ZU1lc3NhZ2VDb250ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvc2l0ZUNvbnRlbnQubWVzc2FnZXMubGVuZ3RoICYmIGkgPCAyOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaS5fY29udGVudCArPSAnXG4nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpLl9jb250ZW50ICs9IGNvbXBvc2l0ZUNvbnRlbnQubWVzc2FnZXNbaV0ubWVzc2FnZUNvbnRlbnQuZGlnZXN0KGNvbXBvc2l0ZUNvbnRlbnQubWVzc2FnZXNbaV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UubWVzc2FnZUNvbnRlbnQgPSBjb21wb3NpdGVDb250ZW50OwoKICAgICAgICAgICAgICAgICAgICAgICAgZmkuX21lc3NhZ2UgPSBtZXNzYWdlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmRhdGEgPSBKU09OLnBhcnNlKGZpLmRhdGEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZpLl90aW1lU3RyID0gaGVscGVyLmRhdGVGb3JtYXQoZmkudGltZXN0YW1wKTsKICAgICAgICAgICAgICAgIGlmIChmaS50eXBlID09PSBNZXNzYWdlQ29udGVudFR5cGUuRmlsZSkgewogICAgICAgICAgICAgICAgICAgIGZpLnRpdGxlID0gZmkudGl0bGUgPyBmaS50aXRsZSA6ICd1bm5hbWUnCiAgICAgICAgICAgICAgICAgICAgZmkuX2ZpbGVJY29uTmFtZSA9IGhlbHBlci5nZXRGaWxldHlwZUljb24oZmkudGl0bGUuc3Vic3RyaW5nKGZpLnRpdGxlLmxhc3RJbmRleE9mKCcuJykpKQogICAgICAgICAgICAgICAgICAgIGZpLl9zaXplU3RyID0gaGVscGVyLmh1bWFuU2l6ZShmaS5kYXRhLnNpemUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmaS5fc2VuZGVyTmFtZSA9IHdmYy5nZXRVc2VyRGlzcGxheU5hbWUoZmkuc2VuZGVyKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKCiAgICAgICAgaW5maW5pdGVIYW5kbGVyKCRzdGF0ZSkgewogICAgICAgICAgICB0aGlzLmxvYWRGYXZMaXN0KHRoaXMuY2F0ZWdvcnksIChoYXNNb3JlKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAoaGFzTW9yZSkgewogICAgICAgICAgICAgICAgICAgICRzdGF0ZS5sb2FkZWQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHN0YXRlLmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCiAgICAgICAgaGFuZGxlQ2xpY2soZmF2SXRlbSkgewogICAgICAgICAgICBzd2l0Y2ggKGZhdkl0ZW0udHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSBNZXNzYWdlQ29udGVudFR5cGUuVGV4dDoKICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbGVjdHJvbigpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZShoYXNoLCAnIy9tZXNzYWdlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgKz0gIi9tZXNzYWdlIgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHVybCArPSAiP2RhdGE9IiArIHdmYy5lc2NhcGUod2ZjLnV0ZjhfdG9fYjY0KEpTT04uc3RyaW5naWZ5KGZhdkl0ZW0pKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlwY1JlbmRlcmVyLnNlbmQoSXBjRXZlbnRUeXBlLlNIT1dfQ09NUE9TSVRFX01FU1NBR0VfV0lORE9XLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBNZXNzYWdlQ29udGVudFR5cGUuSW1hZ2U6CiAgICAgICAgICAgICAgICBjYXNlIE1lc3NhZ2VDb250ZW50VHlwZS5WaWRlbzoKICAgICAgICAgICAgICAgICAgICBzdG9yZS5wcmV2aWV3TWVkaWEoZmF2SXRlbS51cmwsIGZhdkl0ZW0udGh1bWJVcmwsIGZhdkl0ZW0uZGF0YSAmJiBmYXZJdGVtLmRhdGEudGh1bWIgPyBmYXZJdGVtLmRhdGEudGh1bWIgOiAnaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBRFVsRVFWUjQybU5jdW5EaGZ3QUd3Z0xvZTR0MmZ3QUFBQUJKUlU1RXJrSmdnZz09JykKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgTWVzc2FnZUNvbnRlbnRUeXBlLkZpbGU6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpcGNSZW5kZXJlci5zZW5kKElwY0V2ZW50VHlwZS5ET1dOTE9BRF9GSUxFLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIC0x5pe277yM5LiN6YCa55+l6L+b5bqmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlUGF0aDogZmF2SXRlbS51cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZmF2SXRlbS50aXRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd0lkOiBjdXJyZW50V2luZG93LmdldE1lZGlhU291cmNlSWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBNZXNzYWdlQ29udGVudFR5cGUuQ29tcG9zaXRlX01lc3NhZ2U6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoOwogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc2gpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UoaGFzaCwgJyMvY29tcG9zaXRlJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgKz0gIi9jb21wb3NpdGUiCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdXJsICs9ICI/ZGF0YT0iICsgd2ZjLmVzY2FwZSh3ZmMudXRmOF90b19iNjQoSlNPTi5zdHJpbmdpZnkoZmF2SXRlbSkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgaXBjUmVuZGVyZXIuc2VuZChJcGNFdmVudFR5cGUuU0hPV19DT01QT1NJVEVfTUVTU0FHRV9XSU5ET1csIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0b2RvIGNsaWNrJywgZmF2SXRlbSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaGFuZGxlQ2xpY2tNZWRpYShpbmRleCwgZmF2SXRlbXMpIHsKICAgICAgICAgICAgbGV0IG1lZGlhSXRlbXMgPSBbXTsKICAgICAgICAgICAgZmF2SXRlbXMgPSBmYXZJdGVtcy5maWx0ZXIoZmF2SXRlbSA9PiAoZmF2SXRlbS51cmwgfHwgZmF2SXRlbS50aHVtYlVybCB8fCAoZmF2SXRlbS5kYXRhICYmIGZhdkl0ZW0uZGF0YS50aHVtYikpKQogICAgICAgICAgICBmYXZJdGVtcy5mb3JFYWNoKGZhdkl0ZW0gPT4gewogICAgICAgICAgICAgICAgbGV0IHRodW1iID0gZmF2SXRlbS50aHVtYlVybCA/IGZhdkl0ZW0udGh1bWJVcmwgOiAoZmF2SXRlbS5kYXRhICYmIGZhdkl0ZW0uZGF0YS50aHVtYiA/ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGZhdkl0ZW0uZGF0YS50aHVtYiA6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBRFVsRVFWUjQybU5jdW5EaGZ3QUd3Z0xvZTR0MmZ3QUFBQUJKUlU1RXJrSmdnZz09JykKICAgICAgICAgICAgICAgIG1lZGlhSXRlbXMucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgc3JjOiBmYXZJdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICB0aHVtYjogdGh1bWIsCiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IHRydWUsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQogICAgICAgICAgICBzdG9yZS5wcmV2aWV3TWVkaWFzKG1lZGlhSXRlbXMsIGluZGV4KQogICAgICAgIH0sCiAgICAgICAgb3BlbkZhdkNvbnRleHRNZW51KGV2ZW50LCBmYXZJdGVtKSB7CiAgICAgICAgICAgIGlmICghZmF2SXRlbSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuJHJlZnMubWVudS5vcGVuKGV2ZW50LCBmYXZJdGVtKTsKICAgICAgICB9LAogICAgICAgIG9uTWVudUNsb3NlKCkgewogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgfSwKCiAgICAgICAgZGVsZXRlRmF2KGZhdkl0ZW0pIHsKICAgICAgICAgICAgYXBwU2VydmVyQXBpLmRlbEZhdihmYXZJdGVtLmlkKQogICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgICAgIHRoaXMuZmF2SXRlbXMgPSB0aGlzLmZhdkl0ZW1zLmZpbHRlcihmaSA9PiBmaS5pZCAhPT0gZmF2SXRlbS5pZCk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RlbEZhdiBlcnJvcicsIGVycik7CiAgICAgICAgICAgICAgICB9KQogICAgICAgIH0sCgogICAgICAgIGZvcndhcmQoZmF2SXRlbSkgewogICAgICAgICAgICBmYXZJdGVtID0gT2JqZWN0LmFzc2lnbihuZXcgRmF2SXRlbSgpLCBmYXZJdGVtKTsKICAgICAgICAgICAgZmF2SXRlbS5mYXZUeXBlID0gZmF2SXRlbS50eXBlOwogICAgICAgICAgICB0aGlzLiRldmVudEJ1cy4kZW1pdCgnZm9yd2FyZC1mYXYnLCB7CiAgICAgICAgICAgICAgICBmYXZJdGVtOiBmYXZJdGVtLAogICAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgb25TY3JvbGwoKSB7CiAgICAgICAgICAgIC8vIGhpZGUgbWVzc2FnZSBjb250ZXh0IG1lbnUKICAgICAgICAgICAgdGhpcy4kcmVmcy5tZW51ICYmIHRoaXMuJHJlZnMubWVudS5jbG9zZSgpOwogICAgICAgIH0sCgogICAgICAgIGFwcFNlcnZlckF1ZGlvVXJsKHVybCkgewogICAgICAgICAgICByZXR1cm4gQ29uZmlnLkFNUl9UT19NUDNfU0VSVkVSX0FERFJFU1MgKyB1cmw7CiAgICAgICAgfQogICAgfSwKCiAgICBjb21wdXRlZDogewogICAgICAgIHRpdGxlKCkgewogICAgICAgICAgICBsZXQgc3RyID0gdGhpcy4kdCgnZmF2LmZhdicpOwogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2F0ZWdvcnkpIHsKICAgICAgICAgICAgICAgIGNhc2UgJ2FsbCc6CiAgICAgICAgICAgICAgICAgICAgc3RyID0gdGhpcy4kdCgnZmF2LmFsbCcpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgc3RyID0gdGhpcy4kdCgnZmF2LmZpbGUnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ21lZGlhJzoKICAgICAgICAgICAgICAgICAgICBzdHIgPSB0aGlzLiR0KCdmYXYubWVkaWEnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBvc2l0ZSc6CiAgICAgICAgICAgICAgICAgICAgc3RyID0gdGhpcy4kdCgnZmF2LmNvbXBvc2l0ZScpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RyOwogICAgICAgIH0sCiAgICAgICAgZmlsdGVyZWRGYXZJdGVtcygpIHsKICAgICAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5mYXZJdGVtczsKICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNhdGVnb3J5KSB7CiAgICAgICAgICAgICAgICBjYXNlICdhbGwnOgogICAgICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5mYXZJdGVtczsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOgogICAgICAgICAgICAgICAgICAgIGl0ZW1zID0gdGhpcy5mYXZJdGVtcy5maWx0ZXIoZmkgPT4gZmkudHlwZSA9PT0gTWVzc2FnZUNvbnRlbnRUeXBlLkZpbGUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdtZWRpYSc6CiAgICAgICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmZhdkl0ZW1zLmZpbHRlcihmaSA9PiBmaS50eXBlID09PSBNZXNzYWdlQ29udGVudFR5cGUuSW1hZ2UgfHwgZmkudHlwZSA9PT0gTWVzc2FnZUNvbnRlbnRUeXBlLlZpZGVvKQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnY29tcG9zaXRlJzoKICAgICAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuZmF2SXRlbXMuZmlsdGVyKGZpID0+IGZpLnR5cGUgPT09IE1lc3NhZ2VDb250ZW50VHlwZS5Db21wb3NpdGVfTWVzc2FnZSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICAgIH0sCgogICAgICAgIGdyb3VwZWRNZWRpYUl0ZW1zKCkgewogICAgICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLmZhdkl0ZW1zLmZpbHRlcihmaSA9PiBmaS50eXBlID09PSBNZXNzYWdlQ29udGVudFR5cGUuSW1hZ2UgfHwgZmkudHlwZSA9PT0gTWVzc2FnZUNvbnRlbnRUeXBlLlZpZGVvKQogICAgICAgICAgICBsZXQgZ3JvdXBlZEl0ZW1zID0gW107CgogICAgICAgICAgICBsZXQgbW9udGhzID0gW3RoaXMuJHQoJ2NvbW1vbi5tb250aF8xJyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF8xJyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF8yJyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF8zJyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF80JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF81JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF82JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF83JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF84JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF85JyksIHRoaXMuJHQoJ2NvbW1vbi5tb250aF8xMCcpLCB0aGlzLiR0KCdjb21tb24ubW9udGhfMTEnKSwgdGhpcy4kdCgnY29tbW9uLm1vbnRoXzEyJyksIF07CgogICAgICAgICAgICBsZXQgbWFwID0gbmV3IE1hcCgpOwogICAgICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgICAgICAgbGV0IGZhdkRhdGUgPSBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCk7CiAgICAgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgPSBtb250aHNbZmF2RGF0ZS5nZXRNb250aCgpXSArICcgJyArIGZhdkRhdGUuZ2V0RnVsbFllYXIoKTsKICAgICAgICAgICAgICAgIGlmICghbWFwLmhhcyhjYXRlZ29yeSkpIHsKICAgICAgICAgICAgICAgICAgICBtYXAuc2V0KGNhdGVnb3J5LCBbaXRlbV0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtYXAuZ2V0KGNhdGVnb3J5KS5wdXNoKGl0ZW0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgZ3JvdXBlZEl0ZW1zID0gQXJyYXkuZnJvbShtYXApLm1hcCgoW2NhdGVnb3J5LCBpdGVtc10pID0+ICh7Y2F0ZWdvcnk6IGNhdGVnb3J5LCBpdGVtczogaXRlbXN9KSkKCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdncm91cGVkSXRlbXMnLCBncm91cGVkSXRlbXMpCiAgICAgICAgICAgIC8vIGdyb3VwZWRJdGVtcyA9IGdyb3VwZWRJdGVtcy5jb25jYXQoZ3JvdXBlZEl0ZW1zKQogICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEl0ZW1zOwogICAgICAgIH0sCiAgICB9LAoKICAgIG1vdW50ZWQoKSB7CiAgICAgICAgLy8gdGhpcy5sb2FkRmF2TGlzdCgnYWxsJyk7CiAgICB9LAogICAgZGVhY3RpdmF0ZWQoKSB7CiAgICAgICAgdGhpcy5mYXZJdGVtcyA9IFtdOwogICAgfSwKICAgIGFjdGl2YXRlZCgpIHsKICAgICAgICB0aGlzLmluZmluaXRlSWQgKz0gMTsKICAgIH0sCiAgICBjb21wb25lbnRzOiB7CiAgICAgICAgSW5maW5pdGVMb2FkaW5nLAogICAgfQp9Cg=="},null]}