Advertisement
xiaomianao666

邀您一起看:自慰

Dec 16th, 2024
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥自慰@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWIhuexu1wiLFwicGF0aFwiOlwiQ2F0ZWdvcnlcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHN0cm9uZyhkLCBjKSB7XFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0jJyArIChjIHx8ICcwMDAwMDAnKSArICc+JyArIGQgKyAnPC9mb250Pjwvc3Ryb25nPic7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5MShsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yMScsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUxJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjEnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5MihsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yMicsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUyJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjInLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5MyhsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yMycsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUzJywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjMnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5NChsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yNCcsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU0JywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjQnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5NShsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yNScsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU1JywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjUnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5NihsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yNicsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU2JywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjYnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5NyhsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yNycsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU3JywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjcnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbmZ1bmN0aW9uIENhdGVnb3J5OChsaXN0LGQpIHtcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yOCcsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU4JywgaW5wdXQpO1xcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjgnLCBpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgfSk7XFxuICAgIH1cXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcbiQuZXhwb3J0cy5DYXRlZ29yeTEgPSBDYXRlZ29yeTE7XFxuJC5leHBvcnRzLkNhdGVnb3J5MiA9IENhdGVnb3J5MjtcXG4kLmV4cG9ydHMuQ2F0ZWdvcnkzID0gQ2F0ZWdvcnkzO1xcbiQuZXhwb3J0cy5DYXRlZ29yeTQgPSBDYXRlZ29yeTQ7XFxuJC5leHBvcnRzLkNhdGVnb3J5NSA9IENhdGVnb3J5NTtcXG4kLmV4cG9ydHMuQ2F0ZWdvcnk2ID0gQ2F0ZWdvcnk2O1xcbiQuZXhwb3J0cy5DYXRlZ29yeTcgPSBDYXRlZ29yeTc7XFxuJC5leHBvcnRzLkNhdGVnb3J5OCA9IENhdGVnb3J5ODtcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcImFlc1wiLFwicGF0aFwiOlwiYWVzXCIsXCJydWxlXCI6XCIvL+WKoOi9vUNyeXB0b0pT5bqTXFxuZXZhbChnZXRDcnlwdG9KUygpKVxcblxcbi8vIOWKoOWvhuWHveaVsFxcbmZ1bmN0aW9uIEVuY3J5cHQocGxhaW50ZXh0KSB7XFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCJWcTIzNHpCZVNkR2dZWHpWVEVmbm5qamRtYVRrazdBNFxcXCIpO1xcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXCItcDlCW35QblBzMTczMTUwXFxcIik7XFxuICAgIHZhciBlbmNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZW5jcnlwdChwbGFpbnRleHQsIGtleSwge1xcbiAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczcgLy8g5rOo5oSP6L+Z6YeM5bqU6K+l5pivQ3J5cHRvSlMucGFkLk5vUGFkZGluZ1xcbiAgICB9KTtcXG4gICAgdmFyIGNpcGhlcnRleHQgPSBlbmNyeXB0ZWQuY2lwaGVydGV4dC50b1N0cmluZyhDcnlwdG9KUy5lbmMuQmFzZTY0KTtcXG4gICAgcmV0dXJuIGNpcGhlcnRleHQ7XFxufVxcblxcbi8vIOino+WvhuWHveaVsFxcbmZ1bmN0aW9uIERlY3J5cHQod29yZCkge1xcbiAgICBjb25zdCBrZXkgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFwiVnEyMzR6QmVTZEdnWVh6VlRFZm5uampkbWFUa2s3QTRcXFwiKTtcXG4gICAgY29uc3QgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFwiLXA5Qlt+UG5Qc1xcXCIraXYwKTtcXG4gICAgbGV0IGVuY3J5cHRlZEhleFN0ciA9IENyeXB0b0pTLmVuYy5CYXNlNjQucGFyc2Uod29yZCk7XFxuICAgIGxldCBkZWNyeXB0ID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoe1xcbiAgICAgICAgY2lwaGVydGV4dDogZW5jcnlwdGVkSGV4U3RyXFxuICAgIH0sIGtleSwge1xcbiAgICAgICAgaXY6IGl2LFxcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxuICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczcgLy8g5rOo5oSP6L+Z6YeM5bqU6K+l5pivQ3J5cHRvSlMucGFkLk5vUGFkZGluZ1xcbiAgICB9KTtcXG4gICAgaWYgKGRlY3J5cHQpIHtcXG4gICAgICAgIGxldCBkZWNyeXB0ZWRTdHIgPSBkZWNyeXB0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcXG4gICAgICAgIHJldHVybiBkZWNyeXB0ZWRTdHI7XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICAvLyDop6Plr4blpLHotKXvvIzov5Tlm55udWxs5oiW6ZSZ6K+v5L+h5oGvXFxuICAgICAgICByZXR1cm4gbnVsbDtcXG4gICAgfVxcbn1cXG5cXG5cXG52YXIgbGF6eSA9ICQoJycpLmltYWdlKCgpID0+IHtcXG5jb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL2Fzc2V0cy9jcnlwdG8tamF2YS5qc1xcXCIpO1xcblxcdGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXCJwbmhYZ04wVVxcXCIpO1xcblxcdGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcIkdZNGdFdkJEXFxcIik7XFxuXFx0bGV0IHRleHREYXRhID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSW5wdXRTdHJlYW0oaW5wdXQpLmJhc2U2NERlY29kZSgpO1xcblxcdGxldCBlbmNyeXB0ZWQgPSBDcnlwdG9VdGlsLkRFUy5kZWNyeXB0KHRleHREYXRhLCBrZXksIHtcXG4gIFxcdG1vZGU6IFxcXCJERVMvQ0JDL1BLQ1M3UGFkZGluZ1xcXCIsXFxuXFx0XFx0aXY6IGl2XFxuXFx0fSk7XFxuXFx0bGV0IGJhc2U2NFRleHQgPSBlbmNyeXB0ZWQudG9TdHJpbmcoKS5zcGxpdChcXFwiYmFzZTY0LFxcXCIpWzFdO1xcbiAgICBsZXQgZW5jcnlwdGVkMCA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZUJhc2U2NChiYXNlNjRUZXh0LCBfYmFzZTY0Lk5PX1dSQVApO1xcbiAgICByZXR1cm4gZW5jcnlwdGVkMC50b0lucHV0U3RyZWFtKCk7XFxufSlcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumikemBk+S6jOe6p1wiLFwicGF0aFwiOlwiZXJqaVwiLFwicnVsZVwiOlwianM6IFxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxuXFxuLy9tZDXliqDlr4ZcXG5mdW5jdGlvbiBtZDUoc3RyKSB7XFxuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xcbn1cXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSk7XFxudmFyIHQwID0gTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDApO1xcbmxldCBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxubGV0IHA9TVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcbnZhciBzaWduID0gbWQ1KCdjaGFubmVsPScraWQrJyZsaXN0X3Jvdz02MCZwYWdlPScrcCsnJnRpbWVzdGFtcD0nK3QrJyZ0eXBlPTImbX1xJWVhNjpMRGNtUz9hSylDZUYyODdiUHZkOTlARSw5VXBeJyk7IC8vbG9nKHNpZ24pXFxuXFxubGV0IGRhdGEwPXtcXG4gICAgICAgIFxcXCJjaGFubmVsXFxcIjogaWQsXFxuICAgICAgICBcXFwiZW5jb2RlX3NpZ25cXFwiOiBzaWduLFxcbiAgICAgICAgXFxcImxpc3Rfcm93XFxcIjogXFxcIjYwXFxcIixcXG4gICAgICAgIFxcXCJwYWdlXFxcIjogcCxcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0LFxcbiAgICAgICAgXFxcInR5cGVcXFwiOiBcXFwiMlxcXCJcXG4gICAgfVxcbi8vbG9nKGRhdGEwKVxcbnZhciBkYXRhID0gRW5jcnlwdChKU09OLnN0cmluZ2lmeShkYXRhMCkpOyBcXG4vL2xvZyhkYXRhKVxcbnZhciBib2R5ID0gJ3Bvc3QtZGF0YT0nK2RhdGE7IFxcbnZhciB1cmwgPSAnaHR0cHM6Ly9hcGkubnpwMXZlLmNvbS92aWRlby9saXN0Y2FjaGUnO1xcbnZhciBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgJ3N1ZmZpeCc6JzE3MzE1MCcsXFxuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xcbiAgICB9LFxcbiAgICBib2R5OiBib2R5LFxcbiAgICBtZXRob2Q6ICdQT1NUJ1xcbn0pOyBcXG4vL2xvZyhodG1sKVxcblxcbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXFxuLy9sb2coaHRtbDEpXFxudmFyIGl2MD0gSlNPTi5wYXJzZShodG1sKS5zdWZmaXg7XFxuLy9sb2coaXYwKTtcXG5sZXQgaHRtbDIgPSBEZWNyeXB0KGh0bWwxKTsgXFxuLy9sb2coaHRtbDIpXFxuXFxudmFyIGxpc3QgPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhLmRhdGE7XFxuLy9sb2cobGlzdCk7XFxubGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XFxudmFyIHRhZz1kYXRhLnRhZ3M7XFxuICAgICAgdmFyIHN0cjE9Jyc7XFxuICAgICBmb3IoaSBpbiB0YWcpe1xcbiAgICB2YXIgc3RyMSA9IHN0cjErdGFnW2ldLm5hbWUrJyAgICc7XFxufVxcclxcbiAgICAgICAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgICAgIGRlc2M6c3RyMSwgcGljX3VybDpkYXRhLnBhbm9yYW1hLnJlcGxhY2UoJ19zeW5jLndlYnAnLCcuanBnJykucmVwbGFjZSgnX2xvbmdQcmV2aWV3JywnJyksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzFcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAgZGF0YS52aWRlb191cmwsXFxufSlcXG59KVxcblxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5qCH562+5LqM57qnXCIsXCJwYXRoXCI6XCJlcmppMlwiLFwicnVsZVwiOlwianM6IFxcbnZhciBkID0gW107XFxuXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxuXFxuLy9tZDXliqDlr4ZcXG5mdW5jdGlvbiBtZDUoc3RyKSB7XFxuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xcbn1cXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSk7XFxudmFyIHQwID0gTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDApO1xcbmxldCBpZD1NWV9VUkwuc3BsaXQoJyMjJylbMl07XFxubGV0IHA9TVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcbnZhciBzaWduID0gbWQ1KCdsaXN0X3Jvdz02MCZwYWdlPScrcCsnJnRhZ3M9JytpZCsnJnRpbWVzdGFtcD0nK3QrJyZ0eXBlPTImbX1xJWVhNjpMRGNtUz9hSylDZUYyODdiUHZkOTlARSw5VXBeJyk7IC8vbG9nKHNpZ24pXFxuXFxubGV0IGRhdGEwPXtcXG4gICAgICAgIFxcXCJlbmNvZGVfc2lnblxcXCI6IHNpZ24sXFxuICAgICAgICBcXFwibGlzdF9yb3dcXFwiOiBcXFwiNjBcXFwiLFxcbiAgICAgICAgXFxcInBhZ2VcXFwiOiBwLFxcbiAgICAgICAgXFxcInRhZ3NcXFwiOiBpZCxcXG4gICAgICAgIFxcXCJ0aW1lc3RhbXBcXFwiOiB0LFxcbiAgICAgICAgXFxcInR5cGVcXFwiOiBcXFwiMlxcXCJcXG4gICAgfVxcbi8vbG9nKGRhdGEwKVxcbnZhciBkYXRhID0gRW5jcnlwdChKU09OLnN0cmluZ2lmeShkYXRhMCkpOyBcXG4vL2xvZyhkYXRhKVxcbnZhciBib2R5ID0gJ3Bvc3QtZGF0YT0nK2RhdGE7IFxcbnZhciB1cmwgPSAnaHR0cHM6Ly9hcGkubnpwMXZlLmNvbS92aWRlby9saXN0Y2FjaGUnO1xcbnZhciBodG1sID0gZmV0Y2godXJsLCB7XFxuICAgIGhlYWRlcnM6IHtcXG4gICAgJ3N1ZmZpeCc6JzE3MzE1MCcsXFxuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xcbiAgICB9LFxcbiAgICBib2R5OiBib2R5LFxcbiAgICBtZXRob2Q6ICdQT1NUJ1xcbn0pOyBcXG4vL2xvZyhodG1sKVxcblxcbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXFxuLy9sb2coaHRtbDEpXFxudmFyIGl2MD0gSlNPTi5wYXJzZShodG1sKS5zdWZmaXg7XFxuLy9sb2coaXYwKTtcXG5sZXQgaHRtbDIgPSBEZWNyeXB0KGh0bWwxKTsgXFxuLy9sb2coaHRtbDIpXFxuXFxudmFyIGxpc3QgPSBKU09OLnBhcnNlKGh0bWwyKS5kYXRhLmRhdGE7XFxuLy9sb2cobGlzdCk7XFxubGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XFxudmFyIHRhZz1kYXRhLnRhZ3M7XFxuICAgICAgdmFyIHN0cjE9Jyc7XFxuICAgICBmb3IoaSBpbiB0YWcpe1xcbiAgICB2YXIgc3RyMSA9IHN0cjErdGFnW2ldLm5hbWUrJyAgICc7XFxufVxcclxcbiAgICAgICAgICAgIGQucHVzaCh7XFxyXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcbiAgICAgICAgICAgICAgIGRlc2M6c3RyMSwgcGljX3VybDpkYXRhLnBhbm9yYW1hLnJlcGxhY2UoJ19zeW5jLndlYnAnLCcuanBnJykucmVwbGFjZSgnX2xvbmdQcmV2aWV3JywnJyksXFxyXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicGljXzFcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmwgOiAgZGF0YS52aWRlb191cmwsXFxufSlcXG59KVxcblxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5pCc57SiXCIsXCJwYXRoXCI6XCJzb3VzdW9cIixcInJ1bGVcIjpcImpzOiBcXG52YXIgZCA9IFtdO1xcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcblxcbi8vbWQ15Yqg5a+GXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcbiAgICByZXR1cm4gQ3J5cHRvSlMuTUQ1KHN0cikudG9TdHJpbmcoKTtcXG59XFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkpOyBcXG5sZXQga3k9TVlfVVJMLnNwbGl0KCc9JylbMl07XFxubGV0IHBnPU1ZX1VSTC5zcGxpdCgnPScpWzFdLnJlcGxhY2UoJyZrdycsJycpO1xcbmxvZyhwZylcXG52YXIgc2lnbiA9IG1kNSgna2V5d29yZD0nK2t5KycmbGlzdF9yb3c9NjAmcGFnZT0nK3BnKycmdGltZXN0YW1wPScrdCsnJm19cSVlYTY6TERjbVM/YUspQ2VGMjg3YlB2ZDk5QEUsOVVwXicpOyAvL2xvZyhzaWduKVxcbi8vbG9nKGJvZHkpXFxudmFyIGRhdGEwPXtcXG4gICAgICAgXFxcImVuY29kZV9zaWduXFxcIjpzaWduLFxcbiAgICAgICBcXFwia2V5d29yZFxcXCI6a3ksXFxuICAgICAgIFxcXCJsaXN0X3Jvd1xcXCI6XFxcIjYwXFxcIixcXG4gICAgICAgXFxcInBhZ2VcXFwiOnBnLFxcbiAgICAgICBcXFwidGltZXN0YW1wXFxcIjp0fTtcXG52YXIgZGF0YSA9IEVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YTApKTsgXFxudmFyIGJvZHkgPSAncG9zdC1kYXRhPScrZGF0YTsgXFxudmFyIHVybD0naHR0cHM6Ly9hcGkubnpwMXZlLmNvbS92aWRlby9saXN0JztcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcbiAgICBoZWFkZXJzOiB7XFxuICAgICdzdWZmaXgnOicxNzMxNTAnLFxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXG4gICAgfSxcXG4gICAgYm9keTogYm9keSxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXG59KTsgXFxuLy9sb2coaHRtbClcXG5cXG5sZXQgaHRtbDEgPSBKU09OLnBhcnNlKGh0bWwpLmRhdGE7IFxcbi8vbG9nKGh0bWwxKVxcbnZhciBpdjA9IEpTT04ucGFyc2UoaHRtbCkuc3VmZml4O1xcbi8vbG9nKGl2MCk7XFxubGV0IGh0bWwyID0gRGVjcnlwdChodG1sMSk7IFxcbmxvZyhodG1sMilcXG52YXIgbGlzdCA9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEuZGF0YTtcXG4vL2xvZyhsaXN0KTtcXG5saXN0LmZvckVhY2goKGRhdGEpID0+IHtcXG4gICAgICAgIHZhciB0YWc9ZGF0YS50YWdzO1xcbiAgICAgIHZhciBzdHIxPScnO1xcbiAgICAgZm9yKGkgaW4gdGFnKXtcXG4gICAgdmFyIHN0cjEgPSBzdHIxK3RhZ1tpXS5uYW1lKycgICAnO1xcbn1cXG4gICAgLy9sb2coc3RyMSk7XFxyXFxuICAgICAgICAgICAgZC5wdXNoKHtcXHJcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxuICAgICAgICAgICAgICAgZGVzYzpzdHIxLCBwaWNfdXJsOmRhdGEucGFub3JhbWEucmVwbGFjZSgnX3N5bmMud2VicCcsJy5qcGcnKS5yZXBsYWNlKCdfbG9uZ1ByZXZpZXcnLCcnKSxcXG4gICAgICAgICAgICAgICAgdXJsIDogIGRhdGEudmlkZW9fdXJsLFxcbiAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJwaWNfMVxcXCIsXFxufSlcXG59KVxcblxcbnNldFJlc3VsdChkKVwifV0sXCJzYXZlZFwiOmZhbHNlLFwidGl0bGVcIjpcIum6u+ixhlwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vZW1wdHkjI2Z5cGFnZSMjNTM7Z2V0O1VURi04O3tVc2VyLUFnZW50QE1vemlsbGEvNS4wIChMaW51eO+8m++8myBBbmRyb2lkIDE077yb77ybIDIzMDEzUks3NUMgQnVpbGQvVUtRMS4yMzA4MDQuMDAx77yb77ybIHd2KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMCBDaHJvbWUvMTE4LjAuMC4wIE1vYmlsZSBTYWZhcmkvNTM3LjM2fVwiLFwiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcImZpbmRfcnVsZVwiOlwianM6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZXJqaTJcXFwiKVwiLFwiZ3JvdXBcIjpcIkdIU1wiLFwidWFcIjpcIm1vYmlsZVwiLFwicHJlUnVsZVwiOlwiXCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWIhuexu1xcXCIsXFxcInBhdGhcXFwiOlxcXCJDYXRlZ29yeVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJmdW5jdGlvbiBzdHJvbmcoZCwgYykge1xcXFxuICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHN0cm9uZz48Zm9udCBjb2xvcj0jJyArIChjIHx8ICcwMDAwMDAnKSArICc+JyArIGQgKyAnPC9mb250Pjwvc3Ryb25nPic7XFxcXG59XFxcXG5mdW5jdGlvbiBDYXRlZ29yeTEobGlzdCxkKSB7XFxcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxcXG4gICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gTGlzdC50aXRsZTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAgIChnZXRNeVZhcignY29sb3IxJywgJzAnKSA9PSBpKSA/IHN0cm9uZyh0aXRsZSwgJ0ZGNjY5OScpIDogdGl0bGUsXFxcXG4gICAgICAgICAgICB1cmw6ICQoTGlzdC50eXBlKS5sYXp5UnVsZSgoaSwgTGlzdCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGUxJywgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbG9yMScsIGkpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXFxcbiAgICAgICAgICAgIH0sIGksIExpc3QpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiBkO1xcXFxufVxcXFxuZnVuY3Rpb24gQ2F0ZWdvcnkyKGxpc3QsZCkge1xcXFxuICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcXFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxcXG4gICAgICAgIHZhciB0aXRsZSA9IExpc3QudGl0bGU7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yMicsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcXFxuICAgICAgICAgICAgdXJsOiAkKExpc3QudHlwZSkubGF6eVJ1bGUoKGksIExpc3QpID0+IHtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlMicsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjInLCBpKTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJyxcXFxcbiAgICB9KTtcXFxcbiAgICByZXR1cm4gZDtcXFxcbn1cXFxcbmZ1bmN0aW9uIENhdGVnb3J5MyhsaXN0LGQpIHtcXFxcbiAgICBmb3IgKHZhciBpIGluIGxpc3QpIHtcXFxcbiAgICAgICAgdmFyIExpc3QgPSBsaXN0W2ldO1xcXFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6ICAgKGdldE15VmFyKCdjb2xvcjMnLCAnMCcpID09IGkpID8gc3Ryb25nKHRpdGxlLCAnRkY2Njk5JykgOiB0aXRsZSxcXFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZTMnLCBpbnB1dCk7XFxcXG4gICAgICAgICAgICAgICBwdXRNeVZhcignY29sb3IzJywgaSk7XFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcXFxuICAgICAgICAgICAgfSwgaSwgTGlzdCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaycsXFxcXG4gICAgfSk7XFxcXG4gICAgcmV0dXJuIGQ7XFxcXG59XFxcXG5mdW5jdGlvbiBDYXRlZ29yeTQobGlzdCxkKSB7XFxcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxcXG4gICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gTGlzdC50aXRsZTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAgIChnZXRNeVZhcignY29sb3I0JywgJzAnKSA9PSBpKSA/IHN0cm9uZyh0aXRsZSwgJ0ZGNjY5OScpIDogdGl0bGUsXFxcXG4gICAgICAgICAgICB1cmw6ICQoTGlzdC50eXBlKS5sYXp5UnVsZSgoaSwgTGlzdCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU0JywgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbG9yNCcsIGkpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXFxcbiAgICAgICAgICAgIH0sIGksIExpc3QpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiBkO1xcXFxufVxcXFxuZnVuY3Rpb24gQ2F0ZWdvcnk1KGxpc3QsZCkge1xcXFxuICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcXFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxcXG4gICAgICAgIHZhciB0aXRsZSA9IExpc3QudGl0bGU7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yNScsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcXFxuICAgICAgICAgICAgdXJsOiAkKExpc3QudHlwZSkubGF6eVJ1bGUoKGksIExpc3QpID0+IHtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlNScsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjUnLCBpKTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJyxcXFxcbiAgICB9KTtcXFxcbiAgICByZXR1cm4gZDtcXFxcbn1cXFxcbmZ1bmN0aW9uIENhdGVnb3J5NihsaXN0LGQpIHtcXFxcbiAgICBmb3IgKHZhciBpIGluIGxpc3QpIHtcXFxcbiAgICAgICAgdmFyIExpc3QgPSBsaXN0W2ldO1xcXFxuICAgICAgICB2YXIgdGl0bGUgPSBMaXN0LnRpdGxlO1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6ICAgKGdldE15VmFyKCdjb2xvcjYnLCAnMCcpID09IGkpID8gc3Ryb25nKHRpdGxlLCAnRkY2Njk5JykgOiB0aXRsZSxcXFxcbiAgICAgICAgICAgIHVybDogJChMaXN0LnR5cGUpLmxhenlSdWxlKChpLCBMaXN0KSA9PiB7XFxcXG4gICAgICAgICAgICAgICBwdXRNeVZhcigndHlwZTYnLCBpbnB1dCk7XFxcXG4gICAgICAgICAgICAgICBwdXRNeVZhcignY29sb3I2JywgaSk7XFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcXFxuICAgICAgICAgICAgfSwgaSwgTGlzdCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICB9KTtcXFxcbiAgICB9XFxcXG4gICAgZC5wdXNoKHtcXFxcbiAgICAgICAgY29sX3R5cGU6ICdibGFua19ibG9jaycsXFxcXG4gICAgfSk7XFxcXG4gICAgcmV0dXJuIGQ7XFxcXG59XFxcXG5mdW5jdGlvbiBDYXRlZ29yeTcobGlzdCxkKSB7XFxcXG4gICAgZm9yICh2YXIgaSBpbiBsaXN0KSB7XFxcXG4gICAgICAgIHZhciBMaXN0ID0gbGlzdFtpXTtcXFxcbiAgICAgICAgdmFyIHRpdGxlID0gTGlzdC50aXRsZTtcXFxcbiAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAgIChnZXRNeVZhcignY29sb3I3JywgJzAnKSA9PSBpKSA/IHN0cm9uZyh0aXRsZSwgJ0ZGNjY5OScpIDogdGl0bGUsXFxcXG4gICAgICAgICAgICB1cmw6ICQoTGlzdC50eXBlKS5sYXp5UnVsZSgoaSwgTGlzdCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3R5cGU3JywgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NvbG9yNycsIGkpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXFxcbiAgICAgICAgICAgIH0sIGksIExpc3QpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdmbGV4X2J1dHRvbidcXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxuICAgIGQucHVzaCh7XFxcXG4gICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snLFxcXFxuICAgIH0pO1xcXFxuICAgIHJldHVybiBkO1xcXFxufVxcXFxuZnVuY3Rpb24gQ2F0ZWdvcnk4KGxpc3QsZCkge1xcXFxuICAgIGZvciAodmFyIGkgaW4gbGlzdCkge1xcXFxuICAgICAgICB2YXIgTGlzdCA9IGxpc3RbaV07XFxcXG4gICAgICAgIHZhciB0aXRsZSA9IExpc3QudGl0bGU7XFxcXG4gICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogICAoZ2V0TXlWYXIoJ2NvbG9yOCcsICcwJykgPT0gaSkgPyBzdHJvbmcodGl0bGUsICdGRjY2OTknKSA6IHRpdGxlLFxcXFxuICAgICAgICAgICAgdXJsOiAkKExpc3QudHlwZSkubGF6eVJ1bGUoKGksIExpc3QpID0+IHtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCd0eXBlOCcsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgIHB1dE15VmFyKCdjb2xvcjgnLCBpKTtcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxcXG4gICAgICAgICAgICB9LCBpLCBMaXN0KSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbiAgICBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJyxcXFxcbiAgICB9KTtcXFxcbiAgICByZXR1cm4gZDtcXFxcbn1cXFxcbiQuZXhwb3J0cy5DYXRlZ29yeTEgPSBDYXRlZ29yeTE7XFxcXG4kLmV4cG9ydHMuQ2F0ZWdvcnkyID0gQ2F0ZWdvcnkyO1xcXFxuJC5leHBvcnRzLkNhdGVnb3J5MyA9IENhdGVnb3J5MztcXFxcbiQuZXhwb3J0cy5DYXRlZ29yeTQgPSBDYXRlZ29yeTQ7XFxcXG4kLmV4cG9ydHMuQ2F0ZWdvcnk1ID0gQ2F0ZWdvcnk1O1xcXFxuJC5leHBvcnRzLkNhdGVnb3J5NiA9IENhdGVnb3J5NjtcXFxcbiQuZXhwb3J0cy5DYXRlZ29yeTcgPSBDYXRlZ29yeTc7XFxcXG4kLmV4cG9ydHMuQ2F0ZWdvcnk4ID0gQ2F0ZWdvcnk4O1xcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcImFlc1xcXCIsXFxcInBhdGhcXFwiOlxcXCJhZXNcXFwiLFxcXCJydWxlXFxcIjpcXFwiLy/liqDovb1DcnlwdG9KU+W6k1xcXFxuZXZhbChnZXRDcnlwdG9KUygpKVxcXFxuXFxcXG4vLyDliqDlr4blh73mlbBcXFxcbmZ1bmN0aW9uIEVuY3J5cHQocGxhaW50ZXh0KSB7XFxcXG4gICAgY29uc3Qga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UoXFxcXFxcXCJWcTIzNHpCZVNkR2dZWHpWVEVmbm5qamRtYVRrazdBNFxcXFxcXFwiKTtcXFxcbiAgICBjb25zdCBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXFxcXFwiLXA5Qlt+UG5QczE3MzE1MFxcXFxcXFwiKTtcXFxcbiAgICB2YXIgZW5jcnlwdGVkID0gQ3J5cHRvSlMuQUVTLmVuY3J5cHQocGxhaW50ZXh0LCBrZXksIHtcXFxcbiAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcXFxcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3IC8vIOazqOaEj+i/memHjOW6lOivpeaYr0NyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXFxcbiAgICB9KTtcXFxcbiAgICB2YXIgY2lwaGVydGV4dCA9IGVuY3J5cHRlZC5jaXBoZXJ0ZXh0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5CYXNlNjQpO1xcXFxuICAgIHJldHVybiBjaXBoZXJ0ZXh0O1xcXFxufVxcXFxuXFxcXG4vLyDop6Plr4blh73mlbBcXFxcbmZ1bmN0aW9uIERlY3J5cHQod29yZCkge1xcXFxuICAgIGNvbnN0IGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFxcXFxcXFwiVnEyMzR6QmVTZEdnWVh6VlRFZm5uampkbWFUa2s3QTRcXFxcXFxcIik7XFxcXG4gICAgY29uc3QgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcXFxcXFxcIi1wOUJbflBuUHNcXFxcXFxcIitpdjApO1xcXFxuICAgIGxldCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKHdvcmQpO1xcXFxuICAgIGxldCBkZWNyeXB0ID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoe1xcXFxuICAgICAgICBjaXBoZXJ0ZXh0OiBlbmNyeXB0ZWRIZXhTdHJcXFxcbiAgICB9LCBrZXksIHtcXFxcbiAgICAgICAgaXY6IGl2LFxcXFxuICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcXFxcbiAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3IC8vIOazqOaEj+i/memHjOW6lOivpeaYr0NyeXB0b0pTLnBhZC5Ob1BhZGRpbmdcXFxcbiAgICB9KTtcXFxcbiAgICBpZiAoZGVjcnlwdCkge1xcXFxuICAgICAgICBsZXQgZGVjcnlwdGVkU3RyID0gZGVjcnlwdC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XFxcXG4gICAgICAgIHJldHVybiBkZWNyeXB0ZWRTdHI7XFxcXG4gICAgfSBlbHNlIHtcXFxcbiAgICAgICAgLy8g6Kej5a+G5aSx6LSl77yM6L+U5ZuebnVsbOaIlumUmeivr+S/oeaBr1xcXFxuICAgICAgICByZXR1cm4gbnVsbDtcXFxcbiAgICB9XFxcXG59XFxcXG5cXFxcblxcXFxudmFyIGxhenkgPSAkKCcnKS5pbWFnZSgoKSA9PiB7XFxcXG5jb25zdCBDcnlwdG9VdGlsID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9hc3NldHMvY3J5cHRvLWphdmEuanNcXFxcXFxcIik7XFxcXG5cXFxcdGxldCBrZXkgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VVVEY4KFxcXFxcXFwicG5oWGdOMFVcXFxcXFxcIik7XFxcXG5cXFxcdGxldCBpdiA9IENyeXB0b1V0aWwuRGF0YS5wYXJzZVVURjgoXFxcXFxcXCJHWTRnRXZCRFxcXFxcXFwiKTtcXFxcblxcXFx0bGV0IHRleHREYXRhID0gQ3J5cHRvVXRpbC5EYXRhLnBhcnNlSW5wdXRTdHJlYW0oaW5wdXQpLmJhc2U2NERlY29kZSgpO1xcXFxuXFxcXHRsZXQgZW5jcnlwdGVkID0gQ3J5cHRvVXRpbC5ERVMuZGVjcnlwdCh0ZXh0RGF0YSwga2V5LCB7XFxcXG4gIFxcXFx0bW9kZTogXFxcXFxcXCJERVMvQ0JDL1BLQ1M3UGFkZGluZ1xcXFxcXFwiLFxcXFxuXFxcXHRcXFxcdGl2OiBpdlxcXFxuXFxcXHR9KTtcXFxcblxcXFx0bGV0IGJhc2U2NFRleHQgPSBlbmNyeXB0ZWQudG9TdHJpbmcoKS5zcGxpdChcXFxcXFxcImJhc2U2NCxcXFxcXFxcIilbMV07XFxcXG4gICAgbGV0IGVuY3J5cHRlZDAgPSBDcnlwdG9VdGlsLkRhdGEucGFyc2VCYXNlNjQoYmFzZTY0VGV4dCwgX2Jhc2U2NC5OT19XUkFQKTtcXFxcbiAgICByZXR1cm4gZW5jcnlwdGVkMC50b0lucHV0U3RyZWFtKCk7XFxcXG59KVxcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6aKR6YGT5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVyamlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6IFxcXFxudmFyIGQgPSBbXTtcXFxcblxcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9hZXMnKSkucnVsZSk7XFxcXG5cXFxcbi8vbWQ15Yqg5a+GXFxcXG5mdW5jdGlvbiBtZDUoc3RyKSB7XFxcXG4gICAgcmV0dXJuIENyeXB0b0pTLk1ENShzdHIpLnRvU3RyaW5nKCk7XFxcXG59XFxcXG52YXIgdCA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSk7XFxcXG52YXIgdDAgPSBNYXRoLmZsb29yKERhdGUubm93KCkvMTAwMCk7XFxcXG5sZXQgaWQ9TVlfVVJMLnNwbGl0KCcjIycpWzJdO1xcXFxubGV0IHA9TVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcXFxudmFyIHNpZ24gPSBtZDUoJ2NoYW5uZWw9JytpZCsnJmxpc3Rfcm93PTYwJnBhZ2U9JytwKycmdGltZXN0YW1wPScrdCsnJnR5cGU9MiZtfXElZWE2OkxEY21TP2FLKUNlRjI4N2JQdmQ5OUBFLDlVcF4nKTsgLy9sb2coc2lnbilcXFxcblxcXFxubGV0IGRhdGEwPXtcXFxcbiAgICAgICAgXFxcXFxcXCJjaGFubmVsXFxcXFxcXCI6IGlkLFxcXFxuICAgICAgICBcXFxcXFxcImVuY29kZV9zaWduXFxcXFxcXCI6IHNpZ24sXFxcXG4gICAgICAgIFxcXFxcXFwibGlzdF9yb3dcXFxcXFxcIjogXFxcXFxcXCI2MFxcXFxcXFwiLFxcXFxuICAgICAgICBcXFxcXFxcInBhZ2VcXFxcXFxcIjogcCxcXFxcbiAgICAgICAgXFxcXFxcXCJ0aW1lc3RhbXBcXFxcXFxcIjogdCxcXFxcbiAgICAgICAgXFxcXFxcXCJ0eXBlXFxcXFxcXCI6IFxcXFxcXFwiMlxcXFxcXFwiXFxcXG4gICAgfVxcXFxuLy9sb2coZGF0YTApXFxcXG52YXIgZGF0YSA9IEVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YTApKTsgXFxcXG4vL2xvZyhkYXRhKVxcXFxudmFyIGJvZHkgPSAncG9zdC1kYXRhPScrZGF0YTsgXFxcXG52YXIgdXJsID0gJ2h0dHBzOi8vYXBpLm56cDF2ZS5jb20vdmlkZW8vbGlzdGNhY2hlJztcXFxcbnZhciBodG1sID0gZmV0Y2godXJsLCB7XFxcXG4gICAgaGVhZGVyczoge1xcXFxuICAgICdzdWZmaXgnOicxNzMxNTAnLFxcXFxuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xcXFxuICAgIH0sXFxcXG4gICAgYm9keTogYm9keSxcXFxcbiAgICBtZXRob2Q6ICdQT1NUJ1xcXFxufSk7IFxcXFxuLy9sb2coaHRtbClcXFxcblxcXFxubGV0IGh0bWwxID0gSlNPTi5wYXJzZShodG1sKS5kYXRhOyBcXFxcbi8vbG9nKGh0bWwxKVxcXFxudmFyIGl2MD0gSlNPTi5wYXJzZShodG1sKS5zdWZmaXg7XFxcXG4vL2xvZyhpdjApO1xcXFxubGV0IGh0bWwyID0gRGVjcnlwdChodG1sMSk7IFxcXFxuLy9sb2coaHRtbDIpXFxcXG5cXFxcbnZhciBsaXN0ID0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5kYXRhO1xcXFxuLy9sb2cobGlzdCk7XFxcXG5saXN0LmZvckVhY2goKGRhdGEpID0+IHtcXFxcbnZhciB0YWc9ZGF0YS50YWdzO1xcXFxuICAgICAgdmFyIHN0cjE9Jyc7XFxcXG4gICAgIGZvcihpIGluIHRhZyl7XFxcXG4gICAgdmFyIHN0cjEgPSBzdHIxK3RhZ1tpXS5uYW1lKycgICAnO1xcXFxufVxcXFxyXFxcXG4gICAgICAgICAgICBkLnB1c2goe1xcXFxyXFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEudGl0bGUsXFxcXG4gICAgICAgICAgICAgICBkZXNjOnN0cjEsIHBpY191cmw6ZGF0YS5wYW5vcmFtYS5yZXBsYWNlKCdfc3luYy53ZWJwJywnLmpwZycpLnJlcGxhY2UoJ19sb25nUHJldmlldycsJycpLFxcXFxyXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwicGljXzFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICB1cmwgOiAgZGF0YS52aWRlb191cmwsXFxcXG59KVxcXFxufSlcXFxcblxcXFxuc2V0UmVzdWx0KGQpXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5qCH562+5LqM57qnXFxcIixcXFwicGF0aFxcXCI6XFxcImVyamkyXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOiBcXFxcbnZhciBkID0gW107XFxcXG5cXFxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcXFxuXFxcXG4vL21kNeWKoOWvhlxcXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcXFxuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xcXFxufVxcXFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkpO1xcXFxudmFyIHQwID0gTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDApO1xcXFxubGV0IGlkPU1ZX1VSTC5zcGxpdCgnIyMnKVsyXTtcXFxcbmxldCBwPU1ZX1VSTC5zcGxpdCgnIyMnKVsxXTtcXFxcbnZhciBzaWduID0gbWQ1KCdsaXN0X3Jvdz02MCZwYWdlPScrcCsnJnRhZ3M9JytpZCsnJnRpbWVzdGFtcD0nK3QrJyZ0eXBlPTImbX1xJWVhNjpMRGNtUz9hSylDZUYyODdiUHZkOTlARSw5VXBeJyk7IC8vbG9nKHNpZ24pXFxcXG5cXFxcbmxldCBkYXRhMD17XFxcXG4gICAgICAgIFxcXFxcXFwiZW5jb2RlX3NpZ25cXFxcXFxcIjogc2lnbixcXFxcbiAgICAgICAgXFxcXFxcXCJsaXN0X3Jvd1xcXFxcXFwiOiBcXFxcXFxcIjYwXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwicGFnZVxcXFxcXFwiOiBwLFxcXFxuICAgICAgICBcXFxcXFxcInRhZ3NcXFxcXFxcIjogaWQsXFxcXG4gICAgICAgIFxcXFxcXFwidGltZXN0YW1wXFxcXFxcXCI6IHQsXFxcXG4gICAgICAgIFxcXFxcXFwidHlwZVxcXFxcXFwiOiBcXFxcXFxcIjJcXFxcXFxcIlxcXFxuICAgIH1cXFxcbi8vbG9nKGRhdGEwKVxcXFxudmFyIGRhdGEgPSBFbmNyeXB0KEpTT04uc3RyaW5naWZ5KGRhdGEwKSk7IFxcXFxuLy9sb2coZGF0YSlcXFxcbnZhciBib2R5ID0gJ3Bvc3QtZGF0YT0nK2RhdGE7IFxcXFxudmFyIHVybCA9ICdodHRwczovL2FwaS5uenAxdmUuY29tL3ZpZGVvL2xpc3RjYWNoZSc7XFxcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAnc3VmZml4JzonMTczMTUwJyxcXFxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXFxcbiAgICB9LFxcXFxuICAgIGJvZHk6IGJvZHksXFxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXFxcbn0pOyBcXFxcbi8vbG9nKGh0bWwpXFxcXG5cXFxcbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXFxcXG4vL2xvZyhodG1sMSlcXFxcbnZhciBpdjA9IEpTT04ucGFyc2UoaHRtbCkuc3VmZml4O1xcXFxuLy9sb2coaXYwKTtcXFxcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcXFxcbi8vbG9nKGh0bWwyKVxcXFxuXFxcXG52YXIgbGlzdCA9IEpTT04ucGFyc2UoaHRtbDIpLmRhdGEuZGF0YTtcXFxcbi8vbG9nKGxpc3QpO1xcXFxubGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XFxcXG52YXIgdGFnPWRhdGEudGFncztcXFxcbiAgICAgIHZhciBzdHIxPScnO1xcXFxuICAgICBmb3IoaSBpbiB0YWcpe1xcXFxuICAgIHZhciBzdHIxID0gc3RyMSt0YWdbaV0ubmFtZSsnICAgJztcXFxcbn1cXFxcclxcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcclxcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxcXFxuICAgICAgICAgICAgICAgZGVzYzpzdHIxLCBwaWNfdXJsOmRhdGEucGFub3JhbWEucmVwbGFjZSgnX3N5bmMud2VicCcsJy5qcGcnKS5yZXBsYWNlKCdfbG9uZ1ByZXZpZXcnLCcnKSxcXFxcclxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInBpY18xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgdXJsIDogIGRhdGEudmlkZW9fdXJsLFxcXFxufSlcXFxcbn0pXFxcXG5cXFxcbnNldFJlc3VsdChkKVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuaQnOe0olxcXCIsXFxcInBhdGhcXFwiOlxcXCJzb3VzdW9cXFwiLFxcXCJydWxlXFxcIjpcXFwianM6IFxcXFxudmFyIGQgPSBbXTtcXFxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvYWVzJykpLnJ1bGUpO1xcXFxuXFxcXG4vL21kNeWKoOWvhlxcXFxuZnVuY3Rpb24gbWQ1KHN0cikge1xcXFxuICAgIHJldHVybiBDcnlwdG9KUy5NRDUoc3RyKS50b1N0cmluZygpO1xcXFxufVxcXFxudmFyIHQgPSBNYXRoLmZsb29yKERhdGUubm93KCkpOyBcXFxcbmxldCBreT1NWV9VUkwuc3BsaXQoJz0nKVsyXTtcXFxcbmxldCBwZz1NWV9VUkwuc3BsaXQoJz0nKVsxXS5yZXBsYWNlKCcma3cnLCcnKTtcXFxcbmxvZyhwZylcXFxcbnZhciBzaWduID0gbWQ1KCdrZXl3b3JkPScra3krJyZsaXN0X3Jvdz02MCZwYWdlPScrcGcrJyZ0aW1lc3RhbXA9Jyt0KycmbX1xJWVhNjpMRGNtUz9hSylDZUYyODdiUHZkOTlARSw5VXBeJyk7IC8vbG9nKHNpZ24pXFxcXG4vL2xvZyhib2R5KVxcXFxudmFyIGRhdGEwPXtcXFxcbiAgICAgICBcXFxcXFxcImVuY29kZV9zaWduXFxcXFxcXCI6c2lnbixcXFxcbiAgICAgICBcXFxcXFxcImtleXdvcmRcXFxcXFxcIjpreSxcXFxcbiAgICAgICBcXFxcXFxcImxpc3Rfcm93XFxcXFxcXCI6XFxcXFxcXCI2MFxcXFxcXFwiLFxcXFxuICAgICAgIFxcXFxcXFwicGFnZVxcXFxcXFwiOnBnLFxcXFxuICAgICAgIFxcXFxcXFwidGltZXN0YW1wXFxcXFxcXCI6dH07XFxcXG52YXIgZGF0YSA9IEVuY3J5cHQoSlNPTi5zdHJpbmdpZnkoZGF0YTApKTsgXFxcXG52YXIgYm9keSA9ICdwb3N0LWRhdGE9JytkYXRhOyBcXFxcbnZhciB1cmw9J2h0dHBzOi8vYXBpLm56cDF2ZS5jb20vdmlkZW8vbGlzdCc7XFxcXG52YXIgaHRtbCA9IGZldGNoKHVybCwge1xcXFxuICAgIGhlYWRlcnM6IHtcXFxcbiAgICAnc3VmZml4JzonMTczMTUwJyxcXFxcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcXFxcbiAgICB9LFxcXFxuICAgIGJvZHk6IGJvZHksXFxcXG4gICAgbWV0aG9kOiAnUE9TVCdcXFxcbn0pOyBcXFxcbi8vbG9nKGh0bWwpXFxcXG5cXFxcbmxldCBodG1sMSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTsgXFxcXG4vL2xvZyhodG1sMSlcXFxcbnZhciBpdjA9IEpTT04ucGFyc2UoaHRtbCkuc3VmZml4O1xcXFxuLy9sb2coaXYwKTtcXFxcbmxldCBodG1sMiA9IERlY3J5cHQoaHRtbDEpOyBcXFxcbmxvZyhodG1sMilcXFxcbnZhciBsaXN0ID0gSlNPTi5wYXJzZShodG1sMikuZGF0YS5kYXRhO1xcXFxuLy9sb2cobGlzdCk7XFxcXG5saXN0LmZvckVhY2goKGRhdGEpID0+IHtcXFxcbiAgICAgICAgdmFyIHRhZz1kYXRhLnRhZ3M7XFxcXG4gICAgICB2YXIgc3RyMT0nJztcXFxcbiAgICAgZm9yKGkgaW4gdGFnKXtcXFxcbiAgICB2YXIgc3RyMSA9IHN0cjErdGFnW2ldLm5hbWUrJyAgICc7XFxcXG59XFxcXG4gICAgLy9sb2coc3RyMSk7XFxcXHJcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXHJcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50aXRsZSxcXFxcbiAgICAgICAgICAgICAgIGRlc2M6c3RyMSwgcGljX3VybDpkYXRhLnBhbm9yYW1hLnJlcGxhY2UoJ19zeW5jLndlYnAnLCcuanBnJykucmVwbGFjZSgnX2xvbmdQcmV2aWV3JywnJyksXFxcXG4gICAgICAgICAgICAgICAgdXJsIDogIGRhdGEudmlkZW9fdXJsLFxcXFxuICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJwaWNfMVxcXFxcXFwiLFxcXFxufSlcXFxcbn0pXFxcXG5cXFxcbnNldFJlc3VsdChkKVxcXCJ9XVwifSIsInRpdGxlIjoi6Ieq5oWwIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement