{"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\\3DView.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\3DView.vue","mtime":1667545182301},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7CmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vY29udHJvbHMvT3JiaXRDb250cm9scy5qcyc7CmltcG9ydCBnc2FwIGZyb20gJ2dzYXAnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0hvbWUnLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzY2VuZTogbnVsbCwKICAgICAgY2FtZXJhOiBudWxsLAogICAgICBjb250cm9sczogbnVsbCwKICAgICAgcmVuZGVyZXI6IG51bGwsCiAgICAgIGF4aXNIZWxwZXI6IG51bGwsCiAgICAgIHNwaGVyZTogbnVsbCwKICAgICAgdGltZTogewogICAgICAgIHZhbHVlOiAwCiAgICAgIH0sCiAgICAgIHRpbWVyOiBudWxsLAogICAgICBkYXRhTGlzdDogW3sKICAgICAgICBpbWFnZTogcmVxdWlyZSgnQC9hc3NldHMvM0RJbWFnZS9saXZpbmdSb29tLmpwZycpLAogICAgICAgIHRpcHNMaXN0OiBbewogICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgeDogLTIwMCwKICAgICAgICAgICAgeTogLTQsCiAgICAgICAgICAgIHo6IC0xNDcKICAgICAgICAgIH0sCiAgICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAgIHRpdGxlOiAn6L+b5YWl5Y6o5oi/JywKICAgICAgICAgICAgdGV4dDogJycsCiAgICAgICAgICAgIGltYWdlOiAxLAogICAgICAgICAgICBzaG93VGlwOiBmYWxzZSwKICAgICAgICAgICAgc2hvd1RpdGxlOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgeDogLTEwMCwKICAgICAgICAgICAgeTogMCwKICAgICAgICAgICAgejogLTIzMQogICAgICAgICAgfSwKICAgICAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAgICAgdGl0bGU6ICfkv6Hmga/ngrkyJywKICAgICAgICAgICAgdGV4dDogJzc3OTg5JywKICAgICAgICAgICAgc2hvd1RpcDogdHJ1ZSwKICAgICAgICAgICAgc2hvd1RpdGxlOiBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0sIHsKICAgICAgICAgIHBvc2l0aW9uOiB7CiAgICAgICAgICAgIHg6IDE1MCwKICAgICAgICAgICAgeTogLTUwLAogICAgICAgICAgICB6OiAtMTk4CiAgICAgICAgICB9LAogICAgICAgICAgY29udGVudDogewogICAgICAgICAgICB0aXRsZTogJ+S/oeaBr+eCuTMnLAogICAgICAgICAgICB0ZXh0OiAncXdkY3onLAogICAgICAgICAgICBzaG93VGlwOiB0cnVlLAogICAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgeDogMjEwLAogICAgICAgICAgICB5OiAxMSwKICAgICAgICAgICAgejogLTE0MAogICAgICAgICAgfSwKICAgICAgICAgIGNvbnRlbnQ6IHsKICAgICAgICAgICAgdGl0bGU6ICfkv6Hmga/ngrk0JywKICAgICAgICAgICAgdGV4dDogJ+Wkp+ixhumjn+W/g+iZq+S+puWvn+WNgeWkp+Wkp+iLj+aJk+Wkp+Wkp+Wkp+Wkp+Wkp+Wkp+WkpycsCiAgICAgICAgICAgIHNob3dUaXA6IHRydWUsCiAgICAgICAgICAgIHNob3dUaXRsZTogZmFsc2UKICAgICAgICAgIH0KICAgICAgICB9LCB7CiAgICAgICAgICBwb3NpdGlvbjogewogICAgICAgICAgICB4OiAyMDgsCiAgICAgICAgICAgIHk6IC0xMiwKICAgICAgICAgICAgejogMTQwCiAgICAgICAgICB9LAogICAgICAgICAgY29udGVudDogewogICAgICAgICAgICB0aXRsZTogJ+S/oeaBr+eCuTUnLAogICAgICAgICAgICB0ZXh0OiAnZXEnLAogICAgICAgICAgICBzaG93VGlwOiB0cnVlLAogICAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIHsKICAgICAgICAvLyAgICAgcG9zaXRpb246IHt4OiA4NiwgeTogLTksIHo6IDIzNn0sCiAgICAgICAgLy8gICAgIGNvbnRlbnQ6IHsKICAgICAgICAvLyAgICAgICAgIHRpdGxlOiAn6L+b5YWl5oi/6Ze0JywKICAgICAgICAvLyAgICAgICAgIHRleHQ6ICcnLAogICAgICAgIC8vICAgICAgICAgc2hvd1RpcDogZmFsc2UsCiAgICAgICAgLy8gICAgICAgICBzaG93VGl0bGU6IHRydWUsCiAgICAgICAgLy8gICAgIH0sCiAgICAgICAgLy8gfSwKICAgICAgICBdCiAgICAgIH0sIHsKICAgICAgICBpbWFnZTogcmVxdWlyZSgnQC9hc3NldHMvM0RJbWFnZS9raXRjaGVuLmpwZycpLAogICAgICAgIHRpcHNMaXN0OiBbewogICAgICAgICAgcG9zaXRpb246IHsKICAgICAgICAgICAgeDogLTE5OSwKICAgICAgICAgICAgeTogLTI0LAogICAgICAgICAgICB6OiAxNDUKICAgICAgICAgIH0sCiAgICAgICAgICBjb250ZW50OiB7CiAgICAgICAgICAgIHRpdGxlOiAn6L+b5YWl5aSn5Y6FJywKICAgICAgICAgICAgdGV4dDogJycsCiAgICAgICAgICAgIGltYWdlOiAwLAogICAgICAgICAgICBzaG93VGlwOiBmYWxzZSwKICAgICAgICAgICAgc2hvd1RpdGxlOiB0cnVlCiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfV0sCiAgICAgIHRpcHNTcHJpdGVMaXN0OiBbXSwKICAgICAgdG9vbHRpcFBvc2l0aW9uOiB7CiAgICAgICAgdG9wOiAnLTEwMCUnLAogICAgICAgIGxlZnQ6ICctMTAwJScKICAgICAgfSwKICAgICAgdGl0bGVQb3NpdGlvbjogewogICAgICAgIHRvcDogJy0xMDAlJywKICAgICAgICBsZWZ0OiAnLTEwMCUnCiAgICAgIH0sCiAgICAgIHRvb2x0b3BDb250ZW50OiB7fQogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8vIOWIneWni+WMluWcuuaZrwogICAgaW5pdFNjZW5lOiBmdW5jdGlvbiBpbml0U2NlbmUoKSB7CiAgICAgIHRoaXMuc2NlbmUgPSBuZXcgVEhSRUUuU2NlbmUoKTsKICAgICAgdGhpcy5zY2VuZS5iYWNrZ3JvdW5kID0gbmV3IFRIUkVFLkNvbG9yKDB4MTAxMDEwKTsKICAgIH0sCiAgICAvLyDliJ3lp4vljJbpgI/op4bmipXlvbHnm7jmnLoKICAgIGluaXRDYW1lcmE6IGZ1bmN0aW9uIGluaXRDYW1lcmEoZWxlbWVudCkgewogICAgICB0aGlzLmNhbWVyYSA9IG5ldyBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSg0NSwgZWxlbWVudC5jbGllbnRXaWR0aCAvIGVsZW1lbnQuY2xpZW50SGVpZ2h0LCAwLjEsIDEwMDApOwogICAgICB0aGlzLmNhbWVyYS5wb3NpdGlvbi5zZXQoNTAsIDAsIDQwKTsKICAgIH0sCiAgICAvLyDmjqfliLblmagKICAgIGluaXRDb250cm9sczogZnVuY3Rpb24gaW5pdENvbnRyb2xzKGVsZW1lbnQpIHsKICAgICAgdGhpcy5jb250cm9scyA9IG5ldyBPcmJpdENvbnRyb2xzKHRoaXMuY2FtZXJhLCBlbGVtZW50KTsKICAgICAgdGhpcy5jb250cm9scy5taW5EaXN0YW5jZSA9IDE7CiAgICAgIHRoaXMuY29udHJvbHMubWF4RGlzdGFuY2UgPSAxMDA7CiAgICAgIHRoaXMuY29udHJvbHMuZW5hYmxlUGFuID0gZmFsc2U7CiAgICB9LAogICAgLy8g5riy5p+T5ZmoCiAgICBpbml0UmVuZGVyZXI6IGZ1bmN0aW9uIGluaXRSZW5kZXJlcihlbGVtZW50KSB7CiAgICAgIHRoaXMucmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcigpOwogICAgICB0aGlzLnJlbmRlcmVyLnNldFNpemUoZWxlbWVudC5vZmZzZXRXaWR0aCwgZWxlbWVudC5vZmZzZXRIZWlnaHQpOwogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucmVuZGVyZXIuZG9tRWxlbWVudCk7CiAgICB9LAogICAgaW5pdENvbnRlbnQ6IGZ1bmN0aW9uIGluaXRDb250ZW50KCkgewogICAgICB2YXIgaW5kZXggPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IDA7CiAgICAgIHZhciBzcGhlcmVHZW9tZXRyeSA9IG5ldyBUSFJFRS5TcGhlcmVHZW9tZXRyeSgxNiwgNTAsIDUwKTsKICAgICAgc3BoZXJlR2VvbWV0cnkuc2NhbGUoMTYsIDE2LCAtMTYpOwogICAgICB2YXIgdGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZCh0aGlzLmRhdGFMaXN0W2luZGV4XS5pbWFnZSk7CiAgICAgIHZhciBzcGhlcmVNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7CiAgICAgICAgbWFwOiB0ZXh0dXJlCiAgICAgIH0pOwogICAgICB0aGlzLnNwaGVyZSA9IG5ldyBUSFJFRS5NZXNoKHNwaGVyZUdlb21ldHJ5LCBzcGhlcmVNYXRlcmlhbCk7CiAgICAgIHRoaXMuc2NlbmUuYWRkKHRoaXMuc3BoZXJlKTsKICAgICAgdGhpcy5hZGRUaXBzU3ByaXRlKCk7CiAgICB9LAogICAgYWRkVGlwc1Nwcml0ZTogZnVuY3Rpb24gYWRkVGlwc1Nwcml0ZSgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdmFyIGluZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAwOwogICAgICB2YXIgdGlwVGV4dHVyZSA9IG5ldyBUSFJFRS5UZXh0dXJlTG9hZGVyKCkubG9hZChyZXF1aXJlKCdAL2Fzc2V0cy8zREltYWdlL3RpcC5wbmcnKSk7CiAgICAgIHZhciBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TcHJpdGVNYXRlcmlhbCh7CiAgICAgICAgbWFwOiB0aXBUZXh0dXJlCiAgICAgIH0pOwogICAgICB0aGlzLnRpcHNTcHJpdGVMaXN0ID0gW107CiAgICAgIHRoaXMuZGF0YUxpc3RbaW5kZXhdLnRpcHNMaXN0LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICB2YXIgc3ByaXRlID0gbmV3IFRIUkVFLlNwcml0ZShtYXRlcmlhbCk7CiAgICAgICAgc3ByaXRlLnNjYWxlLnNldCgxMCwgMTAsIDEwKTsKICAgICAgICBzcHJpdGUucG9zaXRpb24uc2V0KGl0ZW0ucG9zaXRpb24ueCwgaXRlbS5wb3NpdGlvbi55LCBpdGVtLnBvc2l0aW9uLnopOwogICAgICAgIHNwcml0ZS5jb250ZW50ID0gaXRlbS5jb250ZW50OwogICAgICAgIF90aGlzLnRpcHNTcHJpdGVMaXN0LnB1c2goc3ByaXRlKTsKICAgICAgICBfdGhpcy5zY2VuZS5hZGQoc3ByaXRlKTsKICAgICAgfSk7CiAgICB9LAogICAgY2hhbmdlQ29udGVudEFuZHRpcHM6IGZ1bmN0aW9uIGNoYW5nZUNvbnRlbnRBbmR0aXBzKGluZGV4KSB7CiAgICAgIHRoaXMuc2NlbmUuY2hpbGRyZW4gPSB0aGlzLnNjZW5lLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBTdHJpbmcoaXRlbS50eXBlKSAhPT0gJ1Nwcml0ZSc7CiAgICAgIH0pOwogICAgICB0aGlzLnRpcHNTcHJpdGVMaXN0ID0gW107CiAgICAgIHZhciB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmVMb2FkZXIoKS5sb2FkKHRoaXMuZGF0YUxpc3RbaW5kZXhdLmltYWdlKTsKICAgICAgdmFyIHNwaGVyZU1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsKICAgICAgICBtYXA6IHRleHR1cmUsCiAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsCiAgICAgICAgb3BhY2l0eTogMAogICAgICB9KTsKICAgICAgdGhpcy5zcGhlcmUubWF0ZXJpYWwgPSBzcGhlcmVNYXRlcmlhbDsKICAgICAgZ3NhcC50byhzcGhlcmVNYXRlcmlhbCwgewogICAgICAgIHRyYW5zcGFyZW50OiB0cnVlLAogICAgICAgIG9wYWNpdHk6IDEsCiAgICAgICAgZHVyYXRpb246IDIKICAgICAgfSk7CiAgICAgIHRoaXMuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgdGhpcy5hZGRUaXBzU3ByaXRlKGluZGV4KTsKICAgIH0sCiAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHsKICAgICAgdGhpcy5jb250cm9scy51cGRhdGUoKTsKICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgdGhpcy5jYW1lcmEpOwogICAgICB0aGlzLnJlbmRlcmVyLnNvcnRPYmplY3RzID0gZmFsc2U7CiAgICAgIHRoaXMudGltZXIgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5yZW5kZXIpOwogICAgICB0aGlzLnRpbWUudmFsdWUgKz0gMC4wMTU7CiAgICB9LAogICAgb25SZXNpemU6IGZ1bmN0aW9uIG9uUmVzaXplKCkgewogICAgICB2YXIgZWxlbWVudCA9IHRoaXMuJHJlZnMudGhyZWVEQm94OwogICAgICB0aGlzLmNhbWVyYS5hc3BlY3QgPSBlbGVtZW50LmNsaWVudFdpZHRoIC8gZWxlbWVudC5jbGllbnRIZWlnaHQ7CiAgICAgIHRoaXMuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgdGhpcy5yZW5kZXJlci5zZXRTaXplKGVsZW1lbnQuY2xpZW50V2lkdGgsIGVsZW1lbnQuY2xpZW50SGVpZ2h0KTsKICAgIH0sCiAgICBvbk1vdXNlQ2xpY2s6IGZ1bmN0aW9uIG9uTW91c2VDbGljayhlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLiRyZWZzLnRocmVlREJveDsKICAgICAgY29uc29sZS5sb2coZWxlbWVudCk7CiAgICAgIHZhciByYXljYXN0ZXIgPSBuZXcgVEhSRUUuUmF5Y2FzdGVyKCk7CiAgICAgIHZhciBtb3VzZSA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7CiAgICAgIG1vdXNlLnggPSBlLmNsaWVudFggLyBlbGVtZW50LmNsaWVudFdpZHRoICogMiAtIDE7CiAgICAgIG1vdXNlLnkgPSAtKGUuY2xpZW50WSAvIGVsZW1lbnQuY2xpZW50SGVpZ2h0KSAqIDIgKyAxOwogICAgICByYXljYXN0ZXIuc2V0RnJvbUNhbWVyYShtb3VzZSwgdGhpcy5jYW1lcmEpOwogICAgICB2YXIgaW50ZXJzZWN0cyA9IHJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3RzKHRoaXMudGlwc1Nwcml0ZUxpc3QsIHRydWUpOwogICAgICBpZiAoaW50ZXJzZWN0cy5sZW5ndGggPiAwICYmIGludGVyc2VjdHNbMF0ub2JqZWN0LmNvbnRlbnQuc2hvd1RpdGxlKSB7CiAgICAgICAgdGhpcy5jaGFuZ2VDb250ZW50QW5kdGlwcyhpbnRlcnNlY3RzWzBdLm9iamVjdC5jb250ZW50LmltYWdlKTsKICAgICAgICB0aGlzLmhhbmRsZVRvb2x0aXBIaWRlKGUpOwogICAgICB9CiAgICB9LAogICAgb25Nb3VzZW1vdmU6IGZ1bmN0aW9uIG9uTW91c2Vtb3ZlKGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgZWxlbWVudCA9IHRoaXMuJHJlZnMudGhyZWVEQm94OwogICAgICB2YXIgcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpOwogICAgICB2YXIgbW91c2UgPSBuZXcgVEhSRUUuVmVjdG9yMigpOwogICAgICBtb3VzZS54ID0gZS5jbGllbnRYIC8gZWxlbWVudC5jbGllbnRXaWR0aCAqIDIgLSAxOwogICAgICBtb3VzZS55ID0gLShlLmNsaWVudFkgLyBlbGVtZW50LmNsaWVudEhlaWdodCkgKiAyICsgMTsKICAgICAgcmF5Y2FzdGVyLnNldEZyb21DYW1lcmEobW91c2UsIHRoaXMuY2FtZXJhKTsKICAgICAgdmFyIGludGVyc2VjdHMgPSByYXljYXN0ZXIuaW50ZXJzZWN0T2JqZWN0cyh0aGlzLnRpcHNTcHJpdGVMaXN0LCB0cnVlKTsKICAgICAgaWYgKGludGVyc2VjdHMubGVuZ3RoID4gMCkgewogICAgICAgIHZhciBlbGVtZW50V2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoIC8gMjsKICAgICAgICB2YXIgZWxlbWVudEhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0IC8gMjsKICAgICAgICB2YXIgd29ybGRWZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMyhpbnRlcnNlY3RzWzBdLm9iamVjdC5wb3NpdGlvbi54LCBpbnRlcnNlY3RzWzBdLm9iamVjdC5wb3NpdGlvbi55LCBpbnRlcnNlY3RzWzBdLm9iamVjdC5wb3NpdGlvbi56KTsKICAgICAgICB2YXIgcG9zaXRpb24gPSB3b3JsZFZlY3Rvci5wcm9qZWN0KHRoaXMuY2FtZXJhKTsKICAgICAgICB0aGlzLnRvb2x0b3BDb250ZW50ID0gaW50ZXJzZWN0c1swXS5vYmplY3QuY29udGVudDsKICAgICAgICBpZiAoaW50ZXJzZWN0c1swXS5vYmplY3QuY29udGVudC5zaG93VGlwKSB7CiAgICAgICAgICB2YXIgbGVmdCA9IE1hdGgucm91bmQoZWxlbWVudFdpZHRoICogcG9zaXRpb24ueCArIGVsZW1lbnRXaWR0aCAtIHRoaXMuJHJlZnMudG9vbHRpcEJveC5jbGllbnRXaWR0aCAvIDIpOwogICAgICAgICAgdmFyIHRvcCA9IE1hdGgucm91bmQoLWVsZW1lbnRIZWlnaHQgKiBwb3NpdGlvbi55ICsgZWxlbWVudEhlaWdodCAtIHRoaXMuJHJlZnMudG9vbHRpcEJveC5jbGllbnRIZWlnaHQgLyAyKTsKICAgICAgICAgIHRoaXMudG9vbHRpcFBvc2l0aW9uID0gewogICAgICAgICAgICBsZWZ0OiAiIi5jb25jYXQobGVmdCwgInB4IiksCiAgICAgICAgICAgIHRvcDogIiIuY29uY2F0KHRvcCwgInB4IikKICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmIChpbnRlcnNlY3RzWzBdLm9iamVjdC5jb250ZW50LnNob3dUaXRsZSkgewogICAgICAgICAgdmFyIF9sZWZ0ID0gTWF0aC5yb3VuZChlbGVtZW50V2lkdGggKiBwb3NpdGlvbi54ICsgZWxlbWVudFdpZHRoIC0gdGhpcy4kcmVmcy50aXRsZUJveC5jbGllbnRXaWR0aCAvIDIpOwogICAgICAgICAgdmFyIF90b3AgPSBNYXRoLnJvdW5kKC1lbGVtZW50SGVpZ2h0ICogcG9zaXRpb24ueSArIGVsZW1lbnRIZWlnaHQpOwogICAgICAgICAgdGhpcy50aXRsZVBvc2l0aW9uID0gewogICAgICAgICAgICBsZWZ0OiAiIi5jb25jYXQoX2xlZnQsICJweCIpLAogICAgICAgICAgICB0b3A6ICIiLmNvbmNhdChfdG9wLCAicHgiKQogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5oYW5kbGVUb29sdGlwSGlkZShlKTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZVRvb2x0aXBIaWRlOiBmdW5jdGlvbiBoYW5kbGVUb29sdGlwSGlkZShlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdGhpcy50b29sdGlwUG9zaXRpb24gPSB7CiAgICAgICAgdG9wOiAnLTEwMCUnLAogICAgICAgIGxlZnQ6ICctMTAwJScKICAgICAgfTsKICAgICAgdGhpcy50aXRsZVBvc2l0aW9uID0gewogICAgICAgIHRvcDogJy0xMDAlJywKICAgICAgICBsZWZ0OiAnLTEwMCUnCiAgICAgIH07CiAgICAgIHRoaXMudG9vbHRvcENvbnRlbnQgPSB7fTsKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgZWxlbWVudCA9IHRoaXMuJHJlZnMudGhyZWVEQm94OwogICAgdGhpcy5pbml0U2NlbmUoKTsKICAgIHRoaXMuaW5pdENhbWVyYShlbGVtZW50KTsKICAgIHRoaXMuaW5pdENvbnRyb2xzKGVsZW1lbnQpOwogICAgdGhpcy5pbml0Q29udGVudCgpOwogICAgdGhpcy5pbml0UmVuZGVyZXIoZWxlbWVudCk7CiAgICB0aGlzLnJlbmRlcigpOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUsIGZhbHNlKTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25Nb3VzZUNsaWNrLCBmYWxzZSk7CiAgICB0aGlzLnJlbmRlcmVyLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlbW92ZSwgZmFsc2UpOwogICAgdGhpcy4kcmVmcy50b29sdGlwQm94LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLmhhbmRsZVRvb2x0aXBIaWRlLCBmYWxzZSk7CiAgfSwKICBkZXN0cm95ZWQ6IGZ1bmN0aW9uIGRlc3Ryb3llZCgpIHsKICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMudGltZXIpOwogIH0KfTs="},null]}