imm-element-ui 2.9.4 → 2.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/grid/grid/grid.component.mjs +25 -33
- package/esm2022/lib/service/userHistory.service.mjs +2 -2
- package/esm2022/lib/share/utils.mjs +15 -1
- package/fesm2022/imm-element-ui.mjs +39 -33
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/grid/grid/grid.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -61,7 +61,7 @@ export class UserHistoryService {
|
|
|
61
61
|
i18nKey = i18nKey == '' && code != '' ? `menus.${code}` : i18nKey;
|
|
62
62
|
}
|
|
63
63
|
const paramsKeys = Object.keys(child.params);
|
|
64
|
-
console.log('title',
|
|
64
|
+
// console.log('title',child,configPath,url)
|
|
65
65
|
if (title && configPath) {
|
|
66
66
|
let isExit = this.historyList().filter(v => v.configPath == configPath);
|
|
67
67
|
// configPath.indexOf(':') > -1 && paramsKeys.length > 0 && ( title = this.detailName)
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
120
120
|
type: Injectable,
|
|
121
121
|
args: [{ providedIn: 'root' }]
|
|
122
122
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLHNEQUFzRDtRQUN0RCxxRkFBcUY7UUFDckYsS0FBSztRQUNMLHlD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LEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLCtDQUErQztRQUMvQyxpRUFBaUU7SUFFbkUsQ0FBQzsrR0FuSFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FEUCxNQUFNOzs0RkFDakIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBjb25maWcgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhpc3RvcnlJdGVtIHtcclxuICAvLyB0eXBlOiAncm91dGVyTGluaycgfCAnY3JlYXRlJyxcclxuICB0aXRsZTogc3RyaW5nLFxyXG4gIHVybDogc3RyaW5nLFxyXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcclxuICBpMThuS2V5OnN0cmluZ1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjoncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgVXNlckhpc3RvcnlTZXJ2aWNlIHtcclxuICBoaXN0b3J5TGlzdCA9IHNpZ25hbDxIaXN0b3J5SXRlbVtdPihbXSlcclxuICByb3V0ZXIkID0gdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAucGlwZShcclxuICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgIG1hcCgoZXZlbnQpID0+e1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudC0tLS0nLGV2ZW50KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgZGV0YWlsTmFtZSA9ICcnXHJcbiAgaTE4biA9aW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcixwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlKXtcclxuXHJcbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywoZXZlbnQpID0+IHtcclxuICAgIC8vICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2NydW1iQWN0aW9uJywgSlNPTi5zdHJpbmdpZnkodGhpcy5oaXN0b3J5TGlzdCgpKSlcclxuICAgIC8vIH0pXHJcbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsKCkgPT4ge1xyXG4gICAgLy8gICBsZXQgaGlzdG9yeSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdjcnVtYkFjdGlvbicpXHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdjcnVtYkFjdGlvbi1sb2NhbHN0b3J5JyxoaXN0b3J5KVxyXG4gICAgLy8gICBpZihoaXN0b3J5KXtcclxuICAgIC8vICAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChKU09OLnBhcnNlKGhpc3RvcnkpKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBcclxuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCB1cmw6IHN0cmluZyA9ICcnLCBicmVhZGNydW1iczogYW55W10gPSBbXSk6YW55IHtcclxuICAgIGNvbnN0IGNoaWxkcmVuOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90W10gPSByb3V0ZS5jaGlsZHJlbjtcclxuICAgIGlmKGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm4gXHJcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuWzBdO1xyXG4gICAgY29uc3Qgcm91dGVVUkw6IHN0cmluZyA9IGNoaWxkLnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKTtcclxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKGNoaWxkLnF1ZXJ5UGFyYW1zKSAgfHwgW11cclxuICAgIGlmIChyb3V0ZVVSTCAhPT0gJycpIHtcclxuICAgICAgdXJsICs9IGAvJHtyb3V0ZVVSTH1gO1xyXG4gICAgfVxyXG4gICAgaWYocXVlcnlLZXlzLmxlbmd0aCA+IDApe1xyXG4gICAgICB1cmwrPSc/J1xyXG4gICAgICBxdWVyeUtleXMuZm9yRWFjaCh2ID0+IHtcclxuICAgICAgICB1cmwrPWAke3Z9PSR7Y2hpbGQucXVlcnlQYXJhbXNbdl19YFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgbGV0IHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICAgIGlmIChjaGlsZC5kYXRhWyd0aXRsZSddKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgY2hpbGQuZGF0YVsndGl0bGUnXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRpdGxlID0gY2hpbGQuZGF0YVsndGl0bGUnXShjaGlsZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBpMThuS2V5ID0gY2hpbGQuZGF0YVsnaTE4bktleSddID8gY2hpbGQuZGF0YVsnaTE4bktleSddIDogJydcclxuICAgIC8vIGNvbnN0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGNoaWxkLnJvdXRlQ29uZmlnPy5wYXRoIGFzIHN0cmluZ1xyXG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGNoaWxkLnBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnaWQnKSB8fCBjaGlsZC5wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2NvZGUnKSA/IHVybC5yZXBsYWNlKC8oW15cXC9dKikkLywgXCJcIikgOiB1cmxcclxuICAgIGNvbnN0IGNvZGUgID0gdXJsLnNwbGl0KCcvJylbMl0gfHwgJydcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIGlmKHdpbmRvdy5hcHBJc0kxOG4pe1xyXG4gICAgICBpMThuS2V5ID0gaTE4bktleSA9PSAnJyAmJiBjb2RlICE9ICcnID8gYG1lbnVzLiR7Y29kZX1gOiBpMThuS2V5XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucGFyYW1zKVxyXG4gICAgY29uc29sZS5sb2coJ3RpdGxlJyxjaGlsZCxjb25maWdQYXRoLHVybClcclxuICAgIGlmKHRpdGxlICYmIGNvbmZpZ1BhdGgpe1xyXG4gICAgICBsZXQgaXNFeGl0ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYuY29uZmlnUGF0aCA9PSBjb25maWdQYXRoKSBcclxuICAgICAgLy8gY29uZmlnUGF0aC5pbmRleE9mKCc6JykgPiAtMSAmJiBwYXJhbXNLZXlzLmxlbmd0aCA+IDAgJiYgKCB0aXRsZSA9IHRoaXMuZGV0YWlsTmFtZSlcclxuICAgICAgaWYoaXNFeGl0Lmxlbmd0aCA9PSAwKXtcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSx7dGl0bGUsdXJsLGNvbmZpZ1BhdGgsaTE4bktleX1dKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFja1VybCh1cmwpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKCdoaXN0b3J5LS0tLScsdGhpcy5oaXN0b3J5TGlzdCgpKVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnMoY2hpbGQsIHVybCwgYnJlYWRjcnVtYnMpO1xyXG4gIH1cclxuICBhZGRIaXN0b3J5TGlzdChpdGVtOiBIaXN0b3J5SXRlbSl7XHJcbiAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSxpdGVtXSlcclxuICB9XHJcblxyXG4gIGJhY2tVcmwodXJsOnN0cmluZyl7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmhpc3RvcnlMaXN0KCkuZmluZEluZGV4KHYgPT4gdi51cmwgPT0gdXJsKVxyXG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGhcclxuICAgIGlmKGluZGV4ICsgMSAhPT0gbGVuZ3RoKXtcclxuICAgICAgbGV0IG5ld0hpc3RvcnkgPSB0aGlzLmhpc3RvcnlMaXN0KCkuc2xpY2UoMCxpbmRleClcclxuICAgICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxhc3RQb3AoKXtcclxuICAgIHRoaXMuaGlzdG9yeUxpc3QudXBkYXRlKCh2YWx1ZSkgPT4gdmFsdWUuc2xpY2UoMCwgLTEpKTtcclxuICB9XHJcbiAgLy8g5riF56m6aGlzdG9yeVxyXG4gIGNsZWFyKHBhdGg/OnN0cmluZyl7XHJcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY3J1bWJBY3Rpb24nKVxyXG4gICAgbGV0IG5ld0hpc3RvcnkgOmFueT0gW11cclxuICAgIGlmKHBhdGgpIHtcclxuICAgICAgbmV3SGlzdG9yeSA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maWx0ZXIodiA9PiB2LnVybCA9PT0gcGF0aClcclxuICAgIH1cclxuICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KG5ld0hpc3RvcnkpXHJcbiAgfVxyXG5cclxuICAvLyDmlrDlop7nvJbovpHkuI3mmK/lkIzkuIDkuKrot6/nlLEg6ZyA6L+H5ruk5paw5bu66Lev55SxXHJcbiAgZmlsdGVyVXJsKHVybDpzdHJpbmcpe1xyXG4gICAgbGV0IG5ld0hpc3RvcnkgPSB0aGlzLmhpc3RvcnlMaXN0KCkuZmlsdGVyKHYgPT4gdi51cmwgIT09IHVybClcclxuICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KG5ld0hpc3RvcnkpXHJcbiAgfVxyXG5cclxuICAvLyDmiYvliqjop6blj5Hor6bmg4XpobXpnaLojrflj5Z0aXRsZVxyXG4gIHNldExhc3RUaXRsZSh0aXRsZTpzdHJpbmcpe1xyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMuaGlzdG9yeUxpc3QoKTtcclxuICAgIGNvbnN0IGxhc3QgPSBsaXN0W2xpc3QubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoIWxhc3QpIHJldHVybjtcclxuICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KFsuLi5saXN0LnNsaWNlKDAsIC0xKSwgeyAuLi5sYXN0LCB0aXRsZSB9XSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnc2V0LS10aXRsZScsdGhpcy5oaXN0b3J5TGlzdCgpKVxyXG4gICAgLy8gY29uc3QgbGFzdCA9IHRoaXMuaGlzdG9yeUxpc3QoKVt0aGlzLmhpc3RvcnlMaXN0KCkubGVuZ3RoIC0gMV1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLHNEQUFzRDtRQUN0RCxxRkFBcUY7UUFDckYsS0FBSztRQUNMLHlD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SUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsK0NBQStDO1FBQy9DLGlFQUFpRTtJQUVuRSxDQUFDOytHQW5IVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURQLE1BQU07OzRGQUNqQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIGNvbmZpZyB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeUl0ZW0ge1xyXG4gIC8vIHR5cGU6ICdyb3V0ZXJMaW5rJyB8ICdjcmVhdGUnLFxyXG4gIHRpdGxlOiBzdHJpbmcsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgY29uZmlnUGF0aDogc3RyaW5nLFxyXG4gIGkxOG5LZXk6c3RyaW5nXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOidyb290J30pXHJcbmV4cG9ydCBjbGFzcyBVc2VySGlzdG9yeVNlcnZpY2Uge1xyXG4gIGhpc3RvcnlMaXN0ID0gc2lnbmFsPEhpc3RvcnlJdGVtW10+KFtdKVxyXG4gIHJvdXRlciQgPSB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgIC5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgbWFwKChldmVudCkgPT57XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50LS0tLScsZXZlbnQpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnModGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdClcclxuICAgICAgfSlcclxuICAgIClcclxuICBkZXRhaWxOYW1lID0gJydcclxuICBpMThuID1pbmplY3QoSTE4blNlcnZpY2UpXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUpe1xyXG5cclxuICAgIC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLChldmVudCkgPT4ge1xyXG4gICAgLy8gICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY3J1bWJBY3Rpb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLmhpc3RvcnlMaXN0KCkpKVxyXG4gICAgLy8gfSlcclxuICAgIC8vIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywoKSA9PiB7XHJcbiAgICAvLyAgIGxldCBoaXN0b3J5ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NydW1iQWN0aW9uJylcclxuICAgIC8vICAgY29uc29sZS5sb2coJ2NydW1iQWN0aW9uLWxvY2Fsc3RvcnknLGhpc3RvcnkpXHJcbiAgICAvLyAgIGlmKGhpc3Rvcnkpe1xyXG4gICAgLy8gICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KEpTT04ucGFyc2UoaGlzdG9yeSkpXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIFxyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnMocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHVybDogc3RyaW5nID0gJycsIGJyZWFkY3J1bWJzOiBhbnlbXSA9IFtdKTphbnkge1xyXG4gICAgY29uc3QgY2hpbGRyZW46IEFjdGl2YXRlZFJvdXRlU25hcHNob3RbXSA9IHJvdXRlLmNoaWxkcmVuO1xyXG4gICAgaWYoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBcclxuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5bMF07XHJcbiAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gY2hpbGQudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xyXG4gICAgY29uc3QgcXVlcnlLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucXVlcnlQYXJhbXMpICB8fCBbXVxyXG4gICAgaWYgKHJvdXRlVVJMICE9PSAnJykge1xyXG4gICAgICB1cmwgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICB9XHJcbiAgICBpZihxdWVyeUtleXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHVybCs9Jz8nXHJcbiAgICAgIHF1ZXJ5S2V5cy5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgIHVybCs9YCR7dn09JHtjaGlsZC5xdWVyeVBhcmFtc1t2XX1gXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBsZXQgdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gICAgaWYgKGNoaWxkLmRhdGFbJ3RpdGxlJ10pIHtcclxuICAgICAgaWYgKHR5cGVvZiBjaGlsZC5kYXRhWyd0aXRsZSddID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddKGNoaWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZSA9IGNoaWxkLmRhdGFbJ3RpdGxlJ11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGkxOG5LZXkgPSBjaGlsZC5kYXRhWydpMThuS2V5J10gPyBjaGlsZC5kYXRhWydpMThuS2V5J10gOiAnJ1xyXG4gICAgLy8gY29uc3QgY29uZmlnUGF0aDogc3RyaW5nID0gY2hpbGQucm91dGVDb25maWc/LnBhdGggYXMgc3RyaW5nXHJcbiAgICBjb25zdCBjb25maWdQYXRoID0gY2hpbGQucGFyYW1zLmhhc093blByb3BlcnR5KCdpZCcpIHx8IGNoaWxkLnBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnY29kZScpID8gdXJsLnJlcGxhY2UoLyhbXlxcL10qKSQvLCBcIlwiKSA6IHVybFxyXG4gICAgY29uc3QgY29kZSAgPSB1cmwuc3BsaXQoJy8nKVsyXSB8fCAnJ1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgaWYod2luZG93LmFwcElzSTE4bil7XHJcbiAgICAgIGkxOG5LZXkgPSBpMThuS2V5ID09ICcnICYmIGNvZGUgIT0gJycgPyBgbWVudXMuJHtjb2RlfWA6IGkxOG5LZXlcclxuICAgIH1cclxuICAgIGNvbnN0IHBhcmFtc0tleXMgPSBPYmplY3Qua2V5cyhjaGlsZC5wYXJhbXMpXHJcbiAgICAvLyBjb25zb2xlLmxvZygndGl0bGUnLGNoaWxkLGNvbmZpZ1BhdGgsdXJsKVxyXG4gICAgaWYodGl0bGUgJiYgY29uZmlnUGF0aCl7XHJcbiAgICAgIGxldCBpc0V4aXQgPSB0aGlzLmhpc3RvcnlMaXN0KCkuZmlsdGVyKHYgPT4gdi5jb25maWdQYXRoID09IGNvbmZpZ1BhdGgpIFxyXG4gICAgICAvLyBjb25maWdQYXRoLmluZGV4T2YoJzonKSA+IC0xICYmIHBhcmFtc0tleXMubGVuZ3RoID4gMCAmJiAoIHRpdGxlID0gdGhpcy5kZXRhaWxOYW1lKVxyXG4gICAgICBpZihpc0V4aXQubGVuZ3RoID09IDApe1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpc3QudXBkYXRlKCh2YWx1ZSkgPT4gWy4uLnZhbHVlLHt0aXRsZSx1cmwsY29uZmlnUGF0aCxpMThuS2V5fV0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5iYWNrVXJsKHVybClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coJ2hpc3RvcnktLS0tJyx0aGlzLmhpc3RvcnlMaXN0KCkpXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVCcmVhZGNydW1icyhjaGlsZCwgdXJsLCBicmVhZGNydW1icyk7XHJcbiAgfVxyXG4gIGFkZEhpc3RvcnlMaXN0KGl0ZW06IEhpc3RvcnlJdGVtKXtcclxuICAgIHRoaXMuaGlzdG9yeUxpc3QudXBkYXRlKCh2YWx1ZSkgPT4gWy4uLnZhbHVlLGl0ZW1dKVxyXG4gIH1cclxuXHJcbiAgYmFja1VybCh1cmw6c3RyaW5nKXtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maW5kSW5kZXgodiA9PiB2LnVybCA9PSB1cmwpXHJcbiAgICBsZXQgbGVuZ3RoID0gdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aFxyXG4gICAgaWYoaW5kZXggKyAxICE9PSBsZW5ndGgpe1xyXG4gICAgICBsZXQgbmV3SGlzdG9yeSA9IHRoaXMuaGlzdG9yeUxpc3QoKS5zbGljZSgwLGluZGV4KVxyXG4gICAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChuZXdIaXN0b3J5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGFzdFBvcCgpe1xyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZS5zbGljZSgwLCAtMSkpO1xyXG4gIH1cclxuICAvLyDmuIXnqbpoaXN0b3J5XHJcbiAgY2xlYXIocGF0aD86c3RyaW5nKXtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjcnVtYkFjdGlvbicpXHJcbiAgICBsZXQgbmV3SGlzdG9yeSA6YW55PSBbXVxyXG4gICAgaWYocGF0aCkge1xyXG4gICAgICBuZXdIaXN0b3J5ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYudXJsID09PSBwYXRoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICB9XHJcblxyXG4gIC8vIOaWsOWinue8lui+keS4jeaYr+WQjOS4gOS4qui3r+eUsSDpnIDov4fmu6TmlrDlu7rot6/nlLFcclxuICBmaWx0ZXJVcmwodXJsOnN0cmluZyl7XHJcbiAgICBsZXQgbmV3SGlzdG9yeSA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maWx0ZXIodiA9PiB2LnVybCAhPT0gdXJsKVxyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICB9XHJcblxyXG4gIC8vIOaJi+WKqOinpuWPkeivpuaDhemhtemdouiOt+WPlnRpdGxlXHJcbiAgc2V0TGFzdFRpdGxlKHRpdGxlOnN0cmluZyl7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5oaXN0b3J5TGlzdCgpO1xyXG4gICAgY29uc3QgbGFzdCA9IGxpc3RbbGlzdC5sZW5ndGggLSAxXTtcclxuICAgIGlmICghbGFzdCkgcmV0dXJuO1xyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQoWy4uLmxpc3Quc2xpY2UoMCwgLTEpLCB7IC4uLmxhc3QsIHRpdGxlIH1dKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzZXQtLXRpdGxlJyx0aGlzLmhpc3RvcnlMaXN0KCkpXHJcbiAgICAvLyBjb25zdCBsYXN0ID0gdGhpcy5oaXN0b3J5TGlzdCgpW3RoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGggLSAxXVxyXG5cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -296,11 +296,25 @@ const suppressTextareaShiftEnter = (col) => {
|
|
|
296
296
|
return !!params?.editing && event?.key === 'Enter' && !!event?.shiftKey;
|
|
297
297
|
};
|
|
298
298
|
};
|
|
299
|
+
const convertTooltipField = (col) => {
|
|
300
|
+
if (col.tooltipFieldConf === true || col.tooltipField === true) {
|
|
301
|
+
if (col.field) {
|
|
302
|
+
col.tooltipField = col.field;
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
delete col.tooltipField;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
else if (col.tooltipFieldConf === false || col.tooltipField === false) {
|
|
309
|
+
delete col.tooltipField;
|
|
310
|
+
}
|
|
311
|
+
};
|
|
299
312
|
export const convertCol = (options, col, authLevel, dragSort) => {
|
|
300
313
|
// @ts-ignore
|
|
301
314
|
const isI18n = window.appIsI18n;
|
|
302
315
|
// console.log('isI18n-----',isI18n)
|
|
303
316
|
col.forEach((item, index) => {
|
|
317
|
+
convertTooltipField(item);
|
|
304
318
|
if (typeof item.hide !== 'function' && typeof item.hide !== 'string') {
|
|
305
319
|
item.hide = item.hideCol === true || item.hide === true;
|
|
306
320
|
}
|
|
@@ -590,4 +604,4 @@ export const deepClone = (source, that, cache) => {
|
|
|
590
604
|
return source;
|
|
591
605
|
}
|
|
592
606
|
};
|
|
593
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QUM7SUFDZixDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHBpcGUsIGZvcmtKb2luLCBmaXJzdFZhbHVlRnJvbSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XHJcbmltcG9ydCB7IGZvcm1UeXBlVG9Qcm9wcyB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgTlAgZnJvbSAnbnVtYmVyLXByZWNpc2lvbic7XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJNYXRjaE1vZGUgPSAnZW5kc1dpdGgnIHwgJ3N0YXJ0c1dpdGgnIHwgJ2NvbnRhaW5zJyB8ICdlcXVhbHMnIHwgJ25vdEVxdWFscycgfCAnaW4nIHwgJ2x0JyB8ICdsdGUnIHwgJ2d0JyB8ICdndGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEZpbHRlck1hdGNoTW9kZSA9IChtb2RlOiBhbnkpOiBGaWx0ZXJNYXRjaE1vZGUgPT4ge1xyXG5cdC8vIOacqumFjee9ruaXtuS9v+eUqCBQcmltZU5HIOm7mOiupCBjb250YWluc1xyXG5cdGlmICghbW9kZSkge1xyXG5cdFx0cmV0dXJuICdjb250YWlucyc7XHJcblx0fVxyXG5cdHJldHVybiBtb2RlO1xyXG59O1xyXG5leHBvcnQgbGV0IHRvUGFzY2FsQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cclxuXHRzdHJcclxuXHRcdC5yZXBsYWNlKC9fL2csICcgJykgLy8g5LiL5YiS57q/5pu/5o2i5Li656m65qC8XHJcblx0XHQucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJykgLy8g5bCP6am85bOw5YiG5Ymy5Li65Y2V6K+NXHJcblx0XHQudG9Mb3dlckNhc2UoKSAvLyDovazkuLrlsI/lhplcclxuXHRcdC5zcGxpdCgvXFxzKy8pIC8vIOaMieepuuagvOWIhuWJslxyXG5cdFx0Lm1hcCgod29yZCkgPT4gKHdvcmQgPyB3b3JkWzBdLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpIDogJycpKVxyXG5cdFx0LmpvaW4oJycpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlVW5pcXVlSWQgPSAoKSA9PiB7XHJcblx0Y29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKS50b1N0cmluZygzNik7IC8vIOaXtumXtOaIs+i9rDM26L+b5Yi257yp55+t6ZW/5bqmXHJcblx0Y29uc3QgcmFuZG9tID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDQpOyAvLyDpmo/mnLrpg6jliIZcclxuXHRyZXR1cm4gYCR7dGltZXN0YW1wfSR7cmFuZG9tfWA7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQ2lyY3VsYXJJdGVyYXRvciA9IChhcnJheTogYW55W10pID0+IHtcclxuXHRsZXQgaW5kZXggPSAtMTtcclxuXHRyZXR1cm4ge1xyXG5cdFx0bmV4dDogKCkgPT4ge1xyXG5cdFx0XHRpbmRleCsrO1xyXG5cdFx0XHRyZXR1cm4gYXJyYXlbaW5kZXggJSBhcnJheS5sZW5ndGhdO1xyXG5cdFx0fSxcclxuXHRcdHByZXY6ICgpID0+IHtcclxuXHRcdFx0aW5kZXgtLTtcclxuXHRcdFx0cmV0dXJuIGFycmF5WygoaW5kZXggJSBhcnJheS5sZW5ndGgpICsgYXJyYXkubGVuZ3RoKSAlIGFycmF5Lmxlbmd0aF07XHJcblx0XHR9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VGdW5jdGlvbnMgPSAob2JqOiBhbnksIF90aGlzOiBhbnkpOiBhbnkgPT4ge1xyXG5cdGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xyXG5cdFx0Ly8g5bCd6K+V5qOA5rWL5piv5ZCm5piv5Ye95pWw5a2X56ym5LiyXHJcblx0XHRpZiAoKG9iai5pbmNsdWRlcygnPT4nKSB8fCBvYmouaW5jbHVkZXMoJ1Byb21pc2UnKSkgJiYgIWlzSlNPTlBhcnNhYmxlKG9iaikpIHtcclxuXHRcdFx0Y29uc3QgbyA9IGNvbXBpbGVUc1RvSnMob2JqKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ+ino+aekOWHveaVsDonLCBvYmopO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGNvbnN0IHNhbmRib3ggPSB7XHJcblx0XHRcdFx0XHRPYnNlcnZhYmxlLFxyXG5cdFx0XHRcdFx0b2YsXHJcblx0XHRcdFx0XHRmb3JrSm9pbixcclxuXHRcdFx0XHRcdG1hcCxcclxuXHRcdFx0XHRcdHNoYXJlUmVwbGF5LFxyXG5cdFx0XHRcdFx0cGlwZSxcclxuXHRcdFx0XHRcdFByb21pc2UsIC8vIOa3u+WKoCBQcm9taXNlIOWIsCBzYW5kYm94XHJcblx0XHRcdFx0XHRhc3luYzogdHJ1ZSwgLy8g5qCH6K6w5pSv5oyB5byC5q2lXHJcblx0XHRcdFx0XHRyZXNvbHZlOiBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKSxcclxuXHRcdFx0XHRcdHJlamVjdDogUHJvbWlzZS5yZWplY3QuYmluZChQcm9taXNlKSxcclxuXHRcdFx0XHRcdE5QLFxyXG5cdFx0XHRcdFx0Zmlyc3RWYWx1ZUZyb20sXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0Ly8g5aSE55CGIFByb21pc2Ug5p6E6YCg5Ye95pWw55qE5oOF5Ya1XHJcblx0XHRcdFx0aWYgKG9iai5pbmNsdWRlcygnbmV3IFByb21pc2UnKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBGdW5jdGlvbihcclxuXHRcdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0XHRgXHJcblx0XHRcdFx0XHRcdFx0d2l0aChzYW5kYm94KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gJHtvfTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGAsXHJcblx0XHRcdFx0XHQpLmJpbmQoX3RoaXMpKHNhbmRib3gpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8g5aSE55CG5pmu6YCa5Ye95pWw5ZKM566t5aS05Ye95pWwXHJcblx0XHRcdFx0cmV0dXJuIG5ldyBGdW5jdGlvbihcclxuXHRcdFx0XHRcdCdzYW5kYm94JyxcclxuXHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0d2l0aChzYW5kYm94KSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuICgke299KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YCxcclxuXHRcdFx0XHQpLmJpbmQoX3RoaXMpKHNhbmRib3gpO1xyXG5cdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcign5Ye95pWw6Kej5p6Q5aSx6LSlOicsIGUsICdcXG7ljp/lp4vlrZfnrKbkuLI6Jywgb2JqKTtcclxuXHRcdFx0XHRyZXR1cm4gb2JqO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRpZiAoaXNKU09OUGFyc2FibGUob2JqKSkge1xyXG5cdFx0XHRsZXQganNvbiA9IEpTT04ucGFyc2Uob2JqKTtcclxuXHRcdFx0cmV0dXJuIHBhcnNlRnVuY3Rpb25zKGpzb24sIF90aGlzKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBvYmo7XHJcblx0fVxyXG5cdGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHJldHVybiBvYmoubWFwKChpdGVtOiBhbnkpID0+IHBhcnNlRnVuY3Rpb25zKGl0ZW0sIF90aGlzKSk7XHJcblx0fVxyXG5cdGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcclxuXHRcdGNvbnN0IHJlc3VsdDogYW55ID0ge307XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuXHRcdFx0aWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcblx0XHRcdFx0cmVzdWx0W2tleV0gPSBwYXJzZUZ1bmN0aW9ucyhvYmpba2V5XSwgX3RoaXMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIG9iajtcclxufTtcclxuXHJcbi8vIOi+heWKqeWHveaVsO+8muajgOafpeaYr+WQpuWMheWQqyBQcm9taXNlIOaehOmAoOWHveaVsFxyXG5jb25zdCBjb250YWluc1Byb21pc2VDb25zdHJ1Y3RvciA9IChzdHI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG5cdHJldHVybiAvbmV3XFxzK1Byb21pc2UvLnRlc3Qoc3RyKTtcclxufTtcclxuXHJcbi8vIOS/ruaUuSBjb21waWxlVHNUb0pzIOWHveaVsOS7peabtOWlveWcsOWkhOeQhiBQcm9taXNlXHJcbmV4cG9ydCBjb25zdCBjb21waWxlVHNUb0pzID0gKHRzQ29kZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuXHQvLyDlpoLmnpzmmK8gUHJvbWlzZSDmnoTpgKDlh73mlbDvvIzkuI3pnIDopoHpop3lpJblpITnkIZcclxuXHRpZiAoY29udGFpbnNQcm9taXNlQ29uc3RydWN0b3IodHNDb2RlKSkge1xyXG5cdFx0cmV0dXJuIHRzQ29kZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IHJlc3VsdCA9IHRzLnRyYW5zcGlsZU1vZHVsZSh0c0NvZGUsIHtcclxuXHRcdGNvbXBpbGVyT3B0aW9uczoge1xyXG5cdFx0XHRtb2R1bGU6IHRzLk1vZHVsZUtpbmQuQ29tbW9uSlMsXHJcblx0XHRcdHRhcmdldDogdHMuU2NyaXB0VGFyZ2V0LkVTMjAxNSxcclxuXHRcdFx0Ly8g5ZCv55So5byC5q2l5Ye95pWw5pSv5oyBXHJcblx0XHRcdGxpYjogWydlczIwMTUnLCAnZXMyMDE1LnByb21pc2UnLCAnZG9tJ10sXHJcblx0XHR9LFxyXG5cdH0pO1xyXG5cdHJldHVybiByZW1vdmVUcmFpbGluZ1NlbWljb2xvbihyZXN1bHQub3V0cHV0VGV4dCk7XHJcbn07XHJcblxyXG5jb25zdCByZW1vdmVUcmFpbGluZ1NlbWljb2xvbiA9IChmdW5jU3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWFiOWOu+mZpOWJjeWQjuepuueZvVxyXG5cdGNvbnN0IHRyaW1tZWQgPSBmdW5jU3RyLnRyaW0oKTtcclxuXHQvLyDlj6rmm7/mjaLmnIDlkI7kuIDkuKrliIblj7fvvIjlpoLmnpzlroPkuI3lnKjoirHmi6zlj7flhoXvvIlcclxuXHRpZiAodHJpbW1lZC5lbmRzV2l0aCgnOycpKSB7XHJcblx0XHRyZXR1cm4gdHJpbW1lZC5zbGljZSgwLCAtMSk7XHJcblx0fVxyXG5cdHJldHVybiB0cmltbWVkO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzSlNPTlBhcnNhYmxlID0gKHN0cjogYW55KSA9PiB7XHJcblx0dHJ5IHtcclxuXHRcdEpTT04ucGFyc2Uoc3RyKTtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdC8vIGxldCBzdHJJc09iaiA9IC9cXHtbXn1dKlxcfXxcXFtbXlxcXV0qXFxdLy50ZXN0KHN0cilcclxuXHRcdC8vIGlmKHN0cklzT2JqKXtcclxuXHRcdC8vIFx0Y29uc29sZS5lcnJvcignSlNPTiDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBzdHIpXHJcblx0XHQvLyB9XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIOagueaNruaMh+WumueahOmUruaVsOe7hOi/h+a7pOWvueixoVxyXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIC0g6KaB6L+H5ruk55qE5Y6f5aeL5a+56LGhXHJcbiAqIEBwYXJhbSB7QXJyYXl9IGtleXMgLSDpnIDopoHkv53nlZnnmoTplK7mlbDnu4RcclxuICogQHJldHVybnMge09iamVjdH0g6L+H5ruk5ZCO55qE5paw5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZmlsdGVyT2JqZWN0QnlLZXlzID0gKG9iajogYW55LCBrZXlzOiBzdHJpbmdbXSkgPT4ge1xyXG5cdC8vIOWPguaVsOagoemqjFxyXG5cdGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwgfHwgQXJyYXkuaXNBcnJheShvYmopKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuIDkuKrlj4LmlbDlv4XpobvmmK/mma7pgJrlr7nosaEnKTtcclxuXHR9XHJcblxyXG5cdGlmICghQXJyYXkuaXNBcnJheShrZXlzKSkge1xyXG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcign56ys5LqM5Liq5Y+C5pWw5b+F6aG75piv5pWw57uEJyk7XHJcblx0fVxyXG5cclxuXHQvLyDkvb/nlKhyZWR1Y2XliJvlu7rmlrDlr7nosaFcclxuXHRyZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYzogYW55LCBrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0Ly8g5Y+q5pyJ5b2T5Y6f5a+56LGh5pyJ6K+l5bGe5oCn5pe25omN5re75Yqg5Yiw5paw5a+56LGhXHJcblx0XHRpZiAoa2V5IGluIG9iaikge1xyXG5cdFx0XHRhY2Nba2V5XSA9IG9ialtrZXldO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFjYztcclxuXHR9LCB7fSk7XHJcbn07XHJcbi8qKlxyXG4gKiDoh6rlrprkuYnlh73mlbDljrvpmaTnqbrlrZfnrKbkuLJcclxuICogQHBhcmFtIGFjdFxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRBY3QgPSAoYWN0OiBhbnkpID0+IHtcclxuXHRhY3QuZm9yRWFjaCgodjogYW55KSA9PiB7XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuSGlkZGVuJykgJiYgdHlwZW9mIHYuYnRuSGlkZGVuICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYuYnRuSGlkZGVuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ2J0bkRpc2FibGVkJykgJiYgdHlwZW9mIHYuYnRuRGlzYWJsZWQgIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5EaXNhYmxlZDtcclxuXHRcdH1cclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdvbkNsaWNrJykgJiYgdHlwZW9mIHYub25DbGljayAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2Lm9uQ2xpY2s7XHJcblx0XHR9XHJcblx0fSk7XHJcblx0cmV0dXJuIGFjdDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBmb3JtcGFnZSDpgJrnlKhjb250ZW505Ye95pWw6L2s56e7XHJcbiAqIEBwYXJhbSBjb250ZW50XHJcbiAqIEBwYXJhbSB0aGlzQXJnXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2hhbmdlQ29udGVudCA9IChjb250ZW50OiBhbnksIHRoaXNBcmc6IGFueSkgPT4ge1xyXG5cdC8vIEB0cy1pZ25vcmVcclxuXHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdGNvbnRlbnQgPSBwYXJzZUZ1bmN0aW9ucyhjb250ZW50LCB0aGlzQXJnKTtcclxuXHR0aGlzQXJnLnBhZ2VDb250ZW50ID0gY29udGVudDtcclxuXHRsZXQgeyBncmlkTGlzdCwgaHJlZkJ0bkxpc3QsIGdldFBybSwgZ3JvdXBzLCBzdGF0dXNLZXksIHN0YXR1cywgc3RhdHVzU3RlcHMsIHN0YXR1c0NvbmYgPSBudWxsIH0gPSBjb250ZW50O1xyXG5cdGlmIChzdGF0dXNLZXkpIHtcclxuXHRcdHRoaXNBcmcuc3RhdHVzS2V5ID0gc3RhdHVzS2V5O1xyXG5cdFx0c3RhdHVzU3RlcHMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdGlmIChpc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtnZXRQcm0ubW9kZWxOYW1lfS4ke3N0YXR1c0tleX0ke2l0ZW0udmFsdWV9YDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHR0aGlzQXJnLnN0ZXBzID0gc3RhdHVzU3RlcHM7XHJcblx0XHRzdGF0dXNDb25mICYmICh0aGlzQXJnLnN0YXR1c0NvbmYgPSBzdGF0dXNDb25mKTtcclxuXHR9XHJcblxyXG5cdHRoaXNBcmcuYWN0aW9ucyA9IGNvbnZlcnRBY3QoY29udGVudC5hY3Rpb25zKTtcclxuXHRjb250ZW50LmZvcm1EaXNhYmxlZCAmJiAodGhpc0FyZy5mb3JtRGlzYWJsZWQgPSBjb250ZW50LmZvcm1EaXNhYmxlZCk7XHJcblx0dGhpc0FyZy5nZXRQcm0gPSBnZXRQcm07XHJcblx0dGhpc0FyZy5nZXRQcm0ub3JnRmllbGQgPSBjb250ZW50Lm9yZ0ZpZWxkIHx8ICcnO1xyXG5cdHRoaXNBcmcuZ3JpZHMgPSBbXTtcclxuXHRsZXQgZml0ZXJQcmVsb2FkczogYW55W10gPSBbXTtcclxuXHJcblx0Y29udmVydEZvcm0odGhpc0FyZywgZ3JvdXBzLCBjb250ZW50LnNvdXJjZURhdGEpO1xyXG5cdGNvbnZlcnRHcmlkKHRoaXNBcmcsIGdyaWRMaXN0LCBmaXRlclByZWxvYWRzKTtcclxuXHJcblx0dGhpc0FyZy5mb3JtRGV0YWlsID0gY29udGVudC5mb3JtRGV0YWlsO1xyXG5cdHRoaXNBcmcuc2F2ZUZ1bmMgPSBjb250ZW50LnNhdmVGdW5jO1xyXG5cdHRoaXNBcmcuaXNMb2cgPSBjb250ZW50LnNvdXJjZURhdGEubW9kZWwubG9nO1xyXG5cdHRoaXNBcmcuZ2V0UHJtWydnZXRMb2cnXSA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2ZpdGVyUHJlbG9hZHMnXSA9IGZpdGVyUHJlbG9hZHM7XHJcblx0dGhpc0FyZy5ocmVmQnRuTGlzdCA9IGhyZWZCdG5MaXN0O1xyXG5cdHRoaXNBcmcucnVudGltZUNvbnRleHRJbml0ID0gY29udGVudC5ydW50aW1lQ29udGV4dEluaXQ7XHJcblx0ZXhlY3V0ZVJ1bnRpbWVDb250ZXh0SW5pdCh0aGlzQXJnKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBleGVjdXRlUnVudGltZUNvbnRleHRJbml0ID0gKHRoaXNBcmc6IGFueSkgPT4ge1xyXG5cdGlmICh0eXBlb2YgdGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgIT09ICdmdW5jdGlvbicpIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblx0Y29uc3QgY29udGV4dCA9IHtcclxuXHRcdGNvbXBvbmVudDogdGhpc0FyZyxcclxuXHRcdGh0dHA6IHRoaXNBcmcuaHR0cCxcclxuXHRcdHJvdXRlOiB0aGlzQXJnLnJvdXRlLFxyXG5cdFx0cm91dGVyOiB0aGlzQXJnLnJvdXRlcixcclxuXHRcdHJ1bnRpbWVDb250ZXh0OiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0LFxyXG5cdH07XHJcblx0Y29uc3QgcmVzdWx0ID0gdGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQoY29udGV4dCk7XHJcblx0cmVzb2x2ZVJ1bnRpbWVDb250ZXh0UmVzdWx0KHRoaXNBcmcsIHJlc3VsdCk7XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQgPSBhc3luYyAodGhpc0FyZzogYW55LCByZXN1bHQ6IGFueSkgPT4ge1xyXG5cdGxldCByZXNvbHZlZCA9IHJlc3VsdDtcclxuXHRpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuXHRcdHJlc29sdmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20ocmVzdWx0KTtcclxuXHR9IGVsc2UgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuXHRcdHJlc29sdmVkID0gYXdhaXQgcmVzdWx0O1xyXG5cdH1cclxuXHRpZiAocmVzb2x2ZWQgJiYgdHlwZW9mIHJlc29sdmVkID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShyZXNvbHZlZCkpIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7XHJcblx0XHRcdC4uLih0aGlzQXJnLnJ1bnRpbWVDb250ZXh0IHx8IHt9KSxcclxuXHRcdFx0Li4ucmVzb2x2ZWQsXHJcblx0XHR9O1xyXG5cdH0gZWxzZSBpZiAocmVzb2x2ZWQgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHR2YWx1ZTogcmVzb2x2ZWQsXHJcblx0XHR9O1xyXG5cdH0gZWxzZSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge307XHJcblx0fVxyXG5cdHRoaXNBcmcuY2RyPy5tYXJrRm9yQ2hlY2s/LigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGNSb3dTcGFuID0gKHBhcmFtczogYW55LCBmaWVsZD86IHN0cmluZykgPT4ge1xuXHRmaWVsZCA9IGZpZWxkIHx8IHBhcmFtcy5jb2xEZWYuZmllbGQ7XHJcblx0Y29uc3QgY3VycmVudFZhbHVlID0gcGFyYW1zLmRhdGFbZmllbGQhXTtcclxuXHRjb25zdCBjdXJyZW50Um93SW5kZXggPSBwYXJhbXMubm9kZS5yb3dJbmRleDtcclxuXHJcblx0bGV0IHJvd1NwYW4gPSAxO1xyXG5cclxuXHRmb3IgKGxldCBpID0gY3VycmVudFJvd0luZGV4ICsgMTsgaSA8IHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93Q291bnQoKTsgaSsrKSB7XHJcblx0XHRjb25zdCBub2RlID0gcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dBdEluZGV4KGkpO1xyXG5cdFx0aWYgKG5vZGUuZGF0YVtmaWVsZCFdID09PSBjdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0cm93U3BhbisrO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZiAoY3VycmVudFJvd0luZGV4ID4gMCAmJiBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoY3VycmVudFJvd0luZGV4IC0gMSkuZGF0YVtmaWVsZCFdID09PSBjdXJyZW50VmFsdWUpIHtcclxuXHRcdHJldHVybiAxO1xyXG5cdH1cclxuXHRyZXR1cm4gcm93U3Bhbjtcbn07XG5cbmNvbnN0IGFwcGVuZENlbGxDbGFzcyA9IChjZWxsQ2xhc3M6IGFueSwgY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcblx0aWYgKEFycmF5LmlzQXJyYXkoY2VsbENsYXNzKSkge1xuXHRcdHJldHVybiBjZWxsQ2xhc3MuaW5jbHVkZXMoY2xhc3NOYW1lKSA/IGNlbGxDbGFzcyA6IFsuLi5jZWxsQ2xhc3MsIGNsYXNzTmFtZV07XG5cdH1cblx0aWYgKHR5cGVvZiBjZWxsQ2xhc3MgPT09ICdzdHJpbmcnICYmIGNlbGxDbGFzcy5sZW5ndGggPiAwKSB7XG5cdFx0cmV0dXJuIGNlbGxDbGFzcy5zcGxpdCgvXFxzKy8pLmluY2x1ZGVzKGNsYXNzTmFtZSkgPyBjZWxsQ2xhc3MgOiBgJHtjZWxsQ2xhc3N9ICR7Y2xhc3NOYW1lfWA7XG5cdH1cblx0cmV0dXJuIGNsYXNzTmFtZTtcbn07XG5cbmNvbnN0IHN1cHByZXNzVGV4dGFyZWFTaGlmdEVudGVyID0gKGNvbDogYW55KSA9PiB7XG5cdGNvbnN0IHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudCA9IGNvbC5zdXBwcmVzc0tleWJvYXJkRXZlbnQ7XG5cdGNvbC5zdXBwcmVzc0tleWJvYXJkRXZlbnQgPSAocGFyYW1zOiBhbnkpID0+IHtcblx0XHRpZiAodHlwZW9mIHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiByYXdTdXBwcmVzc0tleWJvYXJkRXZlbnQocGFyYW1zKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGNvbnN0IGV2ZW50ID0gcGFyYW1zPy5ldmVudDtcblx0XHRyZXR1cm4gISFwYXJhbXM/LmVkaXRpbmcgJiYgZXZlbnQ/LmtleSA9PT0gJ0VudGVyJyAmJiAhIWV2ZW50Py5zaGlmdEtleTtcblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q29sID0gKG9wdGlvbnM6IGFueSwgY29sOiBhbnlbXSwgYXV0aExldmVsOiBudW1iZXIsIGRyYWdTb3J0Pzogc3RyaW5nKSA9PiB7XG5cdC8vIEB0cy1pZ25vcmVcblx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcblx0Ly8gY29uc29sZS5sb2coJ2lzSTE4bi0tLS0tJyxpc0kxOG4pXG5cdGNvbC5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcblx0XHRpZiAodHlwZW9mIGl0ZW0uaGlkZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaXRlbS5oaWRlICE9PSAnc3RyaW5nJykge1xuXHRcdFx0aXRlbS5oaWRlID0gaXRlbS5oaWRlQ29sID09PSB0cnVlIHx8IGl0ZW0uaGlkZSA9PT0gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKGF1dGhMZXZlbCA8IDMpIHtcblx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZTtcblx0XHR9XG5cdFx0aWYgKGRyYWdTb3J0ICYmIGluZGV4ID09PSAwKSB7XHJcblx0XHRcdGl0ZW0ucm93RHJhZyA9IHRydWU7XHJcblx0XHR9XHJcblx0XHRpZiAoaXNJMThuICYmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGl0ZW0uaTE4bktleSA9PSAnJykpIHtcblx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtvcHRpb25zLm1vZGVsTmFtZX0uJHtpdGVtLmZpZWxkfWA7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGl0ZW0udGV4dFdyYXAgJiYgaXRlbS5jZWxsRWRpdG9yICE9PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGl0ZW0uYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRpdGVtLmNlbGxDbGFzcyA9ICdjZWxsLXdyYXAtdGV4dCc7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmNlbGxFZGl0b3IgPT09ICdjZWxsRWRpdFRleHRhcmVhQ29tcG9uZW50Jykge1xuXHRcdFx0aXRlbS53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRpdGVtLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0aXRlbS5jZWxsQ2xhc3MgPSBhcHBlbmRDZWxsQ2xhc3MoaXRlbS5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoaXRlbSk7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmZpZWxkVHlwZSA9PSAnVkFSQ0hBUicpIHtcblx0XHRcdGl0ZW0uY2VsbERhdGFUeXBlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIgPSB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIoaXRlbS5oZWFkZXJWYWx1ZUdldHRlciwgaXRlbSk7XHJcblx0XHRpZiAoaXRlbS5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGl0ZW0sIHJvd1NwYW4pO1xyXG5cdFx0XHRvcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0b3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHRcdC8vIGlmKGl0ZW0uZWRpdGFibGUpe1xyXG5cdFx0Ly8gXHRpdGVtLmhlYWRlckNsYXNzID0gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2xhc3MnKVxyXG5cdFx0Ly8gXHRcdD8gYCR7aXRlbS5oZWFkZXJDbGFzc30gZWRpdGFibGUtY29sdW1uLWhlYWRlcmBcclxuXHRcdC8vIFx0XHQ6ICdlZGl0YWJsZS1jb2x1bW4taGVhZGVyJ1xyXG5cdFx0Ly8gfVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdyaWRPcHRpb25zSG9va2VyID0gKGdyaWRPcHRpb25zOiBhbnkpID0+IHtcclxuXHRncmlkT3B0aW9ucz8uY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdGlmIChjb2wuaGlkZUNvbCkge1xyXG5cdFx0XHRjb2wuaGlkZSA9IGNvbC5oaWRlQ29sO1xyXG5cdFx0XHRkZWxldGUgY29sLmhpZGVDb2w7XHJcblx0XHR9XHJcblx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGNvbC5pMThuS2V5ID09ICcnKSkge1xuXHRcdFx0Y29sLmkxOG5LZXkgPSBgdGFibGVzLiR7Z3JpZE9wdGlvbnMubW9kZWxOYW1lfS4ke2NvbC5maWVsZH1gO1xuXHRcdH1cblx0XHRpZiAoY29sLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGNvbC50ZXh0V3JhcCAmJiBjb2wuY2VsbEVkaXRvciAhPT0gJ2NlbGxFZGl0VGV4dGFyZWFDb21wb25lbnQnKSB7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gJ2NlbGwtd3JhcC10ZXh0Jztcblx0XHR9XG5cdFx0aWYgKGNvbC5jZWxsRWRpdG9yID09PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGNvbC53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gYXBwZW5kQ2VsbENsYXNzKGNvbC5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoY29sKTtcblx0XHR9XG5cdFx0Y29sLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGNvbC5oZWFkZXJWYWx1ZUdldHRlciwgY29sKTtcblx0XHRpZiAoY29sLnJvd1NwYW5Db25mKSB7XHJcblx0XHRcdGxldCByb3dTcGFuID0ge1xyXG5cdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXI6ICdyb3dTcGFuUmVuZGVyZXInLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG5cdFx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH07XHJcblx0XHRcdE9iamVjdC5hc3NpZ24oY29sLCByb3dTcGFuKTtcclxuXHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dUcmFuc2Zvcm0gPSB0cnVlO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHR9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIgPSAoZ2V0dGVyOiBhbnksIGNvbERlZjogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiBnZXR0ZXIgIT09ICdmdW5jdGlvbicpIHtcclxuXHRcdHJldHVybiBnZXR0ZXI7XHJcblx0fVxyXG5cdHJldHVybiAocGFyYW1zOiBhbnkpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IHZhbHVlID0gZ2V0dGVyKHBhcmFtcyk7XHJcblx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xyXG5cdFx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdoZWFkZXJWYWx1ZUdldHRlciDmiafooYzlpLHotKU6JywgZXJyb3IsIGNvbERlZik7XHJcblx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdH1cclxuXHR9O1xyXG59O1xyXG5cclxuY29uc3QgcmVzb2x2ZUhlYWRlckZhbGxiYWNrID0gKGNvbERlZjogYW55KSA9PiB7XHJcblx0cmV0dXJuIGNvbERlZj8uaGVhZGVyTmFtZSB8fCBjb2xEZWY/LmZpZWxkIHx8ICcnO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRHcmlkID0gKHRoaXNBcmc6IGFueSwgZ3JpZExpc3Q6IGFueSwgZml0ZXJQcmVsb2FkczogYW55KSA9PiB7XHJcblx0Z3JpZExpc3QuZm9yRWFjaChhc3luYyAoaXRlbTogYW55KSA9PiB7XHJcblx0XHQhaXRlbS50eXBlICYmIChpdGVtLnR5cGUgPSAnZ3JpZCcpO1xyXG5cdFx0bGV0IGdyaWQ6IGFueSA9IHsgdHlwZTogaXRlbS50eXBlIH07XHJcblx0XHRpZiAoaXRlbS5maXRlclByZWxvYWRzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0Zml0ZXJQcmVsb2Fkcy5wdXNoKC4uLml0ZW0uZml0ZXJQcmVsb2Fkcyk7XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS50eXBlID09ICdncmlkJykge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zOiB7IGNvbHVtbkRlZnMsIC4uLnJlc3RHcmlkT3B0aW9ucyB9LFxyXG5cdFx0XHRcdHN1YlRhYmxlU291cmNlLFxyXG5cdFx0XHRcdHN1YkRhdGFLZXksXHJcblx0XHRcdFx0dGl0bGUsXHJcblx0XHRcdFx0c2VsZWN0RGF0YUNiLFxyXG5cdFx0XHRcdGZrLFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHR1bmlxdWVGaWVsZCxcclxuXHRcdFx0XHRhZGREYXRhQ2IsXHJcblx0XHRcdFx0ZGVsZXRlRnVuYyxcclxuXHRcdFx0XHRkZWxldGVIaWRkZW4sXHJcblx0XHRcdFx0c2hvd0RlbGV0ZSA9IHRydWUsXHJcblx0XHRcdFx0YWRkSGlkZGVuLFxyXG5cdFx0XHRcdHNjcm9sbEhlaWdodCxcclxuXHRcdFx0XHRkcmFnU29ydCxcclxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlLFxyXG5cdFx0XHRcdGlzUm93U2VsZWN0YWJsZSxcclxuXHRcdFx0XHRhZGRTb3J0LFxyXG5cdFx0XHRcdHJlZmVyZW5jZSxcclxuXHRcdFx0XHRzbG90S2V5LFxyXG5cdFx0XHRcdHN1YlNhdmUsXHJcblx0XHRcdFx0Z3JpZEN1c3RvbURpc2FibGVkXHJcblx0XHRcdH0gPSBpdGVtO1xyXG5cdFx0XHRncmlkID0geyBzdWJUYWJsZVNvdXJjZSwgc3ViRGF0YUtleSwgdGl0bGUsIHNob3dEZWxldGUsIHNsb3RLZXksIHN1YlNhdmUsIGRlbGV0ZUZ1bmMsIGRlbGV0ZUhpZGRlbiwgYWRkSGlkZGVuLCBncmlkQ3VzdG9tRGlzYWJsZWQsIC4uLmdyaWQgfTtcclxuXHRcdFx0bGV0IGdyaWRPcHRpb25zID0ge1xyXG5cdFx0XHRcdC4uLnJlc3RHcmlkT3B0aW9ucyxcclxuXHRcdFx0XHRmayxcclxuXHRcdFx0XHRzdWJUYWJsZVNvdXJjZSxcclxuXHRcdFx0XHRzdWJEYXRhS2V5LFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHRyZWZlcmVuY2UsXHJcblx0XHRcdH07XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0aWYgKHdpbmRvdy5hcHBJc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGdyaWQuaTE4bktleSA9IGB0YWJsZXMuJHt0aGlzQXJnLmdldFBybS5tb2RlbE5hbWV9LiR7c3ViRGF0YUtleX1gO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChncmlkT3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ2NsaWVudFNpZGUnKSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dWaXJ0dWFsaXNhdGlvbiA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNjcm9sbEhlaWdodCkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZHJhZ1NvcnQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dEcmFnTWFuYWdlZCA9IHRydWU7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuZHJhZ1NvcnQgPSBkcmFnU29ydDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSBzZWxlY3Rpb25Nb2RlO1xyXG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdFx0XHRtb2RlOiBzZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnID8gJ3NpbmdsZVJvdycgOiAnbXVsdGlSb3cnLFxyXG5cdFx0XHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSA/IGlzUm93U2VsZWN0YWJsZSA6IG51bGwsXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnZlcnRDb2woZ3JpZE9wdGlvbnMsIGNvbHVtbkRlZnMsIHRoaXNBcmcuYXV0aExldmVsLCBkcmFnU29ydCk7XHJcblx0XHRcdGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSBjb2x1bW5EZWZzO1xyXG5cdFx0XHRpZiAoc3ViVGFibGVTb3VyY2UgPT09ICdzZWxlY3QnICYmIGl0ZW0uc2VsZWN0TW9kZWxDb2RlKSB7XHJcblx0XHRcdFx0dGhpc0FyZy53ZWJnZXQoeyBjb2RlOiBpdGVtLnNlbGVjdE1vZGVsQ29kZSB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VsZWN0Q29udGVudCA9IHBhcnNlRnVuY3Rpb25zKEpTT04ucGFyc2UocmVzLmNvbnRlbnQpLCB0aGlzQXJnKTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucyA9IHNlbGVjdENvbnRlbnQ/LmdyaWRPcHRpb25zO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnJvd01vZGVsVHlwZSA9IGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgfHwgJ3NlcnZlclNpZGUnO1xyXG5cdFx0XHRcdFx0aWYgKGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ3NlcnZlclNpZGUnKSB7XHJcblx0XHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jID0gZ3JpZC5zZWxlY3RPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Z3JpZC51bmlxdWVGaWVsZCA9IHVuaXF1ZUZpZWxkO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhQ2IgPSBzZWxlY3REYXRhQ2I7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJzMwMHB4JztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZWFyY2hQcm0gPSBzZWxlY3RDb250ZW50LnNlYXJjaFBybTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0TW9kZWxDb2RlID0gaXRlbS5zZWxlY3RNb2RlbENvZGU7XHJcblx0XHRcdFx0XHRjb252ZXJ0Q29sKGdyaWQuc2VsZWN0T3B0aW9ucywgZ3JpZC5zZWxlY3RPcHRpb25zLmNvbHVtbkRlZnMhLCAxKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRncmlkLnNlYXJjaFBybSA9IHsgLi4udGhpc0FyZy5zZWFyY2hQcm0gfTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhZGREYXRhQ2IgJiYgKGdyaWRPcHRpb25zLmFkZERhdGFDYiA9IGFkZERhdGFDYik7XHJcblx0XHRcdH1cclxuXHRcdFx0Z3JpZC5ncmlkT3B0aW9ucyA9IGdyaWRPcHRpb25zO1xyXG5cdFx0XHRhZGRTb3J0ICYmIChncmlkLmFkZFNvcnQgPSBhZGRTb3J0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGl0ZW0uaW50ZXJhY3RpdmVMYWJlbCA9IHRydWU7XHJcblx0XHRcdGdyaWQgPSB7XHJcblx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0fTtcclxuXHRcdFx0Z3JpZC5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzQXJnLmdyaWRzLnB1c2goZ3JpZCk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEZvcm0gPSAodGhpc0FyZzogYW55LCBncm91cEFycjogYW55LCBzb3VyY2VEYXRhOiBhbnkpID0+IHtcclxuXHRncm91cEFyci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdGlmICh0aGlzQXJnLmF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbVtmb3JtVHlwZVRvUHJvcHNbaXRlbS50eXBlXV0uZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cdHRoaXNBcmcuZm9ybU9wdGlvbnMgPSB7XHJcblx0XHRmaWVsZHM6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGdyb3VwQ2xhc3M6ICdmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCcsXHJcblx0XHRcdFx0Z3JvdXA6IGdyb3VwQXJyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdGZvcm06IG5ldyBGb3JtR3JvdXAoe30pLFxyXG5cdFx0bWFpbkZpZWxkOiBzb3VyY2VEYXRhLm1vZGVsLm1haW5GaWVsZHMsXHJcblx0XHRtb2RlbE5hbWU6IHNvdXJjZURhdGEubW9kZWwubW9kZWxOYW1lLFxyXG5cdFx0ZXh0cmE6IHsgdGhpc0FyZyB9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJMb2NhbCA9ICgpID0+IHtcclxuXHRsZXQgdGhlbWVDb25maWdTdGF0ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScpO1xyXG5cdHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHRpZiAodGhlbWVDb25maWdTdGF0ZSkge1xyXG5cdFx0d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZUNvbmZpZ1N0YXRlJywgdGhlbWVDb25maWdTdGF0ZSk7XHJcblx0fVxyXG5cdHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhZ2VMaXN0R3JpZE9wdGlvbnMgPSAoZ3JpZE9wdGlvbnM6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJ2NhbGMoMTAwdmggLSA5NXB4KSc7XHJcblx0Z3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID0gZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0Z3JpZE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGdyaWRPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkT3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH1cclxuXHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0Ly8gZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGVcclxuXHRcdGlmIChncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0bW9kZTogZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA/IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGdyaWRPcHRpb25zLmhhc093blByb3BlcnR5KCdoZWFkZXJDaGVja2JveCcpICYmIGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbi5tb2RlID09ICdtdWx0aVJvdycpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24uaGVhZGVyQ2hlY2tib3ggPSBncmlkT3B0aW9ucy5oZWFkZXJDaGVja2JveDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBncmlkT3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0cmV0dXJuIGdyaWRPcHRpb25zO1xyXG59O1xyXG4vLyDmt7Hluqbmi7fotJ1cclxuZXhwb3J0IGNvbnN0IGRlZXBDbG9uZSA9IChzb3VyY2U6IGFueSwgdGhhdDogYW55LCBjYWNoZT86IGFueSkgPT4ge1xyXG5cdGlmICghY2FjaGUpIHtcclxuXHRcdGNhY2hlID0gbmV3IE1hcCgpO1xyXG5cdH1cclxuXHRpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG5cdGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuXHRcdC8vIOS4jeiAg+iZkei3qCBpZnJhbWVcclxuXHRcdGlmIChjYWNoZS5nZXQoc291cmNlKSkge1xyXG5cdFx0XHRyZXR1cm4gY2FjaGUuZ2V0KHNvdXJjZSk7XHJcblx0XHR9XHJcblx0XHRsZXQgcmVzdWx0OiBhbnk7XHJcblx0XHRpZiAoc291cmNlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5wcm90b3R5cGUpIHtcclxuXHRcdFx0XHQvLyDmnIkgcHJvdG90eXBlIOWwseaYr+aZrumAmuWHveaVsFxyXG5cdFx0XHRcdHJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdCA9ICguLi5hcmdzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuY2FsbCh1bmRlZmluZWQsIC4uLmFyZ3MpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0cmVzdWx0ID0gW107XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IERhdGUoKHNvdXJjZSBhcyBhbnkpIC0gMCk7XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgUmVnRXhwKHNvdXJjZS5zb3VyY2UsIHNvdXJjZS5mbGFncyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHQgPSB7fTtcclxuXHRcdH1cclxuXHRcdGNhY2hlLnNldChzb3VyY2UsIHJlc3VsdCk7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcblx0XHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gZGVlcENsb25lKHNvdXJjZVtrZXldLCB0aGF0LCBjYWNoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG59O1xyXG4iXX0=
|
|
607
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztTQUFNLENBQUM7UUFDUCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7QUFDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgcGlwZSwgZm9ya0pvaW4sIGZpcnN0VmFsdWVGcm9tLCBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcclxuaW1wb3J0IHsgZm9ybVR5cGVUb1Byb3BzIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCBOUCBmcm9tICdudW1iZXItcHJlY2lzaW9uJztcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlck1hdGNoTW9kZSA9ICdlbmRzV2l0aCcgfCAnc3RhcnRzV2l0aCcgfCAnY29udGFpbnMnIHwgJ2VxdWFscycgfCAnbm90RXF1YWxzJyB8ICdpbicgfCAnbHQnIHwgJ2x0ZScgfCAnZ3QnIHwgJ2d0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyTWF0Y2hNb2RlID0gKG1vZGU6IGFueSk6IEZpbHRlck1hdGNoTW9kZSA9PiB7XHJcblx0Ly8g5pyq6YWN572u5pe25L2/55SoIFByaW1lTkcg6buY6K6kIGNvbnRhaW5zXHJcblx0aWYgKCFtb2RlKSB7XHJcblx0XHRyZXR1cm4gJ2NvbnRhaW5zJztcclxuXHR9XHJcblx0cmV0dXJuIG1vZGU7XHJcbn07XHJcbmV4cG9ydCBsZXQgdG9QYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxyXG5cdHN0clxyXG5cdFx0LnJlcGxhY2UoL18vZywgJyAnKSAvLyDkuIvliJLnur/mm7/mjaLkuLrnqbrmoLxcclxuXHRcdC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEgJDInKSAvLyDlsI/pqbzls7DliIblibLkuLrljZXor41cclxuXHRcdC50b0xvd2VyQ2FzZSgpIC8vIOi9rOS4uuWwj+WGmVxyXG5cdFx0LnNwbGl0KC9cXHMrLykgLy8g5oyJ56m65qC85YiG5YmyXHJcblx0XHQubWFwKCh3b3JkKSA9PiAod29yZCA/IHdvcmRbMF0udG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkgOiAnJykpXHJcblx0XHQuam9pbignJyk7XHJcblxyXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVVbmlxdWVJZCA9ICgpID0+IHtcclxuXHRjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpLnRvU3RyaW5nKDM2KTsgLy8g5pe26Ze05oiz6L2sMzbov5vliLbnvKnnn63plb/luqZcclxuXHRjb25zdCByYW5kb20gPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgNCk7IC8vIOmaj+acuumDqOWIhlxyXG5cdHJldHVybiBgJHt0aW1lc3RhbXB9JHtyYW5kb219YDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVDaXJjdWxhckl0ZXJhdG9yID0gKGFycmF5OiBhbnlbXSkgPT4ge1xyXG5cdGxldCBpbmRleCA9IC0xO1xyXG5cdHJldHVybiB7XHJcblx0XHRuZXh0OiAoKSA9PiB7XHJcblx0XHRcdGluZGV4Kys7XHJcblx0XHRcdHJldHVybiBhcnJheVtpbmRleCAlIGFycmF5Lmxlbmd0aF07XHJcblx0XHR9LFxyXG5cdFx0cHJldjogKCkgPT4ge1xyXG5cdFx0XHRpbmRleC0tO1xyXG5cdFx0XHRyZXR1cm4gYXJyYXlbKChpbmRleCAlIGFycmF5Lmxlbmd0aCkgKyBhcnJheS5sZW5ndGgpICUgYXJyYXkubGVuZ3RoXTtcclxuXHRcdH0sXHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBwYXJzZUZ1bmN0aW9ucyA9IChvYmo6IGFueSwgX3RoaXM6IGFueSk6IGFueSA9PiB7XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcblx0XHQvLyDlsJ3or5Xmo4DmtYvmmK/lkKbmmK/lh73mlbDlrZfnrKbkuLJcclxuXHRcdGlmICgob2JqLmluY2x1ZGVzKCc9PicpIHx8IG9iai5pbmNsdWRlcygnUHJvbWlzZScpKSAmJiAhaXNKU09OUGFyc2FibGUob2JqKSkge1xyXG5cdFx0XHRjb25zdCBvID0gY29tcGlsZVRzVG9KcyhvYmopO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygn6Kej5p6Q5Ye95pWwOicsIG9iaik7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0Y29uc3Qgc2FuZGJveCA9IHtcclxuXHRcdFx0XHRcdE9ic2VydmFibGUsXHJcblx0XHRcdFx0XHRvZixcclxuXHRcdFx0XHRcdGZvcmtKb2luLFxyXG5cdFx0XHRcdFx0bWFwLFxyXG5cdFx0XHRcdFx0c2hhcmVSZXBsYXksXHJcblx0XHRcdFx0XHRwaXBlLFxyXG5cdFx0XHRcdFx0UHJvbWlzZSwgLy8g5re75YqgIFByb21pc2Ug5YiwIHNhbmRib3hcclxuXHRcdFx0XHRcdGFzeW5jOiB0cnVlLCAvLyDmoIforrDmlK/mjIHlvILmraVcclxuXHRcdFx0XHRcdHJlc29sdmU6IFByb21pc2UucmVzb2x2ZS5iaW5kKFByb21pc2UpLFxyXG5cdFx0XHRcdFx0cmVqZWN0OiBQcm9taXNlLnJlamVjdC5iaW5kKFByb21pc2UpLFxyXG5cdFx0XHRcdFx0TlAsXHJcblx0XHRcdFx0XHRmaXJzdFZhbHVlRnJvbSxcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHQvLyDlpITnkIYgUHJvbWlzZSDmnoTpgKDlh73mlbDnmoTmg4XlhrVcclxuXHRcdFx0XHRpZiAob2JqLmluY2x1ZGVzKCduZXcgUHJvbWlzZScpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0XHQnc2FuZGJveCcsXHJcblx0XHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiAke299O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0YCxcclxuXHRcdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDlpITnkIbmma7pgJrlh73mlbDlkoznrq3lpLTlh73mlbBcclxuXHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0YFxyXG5cdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCR7b30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRgLFxyXG5cdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCflh73mlbDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBvYmopO1xyXG5cdFx0XHRcdHJldHVybiBvYmo7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmIChpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShvYmopO1xyXG5cdFx0XHRyZXR1cm4gcGFyc2VGdW5jdGlvbnMoanNvbiwgX3RoaXMpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG9iajtcclxuXHR9XHJcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG5cdFx0cmV0dXJuIG9iai5tYXAoKGl0ZW06IGFueSkgPT4gcGFyc2VGdW5jdGlvbnMoaXRlbSwgX3RoaXMpKTtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xyXG5cdFx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG5cdFx0XHRpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IHBhcnNlRnVuY3Rpb25zKG9ialtrZXldLCBfdGhpcyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gb2JqO1xyXG59O1xyXG5cclxuLy8g6L6F5Yqp5Ye95pWw77ya5qOA5p+l5piv5ZCm5YyF5ZCrIFByb21pc2Ug5p6E6YCg5Ye95pWwXHJcbmNvbnN0IGNvbnRhaW5zUHJvbWlzZUNvbnN0cnVjdG9yID0gKHN0cjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcblx0cmV0dXJuIC9uZXdcXHMrUHJvbWlzZS8udGVzdChzdHIpO1xyXG59O1xyXG5cclxuLy8g5L+u5pS5IGNvbXBpbGVUc1RvSnMg5Ye95pWw5Lul5pu05aW95Zyw5aSE55CGIFByb21pc2VcclxuZXhwb3J0IGNvbnN0IGNvbXBpbGVUc1RvSnMgPSAodHNDb2RlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWmguaenOaYryBQcm9taXNlIOaehOmAoOWHveaVsO+8jOS4jemcgOimgemineWkluWkhOeQhlxyXG5cdGlmIChjb250YWluc1Byb21pc2VDb25zdHJ1Y3Rvcih0c0NvZGUpKSB7XHJcblx0XHRyZXR1cm4gdHNDb2RlO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgcmVzdWx0ID0gdHMudHJhbnNwaWxlTW9kdWxlKHRzQ29kZSwge1xyXG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XHJcblx0XHRcdG1vZHVsZTogdHMuTW9kdWxlS2luZC5Db21tb25KUyxcclxuXHRcdFx0dGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDE1LFxyXG5cdFx0XHQvLyDlkK/nlKjlvILmraXlh73mlbDmlK/mjIFcclxuXHRcdFx0bGliOiBbJ2VzMjAxNScsICdlczIwMTUucHJvbWlzZScsICdkb20nXSxcclxuXHRcdH0sXHJcblx0fSk7XHJcblx0cmV0dXJuIHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uKHJlc3VsdC5vdXRwdXRUZXh0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uID0gKGZ1bmNTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0Ly8g5YWI5Y676Zmk5YmN5ZCO56m655m9XHJcblx0Y29uc3QgdHJpbW1lZCA9IGZ1bmNTdHIudHJpbSgpO1xyXG5cdC8vIOWPquabv+aNouacgOWQjuS4gOS4quWIhuWPt++8iOWmguaenOWug+S4jeWcqOiKseaLrOWPt+WGhe+8iVxyXG5cdGlmICh0cmltbWVkLmVuZHNXaXRoKCc7JykpIHtcclxuXHRcdHJldHVybiB0cmltbWVkLnNsaWNlKDAsIC0xKTtcclxuXHR9XHJcblx0cmV0dXJuIHRyaW1tZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNKU09OUGFyc2FibGUgPSAoc3RyOiBhbnkpID0+IHtcclxuXHR0cnkge1xyXG5cdFx0SlNPTi5wYXJzZShzdHIpO1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0Ly8gbGV0IHN0cklzT2JqID0gL1xce1tefV0qXFx9fFxcW1teXFxdXSpcXF0vLnRlc3Qoc3RyKVxyXG5cdFx0Ly8gaWYoc3RySXNPYmope1xyXG5cdFx0Ly8gXHRjb25zb2xlLmVycm9yKCdKU09OIOino+aekOWksei0pTonLCBlLCAnXFxu5Y6f5aeL5a2X56ym5LiyOicsIHN0cilcclxuXHRcdC8vIH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn07XHJcblxyXG4vKipcclxuICog5qC55o2u5oyH5a6a55qE6ZSu5pWw57uE6L+H5ruk5a+56LGhXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSDopoHov4fmu6TnmoTljp/lp4vlr7nosaFcclxuICogQHBhcmFtIHtBcnJheX0ga2V5cyAtIOmcgOimgeS/neeVmeeahOmUruaVsOe7hFxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSDov4fmu6TlkI7nmoTmlrDlr7nosaFcclxuICovXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJPYmplY3RCeUtleXMgPSAob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdKSA9PiB7XHJcblx0Ly8g5Y+C5pWw5qCh6aqMXHJcblx0aWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ+esrOS4gOS4quWPguaVsOW/hemhu+aYr+aZrumAmuWvueixoScpO1xyXG5cdH1cclxuXHJcblx0aWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuozkuKrlj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcclxuXHR9XHJcblxyXG5cdC8vIOS9v+eUqHJlZHVjZeWIm+W7uuaWsOWvueixoVxyXG5cdHJldHVybiBrZXlzLnJlZHVjZSgoYWNjOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHQvLyDlj6rmnInlvZPljp/lr7nosaHmnInor6XlsZ7mgKfml7bmiY3mt7vliqDliLDmlrDlr7nosaFcclxuXHRcdGlmIChrZXkgaW4gb2JqKSB7XHJcblx0XHRcdGFjY1trZXldID0gb2JqW2tleV07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIHt9KTtcclxufTtcclxuLyoqXHJcbiAqIOiHquWumuS5ieWHveaVsOWOu+mZpOepuuWtl+espuS4slxyXG4gKiBAcGFyYW0gYWN0XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY29udmVydEFjdCA9IChhY3Q6IGFueSkgPT4ge1xyXG5cdGFjdC5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdidG5IaWRkZW4nKSAmJiB0eXBlb2Ygdi5idG5IaWRkZW4gIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5IaWRkZW47XHJcblx0XHR9XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuRGlzYWJsZWQnKSAmJiB0eXBlb2Ygdi5idG5EaXNhYmxlZCAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2LmJ0bkRpc2FibGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSAmJiB0eXBlb2Ygdi5vbkNsaWNrICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYub25DbGljaztcclxuXHRcdH1cclxuXHR9KTtcclxuXHRyZXR1cm4gYWN0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIGZvcm1wYWdlIOmAmueUqGNvbnRlbnTlh73mlbDovaznp7tcclxuICogQHBhcmFtIGNvbnRlbnRcclxuICogQHBhcmFtIHRoaXNBcmdcclxuICovXHJcbmV4cG9ydCBjb25zdCBjaGFuZ2VDb250ZW50ID0gKGNvbnRlbnQ6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Ly8gQHRzLWlnbm9yZVxyXG5cdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0Y29udGVudCA9IHBhcnNlRnVuY3Rpb25zKGNvbnRlbnQsIHRoaXNBcmcpO1xyXG5cdHRoaXNBcmcucGFnZUNvbnRlbnQgPSBjb250ZW50O1xyXG5cdGxldCB7IGdyaWRMaXN0LCBocmVmQnRuTGlzdCwgZ2V0UHJtLCBncm91cHMsIHN0YXR1c0tleSwgc3RhdHVzLCBzdGF0dXNTdGVwcywgc3RhdHVzQ29uZiA9IG51bGwgfSA9IGNvbnRlbnQ7XHJcblx0aWYgKHN0YXR1c0tleSkge1xyXG5cdFx0dGhpc0FyZy5zdGF0dXNLZXkgPSBzdGF0dXNLZXk7XHJcblx0XHRzdGF0dXNTdGVwcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdFx0aXRlbS5pMThuS2V5ID0gYHRhYmxlcy4ke2dldFBybS5tb2RlbE5hbWV9LiR7c3RhdHVzS2V5fSR7aXRlbS52YWx1ZX1gO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXNBcmcuc3RlcHMgPSBzdGF0dXNTdGVwcztcclxuXHRcdHN0YXR1c0NvbmYgJiYgKHRoaXNBcmcuc3RhdHVzQ29uZiA9IHN0YXR1c0NvbmYpO1xyXG5cdH1cclxuXHJcblx0dGhpc0FyZy5hY3Rpb25zID0gY29udmVydEFjdChjb250ZW50LmFjdGlvbnMpO1xyXG5cdGNvbnRlbnQuZm9ybURpc2FibGVkICYmICh0aGlzQXJnLmZvcm1EaXNhYmxlZCA9IGNvbnRlbnQuZm9ybURpc2FibGVkKTtcclxuXHR0aGlzQXJnLmdldFBybSA9IGdldFBybTtcclxuXHR0aGlzQXJnLmdldFBybS5vcmdGaWVsZCA9IGNvbnRlbnQub3JnRmllbGQgfHwgJyc7XHJcblx0dGhpc0FyZy5ncmlkcyA9IFtdO1xyXG5cdGxldCBmaXRlclByZWxvYWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRjb252ZXJ0Rm9ybSh0aGlzQXJnLCBncm91cHMsIGNvbnRlbnQuc291cmNlRGF0YSk7XHJcblx0Y29udmVydEdyaWQodGhpc0FyZywgZ3JpZExpc3QsIGZpdGVyUHJlbG9hZHMpO1xyXG5cclxuXHR0aGlzQXJnLmZvcm1EZXRhaWwgPSBjb250ZW50LmZvcm1EZXRhaWw7XHJcblx0dGhpc0FyZy5zYXZlRnVuYyA9IGNvbnRlbnQuc2F2ZUZ1bmM7XHJcblx0dGhpc0FyZy5pc0xvZyA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2dldExvZyddID0gY29udGVudC5zb3VyY2VEYXRhLm1vZGVsLmxvZztcclxuXHR0aGlzQXJnLmdldFBybVsnZml0ZXJQcmVsb2FkcyddID0gZml0ZXJQcmVsb2FkcztcclxuXHR0aGlzQXJnLmhyZWZCdG5MaXN0ID0gaHJlZkJ0bkxpc3Q7XHJcblx0dGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgPSBjb250ZW50LnJ1bnRpbWVDb250ZXh0SW5pdDtcclxuXHRleGVjdXRlUnVudGltZUNvbnRleHRJbml0KHRoaXNBcmcpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVSdW50aW1lQ29udGV4dEluaXQgPSAodGhpc0FyZzogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBjb250ZXh0ID0ge1xyXG5cdFx0Y29tcG9uZW50OiB0aGlzQXJnLFxyXG5cdFx0aHR0cDogdGhpc0FyZy5odHRwLFxyXG5cdFx0cm91dGU6IHRoaXNBcmcucm91dGUsXHJcblx0XHRyb3V0ZXI6IHRoaXNBcmcucm91dGVyLFxyXG5cdFx0cnVudGltZUNvbnRleHQ6IHRoaXNBcmcucnVudGltZUNvbnRleHQsXHJcblx0fTtcclxuXHRjb25zdCByZXN1bHQgPSB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdChjb250ZXh0KTtcclxuXHRyZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQodGhpc0FyZywgcmVzdWx0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlc29sdmVSdW50aW1lQ29udGV4dFJlc3VsdCA9IGFzeW5jICh0aGlzQXJnOiBhbnksIHJlc3VsdDogYW55KSA9PiB7XHJcblx0bGV0IHJlc29sdmVkID0gcmVzdWx0O1xyXG5cdGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShyZXN1bHQpO1xyXG5cdH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCByZXN1bHQ7XHJcblx0fVxyXG5cdGlmIChyZXNvbHZlZCAmJiB0eXBlb2YgcmVzb2x2ZWQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc29sdmVkKSkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHQuLi5yZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge1xyXG5cdFx0XHQuLi4odGhpc0FyZy5ydW50aW1lQ29udGV4dCB8fCB7fSksXHJcblx0XHRcdHZhbHVlOiByZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7fTtcclxuXHR9XHJcblx0dGhpc0FyZy5jZHI/Lm1hcmtGb3JDaGVjaz8uKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY1Jvd1NwYW4gPSAocGFyYW1zOiBhbnksIGZpZWxkPzogc3RyaW5nKSA9PiB7XG5cdGZpZWxkID0gZmllbGQgfHwgcGFyYW1zLmNvbERlZi5maWVsZDtcclxuXHRjb25zdCBjdXJyZW50VmFsdWUgPSBwYXJhbXMuZGF0YVtmaWVsZCFdO1xyXG5cdGNvbnN0IGN1cnJlbnRSb3dJbmRleCA9IHBhcmFtcy5ub2RlLnJvd0luZGV4O1xyXG5cclxuXHRsZXQgcm93U3BhbiA9IDE7XHJcblxyXG5cdGZvciAobGV0IGkgPSBjdXJyZW50Um93SW5kZXggKyAxOyBpIDwgcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dDb3VudCgpOyBpKyspIHtcclxuXHRcdGNvbnN0IG5vZGUgPSBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoaSk7XHJcblx0XHRpZiAobm9kZS5kYXRhW2ZpZWxkIV0gPT09IGN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHRyb3dTcGFuKys7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmIChjdXJyZW50Um93SW5kZXggPiAwICYmIHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChjdXJyZW50Um93SW5kZXggLSAxKS5kYXRhW2ZpZWxkIV0gPT09IGN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0cmV0dXJuIDE7XHJcblx0fVxyXG5cdHJldHVybiByb3dTcGFuO1xufTtcblxuY29uc3QgYXBwZW5kQ2VsbENsYXNzID0gKGNlbGxDbGFzczogYW55LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuXHRpZiAoQXJyYXkuaXNBcnJheShjZWxsQ2xhc3MpKSB7XG5cdFx0cmV0dXJuIGNlbGxDbGFzcy5pbmNsdWRlcyhjbGFzc05hbWUpID8gY2VsbENsYXNzIDogWy4uLmNlbGxDbGFzcywgY2xhc3NOYW1lXTtcblx0fVxuXHRpZiAodHlwZW9mIGNlbGxDbGFzcyA9PT0gJ3N0cmluZycgJiYgY2VsbENsYXNzLmxlbmd0aCA+IDApIHtcblx0XHRyZXR1cm4gY2VsbENsYXNzLnNwbGl0KC9cXHMrLykuaW5jbHVkZXMoY2xhc3NOYW1lKSA/IGNlbGxDbGFzcyA6IGAke2NlbGxDbGFzc30gJHtjbGFzc05hbWV9YDtcblx0fVxuXHRyZXR1cm4gY2xhc3NOYW1lO1xufTtcblxuY29uc3Qgc3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIgPSAoY29sOiBhbnkpID0+IHtcblx0Y29uc3QgcmF3U3VwcHJlc3NLZXlib2FyZEV2ZW50ID0gY29sLnN1cHByZXNzS2V5Ym9hcmRFdmVudDtcblx0Y29sLnN1cHByZXNzS2V5Ym9hcmRFdmVudCA9IChwYXJhbXM6IGFueSkgPT4ge1xuXHRcdGlmICh0eXBlb2YgcmF3U3VwcHJlc3NLZXlib2FyZEV2ZW50ID09PSAnZnVuY3Rpb24nICYmIHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudChwYXJhbXMpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgZXZlbnQgPSBwYXJhbXM/LmV2ZW50O1xuXHRcdHJldHVybiAhIXBhcmFtcz8uZWRpdGluZyAmJiBldmVudD8ua2V5ID09PSAnRW50ZXInICYmICEhZXZlbnQ/LnNoaWZ0S2V5O1xuXHR9O1xufTtcblxuY29uc3QgY29udmVydFRvb2x0aXBGaWVsZCA9IChjb2w6IGFueSkgPT4ge1xuXHRpZiAoY29sLnRvb2x0aXBGaWVsZENvbmYgPT09IHRydWUgfHwgY29sLnRvb2x0aXBGaWVsZCA9PT0gdHJ1ZSkge1xuXHRcdGlmIChjb2wuZmllbGQpIHtcblx0XHRcdGNvbC50b29sdGlwRmllbGQgPSBjb2wuZmllbGQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlbGV0ZSBjb2wudG9vbHRpcEZpZWxkO1xuXHRcdH1cblx0fSBlbHNlIGlmIChjb2wudG9vbHRpcEZpZWxkQ29uZiA9PT0gZmFsc2UgfHwgY29sLnRvb2x0aXBGaWVsZCA9PT0gZmFsc2UpIHtcblx0XHRkZWxldGUgY29sLnRvb2x0aXBGaWVsZDtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDb2wgPSAob3B0aW9uczogYW55LCBjb2w6IGFueVtdLCBhdXRoTGV2ZWw6IG51bWJlciwgZHJhZ1NvcnQ/OiBzdHJpbmcpID0+IHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xuXHQvLyBjb25zb2xlLmxvZygnaXNJMThuLS0tLS0nLGlzSTE4bilcblx0Y29sLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuXHRcdGNvbnZlcnRUb29sdGlwRmllbGQoaXRlbSk7XG5cdFx0aWYgKHR5cGVvZiBpdGVtLmhpZGUgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGl0ZW0uaGlkZSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdGl0ZW0uaGlkZSA9IGl0ZW0uaGlkZUNvbCA9PT0gdHJ1ZSB8fCBpdGVtLmhpZGUgPT09IHRydWU7XG5cdFx0fVxuXHRcdGlmIChhdXRoTGV2ZWwgPCAzKSB7XG5cdFx0XHRpdGVtLmVkaXRhYmxlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGlmIChkcmFnU29ydCAmJiBpbmRleCA9PT0gMCkge1xyXG5cdFx0XHRpdGVtLnJvd0RyYWcgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XG5cdFx0XHRpdGVtLmkxOG5LZXkgPSBgdGFibGVzLiR7b3B0aW9ucy5tb2RlbE5hbWV9LiR7aXRlbS5maWVsZH1gO1xuXHRcdH1cblx0XHRpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgndGV4dFdyYXAnKSAmJiBpdGVtLnRleHRXcmFwICYmIGl0ZW0uY2VsbEVkaXRvciAhPT0gJ2NlbGxFZGl0VGV4dGFyZWFDb21wb25lbnQnKSB7XG5cdFx0XHRpdGVtLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0aXRlbS5jZWxsQ2xhc3MgPSAnY2VsbC13cmFwLXRleHQnO1xuXHRcdH1cblx0XHRpZiAoaXRlbS5jZWxsRWRpdG9yID09PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGl0ZW0ud3JhcFRleHQgPSB0cnVlO1xuXHRcdFx0aXRlbS5hdXRvSGVpZ2h0ID0gdHJ1ZTtcblx0XHRcdGl0ZW0uY2VsbENsYXNzID0gYXBwZW5kQ2VsbENsYXNzKGl0ZW0uY2VsbENsYXNzLCAnY2VsbC10ZXh0YXJlYS13cmFwLXRleHQnKTtcblx0XHRcdHN1cHByZXNzVGV4dGFyZWFTaGlmdEVudGVyKGl0ZW0pO1xuXHRcdH1cblx0XHRpZiAoaXRlbS5maWVsZFR5cGUgPT0gJ1ZBUkNIQVInKSB7XG5cdFx0XHRpdGVtLmNlbGxEYXRhVHlwZSA9IGZhbHNlO1xuXHRcdH1cblx0XHRpdGVtLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIsIGl0ZW0pO1xyXG5cdFx0aWYgKGl0ZW0ucm93U3BhbkNvbmYpIHtcclxuXHRcdFx0bGV0IHJvd1NwYW4gPSB7XHJcblx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogJ3Jvd1NwYW5SZW5kZXJlcicsXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyUGFyYW1zOiB7XHJcblx0XHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0fTtcclxuXHRcdFx0T2JqZWN0LmFzc2lnbihpdGVtLCByb3dTcGFuKTtcclxuXHRcdFx0b3B0aW9ucy5zdXBwcmVzc1Jvd1RyYW5zZm9ybSA9IHRydWU7XHJcblx0XHRcdG9wdGlvbnMucm93Q2xhc3MgPSAncm93U3Bhbic7XHJcblx0XHR9XHJcblx0XHQvLyBpZihpdGVtLmVkaXRhYmxlKXtcclxuXHRcdC8vIFx0aXRlbS5oZWFkZXJDbGFzcyA9IGl0ZW0uaGFzT3duUHJvcGVydHkoJ2hlYWRlckNsYXNzJylcclxuXHRcdC8vIFx0XHQ/IGAke2l0ZW0uaGVhZGVyQ2xhc3N9IGVkaXRhYmxlLWNvbHVtbi1oZWFkZXJgXHJcblx0XHQvLyBcdFx0OiAnZWRpdGFibGUtY29sdW1uLWhlYWRlcidcclxuXHRcdC8vIH1cclxuXHR9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBncmlkT3B0aW9uc0hvb2tlciA9IChncmlkT3B0aW9uczogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnM/LmNvbHVtbkRlZnM/LmZvckVhY2goKGNvbDogYW55KSA9PiB7XHJcblx0XHRpZiAoY29sLmhpZGVDb2wpIHtcclxuXHRcdFx0Y29sLmhpZGUgPSBjb2wuaGlkZUNvbDtcclxuXHRcdFx0ZGVsZXRlIGNvbC5oaWRlQ29sO1xyXG5cdFx0fVxyXG5cdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcclxuXHRcdGlmIChpc0kxOG4gJiYgKCFjb2wuaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBjb2wuaTE4bktleSA9PSAnJykpIHtcblx0XHRcdGNvbC5pMThuS2V5ID0gYHRhYmxlcy4ke2dyaWRPcHRpb25zLm1vZGVsTmFtZX0uJHtjb2wuZmllbGR9YDtcblx0XHR9XG5cdFx0aWYgKGNvbC5oYXNPd25Qcm9wZXJ0eSgndGV4dFdyYXAnKSAmJiBjb2wudGV4dFdyYXAgJiYgY29sLmNlbGxFZGl0b3IgIT09ICdjZWxsRWRpdFRleHRhcmVhQ29tcG9uZW50Jykge1xuXHRcdFx0Y29sLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0Y29sLmNlbGxDbGFzcyA9ICdjZWxsLXdyYXAtdGV4dCc7XG5cdFx0fVxuXHRcdGlmIChjb2wuY2VsbEVkaXRvciA9PT0gJ2NlbGxFZGl0VGV4dGFyZWFDb21wb25lbnQnKSB7XG5cdFx0XHRjb2wud3JhcFRleHQgPSB0cnVlO1xuXHRcdFx0Y29sLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0Y29sLmNlbGxDbGFzcyA9IGFwcGVuZENlbGxDbGFzcyhjb2wuY2VsbENsYXNzLCAnY2VsbC10ZXh0YXJlYS13cmFwLXRleHQnKTtcblx0XHRcdHN1cHByZXNzVGV4dGFyZWFTaGlmdEVudGVyKGNvbCk7XG5cdFx0fVxuXHRcdGNvbC5oZWFkZXJWYWx1ZUdldHRlciA9IHdyYXBIZWFkZXJWYWx1ZUdldHRlcihjb2wuaGVhZGVyVmFsdWVHZXR0ZXIsIGNvbCk7XG5cdFx0aWYgKGNvbC5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGNvbCwgcm93U3Bhbik7XHJcblx0XHRcdGdyaWRPcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93Q2xhc3MgPSAncm93U3Bhbic7XHJcblx0XHR9XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgd3JhcEhlYWRlclZhbHVlR2V0dGVyID0gKGdldHRlcjogYW55LCBjb2xEZWY6IGFueSkgPT4ge1xyXG5cdGlmICh0eXBlb2YgZ2V0dGVyICE9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRyZXR1cm4gZ2V0dGVyO1xyXG5cdH1cclxuXHRyZXR1cm4gKHBhcmFtczogYW55KSA9PiB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCB2YWx1ZSA9IGdldHRlcihwYXJhbXMpO1xyXG5cdFx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuXHRcdFx0XHRyZXR1cm4gcmVzb2x2ZUhlYWRlckZhbGxiYWNrKHBhcmFtcz8uY29sRGVmIHx8IGNvbERlZik7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHZhbHVlO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignaGVhZGVyVmFsdWVHZXR0ZXIg5omn6KGM5aSx6LSlOicsIGVycm9yLCBjb2xEZWYpO1xyXG5cdFx0XHRyZXR1cm4gcmVzb2x2ZUhlYWRlckZhbGxiYWNrKHBhcmFtcz8uY29sRGVmIHx8IGNvbERlZik7XHJcblx0XHR9XHJcblx0fTtcclxufTtcclxuXHJcbmNvbnN0IHJlc29sdmVIZWFkZXJGYWxsYmFjayA9IChjb2xEZWY6IGFueSkgPT4ge1xyXG5cdHJldHVybiBjb2xEZWY/LmhlYWRlck5hbWUgfHwgY29sRGVmPy5maWVsZCB8fCAnJztcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjb252ZXJ0R3JpZCA9ICh0aGlzQXJnOiBhbnksIGdyaWRMaXN0OiBhbnksIGZpdGVyUHJlbG9hZHM6IGFueSkgPT4ge1xyXG5cdGdyaWRMaXN0LmZvckVhY2goYXN5bmMgKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0IWl0ZW0udHlwZSAmJiAoaXRlbS50eXBlID0gJ2dyaWQnKTtcclxuXHRcdGxldCBncmlkOiBhbnkgPSB7IHR5cGU6IGl0ZW0udHlwZSB9O1xyXG5cdFx0aWYgKGl0ZW0uZml0ZXJQcmVsb2FkcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcblx0XHRcdGZpdGVyUHJlbG9hZHMucHVzaCguLi5pdGVtLmZpdGVyUHJlbG9hZHMpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGl0ZW0udHlwZSA9PSAnZ3JpZCcpIHtcclxuXHRcdFx0bGV0IHtcclxuXHRcdFx0XHRncmlkT3B0aW9uczogeyBjb2x1bW5EZWZzLCAuLi5yZXN0R3JpZE9wdGlvbnMgfSxcclxuXHRcdFx0XHRzdWJUYWJsZVNvdXJjZSxcclxuXHRcdFx0XHRzdWJEYXRhS2V5LFxyXG5cdFx0XHRcdHRpdGxlLFxyXG5cdFx0XHRcdHNlbGVjdERhdGFDYixcclxuXHRcdFx0XHRmayxcclxuXHRcdFx0XHRtYWluRmllbGQsXHJcblx0XHRcdFx0dW5pcXVlRmllbGQsXHJcblx0XHRcdFx0YWRkRGF0YUNiLFxyXG5cdFx0XHRcdGRlbGV0ZUZ1bmMsXHJcblx0XHRcdFx0ZGVsZXRlSGlkZGVuLFxyXG5cdFx0XHRcdHNob3dEZWxldGUgPSB0cnVlLFxyXG5cdFx0XHRcdGFkZEhpZGRlbixcclxuXHRcdFx0XHRzY3JvbGxIZWlnaHQsXHJcblx0XHRcdFx0ZHJhZ1NvcnQsXHJcblx0XHRcdFx0c2VsZWN0aW9uTW9kZSxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGUsXHJcblx0XHRcdFx0YWRkU29ydCxcclxuXHRcdFx0XHRyZWZlcmVuY2UsXHJcblx0XHRcdFx0c2xvdEtleSxcclxuXHRcdFx0XHRzdWJTYXZlLFxyXG5cdFx0XHRcdGdyaWRDdXN0b21EaXNhYmxlZFxyXG5cdFx0XHR9ID0gaXRlbTtcclxuXHRcdFx0Z3JpZCA9IHsgc3ViVGFibGVTb3VyY2UsIHN1YkRhdGFLZXksIHRpdGxlLCBzaG93RGVsZXRlLCBzbG90S2V5LCBzdWJTYXZlLCBkZWxldGVGdW5jLCBkZWxldGVIaWRkZW4sIGFkZEhpZGRlbiwgZ3JpZEN1c3RvbURpc2FibGVkLCAuLi5ncmlkIH07XHJcblx0XHRcdGxldCBncmlkT3B0aW9ucyA9IHtcclxuXHRcdFx0XHQuLi5yZXN0R3JpZE9wdGlvbnMsXHJcblx0XHRcdFx0ZmssXHJcblx0XHRcdFx0c3ViVGFibGVTb3VyY2UsXHJcblx0XHRcdFx0c3ViRGF0YUtleSxcclxuXHRcdFx0XHRtYWluRmllbGQsXHJcblx0XHRcdFx0cmVmZXJlbmNlLFxyXG5cdFx0XHR9O1xyXG5cdFx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRcdGlmICh3aW5kb3cuYXBwSXNJMThuICYmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGl0ZW0uaTE4bktleSA9PSAnJykpIHtcclxuXHRcdFx0XHRncmlkLmkxOG5LZXkgPSBgdGFibGVzLiR7dGhpc0FyZy5nZXRQcm0ubW9kZWxOYW1lfS4ke3N1YkRhdGFLZXl9YDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdjbGllbnRTaWRlJykge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnN1cHByZXNzUm93VmlydHVhbGlzYXRpb24gPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChzY3JvbGxIZWlnaHQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5zY3JvbGxIZWlnaHQgPSBzY3JvbGxIZWlnaHQ7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGRyYWdTb3J0KSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMucm93RHJhZ01hbmFnZWQgPSB0cnVlO1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLmRyYWdTb3J0ID0gZHJhZ1NvcnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNlbGVjdGlvbk1vZGUpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlID0gc2VsZWN0aW9uTW9kZTtcclxuXHRcdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpIHtcclxuXHRcdFx0XHRcdGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcclxuXHRcdFx0XHRcdFx0bW9kZTogc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRcdFx0aXNSb3dTZWxlY3RhYmxlOiBpc1Jvd1NlbGVjdGFibGUgPyBpc1Jvd1NlbGVjdGFibGUgOiBudWxsLFxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBjb2x1bW5EZWZzLCB0aGlzQXJnLmF1dGhMZXZlbCwgZHJhZ1NvcnQpO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gY29sdW1uRGVmcztcclxuXHRcdFx0aWYgKHN1YlRhYmxlU291cmNlID09PSAnc2VsZWN0JyAmJiBpdGVtLnNlbGVjdE1vZGVsQ29kZSkge1xyXG5cdFx0XHRcdHRoaXNBcmcud2ViZ2V0KHsgY29kZTogaXRlbS5zZWxlY3RNb2RlbENvZGUgfSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IHNlbGVjdENvbnRlbnQgPSBwYXJzZUZ1bmN0aW9ucyhKU09OLnBhcnNlKHJlcy5jb250ZW50KSwgdGhpc0FyZyk7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMgPSBzZWxlY3RDb250ZW50Py5ncmlkT3B0aW9ucztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPSBncmlkLnNlbGVjdE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRcdFx0XHRcdGlmIChncmlkLnNlbGVjdE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyB8fCB0aGlzQXJnLndlYl9zZWFyY2guYmluZCh0aGlzQXJnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGdyaWQudW5pcXVlRmllbGQgPSB1bmlxdWVGaWVsZDtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0RGF0YUNiID0gc2VsZWN0RGF0YUNiO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnNjcm9sbEhlaWdodCA9ICczMDBweCc7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2VhcmNoUHJtID0gc2VsZWN0Q29udGVudC5zZWFyY2hQcm07XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE1vZGVsQ29kZSA9IGl0ZW0uc2VsZWN0TW9kZWxDb2RlO1xyXG5cdFx0XHRcdFx0Y29udmVydENvbChncmlkLnNlbGVjdE9wdGlvbnMsIGdyaWQuc2VsZWN0T3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Z3JpZC5zZWFyY2hQcm0gPSB7IC4uLnRoaXNBcmcuc2VhcmNoUHJtIH07XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0YWRkRGF0YUNiICYmIChncmlkT3B0aW9ucy5hZGREYXRhQ2IgPSBhZGREYXRhQ2IpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGdyaWQuZ3JpZE9wdGlvbnMgPSBncmlkT3B0aW9ucztcclxuXHRcdFx0YWRkU29ydCAmJiAoZ3JpZC5hZGRTb3J0ID0gYWRkU29ydCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpdGVtLmludGVyYWN0aXZlTGFiZWwgPSB0cnVlO1xyXG5cdFx0XHRncmlkID0ge1xyXG5cdFx0XHRcdC4uLml0ZW0sXHJcblx0XHRcdH07XHJcblx0XHRcdGdyaWQuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cdFx0fVxyXG5cdFx0dGhpc0FyZy5ncmlkcy5wdXNoKGdyaWQpO1xyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtID0gKHRoaXNBcmc6IGFueSwgZ3JvdXBBcnI6IGFueSwgc291cmNlRGF0YTogYW55KSA9PiB7XHJcblx0Z3JvdXBBcnIuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRpZiAodGhpc0FyZy5hdXRoTGV2ZWwgPCAzKSB7XHJcblx0XHRcdGl0ZW1bZm9ybVR5cGVUb1Byb3BzW2l0ZW0udHlwZV1dLmRpc2FibGVkID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9KTtcclxuXHR0aGlzQXJnLmZvcm1PcHRpb25zID0ge1xyXG5cdFx0ZmllbGRzOiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRncm91cENsYXNzOiAnZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAnLFxyXG5cdFx0XHRcdGdyb3VwOiBncm91cEFycixcclxuXHRcdFx0fSxcclxuXHRcdF0sXHJcblx0XHRmb3JtOiBuZXcgRm9ybUdyb3VwKHt9KSxcclxuXHRcdG1haW5GaWVsZDogc291cmNlRGF0YS5tb2RlbC5tYWluRmllbGRzLFxyXG5cdFx0bW9kZWxOYW1lOiBzb3VyY2VEYXRhLm1vZGVsLm1vZGVsTmFtZSxcclxuXHRcdGV4dHJhOiB7IHRoaXNBcmcgfSxcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNsZWFyTG9jYWwgPSAoKSA9PiB7XHJcblx0bGV0IHRoZW1lQ29uZmlnU3RhdGUgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RoZW1lQ29uZmlnU3RhdGUnKTtcclxuXHR3aW5kb3cubG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcblx0aWYgKHRoZW1lQ29uZmlnU3RhdGUpIHtcclxuXHRcdHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScsIHRoZW1lQ29uZmlnU3RhdGUpO1xyXG5cdH1cclxuXHR3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBwYWdlTGlzdEdyaWRPcHRpb25zID0gKGdyaWRPcHRpb25zOiBhbnksIHRoaXNBcmc6IGFueSkgPT4ge1xyXG5cdGdyaWRPcHRpb25zLnNjcm9sbEhlaWdodCA9ICdjYWxjKDEwMHZoIC0gOTVweCknO1xyXG5cdGdyaWRPcHRpb25zLnJvd01vZGVsVHlwZSA9IGdyaWRPcHRpb25zLnJvd01vZGVsVHlwZSB8fCAnc2VydmVyU2lkZSc7XHJcblx0aWYgKGdyaWRPcHRpb25zLnJvd01vZGVsVHlwZSA9PSAnc2VydmVyU2lkZScpIHtcclxuXHRcdGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgPSBncmlkT3B0aW9ucy5zZXJ2ZXJGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRncmlkT3B0aW9ucy5jbGllbnRGdW5jID0gZ3JpZE9wdGlvbnMuY2xpZW50RnVuYyB8fCB0aGlzQXJnLndlYl9zZWFyY2guYmluZCh0aGlzQXJnKTtcclxuXHR9XHJcblx0aWYgKGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUpIHtcclxuXHRcdC8vIGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSBzZWxlY3Rpb25Nb2RlXHJcblx0XHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdG1vZGU6IGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScgPyAnc2luZ2xlUm93JyA6ICdtdWx0aVJvdycsXHJcblx0XHRcdFx0aXNSb3dTZWxlY3RhYmxlOiBncmlkT3B0aW9ucy5pc1Jvd1NlbGVjdGFibGUgPyBncmlkT3B0aW9ucy5pc1Jvd1NlbGVjdGFibGUgOiB1bmRlZmluZWQsXHJcblx0XHRcdH07XHJcblx0XHRcdGlmIChncmlkT3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2hlY2tib3gnKSAmJiBncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24ubW9kZSA9PSAnbXVsdGlSb3cnKSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uLmhlYWRlckNoZWNrYm94ID0gZ3JpZE9wdGlvbnMuaGVhZGVyQ2hlY2tib3g7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHR9XHJcblx0Y29udmVydENvbChncmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyEsIDEpO1xyXG5cdHJldHVybiBncmlkT3B0aW9ucztcclxufTtcclxuLy8g5rex5bqm5ou36LSdXHJcbmV4cG9ydCBjb25zdCBkZWVwQ2xvbmUgPSAoc291cmNlOiBhbnksIHRoYXQ6IGFueSwgY2FjaGU/OiBhbnkpID0+IHtcclxuXHRpZiAoIWNhY2hlKSB7XHJcblx0XHRjYWNoZSA9IG5ldyBNYXAoKTtcclxuXHR9XHJcblx0aWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XHJcblx0XHRyZXR1cm4gc291cmNlO1xyXG5cdH1cclxuXHRpZiAoc291cmNlIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcblx0XHQvLyDkuI3ogIPomZHot6ggaWZyYW1lXHJcblx0XHRpZiAoY2FjaGUuZ2V0KHNvdXJjZSkpIHtcclxuXHRcdFx0cmV0dXJuIGNhY2hlLmdldChzb3VyY2UpO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHJlc3VsdDogYW55O1xyXG5cdFx0aWYgKHNvdXJjZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcblx0XHRcdGlmIChzb3VyY2UucHJvdG90eXBlKSB7XHJcblx0XHRcdFx0Ly8g5pyJIHByb3RvdHlwZSDlsLHmmK/mma7pgJrlh73mlbBcclxuXHRcdFx0XHRyZXN1bHQgPSBmdW5jdGlvbiAoKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gc291cmNlLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXN1bHQgPSAoLi4uYXJnczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4gc291cmNlLmNhbGwodW5kZWZpbmVkLCAuLi5hcmdzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcblx0XHRcdHJlc3VsdCA9IFtdO1xyXG5cdFx0fSBlbHNlIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBEYXRlKSB7XHJcblx0XHRcdHJlc3VsdCA9IG5ldyBEYXRlKChzb3VyY2UgYXMgYW55KSAtIDApO1xyXG5cdFx0fSBlbHNlIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IFJlZ0V4cChzb3VyY2Uuc291cmNlLCBzb3VyY2UuZmxhZ3MpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVzdWx0ID0ge307XHJcblx0XHR9XHJcblx0XHRjYWNoZS5zZXQoc291cmNlLCByZXN1bHQpO1xyXG5cdFx0Zm9yIChsZXQga2V5IGluIHNvdXJjZSkge1xyXG5cdFx0XHRpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IGRlZXBDbG9uZShzb3VyY2Vba2V5XSwgdGhhdCwgY2FjaGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH0gZWxzZSB7XHJcblx0XHRyZXR1cm4gc291cmNlO1xyXG5cdH1cclxufTtcclxuIl19
|
|
@@ -2301,11 +2301,25 @@ const suppressTextareaShiftEnter = (col) => {
|
|
|
2301
2301
|
return !!params?.editing && event?.key === 'Enter' && !!event?.shiftKey;
|
|
2302
2302
|
};
|
|
2303
2303
|
};
|
|
2304
|
+
const convertTooltipField = (col) => {
|
|
2305
|
+
if (col.tooltipFieldConf === true || col.tooltipField === true) {
|
|
2306
|
+
if (col.field) {
|
|
2307
|
+
col.tooltipField = col.field;
|
|
2308
|
+
}
|
|
2309
|
+
else {
|
|
2310
|
+
delete col.tooltipField;
|
|
2311
|
+
}
|
|
2312
|
+
}
|
|
2313
|
+
else if (col.tooltipFieldConf === false || col.tooltipField === false) {
|
|
2314
|
+
delete col.tooltipField;
|
|
2315
|
+
}
|
|
2316
|
+
};
|
|
2304
2317
|
const convertCol = (options, col, authLevel, dragSort) => {
|
|
2305
2318
|
// @ts-ignore
|
|
2306
2319
|
const isI18n = window.appIsI18n;
|
|
2307
2320
|
// console.log('isI18n-----',isI18n)
|
|
2308
2321
|
col.forEach((item, index) => {
|
|
2322
|
+
convertTooltipField(item);
|
|
2309
2323
|
if (typeof item.hide !== 'function' && typeof item.hide !== 'string') {
|
|
2310
2324
|
item.hide = item.hideCol === true || item.hide === true;
|
|
2311
2325
|
}
|
|
@@ -7642,6 +7656,7 @@ const defaultOption = {
|
|
|
7642
7656
|
sortable: false,
|
|
7643
7657
|
filter: false,
|
|
7644
7658
|
},
|
|
7659
|
+
tooltipShowMode: 'whenTruncated',
|
|
7645
7660
|
rowSelection: { mode: 'multiRow' },
|
|
7646
7661
|
rowModelType: 'serverSide',
|
|
7647
7662
|
cellSelection: {
|
|
@@ -8333,6 +8348,7 @@ class GridComponent {
|
|
|
8333
8348
|
});
|
|
8334
8349
|
}
|
|
8335
8350
|
});
|
|
8351
|
+
this.resequenceDragSortRows();
|
|
8336
8352
|
let dt = [];
|
|
8337
8353
|
this.upsert()?.subsert[this.subIndex]['maptmp'].forEach((value, key) => {
|
|
8338
8354
|
dt.push(value);
|
|
@@ -8525,38 +8541,33 @@ class GridComponent {
|
|
|
8525
8541
|
console.log('event---', event);
|
|
8526
8542
|
this.dragBeforeIndex = event.overIndex;
|
|
8527
8543
|
}
|
|
8528
|
-
|
|
8529
|
-
if (!this.gridOptions().dragSort)
|
|
8530
|
-
return;
|
|
8544
|
+
resequenceDragSortRows(api = this.grid?.api) {
|
|
8531
8545
|
const sortField = this.gridOptions().dragSort;
|
|
8532
|
-
|
|
8546
|
+
if (!sortField || !api)
|
|
8547
|
+
return;
|
|
8548
|
+
const colDefs = api.getColumnDefs?.() || this.toOptions().columnDefs || [];
|
|
8533
8549
|
const colItem = colDefs?.find((v) => v.field === sortField) || {};
|
|
8534
|
-
let map = new Map();
|
|
8535
|
-
let logMap = new Map();
|
|
8536
|
-
let dt = [];
|
|
8537
8550
|
const upsert = this.upsert();
|
|
8538
8551
|
if (!upsert)
|
|
8539
8552
|
return;
|
|
8540
|
-
const
|
|
8541
|
-
const
|
|
8542
|
-
|
|
8553
|
+
const subsert = upsert.subsert[this.subIndex];
|
|
8554
|
+
const mapTmp = subsert['maptmp'];
|
|
8555
|
+
const logTmp = subsert['logtmp'];
|
|
8556
|
+
const persistedRows = new Map();
|
|
8557
|
+
const sortLogs = new Map();
|
|
8558
|
+
api.forEachNode((node, index) => {
|
|
8543
8559
|
const id = node.data.id;
|
|
8544
8560
|
const newSort = index + 1;
|
|
8545
8561
|
const oldSort = node.data[sortField];
|
|
8546
|
-
// 更新 grid 数据
|
|
8547
8562
|
node.data[sortField] = newSort;
|
|
8548
8563
|
node.setDataValue(sortField, newSort);
|
|
8549
|
-
// console.log('node----', node.data, index,newSort);
|
|
8550
8564
|
if (!id) {
|
|
8551
|
-
mapTmp.set(index,
|
|
8552
|
-
...node.data,
|
|
8553
|
-
[sortField]: newSort
|
|
8554
|
-
});
|
|
8565
|
+
mapTmp.set(index, node.data);
|
|
8555
8566
|
}
|
|
8556
8567
|
else {
|
|
8557
|
-
|
|
8568
|
+
persistedRows.set(index, {
|
|
8558
8569
|
id: id,
|
|
8559
|
-
[sortField]: newSort
|
|
8570
|
+
[sortField]: newSort,
|
|
8560
8571
|
});
|
|
8561
8572
|
}
|
|
8562
8573
|
if (id) {
|
|
@@ -8564,29 +8575,24 @@ class GridComponent {
|
|
|
8564
8575
|
let oldLog = logTmp.get(key);
|
|
8565
8576
|
if (oldLog) {
|
|
8566
8577
|
oldLog.newValue = newSort;
|
|
8567
|
-
|
|
8578
|
+
sortLogs.set(key, oldLog);
|
|
8568
8579
|
}
|
|
8569
8580
|
else if (oldSort !== newSort) {
|
|
8570
|
-
|
|
8581
|
+
sortLogs.set(key, {
|
|
8571
8582
|
id: id,
|
|
8572
8583
|
label: colItem['headerName'] || '排序',
|
|
8573
8584
|
oldValue: oldSort,
|
|
8574
|
-
newValue: newSort
|
|
8585
|
+
newValue: newSort,
|
|
8575
8586
|
});
|
|
8576
8587
|
}
|
|
8577
8588
|
}
|
|
8578
8589
|
});
|
|
8579
|
-
|
|
8580
|
-
|
|
8581
|
-
|
|
8582
|
-
|
|
8583
|
-
|
|
8584
|
-
|
|
8585
|
-
dt.push(value);
|
|
8586
|
-
});
|
|
8587
|
-
upsert.subsert[this.subIndex]['subData'] = dt;
|
|
8588
|
-
console.log('dragUpsert----', upsert);
|
|
8589
|
-
}
|
|
8590
|
+
subsert['maptmp'] = new Map([...mapTmp, ...persistedRows]);
|
|
8591
|
+
subsert['logtmp'] = new Map([...logTmp, ...sortLogs]);
|
|
8592
|
+
subsert['subData'] = Array.from(subsert['maptmp'].values());
|
|
8593
|
+
}
|
|
8594
|
+
onRowDragEnd(event) {
|
|
8595
|
+
this.resequenceDragSortRows(event.api);
|
|
8590
8596
|
}
|
|
8591
8597
|
// 时间范围添加时分秒
|
|
8592
8598
|
isRange(columnFilter) {
|
|
@@ -10936,7 +10942,7 @@ class UserHistoryService {
|
|
|
10936
10942
|
i18nKey = i18nKey == '' && code != '' ? `menus.${code}` : i18nKey;
|
|
10937
10943
|
}
|
|
10938
10944
|
const paramsKeys = Object.keys(child.params);
|
|
10939
|
-
console.log('title',
|
|
10945
|
+
// console.log('title',child,configPath,url)
|
|
10940
10946
|
if (title && configPath) {
|
|
10941
10947
|
let isExit = this.historyList().filter(v => v.configPath == configPath);
|
|
10942
10948
|
// configPath.indexOf(':') > -1 && paramsKeys.length > 0 && ( title = this.detailName)
|