9aca3b52cc29179c7c2311c9d6b131d8.json 25 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\goods\\sale\\AddGoodsAdjustPrice.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\goods\\sale\\AddGoodsAdjustPrice.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgR29vZHNDaG9vc2VTaG9wIGZyb20gIkAvY29tcG9uZW50L2dvb2RzL0dvb2RzQ2hvb3NlU2hvcC52dWUiOwppbXBvcnQgQ29uZGl0aW9uU2VsR29vZHMgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL0NvbmRpdGlvblNlbEdvb2RzIjsKaW1wb3J0IFNlbGVjdFNob3AgZnJvbSAiQC9jb21wb25lbnQvZ29vZHMvU2VsZWN0U2hvcC52dWUiOwppbXBvcnQgeyBnZXRHb29kc0luZm8gfSBmcm9tICJAL2FwaS9nb29kcyI7CmltcG9ydCB7IGFkZFBhdXNlU2F2ZSwgZ2V0UGF1c2VTYXZlLCBkZWxQYXVzZVNhdmUgfSBmcm9tICJAL2FwaS9jb21tb24iOwppbXBvcnQgeyBhZGRBbmRFZmZlY3RpdmUsIFByaWNlQWRqdXN0bWVudEFkZCB9IGZyb20gIkAvYXBpL1ByaWNlIjsKaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gInZ1ZXgiOwppbXBvcnQgeyBnZXRTdXBwbGllck9mZmVyUHJpY2UgfSBmcm9tICJAL2FwaS9TdXBwbGllciI7CmltcG9ydCB7IGdldFJlbE1hcCB9IGZyb20gIkAvYXBpL2dvb2RzIjsKY29uc3QgbGFkZGVyUHJpY2VEYXRhID0gW3sKICBmcm9tOiAxLAogIHByaWNlOiAwLjAxLAogIHRvOiAyCn0sIHsKICBmcm9tOiAzLAogIHByaWNlOiAwLjAxLAogIHRvOiA0Cn0sIHsKICBmcm9tOiA1LAogIHByaWNlOiAwLjAxLAogIHRvOiA5OTk5OTk5OTkKfV07CmNvbnN0IGdvb2RzSXRlbSA9IHsKICBjcmVhdGVVc2VyTmFtZTogIiIsCiAgZ29vZHNOYW1lOiAiIiwKICBnb29kc0lkOiAiIiwKICBzYWxlVHlwZTogIjEiLAogIHNhbGVQcmljZVR5cGU6ICIxIiwKICBzYWxlUHJpY2VBcmVhVHlwZTogMSwKICBzYWxlUHJpY2U6ICIiLAogIG5vd1ByaWNlOiAiIiwKICB1bml0TmFtZTogIiIsCiAgc2t1SWQ6ICIiLAogIHNob3BJZDogIiIsCiAgc2hvcE5hbWU6ICIiLAogIGxhZGRlclByaWNlOiBsYWRkZXJQcmljZURhdGEsCiAgZW5hYmxlZExhZGRlcjogMAp9OwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkFkZEdvb2RzQWRqdXN0UHJpY2UiLAogIGNvbXBvbmVudHM6IHsKICAgIENvbmRpdGlvblNlbEdvb2RzLAogICAgU2VsZWN0U2hvcAogIH0sCiAgcHJvcHM6IHsKICAgIGdvb2RJZDogewogICAgICB0eXBlOiBbTnVtYmVyLCBTdHJpbmddLAogICAgICBkZWZhdWx0OiAwCiAgICB9CiAgfSwKCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNob3dfZ29vZHM6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgc2hvcF9uYW1lOiAiIiwKICAgICAgaXNEcmF3OiBmYWxzZSwKICAgICAgc2hvd19zaG9wOiBmYWxzZSwKICAgICAgbV9pbmRleDogIiIsCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIG1hdGVyaWFsTmFtZTogIiIsCiAgICAgIG1hdGVyaWFsRGF0YToge30sCiAgICAgIHNob3BfaWQ6ICIiLAogICAgICB1c2VyX3Bvd2VyOiB7fSwKICAgICAgcGFnZU5hbWU6ICIiLAogICAgICBnb29kc19pbmRleDogMCwKICAgICAgZ29vZHNfb3B0aW9uczogW10sCiAgICAgIHNlbGVjdF9sb2FkaW5nOiBmYWxzZSwKICAgICAgc3BlY19jaGVjazogW10sCiAgICAgIGdvb2RzSXRlbToge30sCiAgICAgIG1vZGlmeV9saXN0OiBbXSwKICAgICAgcHJpY2VfaWQ6IDAKICAgIH07CiAgfSwKCiAgY29tcHV0ZWQ6IHsgLi4ubWFwR2V0dGVycyh7CiAgICAgIHN0b3JlRGF0YTogIk1Vc2VyL3N0b3JlRGF0YSIKICAgIH0pCiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMucGFnZU5hbWUgPSB0aGlzLiRyb3V0ZS5uYW1lOyAvLyDllYblk4HliJfooajov5vooYzllYblk4HosIPku7cKCiAgICB0aGlzLmlzRHJhdyA9IHRoaXMuZ29vZElkID4gMDsKCiAgICBpZiAodGhpcy5pc0RyYXcpIHsKICAgICAgdGhpcy5nZXRHb29kc0RldGFpbCgpOwogICAgfSBlbHNlIHsKICAgICAgLy8g5oql5Lu35Y2VCiAgICAgIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS5wcmljZV9pZCkgewogICAgICAgIHRoaXMucHJpY2VfaWQgPSB0aGlzLiRyb3V0ZS5xdWVyeS5wcmljZV9pZDsgLy8gdGhpcy5nZXRTdXBwbGllck9mZmVyUHJpY2UoKTsKCiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxOyBpKyspIHsKICAgICAgICB0aGlzLnRhYmxlRGF0YS5wdXNoKHRoaXMuJF9jb21tb24uZGVlcENsb25lKGdvb2RzSXRlbSkpOwogICAgICB9CgogICAgICB0aGlzLmdldFBhdXNlU2F2ZSgpOwogICAgfQogIH0sCgogIG1vdW50ZWQoKSB7CiAgICBpZiAoWzIsIDNdLmluY2x1ZGVzKHRoaXMuc3lzdGVtVHlwZSkpIHsKICAgICAgdGhpcy5zaG9wX2lkID0gdGhpcy5zdG9yZURhdGEuaWQ7CiAgICAgIHRoaXMuc2hvcF9uYW1lID0gdGhpcy5zdG9yZURhdGEubmFtZTsKICAgIH0KICB9LAoKICBtZXRob2RzOiB7CiAgICBwcmljZUNoYW5nZShpbmRleCkgewogICAgICBsZXQgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy50YWJsZURhdGEpOwogICAgICBsZXQgc2FsZVByaWNlID0gdGFyZ2V0W2luZGV4XS5zYWxlUHJpY2U7CgogICAgICBpZiAoc2FsZVByaWNlIDwgMCkgewogICAgICAgIHRhcmdldFtpbmRleF0uc2FsZVByaWNlID0gMDsKICAgICAgfQoKICAgICAgdGhpcy50YWJsZURhdGEgPSB0YXJnZXQ7CiAgICB9LAoKICAgIHNob3BEZWZhdWx0KHZhbCwgb2JqKSB7CiAgICAgIHRoaXMuc2hvcF9pZCA9IHZhbDsKICAgICAgdGhpcy5zaG9wX25hbWUgPSBvYmoubmFtZTsKCiAgICAgIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS5wcmljZV9pZCkgewogICAgICAgIHRoaXMuZ2V0U3VwcGxpZXJPZmZlclByaWNlKCk7CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgZ2V0UmVsTWFwKG1hdGVyaWVsSWQpIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldFJlbE1hcCh7CiAgICAgICAgc2hvcElkOiB0aGlzLnNob3BfaWQsCiAgICAgICAgbWF0ZXJpZWxJZHM6IG1hdGVyaWVsSWQKICAgICAgfSk7CiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGEubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICBnb29kc0lkOiBkYXRhW2l0ZW0uaWRdIHx8IDAKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCgogICAgYXN5bmMgZ2V0U3VwcGxpZXJPZmZlclByaWNlKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0U3VwcGxpZXJPZmZlclByaWNlKHRoaXMucHJpY2VfaWQpOwogICAgICBsZXQgZGV0YWlsc19saXN0ID0gW107CiAgICAgIGRhdGEuZGF0YS5kZXRhaWxzLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgZm9yIChsZXQgaSBpbiBpdGVtLm9mZmVyUHJpY2UpIHsKICAgICAgICAgIGRldGFpbHNfbGlzdC5wdXNoKHsKICAgICAgICAgICAgZ29vZHNOYW1lOiBpdGVtLm1hdGVyaWVsTmFtZSwKICAgICAgICAgICAgY29kZTogaXRlbS5tYXRlcmllbENvZGUsCiAgICAgICAgICAgIGlkOiBpdGVtLm1hdGVyaWVsSWQsCiAgICAgICAgICAgIHNrdUlkOiBpLAogICAgICAgICAgICAuLi5pdGVtLm9mZmVyUHJpY2VbaV0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIGxldCBnb29kc19saXN0ID0gZGV0YWlsc19saXN0Lm1hcChpdGVtUCA9PiB7CiAgICAgICAgY29uc3Qgc3BlY0dyb3BOYW1lID0gaXRlbVAuc3BlY0dyb3VwLm1hcChpdGVtUCA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbVAuc3BlY0dyb3BOYW1lOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpZDogaXRlbVAuaWQsCiAgICAgICAgICBnb29kc05hbWU6IGl0ZW1QLmdvb2RzTmFtZSwKICAgICAgICAgIHVuaXROYW1lOiBpdGVtUC51bml0TmFtZSwKICAgICAgICAgIHNwZWNHcm9wTmFtZTogc3BlY0dyb3BOYW1lLAogICAgICAgICAgc2t1SWQ6IGl0ZW1QLnNrdUlkLAogICAgICAgICAgbm93UHJpY2U6IGl0ZW1QLmNvc3RQcmljZSwKICAgICAgICAgIGVuYWJsZWRMYWRkZXI6IDAsCiAgICAgICAgICBjcmVhdGVVc2VyTmFtZTogdGhpcy51c2VyTmFtZSwKICAgICAgICAgIGdvb2RzSWQ6IDAsCiAgICAgICAgICBzYWxlVHlwZTogIjEiLAogICAgICAgICAgc2FsZVByaWNlVHlwZTogIjEiLAogICAgICAgICAgc2FsZVByaWNlQXJlYVR5cGU6IDEsCiAgICAgICAgICBzYWxlUHJpY2U6IGl0ZW1QLmNvc3RQcmljZSwKICAgICAgICAgIHNob3BJZDogdGhpcy5zaG9wX2lkLAogICAgICAgICAgc2hvcE5hbWU6IHRoaXMuc2hvcF9uYW1lLAogICAgICAgICAgbGFkZGVyUHJpY2U6IFtdCiAgICAgICAgfTsKICAgICAgfSk7CiAgICAgIHRoaXMudGFibGVEYXRhID0gZ29vZHNfbGlzdDsKICAgICAgY29uc3QgbWF0ZXJpZWxJZCA9IGRldGFpbHNfbGlzdC5tYXAoaXRlbUcgPT4gewogICAgICAgIHJldHVybiBpdGVtRy5pZDsKICAgICAgfSk7CiAgICAgIGF3YWl0IHRoaXMuZ2V0UmVsTWFwKHRoaXMuJF9jb21tb24udW5pcXVlKG1hdGVyaWVsSWQpKTsKICAgIH0sCgogICAgYXN5bmMgZ2V0R29vZHNEZXRhaWwoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRHb29kc0luZm8odGhpcy5nb29kSWQpOwogICAgICB0aGlzLnNob3BfbmFtZSA9IGRhdGEudGl0bGU7CiAgICAgIHRoaXMuZ29vZHNJdGVtID0gZGF0YTsgLy8g5aSa5ZWG5oi35Y+q5bGV56S65Li75Y2V5L2NCgogICAgICBsZXQgc3BlY011bHRpcGxlID0gW107CgogICAgICBpZiAodGhpcy5zeXN0ZW1UeXBlID09PSAzKSB7CiAgICAgICAgc3BlY011bHRpcGxlID0gZGF0YS5zcGVjTXVsdGlwbGUuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pc01hc3RlciA9PT0gNSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3BlY011bHRpcGxlID0gZGF0YS5zcGVjTXVsdGlwbGU7CiAgICAgIH0KCiAgICAgIGNvbnNvbGUubG9nKHNwZWNNdWx0aXBsZSk7CgogICAgICBpZiAoZGF0YS5zcGVjVHlwZSA9PT0gMikgewogICAgICAgIHRoaXMudGFibGVEYXRhID0gc3BlY011bHRpcGxlLm1hcChpdGVtID0+IHsKICAgICAgICAgIGNvbnN0IHNwZWNWYWx1ZU5hbWUgPSBpdGVtLnNwZWNHcm91cC5tYXAoaXRlbVMgPT4gewogICAgICAgICAgICByZXR1cm4gaXRlbVMuc3BlY1ZhbHVlTmFtZTsKICAgICAgICAgIH0pLmpvaW4oIl8iKTsKICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICAgIGdvb2RzSWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIHNrdUlkOiBpdGVtLmlkLAogICAgICAgICAgICBzcGVjR3JvcE5hbWU6IHNwZWNWYWx1ZU5hbWUKICAgICAgICAgIH07CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAoZGF0YS5zcGVjVHlwZSA9PT0gMSkgewogICAgICAgIHRoaXMudGFibGVEYXRhID0gc3BlY011bHRpcGxlLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICAgIGdvb2RzSWQ6IGRhdGEuaWQsCiAgICAgICAgICAgIHNrdUlkOiBpdGVtLmlkLAogICAgICAgICAgICBzcGVjR3JvcE5hbWU6ICLml6AiCiAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAoKICAgIGFkZExpc3RHb29kcygpIHsKICAgICAgdGhpcy50YWJsZURhdGEucHVzaCh0aGlzLiRfY29tbW9uLmRlZXBDbG9uZShnb29kc0l0ZW0pKTsKICAgIH0sCgogICAgc2VsZWN0U2VsR29vZHMoaWQpIHsKICAgICAgdGhpcy5zcGVjX2NoZWNrID0gdGhpcy50YWJsZURhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5nb29kc0lkID09PSBpZCkubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLnNrdUlkOwogICAgICB9KTsKICAgIH0sCgogICAgc3BlY1NlbENvbmZpcm0ocGFyYW1zKSB7CiAgICAgIGxldCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLnRhYmxlRGF0YSk7CiAgICAgIGNvbnN0IGdvb2RzRCA9IHBhcmFtcy5nb29kc0QubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAvLyBzcGVjX2NoZWNrX2xpc3Q6IHBhcmFtcy5zcGVjX2NoZWNrX2xpc3QsCiAgICAgICAgICBjcmVhdGVVc2VyTmFtZTogdGhpcy51c2VyTmFtZSwKICAgICAgICAgIGdvb2RzTmFtZTogcGFyYW1zLm5vd19nb29kc19kYXRhLnRpdGxlLAogICAgICAgICAgZ29vZHNJZDogcGFyYW1zLm5vd19nb29kc19kYXRhLmlkLAogICAgICAgICAgc2FsZVR5cGU6ICIxIiwKICAgICAgICAgIHNhbGVQcmljZVR5cGU6ICIxIiwKICAgICAgICAgIHNhbGVQcmljZUFyZWFUeXBlOiAxLAogICAgICAgICAgc2FsZVByaWNlOiBpdGVtLnNwZWMuc2FsZVByaWNlLAogICAgICAgICAgbm93UHJpY2U6IGl0ZW0uc3BlYy5zYWxlUHJpY2UsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS5zcGVjLnVuaXROYW1lLAogICAgICAgICAgc3BlY0dyb3BOYW1lOiBpdGVtLnNwZWMuc3BlY0dyb3BOYW1lLAogICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICBzaG9wSWQ6IHBhcmFtcy5ub3dfZ29vZHNfZGF0YS5zaG9wSWQsCiAgICAgICAgICBzaG9wTmFtZTogcGFyYW1zLm5vd19nb29kc19kYXRhLnNob3BOYW1lLAogICAgICAgICAgbGFkZGVyUHJpY2U6IGl0ZW0uc3BlYy5sYWRkZXJQcmljZSwKICAgICAgICAgIGVuYWJsZWRMYWRkZXI6IGl0ZW0uc3BlYy5lbmFibGVkTGFkZGVyCiAgICAgICAgfTsKICAgICAgfSk7CgogICAgICBpZiAoIXRhcmdldFt0aGlzLmdvb2RzX2luZGV4XS5za3VJZCkgewogICAgICAgIHRhcmdldC5zcGxpY2UodGhpcy5nb29kc19pbmRleCwgMSk7CiAgICAgIH0KCiAgICAgIGdvb2RzRC5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGNvbnN0IHRhcmdldEQgPSB0YXJnZXQuZmluZChpdGVtRyA9PiBpdGVtRy5za3VJZCA9PT0gaXRlbS5za3VJZCk7CgogICAgICAgIGlmICghdGFyZ2V0RCkgewogICAgICAgICAgdGFyZ2V0LnB1c2goaXRlbSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy50YWJsZURhdGEgPSB0YXJnZXQ7CiAgICB9LAoKICAgIHNlbEdvb2RzKGxpc3QpIHsKICAgICAgY29uc3QgZ29vZHNEID0gbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgbGV0IHNwZWNHcm9wTmFtZSA9IGl0ZW0uc3BlY0dyb3VwLm1hcChpdGVtUyA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbVMuc3BlY1ZhbHVlTmFtZTsKICAgICAgICB9KS5qb2luKCJfIik7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGNyZWF0ZVVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLAogICAgICAgICAgZ29vZHNOYW1lOiBpdGVtLnRpdGxlLAogICAgICAgICAgZ29vZHNJZDogaXRlbS5pZCwKICAgICAgICAgIHNhbGVUeXBlOiAiMSIsCiAgICAgICAgICBzYWxlUHJpY2VUeXBlOiAiMSIsCiAgICAgICAgICBzYWxlUHJpY2VBcmVhVHlwZTogMSwKICAgICAgICAgIHNhbGVQcmljZTogaXRlbS5zYWxlUHJpY2UsCiAgICAgICAgICBub3dQcmljZTogaXRlbS5zYWxlUHJpY2UsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS51bml0TmFtZSwKICAgICAgICAgIHNwZWNHcm9wTmFtZTogc3BlY0dyb3BOYW1lLAogICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICBzaG9wSWQ6IGl0ZW0uc2hvcElkLAogICAgICAgICAgc2hvcE5hbWU6IGl0ZW0uc2hvcE5hbWUsCiAgICAgICAgICBsYWRkZXJQcmljZTogaXRlbS5sYWRkZXJQcmljZSwKICAgICAgICAgIGVuYWJsZWRMYWRkZXI6IGl0ZW0uZW5hYmxlZExhZGRlcgogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgaWYgKCF0aGlzLnRhYmxlRGF0YS5sZW5ndGgpIHsKICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IGdvb2RzRDsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBhcnIgPSB0aGlzLiRfY29tbW9uLnVuaXF1ZSh0aGlzLnRhYmxlRGF0YS5jb25jYXQoZ29vZHNEKSwgWyJnb29kc0lkIiwgInNrdUlkIl0pLmZpbHRlcihpdGVtID0+IGl0ZW0uZ29vZHNJZCk7CiAgICAgICAgYXJyLnB1c2godGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUoZ29vZHNJdGVtKSk7CiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBhcnI7CiAgICAgIH0gLy8gdGhpcy50YWJsZURhdGEgPSB0YXJnZXQ7CgogICAgfSwKCiAgICBnb29kc1Zpc2libGVDaGFuZ2UodmlzaWJsZSwgaW5kZXgpIHsKICAgICAgaWYgKHZpc2libGUpIHsKICAgICAgICB0aGlzLmdvb2RzX2luZGV4ID0gaW5kZXg7CiAgICAgIH0KICAgIH0sCgogICAgZW5hYmxlZExhZGRlckNoYW5nZShpbmRleCkgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLnRhYmxlRGF0YSk7CgogICAgICBpZiAodGFyZ2V0W2luZGV4XS5lbmFibGVkTGFkZGVyICYmIHRhcmdldFtpbmRleF0ubGFkZGVyUHJpY2UubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGFyZ2V0W2luZGV4XS5sYWRkZXJQcmljZSA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKGxhZGRlclByaWNlRGF0YSk7CiAgICAgIH0KCiAgICAgIHRoaXMudGFibGVEYXRhID0gdGFyZ2V0OwogICAgfSwKCiAgICAvLyDlj4zlh7vpgInmi6nlupfpk7oKICAgIHNlbFNob3Aocm93KSB7CiAgICAgIHRoaXMuc2hvcF9uYW1lID0gcm93WzBdLm5hbWU7CiAgICAgIHRoaXMuc2hvcF9pZCA9IHJvd1swXS5pZDsKICAgIH0sCgogICAgbGFkZGVyUHJpY2VCbHVyKHZhbCwgaW5kZXgsIHJpbmRleCkgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLnRhYmxlRGF0YSk7CiAgICAgIHRhcmdldFtyaW5kZXhdLmxhZGRlclByaWNlW2luZGV4ICsgMV0uZnJvbSA9IHZhbCArIDE7CgogICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICB0YXJnZXRbcmluZGV4XS5sYWRkZXJQcmljZVtpbmRleCArIDFdLnRvID0gdmFsICsgMjsKCiAgICAgICAgaWYgKHRhcmdldFtyaW5kZXhdLmxhZGRlclByaWNlW2luZGV4ICsgMl0pIHsKICAgICAgICAgIHRhcmdldFtyaW5kZXhdLmxhZGRlclByaWNlW2luZGV4ICsgMl0uZnJvbSA9IHZhbCArIDM7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhcmdldDsKICAgIH0sCgogICAgLy8g5Yig6Zmk6Zi25qKv5Lu3CiAgICBkZWxMYWRkZXJQcmljZShpbmRleCwgckluZGV4KSB7CiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMudGFibGVEYXRhKTsKICAgICAgdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2Uuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2VbMF0uZnJvbSA9IDE7CiAgICAgIHRhcmdldFtySW5kZXhdLmxhZGRlclByaWNlW3RhcmdldFtySW5kZXhdLmxhZGRlclByaWNlLmxlbmd0aCAtIDFdLmZyb20gPSB0YXJnZXRbckluZGV4XS5sYWRkZXJQcmljZVswXS50byArIDE7CiAgICAgIHRoaXMudGFibGVEYXRhID0gdGFyZ2V0OwogICAgfSwKCiAgICAvLyDmlrDlop7kuIDmnaHpmLbmoq/ku7cKICAgIGFkZExhZGRlclByaWNlKHJJbmRleCkgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLnRhYmxlRGF0YSk7CgogICAgICBpZiAoIXRhcmdldFtySW5kZXhdLmxhZGRlclByaWNlLmxlbmd0aCkgewogICAgICAgIHRhcmdldFtySW5kZXhdLmxhZGRlclByaWNlLnB1c2goewogICAgICAgICAgZnJvbTogMSwKICAgICAgICAgIHByaWNlOiAiIiwKICAgICAgICAgIHRvOiAyCiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgdXBMID0gdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2VbMF07CiAgICAgICAgdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2Uuc3BsaWNlKDEsICIiLCB7CiAgICAgICAgICBmcm9tOiB1cEwudG8gKyAxLAogICAgICAgICAgcHJpY2U6ICIiLAogICAgICAgICAgdG86IHVwTC50byArIDIKICAgICAgICB9KTsKCiAgICAgICAgaWYgKHRhcmdldFtySW5kZXhdLmxhZGRlclByaWNlLmxlbmd0aCA9PT0gMykgewogICAgICAgICAgdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2VbdGFyZ2V0W3JJbmRleF0ubGFkZGVyUHJpY2UubGVuZ3RoIC0gMV0uZnJvbSA9IHVwTC50byArIDM7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLnRhYmxlRGF0YSA9IHRhcmdldDsKICAgIH0sCgogICAgLy8g5Yig6ZmkCiAgICBkZWxEYXRhKGluZGV4KSB7CiAgICAgIHRoaXMudGFibGVEYXRhLnNwbGljZShpbmRleCwgMSk7CiAgICB9LAoKICAgIC8vIOmAieaLqeWkp+WMuuehruWumgogICAgcmVnaW9uQ29uZmlybShwcmljZSkge30sCgogICAgLy8g6LCD5pW05YWo5Zu96ZSA5ZSu5Lu3CiAgICBzdGFuZGFyZENvbmZpcm0ocHJpY2UpIHsKICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy50YWJsZURhdGEpOwogICAgICB0YXJnZXRbdGhpcy5tX2luZGV4XS5zYWxlUHJpY2VbdGFyZ2V0W3RoaXMubV9pbmRleF0uc2t1SWRdID0geyAuLi5wcmljZSwKICAgICAgICB1bml0TmFtZTogdGFyZ2V0W3RoaXMubV9pbmRleF0udW5pdE5hbWUKICAgICAgfTsKICAgICAgdGhpcy50YWJsZURhdGEgPSB0YXJnZXQ7CiAgICB9LAoKICAgIC8vIOaWsOWinuaaguWtmAogICAgYXN5bmMgQWRkVGVtKCkgewogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgYWRkUGF1c2VTYXZlKHsKICAgICAgICBrZXk6IHRoaXMucGFnZU5hbWUsCiAgICAgICAgZGF0YTogewogICAgICAgICAgc2hvcElkOiB0aGlzLnNob3BfaWQsCiAgICAgICAgICBzaG9wTmFtZTogdGhpcy5zaG9wX25hbWUsCiAgICAgICAgICBwYXJhbXM6IHRoaXMudGFibGVEYXRhCiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICBtZXNzYWdlOiAi5pqC5a2Y5oiQ5YqfIgogICAgICB9KTsKCiAgICAgIGlmICghdGhpcy5pc0RyYXcpIHsKICAgICAgICBpZiAodGhpcy5zeXN0ZW1UeXBlID09PSAyKSB7CiAgICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9TaW5nbGVTdG9yZS9nb29kcy9wcmljZUFkanVzdCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9nb29kcy9zYWxlL0FkanVzdFByaWNlIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJGVtaXQoImhhbmRlbFN1Y2Nlc3MiKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDojrflj5bmmoLlrZjkv6Hmga8KICAgIGFzeW5jIGdldFBhdXNlU2F2ZSgpIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLnBhZ2VOYW1lCiAgICAgIH0pOwogICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZGF0YSkgPT09ICJ7fSIpIHJldHVybjsKICAgICAgdGhpcy50YWJsZURhdGEgPSBkYXRhLnBhcmFtcyB8fCBbXTsKICAgICAgdGhpcy5zaG9wX25hbWUgPSBkYXRhLnNob3BOYW1lIHx8ICIiOwogICAgICB0aGlzLnNob3BfaWQgPSBkYXRhLnNob3BJZCB8fCAiIjsKICAgIH0sCgogICAgLy8g5qOA5p+l5o+Q5LqkCiAgICBjaGVja1N1YigpIHsKICAgICAgaWYgKCF0aGlzLmlzRHJhdyAmJiAhdGhpcy5zaG9wX2lkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nllYbpk7oiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICghdGhpcy50YWJsZURhdGFbMF0uZ29vZHNJZCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi56ys5LiA6aG55ZWG5ZOB5LiN6IO95Li656m6Iik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCBwcmljZSA9IHRoaXMudGFibGVEYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uZ29vZHNJZCkubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICBsYWRkZXJQcmljZTogaXRlbS5lbmFibGVkTGFkZGVyID09PSAwID8gW10gOiBpdGVtLmxhZGRlclByaWNlLAogICAgICAgICAgc2FsZVByaWNlOiBpdGVtLmVuYWJsZWRMYWRkZXIgPT09IDEgPyAwIDogaXRlbS5zYWxlUHJpY2UsCiAgICAgICAgICBzaG9wTmFtZTogdGhpcy5zaG9wX25hbWUKICAgICAgICB9OwogICAgICB9KTsKICAgICAgbGV0IGxhZGRlclByaWNlTGVuZ3RoID0gdHJ1ZTsKICAgICAgbGV0IGlzTGFkZGVyUHJpY2UgPSB0cnVlOwoKICAgICAgZm9yIChsZXQgaSBpbiBwcmljZSkgewogICAgICAgIGNvbnN0IGl0ZW0gPSBwcmljZVtpXTsKCiAgICAgICAgaWYgKGl0ZW0uZW5hYmxlZExhZGRlciA9PT0gMSkgewogICAgICAgICAgaWYgKGl0ZW0ubGFkZGVyUHJpY2UubGVuZ3RoIDwgMikgewogICAgICAgICAgICBsYWRkZXJQcmljZUxlbmd0aCA9IGZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0gZWxzZSBpZiAoIWl0ZW0ubGFkZGVyUHJpY2UuZXZlcnkoaXRlbVAgPT4gaXRlbVAucHJpY2UgPiAwKSkgewogICAgICAgICAgICBpc0xhZGRlclByaWNlID0gZmFsc2U7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoIWl0ZW0uc2FsZVByaWNlKSB7CiAgICAgICAgICAgIGlzTGFkZGVyUHJpY2UgPSBmYWxzZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAoIWxhZGRlclByaWNlTGVuZ3RoKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7foh7PlsJHorr7nva7kuKTmnaHpmLbmoq/ku7ciKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICghaXNMYWRkZXJQcmljZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl5Lu35qC8Iik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLnN1Ym1pdERhdGEoKTsKICAgIH0sCgogICAgLy8g5L+d5a2YCiAgICBhc3luYyBzdWJtaXREYXRhKCkgewogICAgICBsZXQgcGFyYW1zID0gW107IC8vIOWVhuWTgeWIl+ihqOiwg+S7twoKICAgICAgaWYgKHRoaXMuaXNEcmF3KSB7CiAgICAgICAgLy8g5Lu35qC8566h55CG6LCD5Lu3CiAgICAgICAgbGV0IHNhbGVQcmljZSA9IHt9OwogICAgICAgIGxldCBtaW4gPSAwOwoKICAgICAgICBpZiAodGhpcy5nb29kc0l0ZW0uZW5hYmxlZExhZGRlciA9PT0gMSkgewogICAgICAgICAgY29uc3QgYXJyID0gdGhpcy5nb29kc0l0ZW0ubGFkZGVyUHJpY2UubWFwKGl0ZW1NID0+IHsKICAgICAgICAgICAgcmV0dXJuIGl0ZW1NLnByaWNlOwogICAgICAgICAgfSk7CiAgICAgICAgICBtaW4gPSBNYXRoLm1pbi5hcHBseShudWxsLCBhcnIpOwogICAgICAgIH0KCiAgICAgICAgZm9yIChsZXQgaSBpbiB0aGlzLnRhYmxlRGF0YSkgewogICAgICAgICAgY29uc3QgaXRlbVMgPSB0aGlzLnRhYmxlRGF0YVtpXTsKCiAgICAgICAgICBpZiAoaXRlbVMubGFkZGVyUHJpY2UubGVuZ3RoKSB7CiAgICAgICAgICAgIGl0ZW1TLmxhZGRlclByaWNlW2l0ZW1TLmxhZGRlclByaWNlLmxlbmd0aCAtIDFdLnRvID0gOTk5OTk5OTk5OTsKICAgICAgICAgIH0KCiAgICAgICAgICBzYWxlUHJpY2VbaXRlbVMuaWRdID0gewogICAgICAgICAgICBtYXJrZXRQcmljZTogaXRlbVMuc2FsZVByaWNlLAogICAgICAgICAgICBzYWxlUHJpY2U6IGl0ZW1TLmVuYWJsZWRMYWRkZXIgPT09IDAgPyBpdGVtUy5zYWxlUHJpY2UgOiBtaW4sCiAgICAgICAgICAgIHVuaXROYW1lOiBpdGVtUy51bml0TmFtZSwKICAgICAgICAgICAgbGFkZGVyUHJpY2U6IGl0ZW1TLmVuYWJsZWRMYWRkZXIgPT09IDAgPyBbXSA6IGl0ZW1TLmxhZGRlclByaWNlLAogICAgICAgICAgICBlbmFibGVkTGFkZGVyOiBpdGVtUy5lbmFibGVkTGFkZGVyCiAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcGFyYW1zID0gW3sKICAgICAgICAgIGNyZWF0ZVVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLAogICAgICAgICAgZ29vZHNOYW1lOiB0aGlzLmdvb2RzSXRlbS50aXRsZSwKICAgICAgICAgIGdvb2RzSWQ6IHRoaXMuZ29vZHNJdGVtLmlkLAogICAgICAgICAgc2FsZVR5cGU6IDEsCiAgICAgICAgICAvLyAx77yM5a6e54mp6ZSA5ZSu77yMMu+8jOiZmueJqemUgOWUrgogICAgICAgICAgc2FsZVByaWNlVHlwZTogMSwKICAgICAgICAgIC8vIDEg6ZSA5ZSu5Lu3IDLvvIznp5LmnYDku7cKICAgICAgICAgIHNhbGVQcmljZUFyZWFUeXBlOiAxLAogICAgICAgICAgLy8g6ZSA5ZSu5Lu35qC85Li65Yy65Z+f5Lu36L+Y5piv5YWo5Zu95Lu3CiAgICAgICAgICBzYWxlUHJpY2U6IHNhbGVQcmljZSwKICAgICAgICAgIHNob3BJZDogdGhpcy5nb29kc0l0ZW0uc2hvcElkLAogICAgICAgICAgc2hvcE5hbWU6IHRoaXMuc2hvcF9uYW1lCiAgICAgICAgfV07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8g5paw5aKe6LCD5Lu35Y2VCiAgICAgICAgY29uc3QgdGFibGVEYXRhID0gdGhpcy50YWJsZURhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5nb29kc0lkKTsKICAgICAgICBwYXJhbXMgPSB0YWJsZURhdGEubWFwKGl0ZW0gPT4gewogICAgICAgICAgaWYgKGl0ZW0ubGFkZGVyUHJpY2UubGVuZ3RoKSB7CiAgICAgICAgICAgIGl0ZW0ubGFkZGVyUHJpY2VbaXRlbS5sYWRkZXJQcmljZS5sZW5ndGggLSAxXS50byA9IDk5OTk5OTk5OTk7CiAgICAgICAgICB9IC8vIOiOt+WPluacgOWwj+eahOS7t+agvAoKCiAgICAgICAgICBsZXQgbWluID0gMDsKCiAgICAgICAgICBpZiAoaXRlbS5lbmFibGVkTGFkZGVyID09PSAxKSB7CiAgICAgICAgICAgIGNvbnN0IGFyciA9IGl0ZW0ubGFkZGVyUHJpY2UubWFwKGl0ZW1NID0+IHsKICAgICAgICAgICAgICByZXR1cm4gaXRlbU0ucHJpY2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBtaW4gPSBNYXRoLm1pbi5hcHBseShudWxsLCBhcnIpOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGNyZWF0ZVVzZXJOYW1lOiBpdGVtLmNyZWF0ZVVzZXJOYW1lIHx8IHRoaXMudXNlck5hbWUsCiAgICAgICAgICAgIGdvb2RzTmFtZTogaXRlbS5nb29kc05hbWUsCiAgICAgICAgICAgIGdvb2RzSWQ6IGl0ZW0uZ29vZHNJZCwKICAgICAgICAgICAgc2FsZVR5cGU6IGl0ZW0uc2FsZVR5cGUsCiAgICAgICAgICAgIC8vIDHvvIzlrp7nianplIDllK7vvIwy77yM6Jma54mp6ZSA5ZSuCiAgICAgICAgICAgIHNhbGVQcmljZVR5cGU6IGl0ZW0uc2FsZVByaWNlVHlwZSwKICAgICAgICAgICAgLy8gMSDplIDllK7ku7cgMu+8jOenkuadgOS7twogICAgICAgICAgICBzYWxlUHJpY2VBcmVhVHlwZTogaXRlbS5zYWxlUHJpY2VBcmVhVHlwZSwKICAgICAgICAgICAgc2FsZVByaWNlOiB7CiAgICAgICAgICAgICAgW2l0ZW0uc2t1SWRdOiB7CiAgICAgICAgICAgICAgICBzYWxlUHJpY2U6IGl0ZW0uZW5hYmxlZExhZGRlciA9PT0gMCA/IGl0ZW0uc2FsZVByaWNlIDogbWluLAogICAgICAgICAgICAgICAgdW5pdE5hbWU6IGl0ZW0uc3BlY0dyb3BOYW1lLAogICAgICAgICAgICAgICAgbGFkZGVyUHJpY2U6IGl0ZW0uZW5hYmxlZExhZGRlciA9PT0gMCA/IFtdIDogaXRlbS5sYWRkZXJQcmljZSwKICAgICAgICAgICAgICAgIG1hcmtldFByaWNlOiBpdGVtLm5vd1ByaWNlLAogICAgICAgICAgICAgICAgZW5hYmxlZExhZGRlcjogaXRlbS5lbmFibGVkTGFkZGVyCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBzaG9wSWQ6IGl0ZW0uc2hvcElkLAogICAgICAgICAgICBzaG9wTmFtZTogdGhpcy5zaG9wX25hbWUKICAgICAgICAgIH07CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIGxldCB0YXJnZXQgPSB7fTsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKCiAgICAgIGlmICh0aGlzLmlzRHJhdykgewogICAgICAgIC8vIOiHquWKqOWIm+W7uuiwg+S7t+WNleS4lOiHquWKqOeUn+aViOaOpeWPowogICAgICAgIHRhcmdldCA9IGF3YWl0IGFkZEFuZEVmZmVjdGl2ZShKU09OLnN0cmluZ2lmeShwYXJhbXMpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0YXJnZXQgPSBhd2FpdCBQcmljZUFkanVzdG1lbnRBZGQoSlNPTi5zdHJpbmdpZnkocGFyYW1zKSk7CiAgICAgIH0KCiAgICAgIGNvbnN0IGRhdGEgPSB0YXJnZXQ7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuaTjeS9nOaIkOWKnyIKICAgICAgfSk7CiAgICAgIGF3YWl0IHRoaXMuZGVsUGF1c2VTYXZlKCk7CgogICAgICBpZiAoIXRoaXMuaXNEcmF3KSB7CiAgICAgICAgaWYgKHRoaXMuc3lzdGVtVHlwZSA9PT0gMikgewogICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvU2luZ2xlU3RvcmUvZ29vZHMvcHJpY2VBZGp1c3QiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvZ29vZHMvc2FsZS9BZGp1c3RQcmljZSIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRlbWl0KCJoYW5kZWxTdWNjZXNzIik7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5riF6Zmk5pqC5a2YCiAgICBhc3luYyBkZWxQYXVzZVNhdmUodHlwZSkgewogICAgICBjb25zdCBkYXRhID0gZGVsUGF1c2VTYXZlKHsKICAgICAgICBrZXk6IHRoaXMucGFnZU5hbWUKICAgICAgfSk7CgogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIua4hemZpOaaguWtmOaIkOWKnyIKICAgICAgICB9KTsKICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9nb29kcy9zYWxlL0FkZEdvb2RzQWRqdXN0UHJpY2UiKTsKICAgICAgfQogICAgfQoKICB9Cn07"},null]}