{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\performanceAnalysis\\HealthAnalysis.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\performanceAnalysis\\HealthAnalysis.vue","mtime":1731062408909},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\babel.config.js","mtime":1725536844935},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9ienpnai1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gJ2VjaGFydHMnOwppbXBvcnQgZGljdFV0aWxzIGZyb20gJ0AvY29tcG9uZW50cy9kaWN0L0RpY3RTZWxlY3RVdGlscy5qcyc7CmltcG9ydCB2dWVTZWFtbGVzc1Njcm9sbCBmcm9tICd2dWUtc2VhbWxlc3Mtc2Nyb2xsJzsKaW1wb3J0IGVxdWlwbWVudEluZGV4IGZyb20gJ0AvYXBpL2RldmljZS9lcXVpcG1lbnRJbmRleC5qcyc7CmltcG9ydCByZXNvdXJjZU1hbmFnZSBmcm9tICdAL2FwaS9kZXZpY2UvcmVzb3VyY2VNYW5hZ2UuanMnOwppbXBvcnQgZXF1aXBtZW50TWFuYWdlIGZyb20gJ0AvYXBpL2RldmljZS9lcXVpcG1lbnRNYW5hZ2UuanMnOwpleHBvcnQgZGVmYXVsdCB7CiAgY29tcG9uZW50czogewogICAgdnVlU2VhbWxlc3NTY3JvbGw6IHZ1ZVNlYW1sZXNzU2Nyb2xsCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIHRoYXQgPSB0aGlzOwogICAgcmV0dXJuIF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eSh7CiAgICAgIHNlbGVjdEE6IGZhbHNlLAogICAgICBzZWxlY3RCOiB0cnVlLAogICAgICBzZWxlY3RDOiB0cnVlLAogICAgICBzZWxlY3REOiB0cnVlLAogICAgICBzZWxlY3RFOiB0cnVlLAogICAgICB3YXJuQW5hbHl6ZURhdGE6IFtdLAogICAgICByZWdpb25QaWNrZXI6IFtdLAogICAgICBlbmRUaW1lOiAnJywKICAgICAgc3RhcnRUaW1lOiAnJywKICAgICAgd2FybkZhaWx1cmVUaW1lOiAnJywKICAgICAgd2FybkZhaWx1cmVGYWlsdXJlOiAnJywKICAgICAgd2FybkZhaWx1cmVBbGFybTogJycsCiAgICAgIGFyZWFTdGF0dXNBcmVhTmFtZTogW10sCiAgICAgIHByb2R1Y3RWYWx1ZTogJycsCiAgICAgIGRldmljZVZhbHVlOiAnYnNwcXgnLAogICAgICBwcm9kdWN0RGF0YTogW10sCiAgICAgIGludGVsbGVjdERhdGE6IFt7CiAgICAgICAgYWxhcm06IDAsCiAgICAgICAgZmFpbHVyZTogMCwKICAgICAgICBub3JtYWw6IDAsCiAgICAgICAgbnVtOiAwLAogICAgICAgIG90aGVyOiAwLAogICAgICAgIHNjcmFwOiAwLAogICAgICAgIHR5cGVDb2RlOiAnYmFycmljYWRlJywKICAgICAgICB0eXBlTmFtZTogJ+WNh+mZjei3r+manOS6p+WTgScKICAgICAgfSwgewogICAgICAgIGFsYXJtOiAwLAogICAgICAgIGZhaWx1cmU6IDAsCiAgICAgICAgbm9ybWFsOiAwLAogICAgICAgIG51bTogMCwKICAgICAgICBvdGhlcjogMCwKICAgICAgICBzY3JhcDogMCwKICAgICAgICB0eXBlQ29kZTogJ2JhcnJpY2FkZScsCiAgICAgICAgdHlwZU5hbWU6ICfljYfpmY3ot6/pmpzkuqflk4EnCiAgICAgIH0sIHsKICAgICAgICBhbGFybTogMCwKICAgICAgICBmYWlsdXJlOiAwLAogICAgICAgIG5vcm1hbDogMCwKICAgICAgICBudW06IDAsCiAgICAgICAgb3RoZXI6IDAsCiAgICAgICAgc2NyYXA6IDAsCiAgICAgICAgdHlwZUNvZGU6ICdiYXJyaWNhZGUnLAogICAgICAgIHR5cGVOYW1lOiAn5Y2H6ZmN6Lev6Zqc5Lqn5ZOBJwogICAgICB9LCB7CiAgICAgICAgYWxhcm06IDAsCiAgICAgICAgZmFpbHVyZTogMCwKICAgICAgICBub3JtYWw6IDAsCiAgICAgICAgbnVtOiAwLAogICAgICAgIG90aGVyOiAwLAogICAgICAgIHNjcmFwOiAwLAogICAgICAgIHR5cGVDb2RlOiAnYmFycmljYWRlJywKICAgICAgICB0eXBlTmFtZTogJ+WNh+mZjei3r+manOS6p+WTgScKICAgICAgfSwgewogICAgICAgIGFsYXJtOiAwLAogICAgICAgIGZhaWx1cmU6IDAsCiAgICAgICAgbm9ybWFsOiAwLAogICAgICAgIG51bTogMCwKICAgICAgICBvdGhlcjogMCwKICAgICAgICBzY3JhcDogMCwKICAgICAgICB0eXBlQ29kZTogJ2JhcnJpY2FkZScsCiAgICAgICAgdHlwZU5hbWU6ICfljYfpmY3ot6/pmpzkuqflk4EnCiAgICAgIH0sIHsKICAgICAgICBhbGFybTogMCwKICAgICAgICBmYWlsdXJlOiAwLAogICAgICAgIG5vcm1hbDogMCwKICAgICAgICBudW06IDAsCiAgICAgICAgb3RoZXI6IDAsCiAgICAgICAgc2NyYXA6IDAsCiAgICAgICAgdHlwZUNvZGU6ICdiYXJyaWNhZGUnLAogICAgICAgIHR5cGVOYW1lOiAn5Y2H6ZmN6Lev6Zqc5Lqn5ZOBJwogICAgICB9LCB7CiAgICAgICAgYWxhcm06IDAsCiAgICAgICAgZmFpbHVyZTogMCwKICAgICAgICBub3JtYWw6IDAsCiAgICAgICAgbnVtOiAwLAogICAgICAgIG90aGVyOiAwLAogICAgICAgIHNjcmFwOiAwLAogICAgICAgIHR5cGVDb2RlOiAnYmFycmljYWRlJywKICAgICAgICB0eXBlTmFtZTogJ+WNh+mZjei3r+manOS6p+WTgScKICAgICAgfV0sCiAgICAgIGVxdWlwbWVudERhdGE6IFtdLAogICAgICBhY3RpdmVOYW1lOiAnLzE1NTI5MTE0NzgzMDEwMDM3NzYnLAogICAgICBjb25kaXRpb25zOiBbewogICAgICAgIG5hbWU6ICfnu7zlkIjnrqHnkIblsYAnLAogICAgICAgIHZhbHVlOiAnLzE1NTI5MTE0NzgzMDEwMDM3NzYnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5rid6auY54mp5LiaJywKICAgICAgICB2YWx1ZTogJy8xNjY3MTAyNDE3NzU5NTEwNTI4JwogICAgICB9LCB7CiAgICAgICAgbmFtZTogJ+inhumikeebkeaOpycsCiAgICAgICAgdmFsdWU6ICcnCiAgICAgIH1dLAogICAgICBzZWFyY2hGb3JtOiB7CiAgICAgICAgcHJvZHVjdFZhbHVlOiAnJywKICAgICAgICByZWdpb25WYWx1ZTogJycKICAgICAgfSwKICAgICAgdHJlZURhdGE6IFtdLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgcmVwb3J0Rm9ybURhdGE6IFtdLAogICAgICBzZWFyY2hUeXBlOiBmYWxzZSwKICAgICAgYXJlYUlkOiAnJywKICAgICAgZnVsbElkOiAnJywKICAgICAgdHlwZUNvZGU6ICcnCiAgICB9LCAic3RhcnRUaW1lIiwgJycpLCAiZW5kVGltZSIsICcnKSwgInByb2R1Y3RWYWx1ZTEiLCAnJyksICJwcm9kdWN0RGF0YU9uZSIsIFtdKSwgImVxdWlwbWVudFN0YXR1c0RhdGEiLCBbXSksICJwaWNrZXJPbmVEYXRlIiwgbnVsbCksICJwaWNrZXJPcHRpb25zIiwgewogICAgICAvLyDojrflj5bpgInmi6nnmoTnrKzkuIDkuKrml7bpl7QKICAgICAgb25QaWNrOiBmdW5jdGlvbiBvblBpY2sob2JqKSB7CiAgICAgICAgLy8g5oqK56ys5LiA5Liq5pe26Ze05YiG6YWN57uZcGlja2VyT25lRGF0ZQogICAgICAgIHZhciBzdGFydERhdGUgPSBuZXcgRGF0ZShvYmoubWluRGF0ZSkuZ2V0VGltZSgpOwogICAgICAgIHRoYXQucGlja2VyT25lRGF0ZSA9IHN0YXJ0RGF0ZTsKICAgICAgfSwKICAgICAgZGlzYWJsZWREYXRlOiBmdW5jdGlvbiBkaXNhYmxlZERhdGUodGltZSkgewogICAgICAgIGlmICh0aGF0LnBpY2tlck9uZURhdGUpIHsKICAgICAgICAgIHZhciBkYXkgPSA3ICogMjQgKiAzNjAwICogMTAwMDsKICAgICAgICAgIHZhciBtYXhUaW1lID0gdGhhdC5waWNrZXJPbmVEYXRlICsgZGF5OwogICAgICAgICAgdmFyIG1pblRpbWUgPSB0aGF0LnBpY2tlck9uZURhdGUgLSBkYXk7CiAgICAgICAgICByZXR1cm4gdGltZS5nZXRUaW1lKCkgPiBtYXhUaW1lIHx8IHRpbWUuZ2V0VGltZSgpIDwgbWluVGltZSB8fCB0aW1lLmdldFRpbWUoKSA+IERhdGUubm93KCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB0aW1lLmdldFRpbWUoKSA+IERhdGUubm93KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmxvYWRQcm9kdWN0KCk7IC8v5Lqn5ZOB5qCRCiAgICB0aGlzLmFyZWFTdGF0dXNMaXN0KCk7IC8v6K6+5aSH5YiG5p6QCiAgICB0aGlzLmdldEFyZWFUcmVlKCk7IC8v5Yy65Z+f5qCRCiAgICB0aGlzLmdldEFsbHByb2R1Y3RUeXBlKCk7CiAgICB0aGlzLmdldFJlcG9ydEZvcm0oKTsgLy8g6I635Y+W5Yy65Z+f6K6+5aSH5YiG5p6Q5pWw5o2uCiAgICB0aGlzLmdldEVxdWlwbWVudExpZmUoKTsgLy/ojrflj5borr7lpIflubTpmZDliIbmnpDmlbDmja4KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7fSwKICBjb21wdXRlZDoge30sCiAgbWV0aG9kczogewogICAgZ2V0QWxscHJvZHVjdFR5cGU6IGZ1bmN0aW9uIGdldEFsbHByb2R1Y3RUeXBlKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICBlcXVpcG1lbnRJbmRleC5BbGxwcm9kdWN0VHlwZSh7fSwgZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuc3RhdGUpIHsKICAgICAgICAgIF90aGlzLnByb2R1Y3REYXRhT25lID0gcmVzLnZhbHVlOwogICAgICAgICAgX3RoaXMucHJvZHVjdFZhbHVlMSA9IF90aGlzLnByb2R1Y3REYXRhT25lWzBdLmNoaWxkcmVuWzBdLmZ1bGxJZDsKICAgICAgICAgIF90aGlzLnR5cGVDb2RlID0gX3RoaXMucHJvZHVjdERhdGFPbmVbMF0uY2hpbGRyZW5bMF0uZnVsbElkOwogICAgICAgICAgX3RoaXMuZ2V0RXF1aXBtZW50U3RhdHVzKCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvL+aQnOe0ogogICAgaGFuZGxlU2VhcmNoOiBmdW5jdGlvbiBoYW5kbGVTZWFyY2goKSB7CiAgICAgIHRoaXMuc2VhcmNoVHlwZSA9IHRydWU7CiAgICAgIGlmICh0aGlzLmFjdGl2ZU5hbWUgPT0gMikgewogICAgICAgIHRoaXMuZ2V0VmlkZW9EYXRhKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5nZXRSZXBvcnRGb3JtKCk7CiAgICAgIH0KICAgIH0sCiAgICB0b0RldmljZVBhZ2U6IGZ1bmN0aW9uIHRvRGV2aWNlUGFnZSh2YWwpIHsKICAgICAgaWYgKHRoaXMuYWN0aXZlTmFtZSAhPSAyKSB7CiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Byb2R1Y3QnLCBKU09OLnN0cmluZ2lmeSh2YWwpKTsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgICBwYXRoOiAnRGV2aWNlUGFnZScKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbW9uaXRvcicsIEpTT04uc3RyaW5naWZ5KHZhbCkpOwogICAgICAgIGNvbnNvbGUubG9nKCfnm5HmjqcnKTsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgICBwYXRoOiAnTW9uaXRvclBhZ2UnCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvL3RhYuWIh+aNogogICAgaGFuZGxlVGFic0NsaWNrOiBmdW5jdGlvbiBoYW5kbGVUYWJzQ2xpY2sodGFiKSB7CiAgICAgIHRoaXMuc2VhcmNoVHlwZSA9IGZhbHNlOwogICAgICB0aGlzLnNlYXJjaEZvcm0gPSB7CiAgICAgICAgcmVnaW9uVmFsdWU6IFtdLAogICAgICAgIHByb2R1Y3RWYWx1ZTogW10KICAgICAgfTsKICAgICAgdGhpcy5sb2FkUHJvZHVjdCgpOwogICAgICBpZiAodGFiLmluZGV4ID09IDIpIHsKICAgICAgICB0aGlzLmdldFZpZGVvRGF0YSgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZ2V0UmVwb3J0Rm9ybSgpOwogICAgICB9CiAgICB9LAogICAgLy/kuqflk4HmoJEKICAgIGxvYWRQcm9kdWN0OiBmdW5jdGlvbiBsb2FkUHJvZHVjdCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHJlc291cmNlTWFuYWdlLmdldFByb2R1Y3RUcmVlKHsKICAgICAgICAvLyBmdWxsSWQ6IHRoaXMuYWN0aXZlTmFtZQogICAgICB9LCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgX3RoaXMyLnByb2R1Y3REYXRhID0gcmVzLnZhbHVlOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy/ljLrln58KICAgIGdldEFyZWFUcmVlOiBmdW5jdGlvbiBnZXRBcmVhVHJlZSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGVxdWlwbWVudE1hbmFnZS5sb2FkQXJlYVRyZWUoewogICAgICAgIGlkOiAnMCcKICAgICAgfSwgZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMy50cmVlRGF0YSA9IHJlcy52YWx1ZTsgLy8gdGhpcy5mb3JtYXREYXRhKHJlcy5yb3dzKQogICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy50cmVlRGF0YSk7CiAgICAgIH0pOwogICAgfSwKICAgIHJlZ2lvbkNoYW5nZTogZnVuY3Rpb24gcmVnaW9uQ2hhbmdlKHZhbCwgZGF0YSkgewogICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgdmFyIGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICBpZiAodmFsID09ICdwcm9kdWN0JykgewogICAgICAgIHRoaXMudHlwZUNvZGUgPSBhcnIucG9wKCk7CiAgICAgIH0gZWxzZSBpZiAodmFsID09ICd0aW1lJykgewogICAgICAgIGlmIChkYXRhID09IG51bGwpIHsKICAgICAgICAgIHRoaXMucGlja2VyT25lRGF0ZSA9IG51bGw7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gYXJyWzBdOwogICAgICAgICAgdGhpcy5lbmRUaW1lID0gYXJyWzFdOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmdldEVxdWlwbWVudFN0YXR1cygpOwogICAgfSwKICAgIC8vIOiOt+WPluaKpeihqOaVsOaNrgogICAgZ2V0UmVwb3J0Rm9ybTogZnVuY3Rpb24gZ2V0UmVwb3J0Rm9ybSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHZhciBhcmVhRnVsbElkID0gdGhpcy5zZWFyY2hGb3JtLnJlZ2lvblZhbHVlID8gdGhpcy5zZWFyY2hGb3JtLnJlZ2lvblZhbHVlLnBvcCgpIDogJyc7CiAgICAgIHZhciBmdWxsSWQgPSAnJzsKICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSkgewogICAgICAgIGZ1bGxJZCA9IHRoaXMuc2VhcmNoRm9ybS5wcm9kdWN0VmFsdWUucG9wKCk7CiAgICAgICAgY29uc29sZS5sb2coZnVsbElkKTsKICAgICAgICBpZiAoIWZ1bGxJZCkgewogICAgICAgICAgZnVsbElkID0gdGhpcy5hY3RpdmVOYW1lOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBmdWxsSWQgPSB0aGlzLmFjdGl2ZU5hbWU7CiAgICAgIH0KICAgICAgdmFyIGlzSW50ZWxsZWN0ID0gJyc7CiAgICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FyZWFGdWxsSWQnLCBhcmVhRnVsbElkID8gYXJlYUZ1bGxJZCA6ICcnKTsKICAgICAgZm9ybURhdGEuYXBwZW5kKCdmdWxsSWQnLCBmdWxsSWQgPyBmdWxsSWQgOiAnJyk7CiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaXNJbnRlbGxlY3QnLCBpc0ludGVsbGVjdCA/IGlzSW50ZWxsZWN0IDogJycpOwogICAgICB2YXIgY29uZmlnID0gewogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRoaXMuJGh0dHAucG9zdCh3aW5kb3cuY29udGV4dC5wb3J0YWwgKyAiL2hvbWVwYWdlL3YxL2RldmljZVByb2R1Y3RTdGF0aXN0aWNzIiwgZm9ybURhdGEsIGNvbmZpZykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5kYXRhLnN0YXRlKSB7CiAgICAgICAgICBfdGhpczQucmVwb3J0Rm9ybURhdGEgPSByZXMuZGF0YS52YWx1ZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8v6KeG6aKRCiAgICBnZXRWaWRlb0RhdGE6IGZ1bmN0aW9uIGdldFZpZGVvRGF0YSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHZhciBhcmVhRnVsbElkID0gdGhpcy5zZWFyY2hGb3JtLnJlZ2lvblZhbHVlLnBvcCgpOwogICAgICB2YXIgaXNJbnRlbGxlY3QgPSAnJzsKICAgICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYXJlYUZ1bGxJZCcsIGFyZWFGdWxsSWQgPyBhcmVhRnVsbElkIDogJycpOwogICAgICBmb3JtRGF0YS5hcHBlbmQoJ2Z1bGxJZCcsICcnKTsKICAgICAgZm9ybURhdGEuYXBwZW5kKCdpc0ludGVsbGVjdCcsIGlzSW50ZWxsZWN0ID8gaXNJbnRlbGxlY3QgOiAnJyk7CiAgICAgIHZhciBjb25maWcgPSB7CiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhpcy4kaHR0cC5wb3N0KHdpbmRvdy5jb250ZXh0LnBvcnRhbCArICIvaG9tZXBhZ2UvdjEvdmlkZW9TdGF0aXN0aWNzIiwgZm9ybURhdGEsIGNvbmZpZykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5kYXRhLnN0YXRlKSB7CiAgICAgICAgICBfdGhpczUucmVwb3J0Rm9ybURhdGEgPSByZXMuZGF0YS52YWx1ZTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHByb2R1Y3RDaGFuZ2U6IGZ1bmN0aW9uIHByb2R1Y3RDaGFuZ2UodmFsKSB7CiAgICAgIGlmICh0aGlzLnByb2R1Y3RWYWx1ZS5sZW5ndGggPiAwKSB7CiAgICAgICAgdmFyIGFyciA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9kdWN0VmFsdWUpKTsKICAgICAgICB0aGlzLmZ1bGxJZCA9IGFyci5wb3AoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmZ1bGxJZCA9ICcnOwogICAgICB9CiAgICAgIHRoaXMuYXJlYVN0YXR1c0xpc3QoKTsKICAgIH0sCiAgICAvL+iuvuWkh+WIhuaekAogICAgYXJlYVN0YXR1c0xpc3Q6IGZ1bmN0aW9uIGFyZWFTdGF0dXNMaXN0KCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYXJlYUlkJywgdGhpcy5hcmVhSWQgPyB0aGlzLmFyZWFJZCA6ICcnKTsKICAgICAgZm9ybURhdGEuYXBwZW5kKCdmdWxsSWQnLCB0aGlzLmZ1bGxJZCA/IHRoaXMuZnVsbElkIDogJycpOwogICAgICB2YXIgY29uZmlnID0gewogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRoaXMuJGh0dHAucG9zdCh3aW5kb3cuY29udGV4dC5wb3J0YWwgKyAiL2hvbWVwYWdlL3YxL2FyZWFTdGF0dXNBbmFseXplIiwgZm9ybURhdGEsIGNvbmZpZykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5kYXRhLnN0YXRlKSB7CiAgICAgICAgICBfdGhpczYuZXF1aXBtZW50RGF0YSA9IHJlcy5kYXRhLnZhbHVlOwogICAgICAgICAgX3RoaXM2LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIF90aGlzNi5lcXVpcG1lbnRJbml0KCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiuvuWkh+WIhuaekGVjaGFydHMKICAgIGVxdWlwbWVudEluaXQ6IGZ1bmN0aW9uIGVxdWlwbWVudEluaXQoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICB2YXIgbXlDaGFydCA9IGVjaGFydHMuaW5pdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQmFyJykpOwogICAgICAvLyDmjIflrprlm77ooajnmoTphY3nva7pobnlkozmlbDmja4KICAgICAgdmFyIEFEYXRhID0gW107CiAgICAgIHZhciBCRGF0YSA9IFtdOwogICAgICB2YXIgQ0RhdGEgPSBbXTsKICAgICAgdGhpcy5lcXVpcG1lbnREYXRhLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICBBRGF0YS5wdXNoKHsKICAgICAgICAgIHZhbHVlOiBlLm5vcm1hbCwKICAgICAgICAgIGV4dHJhOiB7CiAgICAgICAgICAgIHBhcmFtOiBlLmFyZWFJZAogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIEJEYXRhLnB1c2goewogICAgICAgICAgdmFsdWU6IGUuZmFpbHVyZSwKICAgICAgICAgIGV4dHJhOiB7CiAgICAgICAgICAgIHBhcmFtOiBlLmFyZWFJZAogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIENEYXRhLnB1c2goewogICAgICAgICAgdmFsdWU6IGUuYWxhcm0sCiAgICAgICAgICBleHRyYTogewogICAgICAgICAgICBwYXJhbTogZS5hcmVhSWQKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHZhciBvcHRpb24gPSB7CiAgICAgICAgdG9vbGJveDogewogICAgICAgICAgZmVhdHVyZTogewogICAgICAgICAgICByZXN0b3JlOiB7CiAgICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgICB0aXRsZTogJ+i/lOWbnicKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGljb25TdHlsZTogewogICAgICAgICAgICBib3JkZXJDb2xvcjogJyMwMDAnCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAvLyB0aXRsZTogewogICAgICAgIC8vIAl0ZXh0OiAn5YWo5qCh5Lq65pWw5rGH5oC7JywKICAgICAgICAvLyAJbGVmdDogJ2NlbnRlcicKICAgICAgICAvLyB9LAogICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgIHRyaWdnZXI6ICdheGlzJywKICAgICAgICAgIGF4aXNQb2ludGVyOiB7CiAgICAgICAgICAgIHR5cGU6ICdzaGFkb3cnCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBsZWdlbmQ6IHt9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIGxlZnQ6IDUwLAogICAgICAgICAgcmlnaHQ6IDIwLAogICAgICAgICAgYm90dG9tOiAnMTAlJwogICAgICAgIH0sCiAgICAgICAgeEF4aXM6IHsKICAgICAgICAgIGRhdGE6IHRoaXMuZXF1aXBtZW50RGF0YS5tYXAoZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgcmV0dXJuIGEuYXJlYU5hbWU7CiAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgeUF4aXM6IHt9LAogICAgICAgIHNlcmllczogW3sKICAgICAgICAgIC8vIGNvbG9yOiAnIzE4OTBmZicsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIG5hbWU6ICfmraPluLjmlbAnLAogICAgICAgICAgZGF0YTogQURhdGEsCiAgICAgICAgICBiYXJXaWR0aDogMjUsCiAgICAgICAgICBzaG93QmFja2dyb3VuZDogdHJ1ZSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGZvbnRTaXplOiAxMywKICAgICAgICAgICAgY29sb3I6ICcjMDAwJywKICAgICAgICAgICAgcG9zaXRpb246ICd0b3AnLAogICAgICAgICAgICAvLyDphY3nva7oh6rlrprkuYnlj4LmlbAKICAgICAgICAgICAgZXh0cmE6IHsKICAgICAgICAgICAgICBjdXN0b21QYXJhbTogJ+i/memHjOaYr+iHquWumuS5ieWPguaVsCcKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBub3JtYWw6IHsKICAgICAgICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbewogICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgY29sb3I6ICcjMDFEMUZGJwogICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIG9mZnNldDogMSwKICAgICAgICAgICAgICAgIGNvbG9yOiAnIzE4OTBmZicKICAgICAgICAgICAgICB9XSkKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIGNvbG9yOiAnI2ZmODAwMCcsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIG5hbWU6ICfmlYXpmpzmlbAnLAogICAgICAgICAgYmFyV2lkdGg6IDI1LAogICAgICAgICAgc2hvd0JhY2tncm91bmQ6IHRydWUsCiAgICAgICAgICBkYXRhOiBCRGF0YSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGZvbnRTaXplOiAxMywKICAgICAgICAgICAgY29sb3I6ICcjMDAwJywKICAgICAgICAgICAgcG9zaXRpb246ICd0b3AnLAogICAgICAgICAgICAvLyDphY3nva7oh6rlrprkuYnlj4LmlbAKICAgICAgICAgICAgZXh0cmE6IHsKICAgICAgICAgICAgICBjdXN0b21QYXJhbTogJ+i/memHjOaYr+iHquWumuS5ieWPguaVsCcKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBub3JtYWw6IHsKICAgICAgICAgICAgICBjb2xvcjogbmV3IGVjaGFydHMuZ3JhcGhpYy5MaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxLCBbewogICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgY29sb3I6ICcjRkZCRDdBJwogICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIG9mZnNldDogMSwKICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmODAwMCcKICAgICAgICAgICAgICB9XSkKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIGNvbG9yOiAnI2Y5YzcwMCcsCiAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgIG5hbWU6ICfmiqXorabmlbAnLAogICAgICAgICAgYmFyV2lkdGg6IDI1LAogICAgICAgICAgZGF0YTogQ0RhdGEsCiAgICAgICAgICBzaG93QmFja2dyb3VuZDogdHJ1ZSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgIGZvbnRTaXplOiAxMywKICAgICAgICAgICAgY29sb3I6ICcjMDAwJywKICAgICAgICAgICAgcG9zaXRpb246ICd0b3AnLAogICAgICAgICAgICBleHRyYTogewogICAgICAgICAgICAgIGN1c3RvbVBhcmFtOiAn6L+Z6YeM5piv6Ieq5a6a5LmJ5Y+C5pWwJwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGNvbG9yOiBuZXcgZWNoYXJ0cy5ncmFwaGljLkxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDEsIFt7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsCiAgICAgICAgICAgICAgICBjb2xvcjogJyNGRkUzNzUnCiAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgb2Zmc2V0OiAxLAogICAgICAgICAgICAgICAgY29sb3I6ICcjZjljNzAwJwogICAgICAgICAgICAgIH1dKQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfTsKICAgICAgb3B0aW9uLnhBeGlzLmRhdGEgPSB0aGlzLmVxdWlwbWVudERhdGEubWFwKGZ1bmN0aW9uIChhKSB7CiAgICAgICAgcmV0dXJuIGEuYXJlYU5hbWU7CiAgICAgIH0pOwogICAgICBteUNoYXJ0LnNldE9wdGlvbihvcHRpb24pOwogICAgICAvLyDngrnlh7vmn7Hnirbop6blj5Hkuovku7bvvIjngrnlh7vkuovku7bvvIzngrnlh7vkuIvpkrvmn6Xor6LlubTnuqfmiYDlsZ7nmoTnj63nuqfmlbDmja7vvIkg5aaC5LiN6ZyA6KaB5LiL6ZK75p+l6K+i5Y+v5LiN5YaZCiAgICAgIG15Q2hhcnQub24oJ2NsaWNrJywgZnVuY3Rpb24gKHBhcmFtcykgewogICAgICAgIHZhciBhcmVhSWQgPSBwYXJhbXMuZGF0YS5leHRyYS5wYXJhbTsKICAgICAgICBpZiAoYXJlYUlkKSB7CiAgICAgICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYXJlYUlkJywgYXJlYUlkID8gYXJlYUlkIDogJycpOwogICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmdWxsSWQnLCBfdGhpczcuZnVsbElkID8gX3RoaXM3LmZ1bGxJZCA6ICcnKTsKICAgICAgICAgIHZhciBjb25maWcgPSB7CiAgICAgICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBfdGhpczcuJGh0dHAucG9zdCh3aW5kb3cuY29udGV4dC5wb3J0YWwgKyAiL2hvbWVwYWdlL3YxL2FyZWFTdGF0dXNBbmFseXplIiwgZm9ybURhdGEsIGNvbmZpZykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0ZSkgewogICAgICAgICAgICAgIHZhciBfQURhdGEgPSBbXTsKICAgICAgICAgICAgICB2YXIgX0JEYXRhID0gW107CiAgICAgICAgICAgICAgdmFyIF9DRGF0YSA9IFtdOwogICAgICAgICAgICAgIF90aGlzNy5lcXVpcG1lbnREYXRhID0gcmVzLmRhdGEudmFsdWU7CiAgICAgICAgICAgICAgcmVzLmRhdGEudmFsdWUuZm9yRWFjaChmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgX0FEYXRhLnB1c2goewogICAgICAgICAgICAgICAgICB2YWx1ZTogZS5ub3JtYWwsCiAgICAgICAgICAgICAgICAgIGV4dHJhOiB7CiAgICAgICAgICAgICAgICAgICAgcGFyYW06IGUuYXJlYUlkCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgX0JEYXRhLnB1c2goewogICAgICAgICAgICAgICAgICB2YWx1ZTogZS5mYWlsdXJlLAogICAgICAgICAgICAgICAgICBleHRyYTogewogICAgICAgICAgICAgICAgICAgIHBhcmFtOiBlLmFyZWFJZAogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF9DRGF0YS5wdXNoKHsKICAgICAgICAgICAgICAgICAgdmFsdWU6IGUuYWxhcm0sCiAgICAgICAgICAgICAgICAgIGV4dHJhOiB7CiAgICAgICAgICAgICAgICAgICAgcGFyYW06IGUuYXJlYUlkCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIG9wdGlvbi5zZXJpZXMgPSBbewogICAgICAgICAgICAgICAgY29sb3I6ICcjMTg5MGZmJywKICAgICAgICAgICAgICAgIHR5cGU6ICdiYXInLAogICAgICAgICAgICAgICAgbmFtZTogJ+ato+W4uOaVsCcsCiAgICAgICAgICAgICAgICBkYXRhOiBfQURhdGEKICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBjb2xvcjogJyNmZjgwMDAnLAogICAgICAgICAgICAgICAgdHlwZTogJ2JhcicsCiAgICAgICAgICAgICAgICBuYW1lOiAn5pWF6Zqc5pWwJywKICAgICAgICAgICAgICAgIGRhdGE6IF9CRGF0YQogICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGNvbG9yOiAnI2Y5YzcwMCcsCiAgICAgICAgICAgICAgICB0eXBlOiAnYmFyJywKICAgICAgICAgICAgICAgIG5hbWU6ICfmiqXorabmlbAnLAogICAgICAgICAgICAgICAgZGF0YTogX0NEYXRhCiAgICAgICAgICAgICAgfV07CiAgICAgICAgICAgICAgb3B0aW9uLnhBeGlzLmRhdGEgPSBfdGhpczcuZXF1aXBtZW50RGF0YS5tYXAoZnVuY3Rpb24gKGEpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhLmFyZWFOYW1lOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIG15Q2hhcnQuc2V0T3B0aW9uKG9wdGlvbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy/ojrflj5borr7lpIfkvb/nlKjlubTpmZDliIbmnpDmlbDmja4KICAgIGdldEVxdWlwbWVudExpZmU6IGZ1bmN0aW9uIGdldEVxdWlwbWVudExpZmUoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICBlcXVpcG1lbnRJbmRleC5saWZlQW5hbHl6ZShmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgcmVzLnZhbHVlID0gcmVzLnZhbHVlLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lLAogICAgICAgICAgICAgIOato+W4uOS9v+eUqOW5tOmZkOaVsOmHjzogaXRlbS5ub3JtYWwsCiAgICAgICAgICAgICAg5Li06L+R5L2/55So5bm06ZmQ5pWw6YePOiBpdGVtLndhcm4sCiAgICAgICAgICAgICAg6LaF6L+H5L2/55So5bm06ZmQ5pWw6YePOiBpdGVtLmFsYXJtCiAgICAgICAgICAgIH07CiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzOC53YXJuQW5hbHl6ZURhdGEgPSByZXMudmFsdWU7CiAgICAgICAgICBfdGhpczguJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgX3RoaXM4LmVxdWlwbWVudExpZmUoKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy/orr7lpIfkvb/nlKjlubTpmZDliIbmnpAKICAgIGVxdWlwbWVudExpZmU6IGZ1bmN0aW9uIGVxdWlwbWVudExpZmUoKSB7CiAgICAgIHZhciBteUNoYXJ0ID0gZWNoYXJ0cy5pbml0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWZlQW5hbHl6ZScpKTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICBsZWdlbmQ6IHt9LAogICAgICAgIHRvb2x0aXA6IHt9LAogICAgICAgIGdyaWQ6IHsKICAgICAgICAgIC8vIHRvcDogJzIlJywKICAgICAgICAgIGxlZnQ6ICcyJScsCiAgICAgICAgICByaWdodDogJzQlJywKICAgICAgICAgIGJvdHRvbTogJzQlJywKICAgICAgICAgIGNvbnRhaW5MYWJlbDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgY29sb3I6IFsnIzE4OTBmZicsICcjZjljNzAwJywgJyNmZjgwMDAnXSwKICAgICAgICBkYXRhc2V0OiB7CiAgICAgICAgICAvLyAgICAgICAgICB0eXBlTmFtZTogaXRlbS50eXBlTmFtZSwKICAgICAgICAgIC8vIOiuvuWkh+S9v+eUqOW5tOmZkOmihOitpuaVsDogaXRlbS53YXJuLAogICAgICAgICAgLy8g6K6+5aSH5oql6K2m5pWwOiBpdGVtLmFsYXJtCiAgICAgICAgICBkaW1lbnNpb25zOiBbJ3R5cGVOYW1lJywgJ+ato+W4uOS9v+eUqOW5tOmZkOaVsOmHjycsICfkuLTov5Hkvb/nlKjlubTpmZDmlbDph48nLCAn6LaF6L+H5L2/55So5bm06ZmQ5pWw6YePJ10sCiAgICAgICAgICBzb3VyY2U6IHRoaXMud2FybkFuYWx5emVEYXRhCiAgICAgICAgfSwKICAgICAgICAvLyB4QXhpczoge3R5cGU6ICdjYXRlZ29yeSd9LAogICAgICAgIHhBeGlzOiB7CiAgICAgICAgICB0eXBlOiAndmFsdWUnLAogICAgICAgICAgYm91bmRhcnlHYXA6IFswLCAwLjFdLAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHRleHRTdHlsZTogewogICAgICAgICAgICAgIC8vIGNvbG9yOiAiI0M1RDJGMiIsIC8v6aKc6ImyCiAgICAgICAgICAgICAgZm9udFNpemU6ICcxNCcgLy/lrZfkvZPlpKflsI8KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIC8vIG1heDogMTUwLCAvL+acgOWkp+WAvAogICAgICAgICAgbWluOiAwLAogICAgICAgICAgLy/mnIDlsI/lgLwKICAgICAgICAgIHNwbGl0TnVtYmVyOiAzLAogICAgICAgICAgLy/pl7TpmpTmlbDph48KICAgICAgICAgIGF4aXNUaWNrOiB7CiAgICAgICAgICAgIC8v5Z2Q5qCH6L205Yi75bqm55u45YWz6K6+572uCiAgICAgICAgICAgIHNob3c6IGZhbHNlIC8v5piv5ZCm5pi+56S65Z2Q5qCH6L205Yi75bqm44CCCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB5QXhpczogW3sKICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScKICAgICAgICB9XSwKICAgICAgICAvLyBEZWNsYXJlIHNldmVyYWwgYmFyIHNlcmllcywgZWFjaCB3aWxsIGJlIG1hcHBlZAogICAgICAgIC8vIHRvIGEgY29sdW1uIG9mIGRhdGFzZXQuc291cmNlIGJ5IGRlZmF1bHQuCiAgICAgICAgc2VyaWVzOiBbewogICAgICAgICAgdHlwZTogJ2JhcicsCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBmb250U2l6ZTogMTMsCiAgICAgICAgICAgIHBvc2l0aW9uOiAncmlnaHQnCiAgICAgICAgICAgIC8vIG5vcm1hbDogewogICAgICAgICAgICAvLyAJc2hvdzogZmFsc2UsCiAgICAgICAgICAgIC8vIAlwb3NpdGlvbjogJ3RvcCcKICAgICAgICAgICAgLy8gfSwKICAgICAgICAgICAgLy8gZm9ybWF0dGVyOiAne0B2YWx1ZX0nLAogICAgICAgICAgfSwKICAgICAgICAgIHNob3dCYWNrZ3JvdW5kOiB0cnVlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiBjb2xvcigpIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdsaW5lYXInLAogICAgICAgICAgICAgICAgICB4OiAxLAogICAgICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgICAgICB4MjogMCwKICAgICAgICAgICAgICAgICAgeTI6IDAsCiAgICAgICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAxRDFGRicgLy8gMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuOSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMxODkwZmYnIC8vIDEwMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdiYXInLAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgZm9udFNpemU6IDEzLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JwogICAgICAgICAgfSwKICAgICAgICAgIHNob3dCYWNrZ3JvdW5kOiB0cnVlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiBjb2xvcigpIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdsaW5lYXInLAogICAgICAgICAgICAgICAgICB4OiAxLAogICAgICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgICAgICB4MjogMCwKICAgICAgICAgICAgICAgICAgeTI6IDAsCiAgICAgICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI0ZGRTM3NScgLy8gMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuOSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyNmOWM3MDAnIC8vIDEwMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdiYXInLAogICAgICAgICAgbGFiZWw6IHsKICAgICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgICAgZm9udFNpemU6IDEzLAogICAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JwogICAgICAgICAgICAvLyBub3JtYWw6IHsKICAgICAgICAgICAgLy8gCXNob3c6IGZhbHNlLAogICAgICAgICAgICAvLyAJcG9zaXRpb246ICd0b3AnCiAgICAgICAgICAgIC8vIH0sCiAgICAgICAgICAgIC8vIGZvcm1hdHRlcjogJ3tAdmFsdWV9JwogICAgICAgICAgfSwKICAgICAgICAgIHNob3dCYWNrZ3JvdW5kOiB0cnVlLAogICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgIG5vcm1hbDogewogICAgICAgICAgICAgIGNvbG9yOiBmdW5jdGlvbiBjb2xvcigpIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdsaW5lYXInLAogICAgICAgICAgICAgICAgICB4OiAxLAogICAgICAgICAgICAgICAgICB5OiAwLAogICAgICAgICAgICAgICAgICB4MjogMCwKICAgICAgICAgICAgICAgICAgeTI6IDAsCiAgICAgICAgICAgICAgICAgIGNvbG9yU3RvcHM6IFt7CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI0ZGQkQ3QScgLy8gMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuOSwKICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyNmZjgwMDAnIC8vIDEwMCUg5aSE55qE6aKc6ImyCiAgICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH1dLAogICAgICAgIC8v5rua5Yqo5p2hCiAgICAgICAgZGF0YVpvb206IFt7CiAgICAgICAgICB0eXBlOiAnc2xpZGVyJywKICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICB5QXhpc0luZGV4OiBbMF0sCiAgICAgICAgICB3aWR0aDogNiwKICAgICAgICAgIC8v57uE5Lu25a695bqmCiAgICAgICAgICAvLyBiYWNrZ3JvdW5kQ29sb3I6ICIjMUE1M0REIiwgLy/kuKTovrnmnKrpgInkuK3nmoTmu5HliqjmnaHljLrln5/nmoTpopzoibIKICAgICAgICAgIGJvcmRlclJhZGl1czogNSwKICAgICAgICAgIC8vIGJvcmRlckNvbG9yOiAiIzA5MzY4MyIsIC8v5rua5Yqo5p2h6L655qGG6aKc6ImyCiAgICAgICAgICAvLyBmaWxsZXJDb2xvcjogIiMwOTM2ODMiLCAvL+mAieS4reeahOa7keWKqOadoeWMuuWfn+eahOminOiJsgogICAgICAgICAgbGVmdDogJzk1JScsCiAgICAgICAgICAvL+a7muWKqOadoeS9jee9rgogICAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgICAvL+aVsOaNrueql+WPo+iMg+WbtOeahOi1t+Wni+eZvuWIhuavlAogICAgICAgICAgZW5kOiAxMCwKICAgICAgICAgIC8v5pWw5o2u56qX5Y+j6IyD5Zu055qE57uT5p2f55m+5YiG5q+UCiAgICAgICAgICByZWFsdGltZTogdHJ1ZSAvL+aYr+WQpuWunuaXtuabtOaWsAogICAgICAgIH1dCiAgICAgIH07CiAgICAgIG9wdGlvbiAmJiBteUNoYXJ0LnNldE9wdGlvbihvcHRpb24pOwogICAgfSwKICAgIC8v6K6+5aSH54q25oCB5YiG5p6QCiAgICBnZXRFcXVpcG1lbnRTdGF0dXM6IGZ1bmN0aW9uIGdldEVxdWlwbWVudFN0YXR1cygpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwogICAgICBmb3JtRGF0YS5hcHBlbmQoJ3R5cGVDb2RlJywgdGhpcy50eXBlQ29kZSA/IHRoaXMudHlwZUNvZGUgOiAnJyk7CiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc3RhcnRUaW1lJywgdGhpcy5zdGFydFRpbWUgPyB0aGlzLnN0YXJ0VGltZSA6ICcnKTsKICAgICAgZm9ybURhdGEuYXBwZW5kKCdlbmRUaW1lJywgdGhpcy5lbmRUaW1lID8gdGhpcy5lbmRUaW1lIDogJycpOwogICAgICB2YXIgY29uZmlnID0gewogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRoaXMuJGh0dHAucG9zdCh3aW5kb3cuY29udGV4dC5wb3J0YWwgKyAiL2hvbWVwYWdlL3YxL3dhcm5GYWlsdXJlSGlzQW5hbHl6ZSIsIGZvcm1EYXRhLCBjb25maWcpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGlmIChyZXMuZGF0YS5zdGF0ZSkgewogICAgICAgICAgY29uc29sZS5sb2cocmVzLmRhdGEudmFsdWUpOwogICAgICAgICAgX3RoaXM5LmVxdWlwbWVudFN0YXR1c0RhdGEgPSByZXMuZGF0YS52YWx1ZTsKICAgICAgICAgIC8vIHRoaXMuZXF1aXBtZW50RGF0YSA9IHJlcy5kYXRhLnZhbHVlCiAgICAgICAgICBfdGhpczkuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgX3RoaXM5LmVxdWlwbWVudFN0YXR1cygpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvL+iuvuWkh+eKtuaAgeWIhuaekGVjaGFydHMKICAgIGVxdWlwbWVudFN0YXR1czogZnVuY3Rpb24gZXF1aXBtZW50U3RhdHVzKCkgewogICAgICB2YXIgbXlDaGFydCA9IGVjaGFydHMuaW5pdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGV2aWNlTGlzdCcpKTsKICAgICAgdmFyIHhOYW1lID0gW107CiAgICAgIHZhciBBRGF0YSA9IFtdOwogICAgICB2YXIgQkRhdGEgPSBbXTsKICAgICAgdGhpcy5lcXVpcG1lbnRTdGF0dXNEYXRhLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgICB4TmFtZS5wdXNoKGUudHlwZU5hbWUpOwogICAgICAgIEFEYXRhLnB1c2goZS5mYWlsdXJlKTsKICAgICAgICBCRGF0YS5wdXNoKGUuYWxhcm0pOwogICAgICB9KTsKICAgICAgdmFyIG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAnYXhpcycsCiAgICAgICAgICBheGlzUG9pbnRlcjogewogICAgICAgICAgICB0eXBlOiAnY3Jvc3MnLAogICAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyM2YTc5ODUnCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBmb3JtYXR0ZXI6IGZ1bmN0aW9uIGZvcm1hdHRlcihwYXJhbXMpIHsKICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocGFyYW1zKQogICAgICAgICAgICB2YXIgcmVsVmFsID0gcGFyYW1zWzBdLm5hbWU7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFyYW1zLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgICAgICAgIHJlbFZhbCArPSAnPGJyLz4nICsgcGFyYW1zW2ldLm1hcmtlciArIHBhcmFtc1tpXS5zZXJpZXNOYW1lICsgJzonICsgJzxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPicgKyBwYXJhbXNbaV0udmFsdWUgKyAnPC9zcGFuPicgKyAn5LiqJzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmVsVmFsOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgLy8g5pu05pS55Zu+5L6L6buY6K6k6aKc6ImyKOS+neasoeW6lOeUqCkKICAgICAgICBjb2xvcjogWycjZjljNzAwJywgJyNmZjgwMDAnXSwKICAgICAgICBsZWdlbmQ6IHsKICAgICAgICAgIGljb246ICdjaXJjbGUnLAogICAgICAgICAgLy/lm77kvovmoLflvI8KICAgICAgICAgIGRhdGE6IFsn5oql6K2m5pWw6YePJywgJ+aVhemanOaVsOmHjyddCiAgICAgICAgfSwKICAgICAgICAvLyB0b29sYm94OiB7CiAgICAgICAgLy8gICBmZWF0dXJlOiB7CiAgICAgICAgLy8gICAgIHNhdmVBc0ltYWdlOiB7fQogICAgICAgIC8vICAgfQogICAgICAgIC8vIH0sCiAgICAgICAgZ3JpZDogewogICAgICAgICAgbGVmdDogJzMlJywKICAgICAgICAgIHJpZ2h0OiAnNCUnLAogICAgICAgICAgYm90dG9tOiAnNSUnLAogICAgICAgICAgY29udGFpbkxhYmVsOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB4QXhpczogW3sKICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScsCiAgICAgICAgICAvLyBib3VuZGFyeUdhcDogZmFsc2UsCiAgICAgICAgICBkYXRhOiB4TmFtZSwKICAgICAgICAgIGF4aXNMYWJlbDogewogICAgICAgICAgICBpbnRlcnZhbDogMCAvL+S7o+ihqOaYvuekuuaJgOaciXjovbTmoIfnrb7mmL7npLoKICAgICAgICAgICAgLy8gcm90YXRlOiA0NSAvL+S7o+ihqOmAhuaXtumSiOaXi+i9rDQ15bqmCiAgICAgICAgICB9CiAgICAgICAgfV0sCiAgICAgICAgeUF4aXM6IFt7CiAgICAgICAgICBtYXg6IGZ1bmN0aW9uIG1heCh2YWx1ZSkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUubWF4ICsgcGFyc2VJbnQodmFsdWUubWF4ICogMC4yKTsKICAgICAgICAgIH0sCiAgICAgICAgICBtaW5JbnRlcnZhbDogMSwKICAgICAgICAgIHR5cGU6ICd2YWx1ZScKICAgICAgICB9XSwKICAgICAgICBzZXJpZXM6IFtfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KHsKICAgICAgICAgIG5hbWU6ICfmiqXorabmlbDph48nLAogICAgICAgICAgdHlwZTogJ2xpbmUnLAogICAgICAgICAgc3RhY2s6ICdUb3RhbDInLAogICAgICAgICAgc21vb3RoOiB0cnVlLAogICAgICAgICAgYXJlYVN0eWxlOiB7CiAgICAgICAgICAgIGNvbG9yOiAnI2M4ZWNmMicKICAgICAgICAgIH0sCiAgICAgICAgICBlbXBoYXNpczogewogICAgICAgICAgICBmb2N1czogJ3NlcmllcycKICAgICAgICAgIH0KICAgICAgICB9LCAiYXJlYVN0eWxlIiwgewogICAgICAgICAgY29sb3I6IHsKICAgICAgICAgICAgdHlwZTogJ2xpbmVhcicsCiAgICAgICAgICAgIHg6IDAsCiAgICAgICAgICAgIHk6IDAsCiAgICAgICAgICAgIHgyOiAwLAogICAgICAgICAgICB5MjogMSwKICAgICAgICAgICAgY29sb3JTdG9wczogWwogICAgICAgICAgICAvLyDmuJDlj5jpopzoibIKICAgICAgICAgICAgewogICAgICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjQ5LCAxOTksIDAsIDAuNiknCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICBvZmZzZXQ6IDEsCiAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI0OSwgMTk5LCAwLCAwKScKICAgICAgICAgICAgfV0sCiAgICAgICAgICAgIGdsb2JhbDogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9KSwgImRhdGEiLCBBRGF0YSksIF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoewogICAgICAgICAgbmFtZTogJ+aVhemanOaVsOmHjycsCiAgICAgICAgICB0eXBlOiAnbGluZScsCiAgICAgICAgICBzdGFjazogJ1RvdGFsMycsCiAgICAgICAgICBzbW9vdGg6IHRydWUsCiAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgICBwb3NpdGlvbjogJ3RvcCcKICAgICAgICAgIH0sCiAgICAgICAgICBhcmVhU3R5bGU6IHsKICAgICAgICAgICAgY29sb3I6ICcjZmZlN2UxJwogICAgICAgICAgfSwKICAgICAgICAgIGVtcGhhc2lzOiB7CiAgICAgICAgICAgIGZvY3VzOiAnc2VyaWVzJwogICAgICAgICAgfQogICAgICAgIH0sICJhcmVhU3R5bGUiLCB7CiAgICAgICAgICBjb2xvcjogewogICAgICAgICAgICB0eXBlOiAnbGluZWFyJywKICAgICAgICAgICAgeDogMCwKICAgICAgICAgICAgeTogMCwKICAgICAgICAgICAgeDI6IDAsCiAgICAgICAgICAgIHkyOiAxLAogICAgICAgICAgICBjb2xvclN0b3BzOiBbCiAgICAgICAgICAgIC8vIOa4kOWPmOminOiJsgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgb2Zmc2V0OiAwLAogICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDEyOCwgMCwgMC42KScKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgIG9mZnNldDogMSwKICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAxMjgsIDAsIDApJwogICAgICAgICAgICB9XSwKICAgICAgICAgICAgZ2xvYmFsOiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0pLCAiZGF0YSIsIEJEYXRhKV0sCiAgICAgICAgLy/mu5rliqjmnaEKICAgICAgICBkYXRhWm9vbTogWwogICAgICAgIC8vIHsKICAgICAgICAvLyAgICAgdHlwZTogJ2luc2lkZScsCiAgICAgICAgLy8gfSwKICAgICAgICB7CiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgdHlwZTogJ3NsaWRlcicsCiAgICAgICAgICByZWFsdGltZTogdHJ1ZSwKICAgICAgICAgIHN0YXJ0VmFsdWU6IDAsCiAgICAgICAgICBlbmRWYWx1ZTogMTQsCiAgICAgICAgICB4QXhpc0luZGV4OiBbMF0sCiAgICAgICAgICBib3R0b206ICcxMCcsCiAgICAgICAgICBsZWZ0OiAnMzAnLAogICAgICAgICAgaGVpZ2h0OiAxMCwKICAgICAgICAgIGJvcmRlckNvbG9yOiAncmdiYSgwLDAsMCwwKScKICAgICAgICAgIC8vIHRleHRTdHlsZTogewogICAgICAgICAgLy8gCWNvbG9yOiAnIzAwMCcsCiAgICAgICAgICAvLyB9LAogICAgICAgIH1dCiAgICAgIH07CiAgICAgIG9wdGlvbiAmJiBteUNoYXJ0LnNldE9wdGlvbihvcHRpb24pOwogICAgfQogIH0KfTs="},null]}