{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\zDemo\\editField\\ModelAttr.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\zDemo\\editField\\ModelAttr.vue","mtime":1734116152835},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBmb3JtIGZyb20gJ0AvYXBpL2Zvcm0uanMnOwppbXBvcnQgdXRpbHMgZnJvbSAnQC9ob3RlbnQtdWktdXRpbC5qcyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnQnVzaW5lc3NPYmpBdHRyJywKICBwcm9wczogWydvcGVuR3JhbmRTb25BdHRyJywgJ2F0dHJUYWJsZURhdGEnLCAnZm9ybURhdGEnLCAnZW50SW5kZXgnLCAnZ3JhbmRTb25JbmRleCddLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBpbmRleDogMCwKICAgICAgc29uSW5kZXg6IDAsCiAgICAgIGlzT3BlbkdyYW5kU29uQXR0cjogZmFsc2UsCiAgICAgIGhpZGVBdHRyOiBbXSwKICAgICAgc29uRGF0YTogW10sCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIGRhdGFUeXBlOiBbewogICAgICAgIGtleTogJ3ZhcmNoYXInLAogICAgICAgIHZhbHVlOiAn5a2X56ym5LiyJwogICAgICB9LCB7CiAgICAgICAga2V5OiAnbnVtYmVyJywKICAgICAgICB2YWx1ZTogJ+aVsOWtlycKICAgICAgfSwgewogICAgICAgIGtleTogJ2RhdGUnLAogICAgICAgIHZhbHVlOiAn5pel5pyfJwogICAgICB9LCB7CiAgICAgICAga2V5OiAnY2xvYicsCiAgICAgICAgdmFsdWU6ICflpKfmlofmnKwnCiAgICAgIH1dLAogICAgICBkYXRlRm9ybWF0OiBbewogICAgICAgIGtleTogJ3l5eXktTU0tZGQgSEg6bW06c3MnLAogICAgICAgIHZhbHVlOiAneXl5eS1NTS1kZCBISDptbTpzcycKICAgICAgfSwgewogICAgICAgIGtleTogJ3l5eXktTU0tZGQnLAogICAgICAgIHZhbHVlOiAneXl5eS1NTS1kZCcKICAgICAgfV0KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgYXR0ckRhdGE6IGZ1bmN0aW9uIGF0dHJEYXRhKCkgewogICAgICB2YXIgZGF0YSA9IHRoaXMub3BlbkdyYW5kU29uQXR0ciA/IHRoaXMuc29uRGF0YSA6IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0OwogICAgICByZXR1cm4gZGF0YTsKICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICBvcGVuR3JhbmRTb25BdHRyOiBmdW5jdGlvbiBvcGVuR3JhbmRTb25BdHRyKHYpIHsKICAgICAgdGhpcy5pc09wZW5HcmFuZFNvbkF0dHIgPSB2OwogICAgfSwKICAgIGF0dHJUYWJsZURhdGE6IGZ1bmN0aW9uIGF0dHJUYWJsZURhdGEodikgewogICAgICB0aGlzLnNvbkRhdGEgPSB2OwogICAgfSwKICAgIGZvcm1EYXRhOiBmdW5jdGlvbiBmb3JtRGF0YSh2KSB7CiAgICAgIHRoaXMudGFibGVEYXRhID0gdjsKICAgIH0sCiAgICBlbnRJbmRleDogZnVuY3Rpb24gZW50SW5kZXgodikgewogICAgICB0aGlzLmluZGV4ID0gdjsKICAgIH0sCiAgICBncmFuZFNvbkluZGV4OiBmdW5jdGlvbiBncmFuZFNvbkluZGV4KHYpIHsKICAgICAgdGhpcy5zb25JbmRleCA9IHY7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g57uE5Lu25rOo6ZSA56e76Zmk5LqL5Lu255uR5ZCs5Zmo77yM5Lul6Ziy5aSa5qyh6LCD55SoCiAgICB0aGlzLiRyb290LiRvZmYoJ3ZhbGlkYXRlRmllbGQnKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgZG9jdW1lbnQub25rZXlkb3duID0gZnVuY3Rpb24gKCkgewogICAgICBpZiAoX3RoaXMuZm9ybURhdGEuZW50cyAmJiBfdGhpcy5mb3JtRGF0YS5lbnRzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIga2V5ID0gd2luZG93LmV2ZW50LmtleUNvZGU7CiAgICAgICAgaWYgKGtleSA9PSAxMTMpIHsKICAgICAgICAgIC8vID09IDgzICYmIGV2ZW50LmN0cmxLZXkKICAgICAgICAgIF90aGlzLmFkZEF0dHJSb3dzKCk7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgX3RoaXMuJHJlZnMuYXR0clRhYmxlU2Nyb2xsYmFySGVpZ2h0LmJvZHlXcmFwcGVyLnNjcm9sbFRvcCA9IF90aGlzLiRyZWZzLmF0dHJUYWJsZVNjcm9sbGJhckhlaWdodC5ib2R5V3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8vIOagoemqjOW9k+WJjeWunuS9k+Wtl+autQogICAgY2hlY2tFbnRGdW5jOiBmdW5jdGlvbiBjaGVja0VudEZ1bmModHlwZSkgewogICAgICB2YXIgY2hlY2tFbnRGdW5jRGF0YSA9IHsKICAgICAgICB0eXBlOiB0eXBlLAogICAgICAgIGZvcm1EYXRhOiBbdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdXQogICAgICB9OwogICAgICB0aGlzLiRyb290LiRlbWl0KCd2YWxpZGF0ZUZpZWxkJywgY2hlY2tFbnRGdW5jRGF0YSk7CiAgICB9LAogICAgLy8g6KGo5Y2V5pWw5o2u5Yqg6L29CiAgICBnZXRGb3JtRGF0YTogZnVuY3Rpb24gZ2V0Rm9ybURhdGEoKSB7CiAgICAgIHZhciB0aGlzXyA9IHRoaXM7CiAgICAgIGlmICh0aGlzXy5mb3JtRGF0YS5pZCkgewogICAgICAgIGZvcm0uZ2V0RW50RGF0YSh0aGlzXy5mb3JtRGF0YS5pZCwgZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICAgIHJlc3AuZGF0YS5lbnRzLmZvckVhY2goZnVuY3Rpb24gKGVudERhdGEsIGluZGV4KSB7CiAgICAgICAgICAgIGlmIChlbnREYXRhLmlzRXh0ZXJuYWwgPT0gJzEnICYmIGluZGV4ID09IDApIHsKICAgICAgICAgICAgICBlbnREYXRhLnNob3cgPSAn5Li75a6e5L2TLeWklic7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50RGF0YS5pc0V4dGVybmFsID09ICcxJykgewogICAgICAgICAgICAgIGVudERhdGEuc2hvdyA9ICflrZDlrp7kvZMt5aSWJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICBlbnREYXRhLmlzQ2hlY2sgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChlbnREYXRhLmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgZW50RGF0YS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7CiAgICAgICAgICAgICAgICBpZiAodi5pc0V4dGVybmFsID09ICcxJykgewogICAgICAgICAgICAgICAgICB2LnNob3cgPSAn5a2Z5a6e5L2TLeWklic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yICh2YXIgcSA9IDA7IHEgPCBlbnREYXRhLmF0dHJpYnV0ZUxpc3QubGVuZ3RoOyBxKyspIHsKICAgICAgICAgICAgICBpZiAoZW50RGF0YS5hdHRyaWJ1dGVMaXN0W3FdKSB7CiAgICAgICAgICAgICAgICBpZiAoZW50RGF0YS5hdHRyaWJ1dGVMaXN0W3FdLmlzUmVxdWlyZWQgPT0gMCkgewogICAgICAgICAgICAgICAgICBlbnREYXRhLmF0dHJpYnV0ZUxpc3RbcV0uaXNSZXF1aXJlZCA9ICcwJzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGVudERhdGEuYXR0cmlidXRlTGlzdFtxXS5pc1JlcXVpcmVkID0gJzEnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudERhdGEuYXR0cmlidXRlTGlzdC5sZW5ndGggLSAxIC0gcTsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2ldLmluZGV4ID4gZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2kgKyAxXS5pbmRleCkgewogICAgICAgICAgICAgICAgICB2YXIgdGVtcCA9IGVudERhdGEuYXR0cmlidXRlTGlzdFtpXTsKICAgICAgICAgICAgICAgICAgZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2ldID0gZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2kgKyAxXTsKICAgICAgICAgICAgICAgICAgZW50RGF0YS5hdHRyaWJ1dGVMaXN0W2kgKyAxXSA9IHRlbXA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIHJlc3AuZGF0YS5lbnRzLmZvckVhY2goZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgICAgZGF0YS5pc0NoZWNrID0gZmFsc2U7CiAgICAgICAgICB9KTsKICAgICAgICAgIC8vIOiOt+WPlumAieS4reWunuS9kwogICAgICAgICAgcmVzcC5kYXRhLmVudHNbdGhpc18uZW50SW5kZXhdLmlzQ2hlY2sgPSB0cnVlOwogICAgICAgICAgdGhpc18uJGVtaXQoJ3VwZGF0ZTpmb3JtRGF0YScsIHJlc3AuZGF0YSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDliLfmlrDlhYPmlbDmja4KICAgIHJlbG9hZEJ5RW50SWQ6IGZ1bmN0aW9uIHJlbG9hZEJ5RW50SWQoZW50KSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB2YXIgaWQgPSBlbnQuaWQ7CiAgICAgIGlmICh0aGlzLm9wZW5HcmFuZFNvbkF0dHIgJiYgZW50LmNoaWxkcmVuICYmIGVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgICAgaWQgPSBlbnQuY2hpbGRyZW5bdGhpcy5ncmFuZFNvbkluZGV4XS5pZDsKICAgICAgfQogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICBmb3JtLnJlbG9hZEJ5RW50SWQoaWQsIF90aGlzLmZvcm1EYXRhLmFsaWFzKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgaWYgKHJlc3Auc3RhdGUpIHsKICAgICAgICAgIF90aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogJ+WIt+aWsOaIkOWKnyzoi6XlrZfmrrXmnInlj5jljJbor7fph43mlrDmi5bmi73lrZfmrrXorr7orqHooajljZUnLAogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycKICAgICAgICAgIH0pOwogICAgICAgICAgX3RoaXMuZ2V0Rm9ybURhdGEoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMyLiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5tZXNzYWdlLAogICAgICAgICAgICB0eXBlOiAnZXJyb3InCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGVudEJsdXI6IGZ1bmN0aW9uIGVudEJsdXIoaW5kZXgpIHsKICAgICAgdGhpcy4kZW1pdCgnZW50Qmx1cicsIGluZGV4KTsKICAgICAgdGhpcy5jaGVja0VudEZ1bmModHJ1ZSk7CiAgICB9LAogICAgY2hpbmVzZUZvcm1hdDogZnVuY3Rpb24gY2hpbmVzZUZvcm1hdChpZCwgbGlzdCwgcGFyYW0sIGluZGV4LCB2KSB7CiAgICAgIHRoaXMuJGVtaXQoJ2NoaW5lc2VGb3JtYXQnLCBpZCwgbGlzdCwgcGFyYW0sIGluZGV4LCB2KTsKICAgIH0sCiAgICAvLyDmlrDlop7lrZfmrrUKICAgIGFkZEF0dHJSb3dzOiBmdW5jdGlvbiBhZGRBdHRyUm93cygpIHsKICAgICAgdmFyIHJvdyA9IHsKICAgICAgICBjb21tZW50OiAnJywKICAgICAgICBuYW1lOiAnJywKICAgICAgICBpc1JlcXVpcmVkOiAnMCcsCiAgICAgICAgZGF0YVR5cGU6ICd2YXJjaGFyJywKICAgICAgICBmb3JtYXQ6ICcnLAogICAgICAgIGludExlbjogJycsCiAgICAgICAgYXR0ckxlbmd0aDogMjAwLAogICAgICAgIGRlY2ltYWxMZW46IDAsCiAgICAgICAgaXNOZXc6IHRydWUsCiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJywKICAgICAgICBkZXNjOiAnJywKICAgICAgICBpbmRleDogdGhpcy5vcGVuR3JhbmRTb25BdHRyID8gdGhpcy5zb25EYXRhLmxlbmd0aCArIDEgOiB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5sZW5ndGggKyAxCiAgICAgIH07CiAgICAgIGlmICh0aGlzLm9wZW5HcmFuZFNvbkF0dHIpIHsKICAgICAgICB0aGlzLnNvbkRhdGEucHVzaChyb3cpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0LnB1c2gocm93KTsKICAgICAgfQogICAgfSwKICAgIC8vIOaVsOaNruexu+Wei+WIh+aNouiuvue9rum7mOiupOWAvAogICAgZGVmYXVsdERhdGFGb3JtYXQ6IGZ1bmN0aW9uIGRlZmF1bHREYXRhRm9ybWF0KHJvdywgaW5kZXgpIHsKICAgICAgdmFyIHNlbGVjdEF0dHIgPSB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdDsKICAgICAgaWYgKHRoaXMub3BlbkdyYW5kU29uQXR0cikgewogICAgICAgIHNlbGVjdEF0dHIgPSB0aGlzLnNvbkRhdGE7CiAgICAgIH0KICAgICAgc2VsZWN0QXR0cltpbmRleF0uYXR0ckxlbmd0aCA9IDA7CiAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmRlY2ltYWxMZW4gPSAwOwogICAgICBzZWxlY3RBdHRyW2luZGV4XS5mb3JtYXQgPSAnJzsKICAgICAgaWYgKHJvdy5kYXRhVHlwZSA9PSAnZGF0ZScpIHsKICAgICAgICBzZWxlY3RBdHRyW2luZGV4XS5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7CiAgICAgIH0gZWxzZSBpZiAocm93LmRhdGFUeXBlID09ICd2YXJjaGFyJykgewogICAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmF0dHJMZW5ndGggPSAyMDA7CiAgICAgIH0gZWxzZSBpZiAocm93LmRhdGFUeXBlID09ICdudW1iZXInKSB7CiAgICAgICAgc2VsZWN0QXR0cltpbmRleF0uYXR0ckxlbmd0aCA9IDEwOwogICAgICAgIHNlbGVjdEF0dHJbaW5kZXhdLmRlY2ltYWxMZW4gPSAyOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ29tbWFuZDogZnVuY3Rpb24gaGFuZGxlQ29tbWFuZChwYXJhbSkgewogICAgICBzd2l0Y2ggKHBhcmFtLmNvbW1hbmQpIHsKICAgICAgICBjYXNlICdkZWwnOgogICAgICAgICAgdGhpcy5kZWxldGVBdHRyUm93cyhwYXJhbS5yb3csIHBhcmFtLmluZGV4KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3VwJzoKICAgICAgICAgIHRoaXMuYXR0clVwKHBhcmFtLnJvdywgcGFyYW0uaW5kZXgpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZG93bic6CiAgICAgICAgICB0aGlzLmF0dHJEb3duKHBhcmFtLnJvdywgcGFyYW0uaW5kZXgpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9LAogICAgLy8g5Yig6Zmk5a2X5q61IOS8quWIoOmZpCDorr7nva7lrZfmrrUgc3RhdHVzIOWAvCBoaWRlCiAgICBpc0RlbDogZnVuY3Rpb24gaXNEZWwocm93LCBpbmRleCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ2hpZGUnKSB7CiAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIGlmIChjb3VudCA+PSB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5sZW5ndGggLSAxKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICBtZXNzYWdlOiAn5pyA5ZCO5LiA5Liq5a2X5q615LiN6IO95Yig6Zmk77yBJywKICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoIXRoaXMuZm9ybURhdGEuZGVwbG95ZWQpIHsKICAgICAgICBmb3JtLmRlbGV0ZUF0dHIocm93LmlkKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgICBpZiAocmVzcC5kYXRhLnN0YXRlKSB7CiAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsCiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX3RoaXMzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwLmRhdGEubWVzc2FnZSwKICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczMuZm9ybURhdGEuZW50c1tfdGhpczMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3Quc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICAgIF90aGlzMy5mb3JtRGF0YS5lbnRzW190aGlzMy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBhdHRySW5kZXgpIHsKICAgICAgICAgICAgaWYgKGF0dHJJbmRleCA9PSBpbmRleCkgewogICAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpdGVtLmluZGV4IC0gMTsKICAgICAgICAgICAgICArK2luZGV4OwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIGZvcm0uc2F2ZUVudERhdGEoX3RoaXMzLmZvcm1EYXRhKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgICAgIGlmIChyZXNwLmRhdGEuc3RhdGUpIHsKICAgICAgICAgICAgICBfdGhpczMuZm9ybURhdGEucmV2Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGZvcm0ucmVtb3ZlQXR0cihyb3csIHRoaXMuZm9ybURhdGEuYWxpYXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICAgIGlmIChyZXNwLmRhdGEuc3RhdGUpIHsKICAgICAgICAgICAgX3RoaXMzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICBtZXNzYWdlOiAiIi5jb25jYXQocmVzcC5kYXRhLm1lc3NhZ2UsICJcdUZGMENcdTVFRkFcdTZBMjFcdTY1NzBcdTYzNkVcdTVERjJcdTY2RjRcdTY1QjBcdUZGMDEiKSwKICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIF90aGlzMy4kZW1pdCgnZ2V0Rm9ybURhdGEnKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF90aGlzMy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcC5kYXRhLm1lc3NhZ2UsCiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLy8g5Yig6Zmk5a2X5q61CiAgICBkZWxldGVBdHRyUm93czogZnVuY3Rpb24gZGVsZXRlQXR0clJvd3Mocm93LCBpbmRleCkgewogICAgICBpZiAoIXRoaXMub3BlbkdyYW5kU29uQXR0cikgewogICAgICAgIGlmIChyb3cuaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgYXR0ckluZGV4KSB7CiAgICAgICAgICAgIGlmIChhdHRySW5kZXggPT0gaW5kZXgpIHsKICAgICAgICAgICAgICBpdGVtLmluZGV4ID0gaXRlbS5pbmRleCAtIDE7CiAgICAgICAgICAgICAgKytpbmRleDsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMuaXNEZWwocm93LCBpbmRleCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKCFyb3cuaWQpIHsKICAgICAgICAgIHRoaXMuYXR0clRhYmxlRGF0YS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgdGhpcy5hdHRyVGFibGVEYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGkpIHsKICAgICAgICAgICAgaWYgKGkgPT0gaW5kZXgpIHsKICAgICAgICAgICAgICBpdGVtLmluZGV4ID0gaXRlbS5pbmRleCAtIDE7CiAgICAgICAgICAgICAgKytpbmRleDsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMuaXNEZWwocm93LCBpbmRleCk7CiAgICAgIH0KICAgIH0sCiAgICBhdHRyVXA6IGZ1bmN0aW9uIGF0dHJVcChyb3csIGluZGV4KSB7CiAgICAgIGlmICghdGhpcy5vcGVuR3JhbmRTb25BdHRyKSB7CiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLmluZGV4ID0gdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLmluZGV4IC0gMTsKICAgICAgICB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uYXR0cmlidXRlTGlzdFtpbmRleCAtIDFdLmluZGV4ID0gdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXggLSAxXS5pbmRleCArIDE7CiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QgPSB1dGlscy5hcnJheU1vdmUodGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3QsIHJvdywgJ3VwJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zb25EYXRhW2luZGV4XS5pbmRleCA9IHRoaXMuc29uRGF0YVtpbmRleF0uaW5kZXggLSAxOwogICAgICAgIHRoaXMuc29uRGF0YVtpbmRleCAtIDFdLmluZGV4ID0gdGhpcy5zb25EYXRhW2luZGV4IC0gMV0uaW5kZXggKyAxOwogICAgICAgIHRoaXMuc29uRGF0YSA9IHV0aWxzLmFycmF5TW92ZSh0aGlzLnNvbkRhdGEsIHJvdywgJ3VwJyk7CiAgICAgIH0KICAgIH0sCiAgICBhdHRyRG93bjogZnVuY3Rpb24gYXR0ckRvd24ocm93LCBpbmRleCkgewogICAgICBpZiAoIXRoaXMub3BlbkdyYW5kU29uQXR0cikgewogICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4XS5pbmRleCA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4XS5pbmRleCArIDE7CiAgICAgICAgdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmF0dHJpYnV0ZUxpc3RbaW5kZXggKyAxXS5pbmRleCA9IHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0W2luZGV4ICsgMV0uaW5kZXggLSAxOwogICAgICAgIHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0ID0gdXRpbHMuYXJyYXlNb3ZlKHRoaXMuZm9ybURhdGEuZW50c1t0aGlzLmVudEluZGV4XS5hdHRyaWJ1dGVMaXN0LCByb3csICdkb3duJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zb25EYXRhW2luZGV4XS5pbmRleCA9IHRoaXMuc29uRGF0YVtpbmRleF0uaW5kZXggKyAxOwogICAgICAgIHRoaXMuc29uRGF0YVtpbmRleCArIDFdLmluZGV4ID0gdGhpcy5zb25EYXRhW2luZGV4ICsgMV0uaW5kZXggLSAxOwogICAgICAgIHRoaXMuc29uRGF0YSA9IHV0aWxzLmFycmF5TW92ZSh0aGlzLnNvbkRhdGEsIHJvdywgJ2Rvd24nKTsKICAgICAgfQogICAgfSwKICAgIHJlY292ZXJ5OiBmdW5jdGlvbiByZWNvdmVyeShyb3cpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIGZvcm0ucmVjb3Zlcnkocm93LCB0aGlzLmZvcm1EYXRhLmFsaWFzKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgaWYgKHJlc3AuZGF0YS5zdGF0ZSkgewogICAgICAgICAgX3RoaXM0LiRtZXNzYWdlKHsKICAgICAgICAgICAgbWVzc2FnZTogIiIuY29uY2F0KHJlc3AuZGF0YS5tZXNzYWdlLCAiXHVGRjBDXHU1RUZBXHU2QTIxXHU2NTcwXHU2MzZFXHU1REYyXHU2NkY0XHU2NUIwIiksCiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJwogICAgICAgICAgfSk7CiAgICAgICAgICBfdGhpczQuJGVtaXQoJ2dldEZvcm1EYXRhJyk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICByZWZyZXNoQXR0cjogZnVuY3Rpb24gcmVmcmVzaEF0dHIoY2IpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHZhciBwYXJhbSA9IHsKICAgICAgICBkc2FsaWFzOiB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uZHNOYW1lLAogICAgICAgIGlzVGFibGU6ICcxJywKICAgICAgICBvYmpOYW1lOiB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0udGFibGVOYW1lCiAgICAgIH07CiAgICAgIGlmICh0aGlzLm9wZW5HcmFuZFNvbkF0dHIpIHsKICAgICAgICBwYXJhbS5vYmpOYW1lID0gdGhpcy5mb3JtRGF0YS5lbnRzW3RoaXMuZW50SW5kZXhdLmNoaWxkcmVuW3RoaXMuZ3JhbmRTb25JbmRleF0udGFibGVOYW1lOwogICAgICAgIHBhcmFtLmRzYWxpYXMgPSB0aGlzLmZvcm1EYXRhLmVudHNbdGhpcy5lbnRJbmRleF0uY2hpbGRyZW5bdGhpcy5ncmFuZFNvbkluZGV4XS5kc05hbWU7CiAgICAgIH0KICAgICAgZm9ybS5nZXRIaWRlQXR0cihwYXJhbS5vYmpOYW1lKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgaWYgKHJlc3ApIHsKICAgICAgICAgIF90aGlzNS5oaWRlQXR0ciA9IHJlc3A7CiAgICAgICAgfQogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBmb3JtLmdldFRhYmxlTGlzdChwYXJhbSkudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgICAgX3RoaXM1LmlzRXhpdCA9IGZhbHNlOwogICAgICAgICAgX3RoaXM1LnJlZnJlc2hEYXRhID0gcmVzcDsKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX3RoaXM1LnJlZnJlc2hEYXRhLmRhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKF90aGlzNS5yZWZyZXNoRGF0YS5kYXRhW2ldLm5hbWUgPT0gcGFyYW0ub2JqTmFtZSkgewogICAgICAgICAgICAgIC8vIOWIoOmZpOS4u+mUruWSjOWklumUrgogICAgICAgICAgICAgIF90aGlzNS4kaHR0cC5nZXQoIiR7Zm9ybX0vYm8vZGVmL3YxL3JlbG9hZEJ5RW50SWQ/ZW50SWQ9Ii5jb25jYXQoX3RoaXM1LmZvcm1EYXRhLmVudHNbX3RoaXM1LmVudEluZGV4XS5pZCkpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICAgICAgICAgIHZhciBqc29uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXNwLmRhdGEudGFibGUuY29sdW1uTGlzdCkucmVwbGFjZSgvY2hhckxlbi9nLCAnYXR0ckxlbmd0aCcpLnJlcGxhY2UoL2ZpZWxkTmFtZS9nLCAnbmFtZScpLnJlcGxhY2UoL2NvbHVtblR5cGUvZywgJ2RhdGFUeXBlJykucmVwbGFjZSgvZmRhdGFUeXBlL2csICdmY29sdW1uVHlwZScpKTsKICAgICAgICAgICAgICAgIHZhciBfdGhpcyA9IF90aGlzNTsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0ge307CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1LmhpZGVBdHRyLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSAnJzsKICAgICAgICAgICAgICAgICAgX3RoaXM1LmhpZGVBdHRyLmZvckVhY2goZnVuY3Rpb24gKHYpIHsKICAgICAgICAgICAgICAgICAgICBhdHRyICs9ICIiLmNvbmNhdCh2LmZpZWxkTmFtZSwgIiwiKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIGpzb24gPSBqc29uLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWF0dHIuaW5jbHVkZXModmFsdWUuZmllbGROYW1lKTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1Lm9wZW5HcmFuZFNvbkF0dHIpIHsKICAgICAgICAgICAgICAgICAgX3RoaXM1LmZvcm1EYXRhLmVudHNbX3RoaXM1LmVudEluZGV4XS5jaGlsZHJlbltfdGhpczUuZ3JhbmRTb25JbmRleF0uYXR0cmlidXRlTGlzdCA9IGpzb247CiAgICAgICAgICAgICAgICAgIGRhdGEgPSBfdGhpczUuZm9ybURhdGEuZW50c1tfdGhpczUuZW50SW5kZXhdLmNoaWxkcmVuW190aGlzNS5ncmFuZFNvbkluZGV4XTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtRGF0YS5lbnRzW190aGlzNS5lbnRJbmRleF0uYXR0cmlidXRlTGlzdCA9IGpzb247CiAgICAgICAgICAgICAgICAgIGRhdGEgPSBfdGhpczUuZm9ybURhdGEuZW50c1tfdGhpczUuZW50SW5kZXhdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZGF0YS5hdHRyaWJ1dGVMaXN0ID0gZGF0YS5hdHRyaWJ1dGVMaXN0LmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICB2YXIgdmFsID0gaXRlbS5uYW1lLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgIHJldHVybiAhaXRlbS5pc1BrICYmIHZhbCAhPSAnRl9GT1JNX0RBVEFfUkVWXycgJiYgdmFsICE9ICdSRUZfSURfJyAmJiAoIV90aGlzLmZvcm1EYXRhLmVudHMuZmsgfHwgdmFsICE9IF90aGlzLmZvcm1EYXRhLmVudHMuZmsudG9VcHBlckNhc2UoKSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGRhdGEuYXR0cmlidXRlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXggKyAxOwogICAgICAgICAgICAgICAgICBpZiAoaXRlbS5hdHRyTGVuZ3RoID09IDAgJiYgaXRlbS5pbnRMZW4gIT0gMCkgewogICAgICAgICAgICAgICAgICAgIGl0ZW0uYXR0ckxlbmd0aCA9IGl0ZW0uaW50TGVuOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF90aGlzNS4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICfliLfmlrDmiJDlip8nLAogICAgICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgX3RoaXM1LmlzRXhpdCA9IHRydWU7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoIV90aGlzNS5pc0V4aXQpIHsKICAgICAgICAgICAgICBpZiAoX3RoaXM1Lm9wZW5HcmFuZFNvbkF0dHIpIHsKICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtRGF0YS5lbnRzW190aGlzNS5lbnRJbmRleF0uY2hpbGRyZW5bX3RoaXM1LmdyYW5kU29uSW5kZXhdLmF0dHJpYnV0ZUxpc3QgPSBbXTsKICAgICAgICAgICAgICAgIF90aGlzNS5nZXRHcmFuZFNvbkVudHNCeUluZGV4KF90aGlzNS5ncmFuZFNvbkluZGV4LCBfdGhpczUuZW50SW5kZXgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1LmVudEluZGV4ID09IDApIHsKICAgICAgICAgICAgICAgICAgZm9ybS5yZW1vdmVCdXNpbmVzc09iaihfdGhpczUuZm9ybURhdGEuaWQpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIF90aGlzNS5oYW5kbGVEaWFsb2dDbG9zZSgpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtRGF0YS5lbnRzW190aGlzNS5lbnRJbmRleF0uYXR0cmlidXRlTGlzdCA9IFtdOwogICAgICAgICAgICAgICAgICBfdGhpczUuJGVtaXQoJ2dldEVudHNCeUluZGV4JywgX3RoaXM1LmVudEluZGV4KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgICBfdGhpczUuaXNFeGl0ID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfTs="},null]}