@getopenpay/openpay-js-react 0.5.21 → 0.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{Resource-CfKErfec-DlpGuztb.js → Resource-RDv_OYD--DOVnTQf8.js} +2 -2
- package/dist/{SimpleSpanProcessor-CXw-ziu3-QGCG84SQ.js → SimpleSpanProcessor-Bd-6B4X9-a_QNmJDG.js} +7 -7
- package/dist/{detect-resources-4bbJ7WPf-CYdFSFRa.js → detect-resources-DMhxBMbn-CFwz6AUc.js} +6 -6
- package/dist/{diag-api-BOobQ8x1-2TWGcU43.js → diag-api-D2LkPxpn-DzR6SHCy.js} +2 -2
- package/dist/{index-Dlwh9VF3-D0R4QXGa.js → index-52xvCCmQ-BCriUhy8.js} +2 -2
- package/dist/{index-Br9HFfCG-vtzqlJCB.js → index-BLOR260n-DBg_rw_q.js} +2 -2
- package/dist/{index-CQN2Mbb7-Cfawh33s.js → index-Bv4btlG--BgXZ8It_.js} +2 -2
- package/dist/{index-BOpQSX_J-Qw54e101.js → index-C0Xt-V6u-DKR4MQKn.js} +5 -5
- package/dist/{index-C10lsOiB-Cle1_Zli.js → index-CO9X9rD6-DMEmfuB6.js} +5 -5
- package/dist/{index-B1Y0ZN9p-C45aIcGD.js → index-CdfoeJAp-DGy9f5LV.js} +3 -3
- package/dist/{index-DiEv5xGW-BSgmjgC8.js → index-CfJbMSyU-DwTBDANB.js} +6 -6
- package/dist/{index-CWT2geZa-C3EZn8OZ.js → index-CyHGGg8O-B-FjeveS.js} +5 -5
- package/dist/{index-BGRANkJ2.js → index-VZYud60f.js} +10 -8
- package/dist/{index-BUFonG_6-D2RqL-qS.js → index-qx6PYu51-ffvgBpdC.js} +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/{metrics-api-CcfUhf8A-jo9swtW3.js → metrics-api-BE_EH1nB-CMvMqYuL.js} +2 -2
- package/dist/{suppress-tracing-DKPqeCeC-CAVRFCn3.js → suppress-tracing-DC92UyIm-DTVYi1he.js} +2 -2
- package/dist/{url-DYlrHgqQ-Ck2w5idr.js → url-D5ihpicR-nwwImGw7.js} +2 -2
- package/dist/{utils-DMlBLSDy-DC69TLv4.js → utils-BsYV6OtD-BJDXHCRo.js} +2 -2
- package/dist/{utils-BXJ8S2DO-fEN1IVi0.js → utils-cnUBBxg7-CQDXrQZ_.js} +4 -4
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as h } from "./diag-api-
|
|
1
|
+
import { r as h } from "./diag-api-D2LkPxpn-DzR6SHCy.js";
|
|
2
2
|
import { j as m, bl as y, m as p, Y as v, f as d } from "./sdk-info-ChuKu8zW-BkU0NT3O.js";
|
|
3
3
|
function g() {
|
|
4
4
|
return "unknown_service";
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
g as E,
|
|
174
174
|
j as R
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiUmVzb3VyY2UtQ2ZLRXJmZWMtIX57MDAyfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUJPb2JROHgxLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGogYXMgal8sIGJsIGFzIFRBLCBtIGFzIG1TLCBZIGFzIFlTLCBmIGFzIGRTIH0gZnJvbSAnLi9zZGstaW5mby1DaHVLdTh6Vy0hfnswMGp9fi5qcyc7XG5cbmZ1bmN0aW9uIEUoKSB7XG4gIHJldHVybiBcInVua25vd25fc2VydmljZVwiO1xufVxudmFyIGYgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGYgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHUpIHtcbiAgICBmb3IgKHZhciBuLCBlID0gMSwgcyA9IGFyZ3VtZW50cy5sZW5ndGg7IGUgPCBzOyBlKyspIHtcbiAgICAgIG4gPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciBpIGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBpKSAmJiAodVtpXSA9IG5baV0pO1xuICAgIH1cbiAgICByZXR1cm4gdTtcbiAgfSwgZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSwgbSA9IGZ1bmN0aW9uKHUsIG4sIGUsIHMpIHtcbiAgZnVuY3Rpb24gaSh0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBhKSB7XG4gICAgZnVuY3Rpb24gbyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICByKHMubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChiKSB7XG4gICAgICAgIGEoYik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcihzLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGIpIHtcbiAgICAgICAgYShiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcihjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogaShjLnZhbHVlKS50aGVuKG8sIGwpO1xuICAgIH1cbiAgICByKChzID0gcy5hcHBseSh1LCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgUyA9IGZ1bmN0aW9uKHUsIG4pIHtcbiAgdmFyIGUgPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHtcbiAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07XG4gICAgcmV0dXJuIHRbMV07XG4gIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIHMsIGksIHQsIGE7XG4gIHJldHVybiBhID0geyBuZXh0OiBvKDApLCB0aHJvdzogbygxKSwgcmV0dXJuOiBvKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIChhW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSksIGE7XG4gIGZ1bmN0aW9uIG8ocikge1xuICAgIHJldHVybiBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gbChbciwgY10pO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbChyKSB7XG4gICAgaWYgKHMpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgIGZvciAoOyBlOyApIHRyeSB7XG4gICAgICBpZiAocyA9IDEsIGkgJiYgKHQgPSByWzBdICYgMiA/IGkucmV0dXJuIDogclswXSA/IGkudGhyb3cgfHwgKCh0ID0gaS5yZXR1cm4pICYmIHQuY2FsbChpKSwgMCkgOiBpLm5leHQpICYmICEodCA9IHQuY2FsbChpLCByWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICBzd2l0Y2ggKGkgPSAwLCB0ICYmIChyID0gW3JbMF0gJiAyLCB0LnZhbHVlXSksIHJbMF0pIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgdCA9IHI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gZS5sYWJlbCsrLCB7IHZhbHVlOiByWzFdLCBkb25lOiAhMSB9O1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgZS5sYWJlbCsrLCBpID0gclsxXSwgciA9IFswXTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHIgPSBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICh0ID0gZS50cnlzLCAhKHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAoclswXSA9PT0gNiB8fCByWzBdID09PSAyKSkge1xuICAgICAgICAgICAgZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDMgJiYgKCF0IHx8IHJbMV0gPiB0WzBdICYmIHJbMV0gPCB0WzNdKSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHJbMV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDYgJiYgZS5sYWJlbCA8IHRbMV0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzFdLCB0ID0gcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodCAmJiBlLmxhYmVsIDwgdFsyXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMl0sIGUub3BzLnB1c2gocik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdFsyXSAmJiBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgciA9IG4uY2FsbCh1LCBlKTtcbiAgICB9IGNhdGNoIChjKSB7XG4gICAgICByID0gWzYsIGNdLCBpID0gMDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcyA9IHQgPSAwO1xuICAgIH1cbiAgICBpZiAoclswXSAmIDUpIHRocm93IHJbMV07XG4gICAgcmV0dXJuIHsgdmFsdWU6IHJbMF0gPyByWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn0sIGcgPSBmdW5jdGlvbih1LCBuKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgdVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiB1O1xuICB2YXIgcyA9IGUuY2FsbCh1KSwgaSwgdCA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEoaSA9IHMubmV4dCgpKS5kb25lOyApIHQucHVzaChpLnZhbHVlKTtcbiAgfSBjYXRjaCAobykge1xuICAgIGEgPSB7IGVycm9yOiBvIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IHMucmV0dXJuKSAmJiBlLmNhbGwocyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHUobiwgZSkge1xuICAgICAgdmFyIHMgPSB0aGlzLCBpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG4sIHRoaXMuYXN5bmNBdHRyaWJ1dGVzUGVuZGluZyA9IGUgIT0gbnVsbCwgdGhpcy5fc3luY0F0dHJpYnV0ZXMgPSAoaSA9IHRoaXMuX2F0dHJpYnV0ZXMpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiB7fSwgdGhpcy5fYXN5bmNBdHRyaWJ1dGVzUHJvbWlzZSA9IGU/LnRoZW4oZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gcy5fYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHMuX2F0dHJpYnV0ZXMsIHQpLCBzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgPSBmYWxzZSwgdDtcbiAgICAgIH0sIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgcmV0dXJuIHIuZGVidWcoXCJhIHJlc291cmNlJ3MgYXN5bmMgYXR0cmlidXRlcyBwcm9taXNlIHJlamVjdGVkOiAlc1wiLCB0KSwgcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID0gZmFsc2UsIHt9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1LmVtcHR5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdS5FTVBUWTtcbiAgICB9LCB1LmRlZmF1bHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBuO1xuICAgICAgcmV0dXJuIG5ldyB1KChuID0ge30sIG5bal9dID0gRSgpLCBuW21TXSA9IFRBW21TXSwgbltZU10gPSBUQVtZU10sIG5bZFNdID0gVEFbZFNdLCBuKSk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHUucHJvdG90eXBlLCBcImF0dHJpYnV0ZXNcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG47XG4gICAgICAgIHJldHVybiB0aGlzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgci5lcnJvcihcIkFjY2Vzc2luZyByZXNvdXJjZSBhdHRyaWJ1dGVzIGJlZm9yZSBhc3luYyBhdHRyaWJ1dGVzIHNldHRsZWRcIiksIChuID0gdGhpcy5fYXR0cmlidXRlcykgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IHt9O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHUucHJvdG90eXBlLndhaXRGb3JBc3luY0F0dHJpYnV0ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBtKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFModGhpcywgZnVuY3Rpb24obikge1xuICAgICAgICAgIHN3aXRjaCAobi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID8gWzQsIHRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2VdIDogWzMsIDJdO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICBuLnNlbnQoKSwgbi5sYWJlbCA9IDI7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgIC8qcmV0dXJuKi9cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgdS5wcm90b3R5cGUubWVyZ2UgPSBmdW5jdGlvbihuKSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIHM7XG4gICAgICBpZiAoIW4pXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgdmFyIGkgPSBmKGYoe30sIHRoaXMuX3N5bmNBdHRyaWJ1dGVzKSwgKHMgPSBuLl9zeW5jQXR0cmlidXRlcykgIT09IG51bGwgJiYgcyAhPT0gdm9pZCAwID8gcyA6IG4uYXR0cmlidXRlcyk7XG4gICAgICBpZiAoIXRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2UgJiYgIW4uX2FzeW5jQXR0cmlidXRlc1Byb21pc2UpXG4gICAgICAgIHJldHVybiBuZXcgdShpKTtcbiAgICAgIHZhciB0ID0gUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlLFxuICAgICAgICBuLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlXG4gICAgICBdKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgdmFyIG8sIGwgPSBnKGEsIDIpLCByID0gbFswXSwgYyA9IGxbMV07XG4gICAgICAgIHJldHVybiBmKGYoZihmKHt9LCBlLl9zeW5jQXR0cmlidXRlcyksIHIpLCAobyA9IG4uX3N5bmNBdHRyaWJ1dGVzKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbi5hdHRyaWJ1dGVzKSwgYyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgdShpLCB0KTtcbiAgICB9LCB1LkVNUFRZID0gbmV3IHUoe30pLCB1O1xuICB9KSgpXG4pO1xuXG5leHBvcnQgeyBFLCBSIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSSxNQUFNQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBRTdELFNBQVNDLElBQUk7QUFDWCxTQUFPO0FBQ1Q7QUFDQSxJQUFJQyxJQUFJLFdBQVc7QUFDakIsU0FBT0EsSUFBSSxPQUFPLFVBQVUsU0FBU0MsR0FBRztBQUN0QyxhQUFTQyxHQUFHQyxJQUFJLEdBQUdDLElBQUksVUFBVSxRQUFRRCxJQUFJQyxHQUFHRCxLQUFLO0FBQ25ELE1BQUFELElBQUksVUFBVUMsQ0FBQztBQUNmLGVBQVMsS0FBS0QsRUFBRyxRQUFPLFVBQVUsZUFBZSxLQUFLQSxHQUFHLENBQUMsTUFBTUQsRUFBRSxDQUFDLElBQUlDLEVBQUUsQ0FBQztBQUFBLElBQzVFO0FBQ0EsV0FBT0Q7QUFBQSxFQUNULEdBQUdELEVBQUUsTUFBTSxNQUFNLFNBQVM7QUFDNUIsR0FBR0ssSUFBSSxTQUFTSixHQUFHQyxHQUFHQyxHQUFHQyxHQUFHO0FBQzFCLFdBQVMsRUFBRSxHQUFHO0FBQ1osV0FBTyxhQUFhRCxJQUFJLElBQUksSUFBSUEsRUFBRSxTQUFTRyxHQUFHO0FBQzVDLE1BQUFBLEVBQUUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFDQSxT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QUc7QUFDbEIsWUFBSUMsR0FBR0UsSUFBSUUsRUFBRUwsR0FBRyxDQUFDLEdBQUcsSUFBSUcsRUFBRSxDQUFDLEdBQUdELElBQUlDLEVBQUUsQ0FBQztBQUNyQyxlQUFPVCxFQUFFQSxFQUFFQSxFQUFFQSxFQUFFLENBQUMsR0FBR0csRUFBRSxlQUFlLEdBQUcsQ0FBQyxJQUFJSSxJQUFJTCxFQUFFLHFCQUFxQixRQUFRSyxNQUFNLFNBQVNBLElBQUlMLEVBQUUsVUFBVSxHQUFHTSxDQUFDO0FBQUEsTUFDcEgsQ0FBQztBQUNELGFBQU8sSUFBSVAsRUFBRSxHQUFHLENBQUM7QUFBQSxJQUNuQixHQUFHQSxFQUFFLFFBQVEsSUFBSUEsRUFBRSxDQUFDLENBQUMsR0FBR0E7QUFBQSxFQUMxQixHQUFHO0FBQUE7IiwKICAibmFtZXMiOiBbInIiLCAial8iLCAiVEEiLCAibVMiLCAiWVMiLCAiZFMiLCAiRSIsICJmIiwgInUiLCAibiIsICJlIiwgInMiLCAibSIsICJhIiwgIm8iLCAiYyIsICJsIiwgIlMiLCAiZyIsICJSIl0KfQo=
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiUmVzb3VyY2UtUkR2X09ZRC0tIX57MDAyfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUQyTGtQeHBuLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGogYXMgal8sIGJsIGFzIFRBLCBtIGFzIG1TLCBZIGFzIFlTLCBmIGFzIGRTIH0gZnJvbSAnLi9zZGstaW5mby1DaHVLdTh6Vy0hfnswMGp9fi5qcyc7XG5cbmZ1bmN0aW9uIEUoKSB7XG4gIHJldHVybiBcInVua25vd25fc2VydmljZVwiO1xufVxudmFyIGYgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIGYgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHUpIHtcbiAgICBmb3IgKHZhciBuLCBlID0gMSwgcyA9IGFyZ3VtZW50cy5sZW5ndGg7IGUgPCBzOyBlKyspIHtcbiAgICAgIG4gPSBhcmd1bWVudHNbZV07XG4gICAgICBmb3IgKHZhciBpIGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCBpKSAmJiAodVtpXSA9IG5baV0pO1xuICAgIH1cbiAgICByZXR1cm4gdTtcbiAgfSwgZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSwgbSA9IGZ1bmN0aW9uKHUsIG4sIGUsIHMpIHtcbiAgZnVuY3Rpb24gaSh0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBhKSB7XG4gICAgZnVuY3Rpb24gbyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICByKHMubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChiKSB7XG4gICAgICAgIGEoYik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcihzLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGIpIHtcbiAgICAgICAgYShiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcihjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogaShjLnZhbHVlKS50aGVuKG8sIGwpO1xuICAgIH1cbiAgICByKChzID0gcy5hcHBseSh1LCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgUyA9IGZ1bmN0aW9uKHUsIG4pIHtcbiAgdmFyIGUgPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHtcbiAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07XG4gICAgcmV0dXJuIHRbMV07XG4gIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIHMsIGksIHQsIGE7XG4gIHJldHVybiBhID0geyBuZXh0OiBvKDApLCB0aHJvdzogbygxKSwgcmV0dXJuOiBvKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIChhW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSksIGE7XG4gIGZ1bmN0aW9uIG8ocikge1xuICAgIHJldHVybiBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gbChbciwgY10pO1xuICAgIH07XG4gIH1cbiAgZnVuY3Rpb24gbChyKSB7XG4gICAgaWYgKHMpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgIGZvciAoOyBlOyApIHRyeSB7XG4gICAgICBpZiAocyA9IDEsIGkgJiYgKHQgPSByWzBdICYgMiA/IGkucmV0dXJuIDogclswXSA/IGkudGhyb3cgfHwgKCh0ID0gaS5yZXR1cm4pICYmIHQuY2FsbChpKSwgMCkgOiBpLm5leHQpICYmICEodCA9IHQuY2FsbChpLCByWzFdKSkuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICBzd2l0Y2ggKGkgPSAwLCB0ICYmIChyID0gW3JbMF0gJiAyLCB0LnZhbHVlXSksIHJbMF0pIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgdCA9IHI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gZS5sYWJlbCsrLCB7IHZhbHVlOiByWzFdLCBkb25lOiAhMSB9O1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgZS5sYWJlbCsrLCBpID0gclsxXSwgciA9IFswXTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHIgPSBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICh0ID0gZS50cnlzLCAhKHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAoclswXSA9PT0gNiB8fCByWzBdID09PSAyKSkge1xuICAgICAgICAgICAgZSA9IDA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDMgJiYgKCF0IHx8IHJbMV0gPiB0WzBdICYmIHJbMV0gPCB0WzNdKSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHJbMV07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJbMF0gPT09IDYgJiYgZS5sYWJlbCA8IHRbMV0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzFdLCB0ID0gcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodCAmJiBlLmxhYmVsIDwgdFsyXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMl0sIGUub3BzLnB1c2gocik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdFsyXSAmJiBlLm9wcy5wb3AoKSwgZS50cnlzLnBvcCgpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgciA9IG4uY2FsbCh1LCBlKTtcbiAgICB9IGNhdGNoIChjKSB7XG4gICAgICByID0gWzYsIGNdLCBpID0gMDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcyA9IHQgPSAwO1xuICAgIH1cbiAgICBpZiAoclswXSAmIDUpIHRocm93IHJbMV07XG4gICAgcmV0dXJuIHsgdmFsdWU6IHJbMF0gPyByWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XG4gIH1cbn0sIGcgPSBmdW5jdGlvbih1LCBuKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgdVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiB1O1xuICB2YXIgcyA9IGUuY2FsbCh1KSwgaSwgdCA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEoaSA9IHMubmV4dCgpKS5kb25lOyApIHQucHVzaChpLnZhbHVlKTtcbiAgfSBjYXRjaCAobykge1xuICAgIGEgPSB7IGVycm9yOiBvIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IHMucmV0dXJuKSAmJiBlLmNhbGwocyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHUobiwgZSkge1xuICAgICAgdmFyIHMgPSB0aGlzLCBpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IG4sIHRoaXMuYXN5bmNBdHRyaWJ1dGVzUGVuZGluZyA9IGUgIT0gbnVsbCwgdGhpcy5fc3luY0F0dHJpYnV0ZXMgPSAoaSA9IHRoaXMuX2F0dHJpYnV0ZXMpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiB7fSwgdGhpcy5fYXN5bmNBdHRyaWJ1dGVzUHJvbWlzZSA9IGU/LnRoZW4oZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gcy5fYXR0cmlidXRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHMuX2F0dHJpYnV0ZXMsIHQpLCBzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgPSBmYWxzZSwgdDtcbiAgICAgIH0sIGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgcmV0dXJuIHIuZGVidWcoXCJhIHJlc291cmNlJ3MgYXN5bmMgYXR0cmlidXRlcyBwcm9taXNlIHJlamVjdGVkOiAlc1wiLCB0KSwgcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID0gZmFsc2UsIHt9O1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB1LmVtcHR5ID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdS5FTVBUWTtcbiAgICB9LCB1LmRlZmF1bHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBuO1xuICAgICAgcmV0dXJuIG5ldyB1KChuID0ge30sIG5bal9dID0gRSgpLCBuW21TXSA9IFRBW21TXSwgbltZU10gPSBUQVtZU10sIG5bZFNdID0gVEFbZFNdLCBuKSk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHUucHJvdG90eXBlLCBcImF0dHJpYnV0ZXNcIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG47XG4gICAgICAgIHJldHVybiB0aGlzLmFzeW5jQXR0cmlidXRlc1BlbmRpbmcgJiYgci5lcnJvcihcIkFjY2Vzc2luZyByZXNvdXJjZSBhdHRyaWJ1dGVzIGJlZm9yZSBhc3luYyBhdHRyaWJ1dGVzIHNldHRsZWRcIiksIChuID0gdGhpcy5fYXR0cmlidXRlcykgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IHt9O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHUucHJvdG90eXBlLndhaXRGb3JBc3luY0F0dHJpYnV0ZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBtKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFModGhpcywgZnVuY3Rpb24obikge1xuICAgICAgICAgIHN3aXRjaCAobi5sYWJlbCkge1xuICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nID8gWzQsIHRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2VdIDogWzMsIDJdO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICBuLnNlbnQoKSwgbi5sYWJlbCA9IDI7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICAgICAgICAgIC8qcmV0dXJuKi9cbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgdS5wcm90b3R5cGUubWVyZ2UgPSBmdW5jdGlvbihuKSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIHM7XG4gICAgICBpZiAoIW4pXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgdmFyIGkgPSBmKGYoe30sIHRoaXMuX3N5bmNBdHRyaWJ1dGVzKSwgKHMgPSBuLl9zeW5jQXR0cmlidXRlcykgIT09IG51bGwgJiYgcyAhPT0gdm9pZCAwID8gcyA6IG4uYXR0cmlidXRlcyk7XG4gICAgICBpZiAoIXRoaXMuX2FzeW5jQXR0cmlidXRlc1Byb21pc2UgJiYgIW4uX2FzeW5jQXR0cmlidXRlc1Byb21pc2UpXG4gICAgICAgIHJldHVybiBuZXcgdShpKTtcbiAgICAgIHZhciB0ID0gUHJvbWlzZS5hbGwoW1xuICAgICAgICB0aGlzLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlLFxuICAgICAgICBuLl9hc3luY0F0dHJpYnV0ZXNQcm9taXNlXG4gICAgICBdKS50aGVuKGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgdmFyIG8sIGwgPSBnKGEsIDIpLCByID0gbFswXSwgYyA9IGxbMV07XG4gICAgICAgIHJldHVybiBmKGYoZihmKHt9LCBlLl9zeW5jQXR0cmlidXRlcyksIHIpLCAobyA9IG4uX3N5bmNBdHRyaWJ1dGVzKSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbi5hdHRyaWJ1dGVzKSwgYyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgdShpLCB0KTtcbiAgICB9LCB1LkVNUFRZID0gbmV3IHUoe30pLCB1O1xuICB9KSgpXG4pO1xuXG5leHBvcnQgeyBFLCBSIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsR0FBSSxNQUFNQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBRTdELFNBQVNDLElBQUk7QUFDWCxTQUFPO0FBQ1Q7QUFDQSxJQUFJQyxJQUFJLFdBQVc7QUFDakIsU0FBT0EsSUFBSSxPQUFPLFVBQVUsU0FBU0MsR0FBRztBQUN0QyxhQUFTQyxHQUFHQyxJQUFJLEdBQUdDLElBQUksVUFBVSxRQUFRRCxJQUFJQyxHQUFHRCxLQUFLO0FBQ25ELE1BQUFELElBQUksVUFBVUMsQ0FBQztBQUNmLGVBQVMsS0FBS0QsRUFBRyxRQUFPLFVBQVUsZUFBZSxLQUFLQSxHQUFHLENBQUMsTUFBTUQsRUFBRSxDQUFDLElBQUlDLEVBQUUsQ0FBQztBQUFBLElBQzVFO0FBQ0EsV0FBT0Q7QUFBQSxFQUNULEdBQUdELEVBQUUsTUFBTSxNQUFNLFNBQVM7QUFDNUIsR0FBR0ssSUFBSSxTQUFTSixHQUFHQyxHQUFHQyxHQUFHQyxHQUFHO0FBQzFCLFdBQVMsRUFBRSxHQUFHO0FBQ1osV0FBTyxhQUFhRCxJQUFJLElBQUksSUFBSUEsRUFBRSxTQUFTRyxHQUFHO0FBQzVDLE1BQUFBLEVBQUUsQ0FBQztBQUFBLElBQ0wsQ0FBQztBQUFBLEVBQ0g7QUFDQSxT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QUc7QUFDbEIsWUFBSUMsR0FBR0UsSUFBSUUsRUFBRUwsR0FBRyxDQUFDLEdBQUcsSUFBSUcsRUFBRSxDQUFDLEdBQUdELElBQUlDLEVBQUUsQ0FBQztBQUNyQyxlQUFPVCxFQUFFQSxFQUFFQSxFQUFFQSxFQUFFLENBQUMsR0FBR0csRUFBRSxlQUFlLEdBQUcsQ0FBQyxJQUFJSSxJQUFJTCxFQUFFLHFCQUFxQixRQUFRSyxNQUFNLFNBQVNBLElBQUlMLEVBQUUsVUFBVSxHQUFHTSxDQUFDO0FBQUEsTUFDcEgsQ0FBQztBQUNELGFBQU8sSUFBSVAsRUFBRSxHQUFHLENBQUM7QUFBQSxJQUNuQixHQUFHQSxFQUFFLFFBQVEsSUFBSUEsRUFBRSxDQUFDLENBQUMsR0FBR0E7QUFBQSxFQUMxQixHQUFHO0FBQUE7IiwKICAibmFtZXMiOiBbInIiLCAial8iLCAiVEEiLCAibVMiLCAiWVMiLCAiZFMiLCAiRSIsICJmIiwgInUiLCAibiIsICJlIiwgInMiLCAibSIsICJhIiwgIm8iLCAiYyIsICJsIiwgIlMiLCAiZyIsICJSIl0KfQo=
|
package/dist/{SimpleSpanProcessor-CXw-ziu3-QGCG84SQ.js → SimpleSpanProcessor-Bd-6B4X9-a_QNmJDG.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as b, j as _, x as E, E as nt, a as ot, P as it, L as st, R as at } from "./index-
|
|
2
|
-
import { r as l } from "./diag-api-
|
|
3
|
-
import { dD as G, y as ut, dE as V, dF as ct, dG as I, p as pt, O as x, dH as lt, dI as ht, at as N, av as M, dJ as dt, au as ft } from "./url-
|
|
4
|
-
import { E as f, O as P, v as _t, V as mt, Z as vt, f as Y, S as St, n as yt, Q as C, l as Q, c as gt, d as Et, p as Tt, a as bt, b as v, e as Lt } from "./index-
|
|
5
|
-
import { u as Pt, a as wt } from "./suppress-tracing-
|
|
6
|
-
import { R as H } from "./Resource-
|
|
1
|
+
import { t as b, j as _, x as E, E as nt, a as ot, P as it, L as st, R as at } from "./index-VZYud60f.js";
|
|
2
|
+
import { r as l } from "./diag-api-D2LkPxpn-DzR6SHCy.js";
|
|
3
|
+
import { dD as G, y as ut, dE as V, dF as ct, dG as I, p as pt, O as x, dH as lt, dI as ht, at as N, av as M, dJ as dt, au as ft } from "./url-D5ihpicR-nwwImGw7.js";
|
|
4
|
+
import { E as f, O as P, v as _t, V as mt, Z as vt, f as Y, S as St, n as yt, Q as C, l as Q, c as gt, d as Et, p as Tt, a as bt, b as v, e as Lt } from "./index-CO9X9rD6-DMEmfuB6.js";
|
|
5
|
+
import { u as Pt, a as wt } from "./suppress-tracing-DC92UyIm-DTVYi1he.js";
|
|
6
|
+
import { R as H } from "./Resource-RDv_OYD--DOVnTQf8.js";
|
|
7
7
|
import { a as U } from "./ExportResult-BacsqwKA-wgTHEn_9.js";
|
|
8
8
|
var xt = "exception", B = function() {
|
|
9
9
|
return B = Object.assign || function(e) {
|
|
@@ -907,4 +907,4 @@ export {
|
|
|
907
907
|
Ct as x,
|
|
908
908
|
zt as z
|
|
909
909
|
};
|
|
910
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiU2ltcGxlU3BhblByb2Nlc3Nvci1DWHcteml1My0hfnswMDR9fi5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgdCBhcyB0ciwgaiBhcyBqZSQxLCB4IGFzIHhlLCBFIGFzIEVzLCBhIGFzIGF0LCBQIGFzIFBlLCBMIGFzIExuLCBSIGFzIFJzIH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5pbXBvcnQgeyByIH0gZnJvbSAnLi9kaWFnLWFwaS1CT29iUTh4MS0hfnswMGF9fi5qcyc7XG5pbXBvcnQgeyBkRCBhcyBqZSwgeSBhcyB5XywgZEUgYXMgcWUsIGRGIGFzIFhlLCBkRyBhcyBSJDIsIHAgYXMgcF8sIE8gYXMgTyQxLCBkSCBhcyBOXywgZEkgYXMgYl8sIGF0IGFzIE5BLCBhdiBhcyBNQSwgZEogYXMgcl8sIGF1IGFzIGVBIH0gZnJvbSAnLi91cmwtRFlsckhncVEtIX57MDBifX4uanMnO1xuaW1wb3J0IHsgRSBhcyBFciwgTyBhcyBPZSwgdiBhcyB2ZSwgViBhcyBWZSwgWiBhcyBaciwgZiBhcyBmdCwgUyBhcyBTZSwgbiBhcyBudCwgUSBhcyBRciwgbCwgYyBhcyBjZSwgZCwgcCwgYSBhcyBhciwgYiBhcyB2LCBlIGFzIE90JDEgfSBmcm9tICcuL2luZGV4LUMxMGxzT2lCLSF+ezAwaX1+LmpzJztcbmltcG9ydCB7IHUsIGEgYXMgYSQxIH0gZnJvbSAnLi9zdXBwcmVzcy10cmFjaW5nLURLUHFlQ2VDLSF+ezAwbn1+LmpzJztcbmltcG9ydCB7IFIgYXMgUiQxIH0gZnJvbSAnLi9SZXNvdXJjZS1DZktFcmZlYy0hfnswMDJ9fi5qcyc7XG5pbXBvcnQgeyBhIH0gZnJvbSAnLi9FeHBvcnRSZXN1bHQtQmFjc3F3S0EtIX57MDBsfX4uanMnO1xuXG52YXIgd3QgPSBcImV4Y2VwdGlvblwiLCBEID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBEID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbihyKSB7XG4gICAgZm9yICh2YXIgdCwgZSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBlIDwgbjsgZSsrKSB7XG4gICAgICB0ID0gYXJndW1lbnRzW2VdO1xuICAgICAgZm9yICh2YXIgbyBpbiB0KSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgbykgJiYgKHJbb10gPSB0W29dKTtcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0sIEQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn0sIEN0ID0gZnVuY3Rpb24ocikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgZSA9IHQgJiYgclt0XSwgbiA9IDA7XG4gIGlmIChlKSByZXR1cm4gZS5jYWxsKHIpO1xuICBpZiAociAmJiB0eXBlb2Ygci5sZW5ndGggPT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByICYmIG4gPj0gci5sZW5ndGggJiYgKHIgPSB2b2lkIDApLCB7IHZhbHVlOiByICYmIHJbbisrXSwgZG9uZTogIXIgfTtcbiAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IodCA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn0sIFggPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgcltTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiByO1xuICB2YXIgbiA9IGUuY2FsbChyKSwgbywgaSA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAodCA9PT0gdm9pZCAwIHx8IHQtLSA+IDApICYmICEobyA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChvLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGEgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG8gJiYgIW8uZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn0sIE90ID0gZnVuY3Rpb24ociwgdCwgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgbiA9IDAsIG8gPSB0Lmxlbmd0aCwgaTsgbiA8IG87IG4rKylcbiAgICAoaSB8fCAhKG4gaW4gdCkpICYmIChpIHx8IChpID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwgMCwgbikpLCBpW25dID0gdFtuXSk7XG4gIHJldHVybiByLmNvbmNhdChpIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKTtcbn0sIHh0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCwgZSwgbiwgbywgaSwgYSwgcywgbCwgdSwgcCkge1xuICAgICAgcyA9PT0gdm9pZCAwICYmIChzID0gW10pLCB0aGlzLmF0dHJpYnV0ZXMgPSB7fSwgdGhpcy5saW5rcyA9IFtdLCB0aGlzLmV2ZW50cyA9IFtdLCB0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50ID0gMCwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50ID0gMCwgdGhpcy5fZHJvcHBlZExpbmtzQ291bnQgPSAwLCB0aGlzLnN0YXR1cyA9IHtcbiAgICAgICAgY29kZTogUGUuVU5TRVRcbiAgICAgIH0sIHRoaXMuZW5kVGltZSA9IFswLCAwXSwgdGhpcy5fZW5kZWQgPSBmYWxzZSwgdGhpcy5fZHVyYXRpb24gPSBbLTEsIC0xXSwgdGhpcy5uYW1lID0gbiwgdGhpcy5fc3BhbkNvbnRleHQgPSBvLCB0aGlzLnBhcmVudFNwYW5JZCA9IGEsIHRoaXMua2luZCA9IGksIHRoaXMubGlua3MgPSBzO1xuICAgICAgdmFyIGMgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWUgPSBSJDIubm93KCksIHRoaXMuX3BlcmZvcm1hbmNlT2Zmc2V0ID0gYyAtICh0aGlzLl9wZXJmb3JtYW5jZVN0YXJ0VGltZSArIHJfKCkpLCB0aGlzLl9zdGFydFRpbWVQcm92aWRlZCA9IGwgIT0gbnVsbCwgdGhpcy5zdGFydFRpbWUgPSB0aGlzLl9nZXRUaW1lKGwgPz8gYyksIHRoaXMucmVzb3VyY2UgPSB0LnJlc291cmNlLCB0aGlzLmluc3RydW1lbnRhdGlvbkxpYnJhcnkgPSB0Lmluc3RydW1lbnRhdGlvbkxpYnJhcnksIHRoaXMuX3NwYW5MaW1pdHMgPSB0LmdldFNwYW5MaW1pdHMoKSwgdGhpcy5fYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCA9IHRoaXMuX3NwYW5MaW1pdHMuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCB8fCAwLCBwICE9IG51bGwgJiYgdGhpcy5zZXRBdHRyaWJ1dGVzKHApLCB0aGlzLl9zcGFuUHJvY2Vzc29yID0gdC5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yKCksIHRoaXMuX3NwYW5Qcm9jZXNzb3Iub25TdGFydCh0aGlzLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuc3BhbkNvbnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zcGFuQ29udGV4dDtcbiAgICB9LCByJDEucHJvdG90eXBlLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHJldHVybiBlID09IG51bGwgfHwgdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiB0Lmxlbmd0aCA9PT0gMCA/IChyLndhcm4oXCJJbnZhbGlkIGF0dHJpYnV0ZSBrZXk6IFwiICsgdCksIHRoaXMpIDogYXIoZSkgPyBPYmplY3Qua2V5cyh0aGlzLmF0dHJpYnV0ZXMpLmxlbmd0aCA+PSB0aGlzLl9zcGFuTGltaXRzLmF0dHJpYnV0ZUNvdW50TGltaXQgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmF0dHJpYnV0ZXMsIHQpID8gKHRoaXMuX2Ryb3BwZWRBdHRyaWJ1dGVzQ291bnQrKywgdGhpcykgOiAodGhpcy5hdHRyaWJ1dGVzW3RdID0gdGhpcy5fdHJ1bmNhdGVUb1NpemUoZSksIHRoaXMpIDogKHIud2FybihcIkludmFsaWQgYXR0cmlidXRlIHZhbHVlIHNldCBmb3Iga2V5OiBcIiArIHQpLCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLnNldEF0dHJpYnV0ZXMgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSwgbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBDdChPYmplY3QuZW50cmllcyh0KSksIGkgPSBvLm5leHQoKTsgIWkuZG9uZTsgaSA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIGEgPSBYKGkudmFsdWUsIDIpLCBzID0gYVswXSwgbCA9IGFbMV07XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUocywgbCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHUpIHtcbiAgICAgICAgZSA9IHsgZXJyb3I6IHUgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaSAmJiAhaS5kb25lICYmIChuID0gby5yZXR1cm4pICYmIG4uY2FsbChvKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRFdmVudCA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIGlmICh0aGlzLl9pc1NwYW5FbmRlZCgpKVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIGlmICh0aGlzLl9zcGFuTGltaXRzLmV2ZW50Q291bnRMaW1pdCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHIud2FybihcIk5vIGV2ZW50cyBhbGxvd2VkLlwiKSwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50KyssIHRoaXM7XG4gICAgICB0aGlzLmV2ZW50cy5sZW5ndGggPj0gdGhpcy5fc3BhbkxpbWl0cy5ldmVudENvdW50TGltaXQgJiYgKHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA9PT0gMCAmJiByLmRlYnVnKFwiRHJvcHBpbmcgZXh0cmEgZXZlbnRzLlwiKSwgdGhpcy5ldmVudHMuc2hpZnQoKSwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50KyspLCBxZShlKSAmJiAocWUobikgfHwgKG4gPSBlKSwgZSA9IHZvaWQgMCk7XG4gICAgICB2YXIgbyA9IFFyKGUpO1xuICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnB1c2goe1xuICAgICAgICBuYW1lOiB0LFxuICAgICAgICBhdHRyaWJ1dGVzOiBvLFxuICAgICAgICB0aW1lOiB0aGlzLl9nZXRUaW1lKG4pLFxuICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwXG4gICAgICB9KSwgdGhpcztcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZExpbmsgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5rcy5wdXNoKHQpLCB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuYWRkTGlua3MgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMubGlua3MpLnB1c2guYXBwbHkoZSwgT3QoW10sIFgodCksIGZhbHNlKSksIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRTdGF0dXMgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiAodGhpcy5zdGF0dXMgPSBEKHt9LCB0KSwgdGhpcy5zdGF0dXMubWVzc2FnZSAhPSBudWxsICYmIHR5cGVvZiB0Lm1lc3NhZ2UgIT0gXCJzdHJpbmdcIiAmJiAoci53YXJuKFwiRHJvcHBpbmcgaW52YWxpZCBzdGF0dXMubWVzc2FnZSBvZiB0eXBlICdcIiArIHR5cGVvZiB0Lm1lc3NhZ2UgKyBcIicsIGV4cGVjdGVkICdzdHJpbmcnXCIpLCBkZWxldGUgdGhpcy5zdGF0dXMubWVzc2FnZSksIHRoaXMpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUudXBkYXRlTmFtZSA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc1NwYW5FbmRlZCgpID8gdGhpcyA6ICh0aGlzLm5hbWUgPSB0LCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIGlmICh0aGlzLl9pc1NwYW5FbmRlZCgpKSB7XG4gICAgICAgIHIuZXJyb3IodGhpcy5uYW1lICsgXCIgXCIgKyB0aGlzLl9zcGFuQ29udGV4dC50cmFjZUlkICsgXCItXCIgKyB0aGlzLl9zcGFuQ29udGV4dC5zcGFuSWQgKyBcIiAtIFlvdSBjYW4gb25seSBjYWxsIGVuZCgpIG9uIGEgc3BhbiBvbmNlLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlLCB0aGlzLmVuZFRpbWUgPSB0aGlzLl9nZXRUaW1lKHQpLCB0aGlzLl9kdXJhdGlvbiA9IFhlKHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpLCB0aGlzLl9kdXJhdGlvblswXSA8IDAgJiYgKHIud2FybihcIkluY29uc2lzdGVudCBzdGFydCBhbmQgZW5kIHRpbWUsIHN0YXJ0VGltZSA+IGVuZFRpbWUuIFNldHRpbmcgc3BhbiBkdXJhdGlvbiB0byAwbXMuXCIsIHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpLCB0aGlzLmVuZFRpbWUgPSB0aGlzLnN0YXJ0VGltZS5zbGljZSgpLCB0aGlzLl9kdXJhdGlvbiA9IFswLCAwXSksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA+IDAgJiYgci53YXJuKFwiRHJvcHBlZCBcIiArIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCArIFwiIGV2ZW50cyBiZWNhdXNlIGV2ZW50Q291bnRMaW1pdCByZWFjaGVkXCIpLCB0aGlzLl9zcGFuUHJvY2Vzc29yLm9uRW5kKHRoaXMpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFRpbWUgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodHlwZW9mIHQgPT0gXCJudW1iZXJcIiAmJiB0IDw9IFIkMi5ub3coKSlcbiAgICAgICAgcmV0dXJuIHBfKHQgKyB0aGlzLl9wZXJmb3JtYW5jZU9mZnNldCk7XG4gICAgICBpZiAodHlwZW9mIHQgPT0gXCJudW1iZXJcIilcbiAgICAgICAgcmV0dXJuIE8kMSh0KTtcbiAgICAgIGlmICh0IGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIE8kMSh0LmdldFRpbWUoKSk7XG4gICAgICBpZiAoTl8odCkpXG4gICAgICAgIHJldHVybiB0O1xuICAgICAgaWYgKHRoaXMuX3N0YXJ0VGltZVByb3ZpZGVkKVxuICAgICAgICByZXR1cm4gTyQxKERhdGUubm93KCkpO1xuICAgICAgdmFyIGUgPSBSJDIubm93KCkgLSB0aGlzLl9wZXJmb3JtYW5jZVN0YXJ0VGltZTtcbiAgICAgIHJldHVybiBiXyh0aGlzLnN0YXJ0VGltZSwgTyQxKGUpKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmlzUmVjb3JkaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZW5kZWQgPT09IGZhbHNlO1xuICAgIH0sIHIkMS5wcm90b3R5cGUucmVjb3JkRXhjZXB0aW9uID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgdmFyIG4gPSB7fTtcbiAgICAgIHR5cGVvZiB0ID09IFwic3RyaW5nXCIgPyBuW01BXSA9IHQgOiB0ICYmICh0LmNvZGUgPyBuW05BXSA9IHQuY29kZS50b1N0cmluZygpIDogdC5uYW1lICYmIChuW05BXSA9IHQubmFtZSksIHQubWVzc2FnZSAmJiAobltNQV0gPSB0Lm1lc3NhZ2UpLCB0LnN0YWNrICYmIChuW2VBXSA9IHQuc3RhY2spKSwgbltOQV0gfHwgbltNQV0gPyB0aGlzLmFkZEV2ZW50KHd0LCBuLCBlKSA6IHIud2FybihcIkZhaWxlZCB0byByZWNvcmQgYW4gZXhjZXB0aW9uIFwiICsgdCk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwiZHVyYXRpb25cIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImVuZGVkXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmRlZDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkQXR0cmlidXRlc0NvdW50XCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImRyb3BwZWRFdmVudHNDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImRyb3BwZWRMaW5rc0NvdW50XCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wcGVkTGlua3NDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCByJDEucHJvdG90eXBlLl9pc1NwYW5FbmRlZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkICYmIHIud2FybihcIkNhbiBub3QgZXhlY3V0ZSB0aGUgb3BlcmF0aW9uIG9uIGVuZGVkIFNwYW4ge3RyYWNlSWQ6IFwiICsgdGhpcy5fc3BhbkNvbnRleHQudHJhY2VJZCArIFwiLCBzcGFuSWQ6IFwiICsgdGhpcy5fc3BhbkNvbnRleHQuc3BhbklkICsgXCJ9XCIpLCB0aGlzLl9lbmRlZDtcbiAgICB9LCByJDEucHJvdG90eXBlLl90cnVuY2F0ZVRvTGltaXRVdGlsID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgcmV0dXJuIHQubGVuZ3RoIDw9IGUgPyB0IDogdC5zdWJzdHJpbmcoMCwgZSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fdHJ1bmNhdGVUb1NpemUgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIG4gPSB0aGlzLl9hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0O1xuICAgICAgcmV0dXJuIG4gPD0gMCA/IChyLndhcm4oXCJBdHRyaWJ1dGUgdmFsdWUgbGltaXQgbXVzdCBiZSBwb3NpdGl2ZSwgZ290IFwiICsgbiksIHQpIDogdHlwZW9mIHQgPT0gXCJzdHJpbmdcIiA/IHRoaXMuX3RydW5jYXRlVG9MaW1pdFV0aWwodCwgbikgOiBBcnJheS5pc0FycmF5KHQpID8gdC5tYXAoZnVuY3Rpb24obykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG8gPT0gXCJzdHJpbmdcIiA/IGUuX3RydW5jYXRlVG9MaW1pdFV0aWwobywgbikgOiBvO1xuICAgICAgfSkgOiB0O1xuICAgIH0sIHIkMTtcbiAgfSkoKVxuKSwgUDtcbihmdW5jdGlvbihyKSB7XG4gIHJbci5OT1RfUkVDT1JEID0gMF0gPSBcIk5PVF9SRUNPUkRcIiwgcltyLlJFQ09SRCA9IDFdID0gXCJSRUNPUkRcIiwgcltyLlJFQ09SRF9BTkRfU0FNUExFRCA9IDJdID0gXCJSRUNPUkRfQU5EX1NBTVBMRURcIjtcbn0pKFAgfHwgKFAgPSB7fSkpO1xudmFyIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2lzaW9uOiBQLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09mZlNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBnID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogUC5SRUNPUkRfQU5EX1NBTVBMRURcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09uU2FtcGxlclwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIEIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdmFyIGUsIG4sIG8sIGk7XG4gICAgICB0aGlzLl9yb290ID0gdC5yb290LCB0aGlzLl9yb290IHx8IChFcihuZXcgRXJyb3IoXCJQYXJlbnRCYXNlZFNhbXBsZXIgbXVzdCBoYXZlIGEgcm9vdCBzYW1wbGVyIGNvbmZpZ3VyZWRcIikpLCB0aGlzLl9yb290ID0gbmV3IGcoKSksIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQgPSAoZSA9IHQucmVtb3RlUGFyZW50U2FtcGxlZCkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IG5ldyBnKCksIHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQgPSAobiA9IHQucmVtb3RlUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IG5ldyBSKCksIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZCA9IChvID0gdC5sb2NhbFBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIG8gIT09IHZvaWQgMCA/IG8gOiBuZXcgZygpLCB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQgPSAoaSA9IHQubG9jYWxQYXJlbnROb3RTYW1wbGVkKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbmV3IFIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKHQsIGUsIG4sIG8sIGksIGEpIHtcbiAgICAgIHZhciBzID0gamUkMS5nZXRTcGFuQ29udGV4dCh0KTtcbiAgICAgIHJldHVybiAhcyB8fCAhTG4ocykgPyB0aGlzLl9yb290LnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHMuaXNSZW1vdGUgPyBzLnRyYWNlRmxhZ3MgJiB0ci5TQU1QTEVEID8gdGhpcy5fcmVtb3RlUGFyZW50U2FtcGxlZC5zaG91bGRTYW1wbGUodCwgZSwgbiwgbywgaSwgYSkgOiB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHMudHJhY2VGbGFncyAmIHRyLlNBTVBMRUQgPyB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiUGFyZW50QmFzZWR7cm9vdD1cIiArIHRoaXMuX3Jvb3QudG9TdHJpbmcoKSArIFwiLCByZW1vdGVQYXJlbnRTYW1wbGVkPVwiICsgdGhpcy5fcmVtb3RlUGFyZW50U2FtcGxlZC50b1N0cmluZygpICsgXCIsIHJlbW90ZVBhcmVudE5vdFNhbXBsZWQ9XCIgKyB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgbG9jYWxQYXJlbnRTYW1wbGVkPVwiICsgdGhpcy5fbG9jYWxQYXJlbnRTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgbG9jYWxQYXJlbnROb3RTYW1wbGVkPVwiICsgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIn1cIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBXID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IDApLCB0aGlzLl9yYXRpbyA9IHQsIHRoaXMuX3JhdGlvID0gdGhpcy5fbm9ybWFsaXplKHQpLCB0aGlzLl91cHBlckJvdW5kID0gTWF0aC5mbG9vcih0aGlzLl9yYXRpbyAqIDQyOTQ5NjcyOTUpO1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IFJzKGUpICYmIHRoaXMuX2FjY3VtdWxhdGUoZSkgPCB0aGlzLl91cHBlckJvdW5kID8gUC5SRUNPUkRfQU5EX1NBTVBMRUQgOiBQLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlRyYWNlSWRSYXRpb0Jhc2Vke1wiICsgdGhpcy5fcmF0aW8gKyBcIn1cIjtcbiAgICB9LCByLnByb3RvdHlwZS5fbm9ybWFsaXplID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB0ICE9IFwibnVtYmVyXCIgfHwgaXNOYU4odCkgPyAwIDogdCA+PSAxID8gMSA6IHQgPD0gMCA/IDAgOiB0O1xuICAgIH0sIHIucHJvdG90eXBlLl9hY2N1bXVsYXRlID0gZnVuY3Rpb24odCkge1xuICAgICAgZm9yICh2YXIgZSA9IDAsIG4gPSAwOyBuIDwgdC5sZW5ndGggLyA4OyBuKyspIHtcbiAgICAgICAgdmFyIG8gPSBuICogOCwgaSA9IHBhcnNlSW50KHQuc2xpY2UobywgbyArIDgpLCAxNik7XG4gICAgICAgIGUgPSAoZSBeIGkpID4+PiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGU7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgUnQgPSB2LkFsd2F5c09uLCBFID0gMTtcbmZ1bmN0aW9uIEooKSB7XG4gIHZhciByID0gT2UoKTtcbiAgcmV0dXJuIHtcbiAgICBzYW1wbGVyOiAkKHIpLFxuICAgIGZvcmNlRmx1c2hUaW1lb3V0TWlsbGlzOiAzZTQsXG4gICAgZ2VuZXJhbExpbWl0czoge1xuICAgICAgYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdDogci5PVEVMX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVDb3VudExpbWl0OiByLk9URUxfQVRUUklCVVRFX0NPVU5UX0xJTUlUXG4gICAgfSxcbiAgICBzcGFuTGltaXRzOiB7XG4gICAgICBhdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlULFxuICAgICAgYXR0cmlidXRlQ291bnRMaW1pdDogci5PVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlULFxuICAgICAgbGlua0NvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0xJTktfQ09VTlRfTElNSVQsXG4gICAgICBldmVudENvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0VWRU5UX0NPVU5UX0xJTUlULFxuICAgICAgYXR0cmlidXRlUGVyRXZlbnRDb3VudExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0VWRU5UX0NPVU5UX0xJTUlULFxuICAgICAgYXR0cmlidXRlUGVyTGlua0NvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9QRVJfTElOS19DT1VOVF9MSU1JVFxuICAgIH0sXG4gICAgbWVyZ2VSZXNvdXJjZVdpdGhEZWZhdWx0czogdHJ1ZVxuICB9O1xufVxuZnVuY3Rpb24gJChyJDEpIHtcbiAgc3dpdGNoIChyJDEgPT09IHZvaWQgMCAmJiAociQxID0gT2UoKSksIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSKSB7XG4gICAgY2FzZSB2LkFsd2F5c09uOlxuICAgICAgcmV0dXJuIG5ldyBnKCk7XG4gICAgY2FzZSB2LkFsd2F5c09mZjpcbiAgICAgIHJldHVybiBuZXcgUigpO1xuICAgIGNhc2Ugdi5QYXJlbnRCYXNlZEFsd2F5c09uOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IGcoKVxuICAgICAgfSk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkQWx3YXlzT2ZmOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IFIoKVxuICAgICAgfSk7XG4gICAgY2FzZSB2LlRyYWNlSWRSYXRpbzpcbiAgICAgIHJldHVybiBuZXcgVyhZKHIkMSkpO1xuICAgIGNhc2Ugdi5QYXJlbnRCYXNlZFRyYWNlSWRSYXRpbzpcbiAgICAgIHJldHVybiBuZXcgQih7XG4gICAgICAgIHJvb3Q6IG5ldyBXKFkociQxKSlcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gci5lcnJvcignT1RFTF9UUkFDRVNfU0FNUExFUiB2YWx1ZSBcIicgKyByJDEuT1RFTF9UUkFDRVNfU0FNUExFUiArIFwiIGludmFsaWQsIGRlZmF1bHRpbmcgdG8gXCIgKyBSdCArICdcIi4nKSwgbmV3IGcoKTtcbiAgfVxufVxuZnVuY3Rpb24gWShyJDEpIHtcbiAgaWYgKHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyA9PT0gdm9pZCAwIHx8IHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyA9PT0gXCJcIilcbiAgICByZXR1cm4gci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHIGlzIGJsYW5rLCBkZWZhdWx0aW5nIHRvIFwiICsgRSArIFwiLlwiKSwgRTtcbiAgdmFyIHQgPSBOdW1iZXIociQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHKTtcbiAgcmV0dXJuIGlzTmFOKHQpID8gKHIuZXJyb3IoXCJPVEVMX1RSQUNFU19TQU1QTEVSX0FSRz1cIiArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyArIFwiIHdhcyBnaXZlbiwgYnV0IGl0IGlzIGludmFsaWQsIGRlZmF1bHRpbmcgdG8gXCIgKyBFICsgXCIuXCIpLCBFKSA6IHQgPCAwIHx8IHQgPiAxID8gKHIuZXJyb3IoXCJPVEVMX1RSQUNFU19TQU1QTEVSX0FSRz1cIiArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyArIFwiIHdhcyBnaXZlbiwgYnV0IGl0IGlzIG91dCBvZiByYW5nZSAoWzAuLjFdKSwgZGVmYXVsdGluZyB0byBcIiArIEUgKyBcIi5cIiksIEUpIDogdDtcbn1cbmZ1bmN0aW9uIEl0KHIpIHtcbiAgdmFyIHQgPSB7XG4gICAgc2FtcGxlcjogJCgpXG4gIH0sIGUgPSBKKCksIG4gPSBPYmplY3QuYXNzaWduKHt9LCBlLCB0LCByKTtcbiAgcmV0dXJuIG4uZ2VuZXJhbExpbWl0cyA9IE9iamVjdC5hc3NpZ24oe30sIGUuZ2VuZXJhbExpbWl0cywgci5nZW5lcmFsTGltaXRzIHx8IHt9KSwgbi5zcGFuTGltaXRzID0gT2JqZWN0LmFzc2lnbih7fSwgZS5zcGFuTGltaXRzLCByLnNwYW5MaW1pdHMgfHwge30pLCBuO1xufVxuZnVuY3Rpb24gTnQocikge1xuICB2YXIgdCwgZSwgbiwgbywgaSwgYSwgcywgbCwgdSwgcCQxLCBjLCBmLCB5ID0gT2JqZWN0LmFzc2lnbih7fSwgci5zcGFuTGltaXRzKSwgbSA9IGNlKCk7XG4gIHJldHVybiB5LmF0dHJpYnV0ZUNvdW50TGltaXQgPSAoYSA9IChpID0gKG8gPSAoZSA9ICh0ID0gci5zcGFuTGltaXRzKSA9PT0gbnVsbCB8fCB0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0LmF0dHJpYnV0ZUNvdW50TGltaXQpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiAobiA9IHIuZ2VuZXJhbExpbWl0cykgPT09IG51bGwgfHwgbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogbi5hdHRyaWJ1dGVDb3VudExpbWl0KSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbS5PVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbS5PVEVMX0FUVFJJQlVURV9DT1VOVF9MSU1JVCkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGQsIHkuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCA9IChmID0gKGMgPSAocCQxID0gKGwgPSAocyA9IHIuc3BhbkxpbWl0cykgPT09IG51bGwgfHwgcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcy5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0KSAhPT0gbnVsbCAmJiBsICE9PSB2b2lkIDAgPyBsIDogKHUgPSByLmdlbmVyYWxMaW1pdHMpID09PSBudWxsIHx8IHUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHUuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCkgIT09IG51bGwgJiYgcCQxICE9PSB2b2lkIDAgPyBwJDEgOiBtLk9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUKSAhPT0gbnVsbCAmJiBjICE9PSB2b2lkIDAgPyBjIDogbS5PVEVMX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQpICE9PSBudWxsICYmIGYgIT09IHZvaWQgMCA/IGYgOiBwLCBPYmplY3QuYXNzaWduKHt9LCByLCB7IHNwYW5MaW1pdHM6IHkgfSk7XG59XG52YXIgTXQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMSh0LCBlKSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX2lzRXhwb3J0aW5nID0gZmFsc2UsIHRoaXMuX2ZpbmlzaGVkU3BhbnMgPSBbXSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPSAwO1xuICAgICAgdmFyIG4gPSBPZSgpO1xuICAgICAgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID0gdHlwZW9mIGU/Lm1heEV4cG9ydEJhdGNoU2l6ZSA9PSBcIm51bWJlclwiID8gZS5tYXhFeHBvcnRCYXRjaFNpemUgOiBuLk9URUxfQlNQX01BWF9FWFBPUlRfQkFUQ0hfU0laRSwgdGhpcy5fbWF4UXVldWVTaXplID0gdHlwZW9mIGU/Lm1heFF1ZXVlU2l6ZSA9PSBcIm51bWJlclwiID8gZS5tYXhRdWV1ZVNpemUgOiBuLk9URUxfQlNQX01BWF9RVUVVRV9TSVpFLCB0aGlzLl9zY2hlZHVsZWREZWxheU1pbGxpcyA9IHR5cGVvZiBlPy5zY2hlZHVsZWREZWxheU1pbGxpcyA9PSBcIm51bWJlclwiID8gZS5zY2hlZHVsZWREZWxheU1pbGxpcyA6IG4uT1RFTF9CU1BfU0NIRURVTEVfREVMQVksIHRoaXMuX2V4cG9ydFRpbWVvdXRNaWxsaXMgPSB0eXBlb2YgZT8uZXhwb3J0VGltZW91dE1pbGxpcyA9PSBcIm51bWJlclwiID8gZS5leHBvcnRUaW1lb3V0TWlsbGlzIDogbi5PVEVMX0JTUF9FWFBPUlRfVElNRU9VVCwgdGhpcy5fc2h1dGRvd25PbmNlID0gbmV3IGZ0KHRoaXMuX3NodXRkb3duLCB0aGlzKSwgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID4gdGhpcy5fbWF4UXVldWVTaXplICYmIChyLndhcm4oXCJCYXRjaFNwYW5Qcm9jZXNzb3I6IG1heEV4cG9ydEJhdGNoU2l6ZSBtdXN0IGJlIHNtYWxsZXIgb3IgZXF1YWwgdG8gbWF4UXVldWVTaXplLCBzZXR0aW5nIG1heEV4cG9ydEJhdGNoU2l6ZSB0byBtYXRjaCBtYXhRdWV1ZVNpemVcIiksIHRoaXMuX21heEV4cG9ydEJhdGNoU2l6ZSA9IHRoaXMuX21heFF1ZXVlU2l6ZSk7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgPyB0aGlzLl9zaHV0ZG93bk9uY2UucHJvbWlzZSA6IHRoaXMuX2ZsdXNoQWxsKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIkMS5wcm90b3R5cGUub25FbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgfHwgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgdHIuU0FNUExFRCkgIT09IDAgJiYgdGhpcy5fYWRkVG9CdWZmZXIodCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NodXRkb3duT25jZS5jYWxsKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdC5vblNodXRkb3duKCk7XG4gICAgICB9KS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdC5fZmx1c2hBbGwoKTtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Ll9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYWRkVG9CdWZmZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodGhpcy5fZmluaXNoZWRTcGFucy5sZW5ndGggPj0gdGhpcy5fbWF4UXVldWVTaXplKSB7XG4gICAgICAgIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ID09PSAwICYmIHIuZGVidWcoXCJtYXhRdWV1ZVNpemUgcmVhY2hlZCwgZHJvcHBpbmcgc3BhbnNcIiksIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50Kys7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ID4gMCAmJiAoci53YXJuKFwiRHJvcHBlZCBcIiArIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ICsgXCIgc3BhbnMgYmVjYXVzZSBtYXhRdWV1ZVNpemUgcmVhY2hlZFwiKSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPSAwKSwgdGhpcy5fZmluaXNoZWRTcGFucy5wdXNoKHQpLCB0aGlzLl9tYXliZVN0YXJ0VGltZXIoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9mbHVzaEFsbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgICAgZm9yICh2YXIgbyA9IFtdLCBpID0gTWF0aC5jZWlsKHQuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoIC8gdC5fbWF4RXhwb3J0QmF0Y2hTaXplKSwgYSA9IDAsIHMgPSBpOyBhIDwgczsgYSsrKVxuICAgICAgICAgIG8ucHVzaCh0Ll9mbHVzaE9uZUJhdGNoKCkpO1xuICAgICAgICBQcm9taXNlLmFsbChvKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGUoKTtcbiAgICAgICAgfSkuY2F0Y2gobik7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9mbHVzaE9uZUJhdGNoID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCA9IHRoaXM7XG4gICAgICByZXR1cm4gdGhpcy5fY2xlYXJUaW1lcigpLCB0aGlzLl9maW5pc2hlZFNwYW5zLmxlbmd0aCA9PT0gMCA/IFByb21pc2UucmVzb2x2ZSgpIDogbmV3IFByb21pc2UoZnVuY3Rpb24oZSwgbikge1xuICAgICAgICB2YXIgbyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgbihuZXcgRXJyb3IoXCJUaW1lb3V0XCIpKTtcbiAgICAgICAgfSwgdC5fZXhwb3J0VGltZW91dE1pbGxpcyk7XG4gICAgICAgIHhlLndpdGgodSh4ZS5hY3RpdmUoKSksIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBpO1xuICAgICAgICAgIHQuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoIDw9IHQuX21heEV4cG9ydEJhdGNoU2l6ZSA/IChpID0gdC5fZmluaXNoZWRTcGFucywgdC5fZmluaXNoZWRTcGFucyA9IFtdKSA6IGkgPSB0Ll9maW5pc2hlZFNwYW5zLnNwbGljZSgwLCB0Ll9tYXhFeHBvcnRCYXRjaFNpemUpO1xuICAgICAgICAgIGZvciAodmFyIGEkMSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuX2V4cG9ydGVyLmV4cG9ydChpLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgICAgIHZhciBmO1xuICAgICAgICAgICAgICBjbGVhclRpbWVvdXQobyksIGMuY29kZSA9PT0gYS5TVUNDRVNTID8gZSgpIDogbigoZiA9IGMuZXJyb3IpICE9PSBudWxsICYmIGYgIT09IHZvaWQgMCA/IGYgOiBuZXcgRXJyb3IoXCJCYXRjaFNwYW5Qcm9jZXNzb3I6IHNwYW4gZXhwb3J0IGZhaWxlZFwiKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LCBzID0gbnVsbCwgbCA9IDAsIHUgPSBpLmxlbmd0aDsgbCA8IHU7IGwrKykge1xuICAgICAgICAgICAgdmFyIHAgPSBpW2xdO1xuICAgICAgICAgICAgcC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nICYmIHAucmVzb3VyY2Uud2FpdEZvckFzeW5jQXR0cmlidXRlcyAmJiAocyA/PyAocyA9IFtdKSwgcy5wdXNoKHAucmVzb3VyY2Uud2FpdEZvckFzeW5jQXR0cmlidXRlcygpKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHMgPT09IG51bGwgPyBhJDEoKSA6IFByb21pc2UuYWxsKHMpLnRoZW4oYSQxLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgICBFcihjKSwgbihjKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9tYXliZVN0YXJ0VGltZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIGlmICghdGhpcy5faXNFeHBvcnRpbmcpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IHRydWUsIHQuX2ZsdXNoT25lQmF0Y2goKS5maW5hbGx5KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdC5faXNFeHBvcnRpbmcgPSBmYWxzZSwgdC5fZmluaXNoZWRTcGFucy5sZW5ndGggPiAwICYmICh0Ll9jbGVhclRpbWVyKCksIHQuX21heWJlU3RhcnRUaW1lcigpKTtcbiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IGZhbHNlLCBFcihuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoID49IHRoaXMuX21heEV4cG9ydEJhdGNoU2l6ZSlcbiAgICAgICAgICByZXR1cm4gZSgpO1xuICAgICAgICB0aGlzLl90aW1lciA9PT0gdm9pZCAwICYmICh0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGUoKTtcbiAgICAgICAgfSwgdGhpcy5fc2NoZWR1bGVkRGVsYXlNaWxsaXMpLCBTZSh0aGlzLl90aW1lcikpO1xuICAgICAgfVxuICAgIH0sIHIkMS5wcm90b3R5cGUuX2NsZWFyVGltZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3RpbWVyICE9PSB2b2lkIDAgJiYgKGNsZWFyVGltZW91dCh0aGlzLl90aW1lciksIHRoaXMuX3RpbWVyID0gdm9pZCAwKTtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIEJ0ID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIHIgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgcmV0dXJuIHIgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihuLCBvKSB7XG4gICAgICBuLl9fcHJvdG9fXyA9IG87XG4gICAgfSB8fCBmdW5jdGlvbihuLCBvKSB7XG4gICAgICBmb3IgKHZhciBpIGluIG8pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBpKSAmJiAobltpXSA9IG9baV0pO1xuICAgIH0sIHIodCwgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbih0LCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIHIodCwgZSk7XG4gICAgZnVuY3Rpb24gbigpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSB0O1xuICAgIH1cbiAgICB0LnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKG4ucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyBuKCkpO1xuICB9O1xufSkoKSwgRHQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKHIpIHtcbiAgICBCdCh0LCByKTtcbiAgICBmdW5jdGlvbiB0KGUsIG4pIHtcbiAgICAgIHZhciBvID0gci5jYWxsKHRoaXMsIGUsIG4pIHx8IHRoaXM7XG4gICAgICByZXR1cm4gby5vbkluaXQobiksIG87XG4gICAgfVxuICAgIHJldHVybiB0LnByb3RvdHlwZS5vbkluaXQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB2YXIgbiA9IHRoaXM7XG4gICAgICBlPy5kaXNhYmxlQXV0b0ZsdXNoT25Eb2N1bWVudEhpZGUgIT09IHRydWUgJiYgdHlwZW9mIGRvY3VtZW50IDwgXCJ1XCIgJiYgKHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwiaGlkZGVuXCIgJiYgbi5mb3JjZUZsdXNoKCkuY2F0Y2goZnVuY3Rpb24obykge1xuICAgICAgICAgIEVyKG8pO1xuICAgICAgICB9KTtcbiAgICAgIH0sIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgbi5mb3JjZUZsdXNoKCkuY2F0Y2goZnVuY3Rpb24obykge1xuICAgICAgICAgIEVyKG8pO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciksIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyKSk7XG4gICAgfSwgdC5wcm90b3R5cGUub25TaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdHlwZW9mIGRvY3VtZW50IDwgXCJ1XCIgJiYgKHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCB0aGlzLl92aXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIpLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyKSk7XG4gICAgfSwgdDtcbiAgfSkoTXQpXG4pLCBVdCA9IDgsIEZ0ID0gMTYsIEd0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIC8qIEBfX1BVUkVfXyAqLyAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVUcmFjZUlkID0gcShGdCksIHRoaXMuZ2VuZXJhdGVTcGFuSWQgPSBxKFV0KTtcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0pKClcbiksIEMgPSBBcnJheSgzMik7XG5mdW5jdGlvbiBxKHIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGZvciAodmFyIGUgPSAwOyBlIDwgciAqIDI7IGUrKylcbiAgICAgIENbZV0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikgKyA0OCwgQ1tlXSA+PSA1OCAmJiAoQ1tlXSArPSAzOSk7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgQy5zbGljZSgwLCByICogMikpO1xuICB9O1xufVxudmFyIHp0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCwgZSwgbikge1xuICAgICAgdGhpcy5fdHJhY2VyUHJvdmlkZXIgPSBuO1xuICAgICAgdmFyIG8gPSBJdChlKTtcbiAgICAgIHRoaXMuX3NhbXBsZXIgPSBvLnNhbXBsZXIsIHRoaXMuX2dlbmVyYWxMaW1pdHMgPSBvLmdlbmVyYWxMaW1pdHMsIHRoaXMuX3NwYW5MaW1pdHMgPSBvLnNwYW5MaW1pdHMsIHRoaXMuX2lkR2VuZXJhdG9yID0gZS5pZEdlbmVyYXRvciB8fCBuZXcgR3QoKSwgdGhpcy5yZXNvdXJjZSA9IG4ucmVzb3VyY2UsIHRoaXMuaW5zdHJ1bWVudGF0aW9uTGlicmFyeSA9IHQ7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLnN0YXJ0U3BhbiA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHZhciBvLCBpLCBhO1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0ge30pLCBuID09PSB2b2lkIDAgJiYgKG4gPSB4ZS5hY3RpdmUoKSksIGUucm9vdCAmJiAobiA9IGplJDEuZGVsZXRlU3BhbihuKSk7XG4gICAgICB2YXIgcyA9IGplJDEuZ2V0U3BhbihuKTtcbiAgICAgIGlmIChhJDEobikpIHtcbiAgICAgICAgci5kZWJ1ZyhcIkluc3RydW1lbnRhdGlvbiBzdXBwcmVzc2VkLCByZXR1cm5pbmcgTm9vcCBTcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gamUkMS53cmFwU3BhbkNvbnRleHQoRXMpO1xuICAgICAgICByZXR1cm4gbCQxO1xuICAgICAgfVxuICAgICAgdmFyIHUgPSBzPy5zcGFuQ29udGV4dCgpLCBwID0gdGhpcy5faWRHZW5lcmF0b3IuZ2VuZXJhdGVTcGFuSWQoKSwgYywgZiwgeTtcbiAgICAgICF1IHx8ICFqZSQxLmlzU3BhbkNvbnRleHRWYWxpZCh1KSA/IGMgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVRyYWNlSWQoKSA6IChjID0gdS50cmFjZUlkLCBmID0gdS50cmFjZVN0YXRlLCB5ID0gdS5zcGFuSWQpO1xuICAgICAgdmFyIG0gPSAobyA9IGUua2luZCkgIT09IG51bGwgJiYgbyAhPT0gdm9pZCAwID8gbyA6IGF0LklOVEVSTkFMLCBGID0gKChpID0gZS5saW5rcykgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IFtdKS5tYXAoZnVuY3Rpb24oaikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRleHQ6IGouY29udGV4dCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBRcihqLmF0dHJpYnV0ZXMpXG4gICAgICAgIH07XG4gICAgICB9KSwgRyA9IFFyKGUuYXR0cmlidXRlcyksIGIgPSB0aGlzLl9zYW1wbGVyLnNob3VsZFNhbXBsZShuLCBjLCB0LCBtLCBHLCBGKTtcbiAgICAgIGYgPSAoYSA9IGIudHJhY2VTdGF0ZSkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGY7XG4gICAgICB2YXIgdHQgPSBiLmRlY2lzaW9uID09PSBsLlJFQ09SRF9BTkRfU0FNUExFRCA/IHRyLlNBTVBMRUQgOiB0ci5OT05FLCB6ID0geyB0cmFjZUlkOiBjLCBzcGFuSWQ6IHAsIHRyYWNlRmxhZ3M6IHR0LCB0cmFjZVN0YXRlOiBmIH07XG4gICAgICBpZiAoYi5kZWNpc2lvbiA9PT0gbC5OT1RfUkVDT1JEKSB7XG4gICAgICAgIHIuZGVidWcoXCJSZWNvcmRpbmcgaXMgb2ZmLCBwcm9wYWdhdGluZyBjb250ZXh0IGluIGEgbm9uLXJlY29yZGluZyBzcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gamUkMS53cmFwU3BhbkNvbnRleHQoeik7XG4gICAgICAgIHJldHVybiBsJDE7XG4gICAgICB9XG4gICAgICB2YXIgZXQgPSBRcihPYmplY3QuYXNzaWduKEcsIGIuYXR0cmlidXRlcykpLCBydCA9IG5ldyB4dCh0aGlzLCBuLCB0LCB6LCBtLCB5LCBGLCBlLnN0YXJ0VGltZSwgdm9pZCAwLCBldCk7XG4gICAgICByZXR1cm4gcnQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zdGFydEFjdGl2ZVNwYW4gPSBmdW5jdGlvbih0LCBlLCBuLCBvKSB7XG4gICAgICB2YXIgaSwgYSwgcztcbiAgICAgIGlmICghKGFyZ3VtZW50cy5sZW5ndGggPCAyKSkge1xuICAgICAgICBhcmd1bWVudHMubGVuZ3RoID09PSAyID8gcyA9IGUgOiBhcmd1bWVudHMubGVuZ3RoID09PSAzID8gKGkgPSBlLCBzID0gbikgOiAoaSA9IGUsIGEgPSBuLCBzID0gbyk7XG4gICAgICAgIHZhciBsID0gYSA/PyB4ZS5hY3RpdmUoKSwgdSA9IHRoaXMuc3RhcnRTcGFuKHQsIGksIGwpLCBwID0gamUkMS5zZXRTcGFuKGwsIHUpO1xuICAgICAgICByZXR1cm4geGUud2l0aChwLCBzLCB2b2lkIDAsIHUpO1xuICAgICAgfVxuICAgIH0sIHIkMS5wcm90b3R5cGUuZ2V0R2VuZXJhbExpbWl0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyYWxMaW1pdHM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRTcGFuTGltaXRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3BhbkxpbWl0cztcbiAgICB9LCByJDEucHJvdG90eXBlLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFjZXJQcm92aWRlci5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yKCk7XG4gICAgfSwgciQxO1xuICB9KSgpXG4pLCBPID0gZnVuY3Rpb24ocikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgZSA9IHQgJiYgclt0XSwgbiA9IDA7XG4gIGlmIChlKSByZXR1cm4gZS5jYWxsKHIpO1xuICBpZiAociAmJiB0eXBlb2Ygci5sZW5ndGggPT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByICYmIG4gPj0gci5sZW5ndGggJiYgKHIgPSB2b2lkIDApLCB7IHZhbHVlOiByICYmIHJbbisrXSwgZG9uZTogIXIgfTtcbiAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IodCA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn0sIEsgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdGhpcy5fc3BhblByb2Nlc3NvcnMgPSB0O1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQsIGUsIG4gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgbi5wdXNoKGEuZm9yY2VGbHVzaCgpKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAocykge1xuICAgICAgICB0ID0geyBlcnJvcjogcyB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpICYmICFpLmRvbmUgJiYgKGUgPSBvLnJldHVybikgJiYgZS5jYWxsKG8pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmICh0KSB0aHJvdyB0LmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocykge1xuICAgICAgICBQcm9taXNlLmFsbChuKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHMoKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24obCkge1xuICAgICAgICAgIEVyKGwgfHwgbmV3IEVycm9yKFwiTXVsdGlTcGFuUHJvY2Vzc29yOiBmb3JjZUZsdXNoIGZhaWxlZFwiKSksIHMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgdmFyIG4sIG87XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBpID0gTyh0aGlzLl9zcGFuUHJvY2Vzc29ycyksIGEgPSBpLm5leHQoKTsgIWEuZG9uZTsgYSA9IGkubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIHMgPSBhLnZhbHVlO1xuICAgICAgICAgIHMub25TdGFydCh0LCBlKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAobCkge1xuICAgICAgICBuID0geyBlcnJvcjogbCB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhICYmICFhLmRvbmUgJiYgKG8gPSBpLnJldHVybikgJiYgby5jYWxsKGkpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmIChuKSB0aHJvdyBuLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUub25FbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSwgbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgYS5vbkVuZCh0KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAocykge1xuICAgICAgICBlID0geyBlcnJvcjogcyB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpICYmICFpLmRvbmUgJiYgKG4gPSBvLnJldHVybikgJiYgbi5jYWxsKG8pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUuc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0LCBlLCBuID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBvID0gTyh0aGlzLl9zcGFuUHJvY2Vzc29ycyksIGkgPSBvLm5leHQoKTsgIWkuZG9uZTsgaSA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIGEgPSBpLnZhbHVlO1xuICAgICAgICAgIG4ucHVzaChhLnNodXRkb3duKCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIHQgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IG8ucmV0dXJuKSAmJiBlLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKHQpIHRocm93IHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLCBsKSB7XG4gICAgICAgIFByb21pc2UuYWxsKG4pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcygpO1xuICAgICAgICB9LCBsKTtcbiAgICAgIH0pO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIGp0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUub25TdGFydCA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICB9LCByLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICB9LCByLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBrdCA9IGZ1bmN0aW9uKHIsIHQpIHtcbiAgdmFyIGUgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghZSkgcmV0dXJuIHI7XG4gIHZhciBuID0gZS5jYWxsKHIpLCBvLCBpID0gW10sIGE7XG4gIHRyeSB7XG4gICAgZm9yICg7ICh0ID09PSB2b2lkIDAgfHwgdC0tID4gMCkgJiYgIShvID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKG8udmFsdWUpO1xuICB9IGNhdGNoIChzKSB7XG4gICAgYSA9IHsgZXJyb3I6IHMgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgbyAmJiAhby5kb25lICYmIChlID0gbi5yZXR1cm4pICYmIGUuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGEpIHRocm93IGEuZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufSwgVnQgPSBmdW5jdGlvbihyLCB0LCBlKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBuID0gMCwgbyA9IHQubGVuZ3RoLCBpOyBuIDwgbzsgbisrKVxuICAgIChpIHx8ICEobiBpbiB0KSkgJiYgKGkgfHwgKGkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LCAwLCBuKSksIGlbbl0gPSB0W25dKTtcbiAgcmV0dXJuIHIuY29uY2F0KGkgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpO1xufSwgUztcbihmdW5jdGlvbihyKSB7XG4gIHJbci5yZXNvbHZlZCA9IDBdID0gXCJyZXNvbHZlZFwiLCByW3IudGltZW91dCA9IDFdID0gXCJ0aW1lb3V0XCIsIHJbci5lcnJvciA9IDJdID0gXCJlcnJvclwiLCByW3IudW5yZXNvbHZlZCA9IDNdID0gXCJ1bnJlc29sdmVkXCI7XG59KShTIHx8IChTID0ge30pKTtcbnZhciB0ZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IHt9KTtcbiAgICAgIHZhciBlLCBuO1xuICAgICAgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzID0gW10sIHRoaXMuX3RyYWNlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgdmFyIG8gPSBudCh7fSwgSigpLCBOdCh0KSk7XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZSA9IChlID0gby5yZXNvdXJjZSkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IFIkMS5lbXB0eSgpLCBvLm1lcmdlUmVzb3VyY2VXaXRoRGVmYXVsdHMgJiYgKHRoaXMucmVzb3VyY2UgPSBSJDEuZGVmYXVsdCgpLm1lcmdlKHRoaXMucmVzb3VyY2UpKSwgdGhpcy5fY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgbywge1xuICAgICAgICByZXNvdXJjZTogdGhpcy5yZXNvdXJjZVxuICAgICAgfSksICEoKG4gPSB0LnNwYW5Qcm9jZXNzb3JzKSA9PT0gbnVsbCB8fCBuID09PSB2b2lkIDApICYmIG4ubGVuZ3RoKVxuICAgICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMgPSBWdChbXSwga3QodC5zcGFuUHJvY2Vzc29ycyksIGZhbHNlKSwgdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yID0gbmV3IEsodGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgaSA9IHRoaXMuX2J1aWxkRXhwb3J0ZXJGcm9tRW52KCk7XG4gICAgICAgIGlmIChpICE9PSB2b2lkIDApIHtcbiAgICAgICAgICB2YXIgYSA9IG5ldyBEdChpKTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBhO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBuZXcganQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuZ2V0VHJhY2VyID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIG8gPSB0ICsgXCJAXCIgKyAoZSB8fCBcIlwiKSArIFwiOlwiICsgKG4/LnNjaGVtYVVybCB8fCBcIlwiKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFjZXJzLmhhcyhvKSB8fCB0aGlzLl90cmFjZXJzLnNldChvLCBuZXcgenQoeyBuYW1lOiB0LCB2ZXJzaW9uOiBlLCBzY2hlbWFVcmw6IG4/LnNjaGVtYVVybCB9LCB0aGlzLl9jb25maWcsIHRoaXMpKSwgdGhpcy5fdHJhY2Vycy5nZXQobyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRTcGFuUHJvY2Vzc29yID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3Iuc2h1dGRvd24oKS5jYXRjaChmdW5jdGlvbihlKSB7XG4gICAgICAgIHJldHVybiByLmVycm9yKFwiRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIHNodXRkb3duIGN1cnJlbnQgc3BhbiBwcm9jZXNzb3JcIiwgZSk7XG4gICAgICB9KSwgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzLnB1c2godCksIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IG5ldyBLKHRoaXMuX3JlZ2lzdGVyZWRTcGFuUHJvY2Vzc29ycyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yO1xuICAgIH0sIHIkMS5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0ID09PSB2b2lkIDAgJiYgKHQgPSB7fSksIGplJDEuc2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIodGhpcyksIHQucHJvcGFnYXRvciA9PT0gdm9pZCAwICYmICh0LnByb3BhZ2F0b3IgPSB0aGlzLl9idWlsZFByb3BhZ2F0b3JGcm9tRW52KCkpLCB0LmNvbnRleHRNYW5hZ2VyICYmIHhlLnNldEdsb2JhbENvbnRleHRNYW5hZ2VyKHQuY29udGV4dE1hbmFnZXIpLCB0LnByb3BhZ2F0b3IgJiYgeV8uc2V0R2xvYmFsUHJvcGFnYXRvcih0LnByb3BhZ2F0b3IpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLl9jb25maWcuZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXMsIGUgPSB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgICB2YXIgaSwgYSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBvKG5ldyBFcnJvcihcIlNwYW4gcHJvY2Vzc29yIGRpZCBub3QgY29tcGxldGVkIHdpdGhpbiB0aW1lb3V0IHBlcmlvZCBvZiBcIiArIHQgKyBcIiBtc1wiKSksIGkgPSBTLnRpbWVvdXQ7XG4gICAgICAgICAgfSwgdCk7XG4gICAgICAgICAgbi5mb3JjZUZsdXNoKCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChhKSwgaSAhPT0gUy50aW1lb3V0ICYmIChpID0gUy5yZXNvbHZlZCwgbyhpKSk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGEpLCBpID0gUy5lcnJvciwgbyhzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLCBvKSB7XG4gICAgICAgIFByb21pc2UuYWxsKGUpLnRoZW4oZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHZhciBhID0gaS5maWx0ZXIoZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgcmV0dXJuIHMgIT09IFMucmVzb2x2ZWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYS5sZW5ndGggPiAwID8gbyhhKSA6IG4oKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHJldHVybiBvKFtpXSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFByb3BhZ2F0b3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRQcm9wYWdhdG9ycy5nZXQodCkpID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRTcGFuRXhwb3J0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRFeHBvcnRlcnMuZ2V0KHQpKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRQcm9wYWdhdG9yRnJvbUVudiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLCBlID0gQXJyYXkuZnJvbShuZXcgU2V0KE9lKCkuT1RFTF9QUk9QQUdBVE9SUykpLCBuID0gZS5tYXAoZnVuY3Rpb24oaSkge1xuICAgICAgICB2YXIgYSA9IHQuX2dldFByb3BhZ2F0b3IoaSk7XG4gICAgICAgIHJldHVybiBhIHx8IHIud2FybignUHJvcGFnYXRvciBcIicgKyBpICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBhO1xuICAgICAgfSksIG8gPSBuLnJlZHVjZShmdW5jdGlvbihpLCBhKSB7XG4gICAgICAgIHJldHVybiBhICYmIGkucHVzaChhKSwgaTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIGlmIChvLmxlbmd0aCAhPT0gMClcbiAgICAgICAgcmV0dXJuIGUubGVuZ3RoID09PSAxID8gb1swXSA6IG5ldyB2ZSh7XG4gICAgICAgICAgcHJvcGFnYXRvcnM6IG9cbiAgICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRFeHBvcnRlckZyb21FbnYgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gT2UoKS5PVEVMX1RSQUNFU19FWFBPUlRFUjtcbiAgICAgIGlmICghKHQgPT09IFwibm9uZVwiIHx8IHQgPT09IFwiXCIpKSB7XG4gICAgICAgIHZhciBlID0gdGhpcy5fZ2V0U3BhbkV4cG9ydGVyKHQpO1xuICAgICAgICByZXR1cm4gZSB8fCByLmVycm9yKCdFeHBvcnRlciBcIicgKyB0ICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBlO1xuICAgICAgfVxuICAgIH0sIHIkMS5fcmVnaXN0ZXJlZFByb3BhZ2F0b3JzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICAgICAgW1widHJhY2Vjb250ZXh0XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZlKCk7XG4gICAgICB9XSxcbiAgICAgIFtcImJhZ2dhZ2VcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBuZXcgWnIoKTtcbiAgICAgIH1dXG4gICAgXSksIHIkMS5fcmVnaXN0ZXJlZEV4cG9ydGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHIkMTtcbiAgfSkoKVxuKSwgSHQgPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgZWUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5leHBvcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKHQsIGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKFtdKSwgdGhpcy5mb3JjZUZsdXNoKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLl9leHBvcnRJbmZvID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IHQucmVzb3VyY2UuYXR0cmlidXRlc1xuICAgICAgICB9LFxuICAgICAgICBpbnN0cnVtZW50YXRpb25TY29wZTogdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LFxuICAgICAgICB0cmFjZUlkOiB0LnNwYW5Db250ZXh0KCkudHJhY2VJZCxcbiAgICAgICAgcGFyZW50SWQ6IHQucGFyZW50U3BhbklkLFxuICAgICAgICB0cmFjZVN0YXRlOiAoZSA9IHQuc3BhbkNvbnRleHQoKS50cmFjZVN0YXRlKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnNlcmlhbGl6ZSgpLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGlkOiB0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgICBraW5kOiB0LmtpbmQsXG4gICAgICAgIHRpbWVzdGFtcDogamUodC5zdGFydFRpbWUpLFxuICAgICAgICBkdXJhdGlvbjogamUodC5kdXJhdGlvbiksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHQuYXR0cmlidXRlcyxcbiAgICAgICAgc3RhdHVzOiB0LnN0YXR1cyxcbiAgICAgICAgZXZlbnRzOiB0LmV2ZW50cyxcbiAgICAgICAgbGlua3M6IHQubGlua3NcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUuX3NlbmRTcGFucyA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuLCBvO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgaSA9IEh0KHQpLCBhJDEgPSBpLm5leHQoKTsgIWEkMS5kb25lOyBhJDEgPSBpLm5leHQoKSkge1xuICAgICAgICAgIHZhciBzID0gYSQxLnZhbHVlO1xuICAgICAgICAgIGNvbnNvbGUuZGlyKHRoaXMuX2V4cG9ydEluZm8ocyksIHsgZGVwdGg6IDMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGwpIHtcbiAgICAgICAgbiA9IHsgZXJyb3I6IGwgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYSQxICYmICFhJDEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlKVxuICAgICAgICByZXR1cm4gZSh7IGNvZGU6IGEuU1VDQ0VTUyB9KTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBRdCA9IGZ1bmN0aW9uKHIsIHQsIGUsIG4pIHtcbiAgZnVuY3Rpb24gbyhpKSB7XG4gICAgcmV0dXJuIGkgaW5zdGFuY2VvZiBlID8gaSA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEoaSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbihpLCBhKSB7XG4gICAgZnVuY3Rpb24gcyhwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KG4ubmV4dChwKSk7XG4gICAgICB9IGNhdGNoIChjKSB7XG4gICAgICAgIGEoYyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwocCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShuLnRocm93KHApKTtcbiAgICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgICAgYShjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShwKSB7XG4gICAgICBwLmRvbmUgPyBpKHAudmFsdWUpIDogbyhwLnZhbHVlKS50aGVuKHMsIGwpO1xuICAgIH1cbiAgICB1KChuID0gbi5hcHBseShyLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgWHQgPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKGlbMF0gJiAxKSB0aHJvdyBpWzFdO1xuICAgIHJldHVybiBpWzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBuLCBvLCBpLCBhO1xuICByZXR1cm4gYSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoYVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBhO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24ocCkge1xuICAgICAgcmV0dXJuIGwoW3UsIHBdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGwodSkge1xuICAgIGlmIChuKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKG4gPSAxLCBvICYmIChpID0gdVswXSAmIDIgPyBvLnJldHVybiA6IHVbMF0gPyBvLnRocm93IHx8ICgoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyksIDApIDogby5uZXh0KSAmJiAhKGkgPSBpLmNhbGwobywgdVsxXSkpLmRvbmUpIHJldHVybiBpO1xuICAgICAgc3dpdGNoIChvID0gMCwgaSAmJiAodSA9IFt1WzBdICYgMiwgaS52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGkgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbyA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaSA9IGUudHJ5cywgIShpID0gaS5sZW5ndGggPiAwICYmIGlbaS5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghaSB8fCB1WzFdID4gaVswXSAmJiB1WzFdIDwgaVszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCBpWzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gaVsxXSwgaSA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgJiYgZS5sYWJlbCA8IGlbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSBpWzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSB0LmNhbGwociwgZSk7XG4gICAgfSBjYXRjaCAocCkge1xuICAgICAgdSA9IFs2LCBwXSwgbyA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG4gPSBpID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59LCByZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX3NodXRkb3duT25jZSA9IG5ldyBmdCh0aGlzLl9zaHV0ZG93biwgdGhpcyksIHRoaXMuX3VucmVzb2x2ZWRFeHBvcnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBRdCh0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBYdCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgc3dpdGNoICh0LmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0aGlzLl91bnJlc29sdmVkRXhwb3J0cykpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHQuc2VudCgpLCB0aGlzLl9leHBvcnRlci5mb3JjZUZsdXNoID8gWzQsIHRoaXMuX2V4cG9ydGVyLmZvcmNlRmx1c2goKV0gOiBbMywgM107XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHQuc2VudCgpLCB0LmxhYmVsID0gMztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuLCBvO1xuICAgICAgaWYgKCF0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgJiYgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgdHIuU0FNUExFRCkgIT09IDApIHtcbiAgICAgICAgdmFyIGkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gT3QkMS5fZXhwb3J0KGUuX2V4cG9ydGVyLCBbdF0pLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgdmFyIGw7XG4gICAgICAgICAgICBzLmNvZGUgIT09IGEuU1VDQ0VTUyAmJiBFcigobCA9IHMuZXJyb3IpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiBuZXcgRXJyb3IoXCJTaW1wbGVTcGFuUHJvY2Vzc29yOiBzcGFuIGV4cG9ydCBmYWlsZWQgKHN0YXR1cyBcIiArIHMgKyBcIilcIikpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIEVyKHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nKSB7XG4gICAgICAgICAgdmFyIGEkMSA9IChvID0gKG4gPSB0LnJlc291cmNlKS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKSA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvLmNhbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBhJDEgIT0gbnVsbCAmJiBlLl91bnJlc29sdmVkRXhwb3J0cy5kZWxldGUoYSQxKSwgaSgpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIHJldHVybiBFcihzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhJDEgIT0gbnVsbCAmJiB0aGlzLl91bnJlc29sdmVkRXhwb3J0cy5hZGQoYSQxKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgaSgpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5cbmV4cG9ydCB7IEIsIER0IGFzIEQsIEd0IGFzIEcsIFAsIFIsIFMsIFcsIGVlIGFzIGUsIGcsIGp0IGFzIGosIHJlIGFzIHIsIHRlIGFzIHQsIHh0IGFzIHgsIHp0IGFzIHogfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBTSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUN6RixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxNQUFNQyxH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QkFBT1YsR0FBSyxRQUFRTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVNJLEdBQUc7QUFDckQsZ0JBQUloQjtBQUNKLFlBQUFnQixFQUFFLFNBQVNQLEVBQUUsV0FBV2xCLEdBQUlTLElBQUlnQixFQUFFLFdBQVcsUUFBUWhCLE1BQU0sU0FBU0EsSUFBSSxJQUFJLE1BQU0scURBQXFEZ0IsSUFBSSxHQUFHLENBQUM7QUFBQSxVQUNqSixDQUFDLEVBQUUsTUFBTSxTQUFTQSxHQUFHO0FBQ25CLFlBQUF6QixFQUFHeUIsQ0FBQztBQUFBLFVBQ04sQ0FBQztBQUFBLFFBQ0g7QUFDQSxZQUFJLEVBQUUsU0FBUyx3QkFBd0I7QUFDckMsY0FBSVQsS0FBT00sS0FBSyxJQUFJLEVBQUUsVUFBVSw0QkFBNEIsUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxXQUFXO0FBQ3BILG1CQUFPTixLQUFPLFFBQVFLLEVBQUUsbUJBQW1CLE9BQU9MLENBQUcsR0FBR1EsRUFBRTtBQUFBLFVBQzVELEdBQUcsU0FBU0MsR0FBRztBQUNiLG1CQUFPekIsRUFBR3lCLENBQUM7QUFBQSxVQUNiLENBQUM7QUFDRCxVQUFBVCxLQUFPLFFBQVEsS0FBSyxtQkFBbUIsSUFBSUEsQ0FBRztBQUFBLFFBQ2hEO0FBQ0UsVUFBQVEsRUFBRTtBQUFBLE1BQ047QUFBQSxJQUNGLEdBQUd0QyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sS0FBSyxjQUFjLEtBQUs7QUFBQSxJQUNqQyxHQUFHQSxFQUFFLFVBQVUsWUFBWSxXQUFXO0FBQ3BDLGFBQU8sS0FBSyxVQUFVLFNBQVM7QUFBQSxJQUNqQyxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBOyIsCiAgIm5hbWVzIjogWyJ0ciIsICJqZSQxIiwgInhlIiwgIkVzIiwgImF0IiwgIlBlIiwgIkxuIiwgIlJzIiwgInIiLCAiamUiLCAieV8iLCAicWUiLCAiWGUiLCAiUiQyIiwgInBfIiwgIk8kMSIsICJOXyIsICJiXyIsICJOQSIsICJNQSIsICJyXyIsICJlQSIsICJFciIsICJPZSIsICJ2ZSIsICJWZSIsICJaciIsICJmdCIsICJTZSIsICJudCIsICJRciIsICJsIiwgImNlIiwgImQiLCAicCIsICJhciIsICJPdCQxIiwgInUiLCAiYSQxIiwgIlIkMSIsICJhIiwgInd0IiwgIkQiLCAiZSIsICJvIiwgIkN0IiwgImkiLCAicyIsICJ4dCIsICJyJDEiLCAiYyIsICJQIiwgImciLCAiQiIsICJXIiwgIkUiLCAiWSIsICJwJDEiLCAiZiIsICJCdCIsICJEdCIsICJHdCIsICJxIiwgIkMiLCAibCQxIiwgIkciLCAiYiIsICJLIiwgImt0IiwgIkh0IiwgIlF0Il0KfQo=
|
|
910
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiU2ltcGxlU3BhblByb2Nlc3Nvci1CZC02QjRYOS0hfnswMDR9fi5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgdCBhcyB0ciwgaiBhcyBqZSQxLCB4IGFzIHhlLCBFIGFzIEVzLCBhIGFzIGF0LCBQIGFzIFBlLCBMIGFzIExuLCBSIGFzIFJzIH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5pbXBvcnQgeyByIH0gZnJvbSAnLi9kaWFnLWFwaS1EMkxrUHhwbi0hfnswMGF9fi5qcyc7XG5pbXBvcnQgeyBkRCBhcyBqZSwgeSBhcyB5XywgZEUgYXMgcWUsIGRGIGFzIFhlLCBkRyBhcyBSJDIsIHAgYXMgcF8sIE8gYXMgTyQxLCBkSCBhcyBOXywgZEkgYXMgYl8sIGF0IGFzIE5BLCBhdiBhcyBNQSwgZEogYXMgcl8sIGF1IGFzIGVBIH0gZnJvbSAnLi91cmwtRDVpaHBpY1ItIX57MDBifX4uanMnO1xuaW1wb3J0IHsgRSBhcyBFciwgTyBhcyBPZSwgdiBhcyB2ZSwgViBhcyBWZSwgWiBhcyBaciwgZiBhcyBmdCwgUyBhcyBTZSwgbiBhcyBudCwgUSBhcyBRciwgbCwgYyBhcyBjZSwgZCwgcCwgYSBhcyBhciwgYiBhcyB2LCBlIGFzIE90JDEgfSBmcm9tICcuL2luZGV4LUNPOVg5ckQ2LSF+ezAwaX1+LmpzJztcbmltcG9ydCB7IHUsIGEgYXMgYSQxIH0gZnJvbSAnLi9zdXBwcmVzcy10cmFjaW5nLURDOTJVeUltLSF+ezAwbn1+LmpzJztcbmltcG9ydCB7IFIgYXMgUiQxIH0gZnJvbSAnLi9SZXNvdXJjZS1SRHZfT1lELS0hfnswMDJ9fi5qcyc7XG5pbXBvcnQgeyBhIH0gZnJvbSAnLi9FeHBvcnRSZXN1bHQtQmFjc3F3S0EtIX57MDBsfX4uanMnO1xuXG52YXIgd3QgPSBcImV4Y2VwdGlvblwiLCBEID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBEID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbihyKSB7XG4gICAgZm9yICh2YXIgdCwgZSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBlIDwgbjsgZSsrKSB7XG4gICAgICB0ID0gYXJndW1lbnRzW2VdO1xuICAgICAgZm9yICh2YXIgbyBpbiB0KSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCwgbykgJiYgKHJbb10gPSB0W29dKTtcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0sIEQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn0sIEN0ID0gZnVuY3Rpb24ocikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgZSA9IHQgJiYgclt0XSwgbiA9IDA7XG4gIGlmIChlKSByZXR1cm4gZS5jYWxsKHIpO1xuICBpZiAociAmJiB0eXBlb2Ygci5sZW5ndGggPT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByICYmIG4gPj0gci5sZW5ndGggJiYgKHIgPSB2b2lkIDApLCB7IHZhbHVlOiByICYmIHJbbisrXSwgZG9uZTogIXIgfTtcbiAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IodCA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn0sIFggPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgcltTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiByO1xuICB2YXIgbiA9IGUuY2FsbChyKSwgbywgaSA9IFtdLCBhO1xuICB0cnkge1xuICAgIGZvciAoOyAodCA9PT0gdm9pZCAwIHx8IHQtLSA+IDApICYmICEobyA9IG4ubmV4dCgpKS5kb25lOyApIGkucHVzaChvLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGEgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG8gJiYgIW8uZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhKSB0aHJvdyBhLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaTtcbn0sIE90ID0gZnVuY3Rpb24ociwgdCwgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgbiA9IDAsIG8gPSB0Lmxlbmd0aCwgaTsgbiA8IG87IG4rKylcbiAgICAoaSB8fCAhKG4gaW4gdCkpICYmIChpIHx8IChpID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwgMCwgbikpLCBpW25dID0gdFtuXSk7XG4gIHJldHVybiByLmNvbmNhdChpIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKTtcbn0sIHh0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCwgZSwgbiwgbywgaSwgYSwgcywgbCwgdSwgcCkge1xuICAgICAgcyA9PT0gdm9pZCAwICYmIChzID0gW10pLCB0aGlzLmF0dHJpYnV0ZXMgPSB7fSwgdGhpcy5saW5rcyA9IFtdLCB0aGlzLmV2ZW50cyA9IFtdLCB0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50ID0gMCwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50ID0gMCwgdGhpcy5fZHJvcHBlZExpbmtzQ291bnQgPSAwLCB0aGlzLnN0YXR1cyA9IHtcbiAgICAgICAgY29kZTogUGUuVU5TRVRcbiAgICAgIH0sIHRoaXMuZW5kVGltZSA9IFswLCAwXSwgdGhpcy5fZW5kZWQgPSBmYWxzZSwgdGhpcy5fZHVyYXRpb24gPSBbLTEsIC0xXSwgdGhpcy5uYW1lID0gbiwgdGhpcy5fc3BhbkNvbnRleHQgPSBvLCB0aGlzLnBhcmVudFNwYW5JZCA9IGEsIHRoaXMua2luZCA9IGksIHRoaXMubGlua3MgPSBzO1xuICAgICAgdmFyIGMgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5fcGVyZm9ybWFuY2VTdGFydFRpbWUgPSBSJDIubm93KCksIHRoaXMuX3BlcmZvcm1hbmNlT2Zmc2V0ID0gYyAtICh0aGlzLl9wZXJmb3JtYW5jZVN0YXJ0VGltZSArIHJfKCkpLCB0aGlzLl9zdGFydFRpbWVQcm92aWRlZCA9IGwgIT0gbnVsbCwgdGhpcy5zdGFydFRpbWUgPSB0aGlzLl9nZXRUaW1lKGwgPz8gYyksIHRoaXMucmVzb3VyY2UgPSB0LnJlc291cmNlLCB0aGlzLmluc3RydW1lbnRhdGlvbkxpYnJhcnkgPSB0Lmluc3RydW1lbnRhdGlvbkxpYnJhcnksIHRoaXMuX3NwYW5MaW1pdHMgPSB0LmdldFNwYW5MaW1pdHMoKSwgdGhpcy5fYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCA9IHRoaXMuX3NwYW5MaW1pdHMuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCB8fCAwLCBwICE9IG51bGwgJiYgdGhpcy5zZXRBdHRyaWJ1dGVzKHApLCB0aGlzLl9zcGFuUHJvY2Vzc29yID0gdC5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yKCksIHRoaXMuX3NwYW5Qcm9jZXNzb3Iub25TdGFydCh0aGlzLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuc3BhbkNvbnRleHQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zcGFuQ29udGV4dDtcbiAgICB9LCByJDEucHJvdG90eXBlLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHJldHVybiBlID09IG51bGwgfHwgdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiB0Lmxlbmd0aCA9PT0gMCA/IChyLndhcm4oXCJJbnZhbGlkIGF0dHJpYnV0ZSBrZXk6IFwiICsgdCksIHRoaXMpIDogYXIoZSkgPyBPYmplY3Qua2V5cyh0aGlzLmF0dHJpYnV0ZXMpLmxlbmd0aCA+PSB0aGlzLl9zcGFuTGltaXRzLmF0dHJpYnV0ZUNvdW50TGltaXQgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmF0dHJpYnV0ZXMsIHQpID8gKHRoaXMuX2Ryb3BwZWRBdHRyaWJ1dGVzQ291bnQrKywgdGhpcykgOiAodGhpcy5hdHRyaWJ1dGVzW3RdID0gdGhpcy5fdHJ1bmNhdGVUb1NpemUoZSksIHRoaXMpIDogKHIud2FybihcIkludmFsaWQgYXR0cmlidXRlIHZhbHVlIHNldCBmb3Iga2V5OiBcIiArIHQpLCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLnNldEF0dHJpYnV0ZXMgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSwgbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBDdChPYmplY3QuZW50cmllcyh0KSksIGkgPSBvLm5leHQoKTsgIWkuZG9uZTsgaSA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIGEgPSBYKGkudmFsdWUsIDIpLCBzID0gYVswXSwgbCA9IGFbMV07XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUocywgbCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHUpIHtcbiAgICAgICAgZSA9IHsgZXJyb3I6IHUgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaSAmJiAhaS5kb25lICYmIChuID0gby5yZXR1cm4pICYmIG4uY2FsbChvKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRFdmVudCA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIGlmICh0aGlzLl9pc1NwYW5FbmRlZCgpKVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIGlmICh0aGlzLl9zcGFuTGltaXRzLmV2ZW50Q291bnRMaW1pdCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHIud2FybihcIk5vIGV2ZW50cyBhbGxvd2VkLlwiKSwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50KyssIHRoaXM7XG4gICAgICB0aGlzLmV2ZW50cy5sZW5ndGggPj0gdGhpcy5fc3BhbkxpbWl0cy5ldmVudENvdW50TGltaXQgJiYgKHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA9PT0gMCAmJiByLmRlYnVnKFwiRHJvcHBpbmcgZXh0cmEgZXZlbnRzLlwiKSwgdGhpcy5ldmVudHMuc2hpZnQoKSwgdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50KyspLCBxZShlKSAmJiAocWUobikgfHwgKG4gPSBlKSwgZSA9IHZvaWQgMCk7XG4gICAgICB2YXIgbyA9IFFyKGUpO1xuICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnB1c2goe1xuICAgICAgICBuYW1lOiB0LFxuICAgICAgICBhdHRyaWJ1dGVzOiBvLFxuICAgICAgICB0aW1lOiB0aGlzLl9nZXRUaW1lKG4pLFxuICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwXG4gICAgICB9KSwgdGhpcztcbiAgICB9LCByJDEucHJvdG90eXBlLmFkZExpbmsgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5saW5rcy5wdXNoKHQpLCB0aGlzO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuYWRkTGlua3MgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMubGlua3MpLnB1c2guYXBwbHkoZSwgT3QoW10sIFgodCksIGZhbHNlKSksIHRoaXM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zZXRTdGF0dXMgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNTcGFuRW5kZWQoKSA/IHRoaXMgOiAodGhpcy5zdGF0dXMgPSBEKHt9LCB0KSwgdGhpcy5zdGF0dXMubWVzc2FnZSAhPSBudWxsICYmIHR5cGVvZiB0Lm1lc3NhZ2UgIT0gXCJzdHJpbmdcIiAmJiAoci53YXJuKFwiRHJvcHBpbmcgaW52YWxpZCBzdGF0dXMubWVzc2FnZSBvZiB0eXBlICdcIiArIHR5cGVvZiB0Lm1lc3NhZ2UgKyBcIicsIGV4cGVjdGVkICdzdHJpbmcnXCIpLCBkZWxldGUgdGhpcy5zdGF0dXMubWVzc2FnZSksIHRoaXMpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUudXBkYXRlTmFtZSA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pc1NwYW5FbmRlZCgpID8gdGhpcyA6ICh0aGlzLm5hbWUgPSB0LCB0aGlzKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIGlmICh0aGlzLl9pc1NwYW5FbmRlZCgpKSB7XG4gICAgICAgIHIuZXJyb3IodGhpcy5uYW1lICsgXCIgXCIgKyB0aGlzLl9zcGFuQ29udGV4dC50cmFjZUlkICsgXCItXCIgKyB0aGlzLl9zcGFuQ29udGV4dC5zcGFuSWQgKyBcIiAtIFlvdSBjYW4gb25seSBjYWxsIGVuZCgpIG9uIGEgc3BhbiBvbmNlLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlLCB0aGlzLmVuZFRpbWUgPSB0aGlzLl9nZXRUaW1lKHQpLCB0aGlzLl9kdXJhdGlvbiA9IFhlKHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpLCB0aGlzLl9kdXJhdGlvblswXSA8IDAgJiYgKHIud2FybihcIkluY29uc2lzdGVudCBzdGFydCBhbmQgZW5kIHRpbWUsIHN0YXJ0VGltZSA+IGVuZFRpbWUuIFNldHRpbmcgc3BhbiBkdXJhdGlvbiB0byAwbXMuXCIsIHRoaXMuc3RhcnRUaW1lLCB0aGlzLmVuZFRpbWUpLCB0aGlzLmVuZFRpbWUgPSB0aGlzLnN0YXJ0VGltZS5zbGljZSgpLCB0aGlzLl9kdXJhdGlvbiA9IFswLCAwXSksIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCA+IDAgJiYgci53YXJuKFwiRHJvcHBlZCBcIiArIHRoaXMuX2Ryb3BwZWRFdmVudHNDb3VudCArIFwiIGV2ZW50cyBiZWNhdXNlIGV2ZW50Q291bnRMaW1pdCByZWFjaGVkXCIpLCB0aGlzLl9zcGFuUHJvY2Vzc29yLm9uRW5kKHRoaXMpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFRpbWUgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodHlwZW9mIHQgPT0gXCJudW1iZXJcIiAmJiB0IDw9IFIkMi5ub3coKSlcbiAgICAgICAgcmV0dXJuIHBfKHQgKyB0aGlzLl9wZXJmb3JtYW5jZU9mZnNldCk7XG4gICAgICBpZiAodHlwZW9mIHQgPT0gXCJudW1iZXJcIilcbiAgICAgICAgcmV0dXJuIE8kMSh0KTtcbiAgICAgIGlmICh0IGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIE8kMSh0LmdldFRpbWUoKSk7XG4gICAgICBpZiAoTl8odCkpXG4gICAgICAgIHJldHVybiB0O1xuICAgICAgaWYgKHRoaXMuX3N0YXJ0VGltZVByb3ZpZGVkKVxuICAgICAgICByZXR1cm4gTyQxKERhdGUubm93KCkpO1xuICAgICAgdmFyIGUgPSBSJDIubm93KCkgLSB0aGlzLl9wZXJmb3JtYW5jZVN0YXJ0VGltZTtcbiAgICAgIHJldHVybiBiXyh0aGlzLnN0YXJ0VGltZSwgTyQxKGUpKTtcbiAgICB9LCByJDEucHJvdG90eXBlLmlzUmVjb3JkaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZW5kZWQgPT09IGZhbHNlO1xuICAgIH0sIHIkMS5wcm90b3R5cGUucmVjb3JkRXhjZXB0aW9uID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgdmFyIG4gPSB7fTtcbiAgICAgIHR5cGVvZiB0ID09IFwic3RyaW5nXCIgPyBuW01BXSA9IHQgOiB0ICYmICh0LmNvZGUgPyBuW05BXSA9IHQuY29kZS50b1N0cmluZygpIDogdC5uYW1lICYmIChuW05BXSA9IHQubmFtZSksIHQubWVzc2FnZSAmJiAobltNQV0gPSB0Lm1lc3NhZ2UpLCB0LnN0YWNrICYmIChuW2VBXSA9IHQuc3RhY2spKSwgbltOQV0gfHwgbltNQV0gPyB0aGlzLmFkZEV2ZW50KHd0LCBuLCBlKSA6IHIud2FybihcIkZhaWxlZCB0byByZWNvcmQgYW4gZXhjZXB0aW9uIFwiICsgdCk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwiZHVyYXRpb25cIiwge1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImVuZGVkXCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmRlZDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCBPYmplY3QuZGVmaW5lUHJvcGVydHkociQxLnByb3RvdHlwZSwgXCJkcm9wcGVkQXR0cmlidXRlc0NvdW50XCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wcGVkQXR0cmlidXRlc0NvdW50O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImRyb3BwZWRFdmVudHNDb3VudFwiLCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcHBlZEV2ZW50c0NvdW50O1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyJDEucHJvdG90eXBlLCBcImRyb3BwZWRMaW5rc0NvdW50XCIsIHtcbiAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wcGVkTGlua3NDb3VudDtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pLCByJDEucHJvdG90eXBlLl9pc1NwYW5FbmRlZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkICYmIHIud2FybihcIkNhbiBub3QgZXhlY3V0ZSB0aGUgb3BlcmF0aW9uIG9uIGVuZGVkIFNwYW4ge3RyYWNlSWQ6IFwiICsgdGhpcy5fc3BhbkNvbnRleHQudHJhY2VJZCArIFwiLCBzcGFuSWQ6IFwiICsgdGhpcy5fc3BhbkNvbnRleHQuc3BhbklkICsgXCJ9XCIpLCB0aGlzLl9lbmRlZDtcbiAgICB9LCByJDEucHJvdG90eXBlLl90cnVuY2F0ZVRvTGltaXRVdGlsID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgcmV0dXJuIHQubGVuZ3RoIDw9IGUgPyB0IDogdC5zdWJzdHJpbmcoMCwgZSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fdHJ1bmNhdGVUb1NpemUgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSA9IHRoaXMsIG4gPSB0aGlzLl9hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0O1xuICAgICAgcmV0dXJuIG4gPD0gMCA/IChyLndhcm4oXCJBdHRyaWJ1dGUgdmFsdWUgbGltaXQgbXVzdCBiZSBwb3NpdGl2ZSwgZ290IFwiICsgbiksIHQpIDogdHlwZW9mIHQgPT0gXCJzdHJpbmdcIiA/IHRoaXMuX3RydW5jYXRlVG9MaW1pdFV0aWwodCwgbikgOiBBcnJheS5pc0FycmF5KHQpID8gdC5tYXAoZnVuY3Rpb24obykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG8gPT0gXCJzdHJpbmdcIiA/IGUuX3RydW5jYXRlVG9MaW1pdFV0aWwobywgbikgOiBvO1xuICAgICAgfSkgOiB0O1xuICAgIH0sIHIkMTtcbiAgfSkoKVxuKSwgUDtcbihmdW5jdGlvbihyKSB7XG4gIHJbci5OT1RfUkVDT1JEID0gMF0gPSBcIk5PVF9SRUNPUkRcIiwgcltyLlJFQ09SRCA9IDFdID0gXCJSRUNPUkRcIiwgcltyLlJFQ09SRF9BTkRfU0FNUExFRCA9IDJdID0gXCJSRUNPUkRfQU5EX1NBTVBMRURcIjtcbn0pKFAgfHwgKFAgPSB7fSkpO1xudmFyIFIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5zaG91bGRTYW1wbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRlY2lzaW9uOiBQLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09mZlNhbXBsZXJcIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBnID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkZWNpc2lvbjogUC5SRUNPUkRfQU5EX1NBTVBMRURcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIkFsd2F5c09uU2FtcGxlclwiO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIEIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdmFyIGUsIG4sIG8sIGk7XG4gICAgICB0aGlzLl9yb290ID0gdC5yb290LCB0aGlzLl9yb290IHx8IChFcihuZXcgRXJyb3IoXCJQYXJlbnRCYXNlZFNhbXBsZXIgbXVzdCBoYXZlIGEgcm9vdCBzYW1wbGVyIGNvbmZpZ3VyZWRcIikpLCB0aGlzLl9yb290ID0gbmV3IGcoKSksIHRoaXMuX3JlbW90ZVBhcmVudFNhbXBsZWQgPSAoZSA9IHQucmVtb3RlUGFyZW50U2FtcGxlZCkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IG5ldyBnKCksIHRoaXMuX3JlbW90ZVBhcmVudE5vdFNhbXBsZWQgPSAobiA9IHQucmVtb3RlUGFyZW50Tm90U2FtcGxlZCkgIT09IG51bGwgJiYgbiAhPT0gdm9pZCAwID8gbiA6IG5ldyBSKCksIHRoaXMuX2xvY2FsUGFyZW50U2FtcGxlZCA9IChvID0gdC5sb2NhbFBhcmVudFNhbXBsZWQpICE9PSBudWxsICYmIG8gIT09IHZvaWQgMCA/IG8gOiBuZXcgZygpLCB0aGlzLl9sb2NhbFBhcmVudE5vdFNhbXBsZWQgPSAoaSA9IHQubG9jYWxQYXJlbnROb3RTYW1wbGVkKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbmV3IFIoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLnNob3VsZFNhbXBsZSA9IGZ1bmN0aW9uKHQsIGUsIG4sIG8sIGksIGEpIHtcbiAgICAgIHZhciBzID0gamUkMS5nZXRTcGFuQ29udGV4dCh0KTtcbiAgICAgIHJldHVybiAhcyB8fCAhTG4ocykgPyB0aGlzLl9yb290LnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHMuaXNSZW1vdGUgPyBzLnRyYWNlRmxhZ3MgJiB0ci5TQU1QTEVEID8gdGhpcy5fcmVtb3RlUGFyZW50U2FtcGxlZC5zaG91bGRTYW1wbGUodCwgZSwgbiwgbywgaSwgYSkgOiB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKSA6IHMudHJhY2VGbGFncyAmIHRyLlNBTVBMRUQgPyB0aGlzLl9sb2NhbFBhcmVudFNhbXBsZWQuc2hvdWxkU2FtcGxlKHQsIGUsIG4sIG8sIGksIGEpIDogdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkLnNob3VsZFNhbXBsZSh0LCBlLCBuLCBvLCBpLCBhKTtcbiAgICB9LCByLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFwiUGFyZW50QmFzZWR7cm9vdD1cIiArIHRoaXMuX3Jvb3QudG9TdHJpbmcoKSArIFwiLCByZW1vdGVQYXJlbnRTYW1wbGVkPVwiICsgdGhpcy5fcmVtb3RlUGFyZW50U2FtcGxlZC50b1N0cmluZygpICsgXCIsIHJlbW90ZVBhcmVudE5vdFNhbXBsZWQ9XCIgKyB0aGlzLl9yZW1vdGVQYXJlbnROb3RTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgbG9jYWxQYXJlbnRTYW1wbGVkPVwiICsgdGhpcy5fbG9jYWxQYXJlbnRTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIiwgbG9jYWxQYXJlbnROb3RTYW1wbGVkPVwiICsgdGhpcy5fbG9jYWxQYXJlbnROb3RTYW1wbGVkLnRvU3RyaW5nKCkgKyBcIn1cIjtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBXID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IDApLCB0aGlzLl9yYXRpbyA9IHQsIHRoaXMuX3JhdGlvID0gdGhpcy5fbm9ybWFsaXplKHQpLCB0aGlzLl91cHBlckJvdW5kID0gTWF0aC5mbG9vcih0aGlzLl9yYXRpbyAqIDQyOTQ5NjcyOTUpO1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuc2hvdWxkU2FtcGxlID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVjaXNpb246IFJzKGUpICYmIHRoaXMuX2FjY3VtdWxhdGUoZSkgPCB0aGlzLl91cHBlckJvdW5kID8gUC5SRUNPUkRfQU5EX1NBTVBMRUQgOiBQLk5PVF9SRUNPUkRcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBcIlRyYWNlSWRSYXRpb0Jhc2Vke1wiICsgdGhpcy5fcmF0aW8gKyBcIn1cIjtcbiAgICB9LCByLnByb3RvdHlwZS5fbm9ybWFsaXplID0gZnVuY3Rpb24odCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB0ICE9IFwibnVtYmVyXCIgfHwgaXNOYU4odCkgPyAwIDogdCA+PSAxID8gMSA6IHQgPD0gMCA/IDAgOiB0O1xuICAgIH0sIHIucHJvdG90eXBlLl9hY2N1bXVsYXRlID0gZnVuY3Rpb24odCkge1xuICAgICAgZm9yICh2YXIgZSA9IDAsIG4gPSAwOyBuIDwgdC5sZW5ndGggLyA4OyBuKyspIHtcbiAgICAgICAgdmFyIG8gPSBuICogOCwgaSA9IHBhcnNlSW50KHQuc2xpY2UobywgbyArIDgpLCAxNik7XG4gICAgICAgIGUgPSAoZSBeIGkpID4+PiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGU7XG4gICAgfSwgcjtcbiAgfSkoKVxuKSwgUnQgPSB2LkFsd2F5c09uLCBFID0gMTtcbmZ1bmN0aW9uIEooKSB7XG4gIHZhciByID0gT2UoKTtcbiAgcmV0dXJuIHtcbiAgICBzYW1wbGVyOiAkKHIpLFxuICAgIGZvcmNlRmx1c2hUaW1lb3V0TWlsbGlzOiAzZTQsXG4gICAgZ2VuZXJhbExpbWl0czoge1xuICAgICAgYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdDogci5PVEVMX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQsXG4gICAgICBhdHRyaWJ1dGVDb3VudExpbWl0OiByLk9URUxfQVRUUklCVVRFX0NPVU5UX0xJTUlUXG4gICAgfSxcbiAgICBzcGFuTGltaXRzOiB7XG4gICAgICBhdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlULFxuICAgICAgYXR0cmlidXRlQ291bnRMaW1pdDogci5PVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlULFxuICAgICAgbGlua0NvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0xJTktfQ09VTlRfTElNSVQsXG4gICAgICBldmVudENvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0VWRU5UX0NPVU5UX0xJTUlULFxuICAgICAgYXR0cmlidXRlUGVyRXZlbnRDb3VudExpbWl0OiByLk9URUxfU1BBTl9BVFRSSUJVVEVfUEVSX0VWRU5UX0NPVU5UX0xJTUlULFxuICAgICAgYXR0cmlidXRlUGVyTGlua0NvdW50TGltaXQ6IHIuT1RFTF9TUEFOX0FUVFJJQlVURV9QRVJfTElOS19DT1VOVF9MSU1JVFxuICAgIH0sXG4gICAgbWVyZ2VSZXNvdXJjZVdpdGhEZWZhdWx0czogdHJ1ZVxuICB9O1xufVxuZnVuY3Rpb24gJChyJDEpIHtcbiAgc3dpdGNoIChyJDEgPT09IHZvaWQgMCAmJiAociQxID0gT2UoKSksIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSKSB7XG4gICAgY2FzZSB2LkFsd2F5c09uOlxuICAgICAgcmV0dXJuIG5ldyBnKCk7XG4gICAgY2FzZSB2LkFsd2F5c09mZjpcbiAgICAgIHJldHVybiBuZXcgUigpO1xuICAgIGNhc2Ugdi5QYXJlbnRCYXNlZEFsd2F5c09uOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IGcoKVxuICAgICAgfSk7XG4gICAgY2FzZSB2LlBhcmVudEJhc2VkQWx3YXlzT2ZmOlxuICAgICAgcmV0dXJuIG5ldyBCKHtcbiAgICAgICAgcm9vdDogbmV3IFIoKVxuICAgICAgfSk7XG4gICAgY2FzZSB2LlRyYWNlSWRSYXRpbzpcbiAgICAgIHJldHVybiBuZXcgVyhZKHIkMSkpO1xuICAgIGNhc2Ugdi5QYXJlbnRCYXNlZFRyYWNlSWRSYXRpbzpcbiAgICAgIHJldHVybiBuZXcgQih7XG4gICAgICAgIHJvb3Q6IG5ldyBXKFkociQxKSlcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gci5lcnJvcignT1RFTF9UUkFDRVNfU0FNUExFUiB2YWx1ZSBcIicgKyByJDEuT1RFTF9UUkFDRVNfU0FNUExFUiArIFwiIGludmFsaWQsIGRlZmF1bHRpbmcgdG8gXCIgKyBSdCArICdcIi4nKSwgbmV3IGcoKTtcbiAgfVxufVxuZnVuY3Rpb24gWShyJDEpIHtcbiAgaWYgKHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyA9PT0gdm9pZCAwIHx8IHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyA9PT0gXCJcIilcbiAgICByZXR1cm4gci5lcnJvcihcIk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHIGlzIGJsYW5rLCBkZWZhdWx0aW5nIHRvIFwiICsgRSArIFwiLlwiKSwgRTtcbiAgdmFyIHQgPSBOdW1iZXIociQxLk9URUxfVFJBQ0VTX1NBTVBMRVJfQVJHKTtcbiAgcmV0dXJuIGlzTmFOKHQpID8gKHIuZXJyb3IoXCJPVEVMX1RSQUNFU19TQU1QTEVSX0FSRz1cIiArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyArIFwiIHdhcyBnaXZlbiwgYnV0IGl0IGlzIGludmFsaWQsIGRlZmF1bHRpbmcgdG8gXCIgKyBFICsgXCIuXCIpLCBFKSA6IHQgPCAwIHx8IHQgPiAxID8gKHIuZXJyb3IoXCJPVEVMX1RSQUNFU19TQU1QTEVSX0FSRz1cIiArIHIkMS5PVEVMX1RSQUNFU19TQU1QTEVSX0FSRyArIFwiIHdhcyBnaXZlbiwgYnV0IGl0IGlzIG91dCBvZiByYW5nZSAoWzAuLjFdKSwgZGVmYXVsdGluZyB0byBcIiArIEUgKyBcIi5cIiksIEUpIDogdDtcbn1cbmZ1bmN0aW9uIEl0KHIpIHtcbiAgdmFyIHQgPSB7XG4gICAgc2FtcGxlcjogJCgpXG4gIH0sIGUgPSBKKCksIG4gPSBPYmplY3QuYXNzaWduKHt9LCBlLCB0LCByKTtcbiAgcmV0dXJuIG4uZ2VuZXJhbExpbWl0cyA9IE9iamVjdC5hc3NpZ24oe30sIGUuZ2VuZXJhbExpbWl0cywgci5nZW5lcmFsTGltaXRzIHx8IHt9KSwgbi5zcGFuTGltaXRzID0gT2JqZWN0LmFzc2lnbih7fSwgZS5zcGFuTGltaXRzLCByLnNwYW5MaW1pdHMgfHwge30pLCBuO1xufVxuZnVuY3Rpb24gTnQocikge1xuICB2YXIgdCwgZSwgbiwgbywgaSwgYSwgcywgbCwgdSwgcCQxLCBjLCBmLCB5ID0gT2JqZWN0LmFzc2lnbih7fSwgci5zcGFuTGltaXRzKSwgbSA9IGNlKCk7XG4gIHJldHVybiB5LmF0dHJpYnV0ZUNvdW50TGltaXQgPSAoYSA9IChpID0gKG8gPSAoZSA9ICh0ID0gci5zcGFuTGltaXRzKSA9PT0gbnVsbCB8fCB0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0LmF0dHJpYnV0ZUNvdW50TGltaXQpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiAobiA9IHIuZ2VuZXJhbExpbWl0cykgPT09IG51bGwgfHwgbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogbi5hdHRyaWJ1dGVDb3VudExpbWl0KSAhPT0gbnVsbCAmJiBvICE9PSB2b2lkIDAgPyBvIDogbS5PVEVMX1NQQU5fQVRUUklCVVRFX0NPVU5UX0xJTUlUKSAhPT0gbnVsbCAmJiBpICE9PSB2b2lkIDAgPyBpIDogbS5PVEVMX0FUVFJJQlVURV9DT1VOVF9MSU1JVCkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGQsIHkuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCA9IChmID0gKGMgPSAocCQxID0gKGwgPSAocyA9IHIuc3BhbkxpbWl0cykgPT09IG51bGwgfHwgcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcy5hdHRyaWJ1dGVWYWx1ZUxlbmd0aExpbWl0KSAhPT0gbnVsbCAmJiBsICE9PSB2b2lkIDAgPyBsIDogKHUgPSByLmdlbmVyYWxMaW1pdHMpID09PSBudWxsIHx8IHUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHUuYXR0cmlidXRlVmFsdWVMZW5ndGhMaW1pdCkgIT09IG51bGwgJiYgcCQxICE9PSB2b2lkIDAgPyBwJDEgOiBtLk9URUxfU1BBTl9BVFRSSUJVVEVfVkFMVUVfTEVOR1RIX0xJTUlUKSAhPT0gbnVsbCAmJiBjICE9PSB2b2lkIDAgPyBjIDogbS5PVEVMX0FUVFJJQlVURV9WQUxVRV9MRU5HVEhfTElNSVQpICE9PSBudWxsICYmIGYgIT09IHZvaWQgMCA/IGYgOiBwLCBPYmplY3QuYXNzaWduKHt9LCByLCB7IHNwYW5MaW1pdHM6IHkgfSk7XG59XG52YXIgTXQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMSh0LCBlKSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX2lzRXhwb3J0aW5nID0gZmFsc2UsIHRoaXMuX2ZpbmlzaGVkU3BhbnMgPSBbXSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPSAwO1xuICAgICAgdmFyIG4gPSBPZSgpO1xuICAgICAgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID0gdHlwZW9mIGU/Lm1heEV4cG9ydEJhdGNoU2l6ZSA9PSBcIm51bWJlclwiID8gZS5tYXhFeHBvcnRCYXRjaFNpemUgOiBuLk9URUxfQlNQX01BWF9FWFBPUlRfQkFUQ0hfU0laRSwgdGhpcy5fbWF4UXVldWVTaXplID0gdHlwZW9mIGU/Lm1heFF1ZXVlU2l6ZSA9PSBcIm51bWJlclwiID8gZS5tYXhRdWV1ZVNpemUgOiBuLk9URUxfQlNQX01BWF9RVUVVRV9TSVpFLCB0aGlzLl9zY2hlZHVsZWREZWxheU1pbGxpcyA9IHR5cGVvZiBlPy5zY2hlZHVsZWREZWxheU1pbGxpcyA9PSBcIm51bWJlclwiID8gZS5zY2hlZHVsZWREZWxheU1pbGxpcyA6IG4uT1RFTF9CU1BfU0NIRURVTEVfREVMQVksIHRoaXMuX2V4cG9ydFRpbWVvdXRNaWxsaXMgPSB0eXBlb2YgZT8uZXhwb3J0VGltZW91dE1pbGxpcyA9PSBcIm51bWJlclwiID8gZS5leHBvcnRUaW1lb3V0TWlsbGlzIDogbi5PVEVMX0JTUF9FWFBPUlRfVElNRU9VVCwgdGhpcy5fc2h1dGRvd25PbmNlID0gbmV3IGZ0KHRoaXMuX3NodXRkb3duLCB0aGlzKSwgdGhpcy5fbWF4RXhwb3J0QmF0Y2hTaXplID4gdGhpcy5fbWF4UXVldWVTaXplICYmIChyLndhcm4oXCJCYXRjaFNwYW5Qcm9jZXNzb3I6IG1heEV4cG9ydEJhdGNoU2l6ZSBtdXN0IGJlIHNtYWxsZXIgb3IgZXF1YWwgdG8gbWF4UXVldWVTaXplLCBzZXR0aW5nIG1heEV4cG9ydEJhdGNoU2l6ZSB0byBtYXRjaCBtYXhRdWV1ZVNpemVcIiksIHRoaXMuX21heEV4cG9ydEJhdGNoU2l6ZSA9IHRoaXMuX21heFF1ZXVlU2l6ZSk7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgPyB0aGlzLl9zaHV0ZG93bk9uY2UucHJvbWlzZSA6IHRoaXMuX2ZsdXNoQWxsKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIkMS5wcm90b3R5cGUub25FbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgfHwgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgdHIuU0FNUExFRCkgIT09IDAgJiYgdGhpcy5fYWRkVG9CdWZmZXIodCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NodXRkb3duT25jZS5jYWxsKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdC5vblNodXRkb3duKCk7XG4gICAgICB9KS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdC5fZmx1c2hBbGwoKTtcbiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0Ll9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYWRkVG9CdWZmZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICBpZiAodGhpcy5fZmluaXNoZWRTcGFucy5sZW5ndGggPj0gdGhpcy5fbWF4UXVldWVTaXplKSB7XG4gICAgICAgIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ID09PSAwICYmIHIuZGVidWcoXCJtYXhRdWV1ZVNpemUgcmVhY2hlZCwgZHJvcHBpbmcgc3BhbnNcIiksIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50Kys7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ID4gMCAmJiAoci53YXJuKFwiRHJvcHBlZCBcIiArIHRoaXMuX2Ryb3BwZWRTcGFuc0NvdW50ICsgXCIgc3BhbnMgYmVjYXVzZSBtYXhRdWV1ZVNpemUgcmVhY2hlZFwiKSwgdGhpcy5fZHJvcHBlZFNwYW5zQ291bnQgPSAwKSwgdGhpcy5fZmluaXNoZWRTcGFucy5wdXNoKHQpLCB0aGlzLl9tYXliZVN0YXJ0VGltZXIoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9mbHVzaEFsbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgICAgZm9yICh2YXIgbyA9IFtdLCBpID0gTWF0aC5jZWlsKHQuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoIC8gdC5fbWF4RXhwb3J0QmF0Y2hTaXplKSwgYSA9IDAsIHMgPSBpOyBhIDwgczsgYSsrKVxuICAgICAgICAgIG8ucHVzaCh0Ll9mbHVzaE9uZUJhdGNoKCkpO1xuICAgICAgICBQcm9taXNlLmFsbChvKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGUoKTtcbiAgICAgICAgfSkuY2F0Y2gobik7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9mbHVzaE9uZUJhdGNoID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgdCA9IHRoaXM7XG4gICAgICByZXR1cm4gdGhpcy5fY2xlYXJUaW1lcigpLCB0aGlzLl9maW5pc2hlZFNwYW5zLmxlbmd0aCA9PT0gMCA/IFByb21pc2UucmVzb2x2ZSgpIDogbmV3IFByb21pc2UoZnVuY3Rpb24oZSwgbikge1xuICAgICAgICB2YXIgbyA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgbihuZXcgRXJyb3IoXCJUaW1lb3V0XCIpKTtcbiAgICAgICAgfSwgdC5fZXhwb3J0VGltZW91dE1pbGxpcyk7XG4gICAgICAgIHhlLndpdGgodSh4ZS5hY3RpdmUoKSksIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHZhciBpO1xuICAgICAgICAgIHQuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoIDw9IHQuX21heEV4cG9ydEJhdGNoU2l6ZSA/IChpID0gdC5fZmluaXNoZWRTcGFucywgdC5fZmluaXNoZWRTcGFucyA9IFtdKSA6IGkgPSB0Ll9maW5pc2hlZFNwYW5zLnNwbGljZSgwLCB0Ll9tYXhFeHBvcnRCYXRjaFNpemUpO1xuICAgICAgICAgIGZvciAodmFyIGEkMSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHQuX2V4cG9ydGVyLmV4cG9ydChpLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgICAgIHZhciBmO1xuICAgICAgICAgICAgICBjbGVhclRpbWVvdXQobyksIGMuY29kZSA9PT0gYS5TVUNDRVNTID8gZSgpIDogbigoZiA9IGMuZXJyb3IpICE9PSBudWxsICYmIGYgIT09IHZvaWQgMCA/IGYgOiBuZXcgRXJyb3IoXCJCYXRjaFNwYW5Qcm9jZXNzb3I6IHNwYW4gZXhwb3J0IGZhaWxlZFwiKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LCBzID0gbnVsbCwgbCA9IDAsIHUgPSBpLmxlbmd0aDsgbCA8IHU7IGwrKykge1xuICAgICAgICAgICAgdmFyIHAgPSBpW2xdO1xuICAgICAgICAgICAgcC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nICYmIHAucmVzb3VyY2Uud2FpdEZvckFzeW5jQXR0cmlidXRlcyAmJiAocyA/PyAocyA9IFtdKSwgcy5wdXNoKHAucmVzb3VyY2Uud2FpdEZvckFzeW5jQXR0cmlidXRlcygpKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHMgPT09IG51bGwgPyBhJDEoKSA6IFByb21pc2UuYWxsKHMpLnRoZW4oYSQxLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgICBFcihjKSwgbihjKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9tYXliZVN0YXJ0VGltZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgIGlmICghdGhpcy5faXNFeHBvcnRpbmcpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IHRydWUsIHQuX2ZsdXNoT25lQmF0Y2goKS5maW5hbGx5KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdC5faXNFeHBvcnRpbmcgPSBmYWxzZSwgdC5fZmluaXNoZWRTcGFucy5sZW5ndGggPiAwICYmICh0Ll9jbGVhclRpbWVyKCksIHQuX21heWJlU3RhcnRUaW1lcigpKTtcbiAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICB0Ll9pc0V4cG9ydGluZyA9IGZhbHNlLCBFcihuKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbmlzaGVkU3BhbnMubGVuZ3RoID49IHRoaXMuX21heEV4cG9ydEJhdGNoU2l6ZSlcbiAgICAgICAgICByZXR1cm4gZSgpO1xuICAgICAgICB0aGlzLl90aW1lciA9PT0gdm9pZCAwICYmICh0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGUoKTtcbiAgICAgICAgfSwgdGhpcy5fc2NoZWR1bGVkRGVsYXlNaWxsaXMpLCBTZSh0aGlzLl90aW1lcikpO1xuICAgICAgfVxuICAgIH0sIHIkMS5wcm90b3R5cGUuX2NsZWFyVGltZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3RpbWVyICE9PSB2b2lkIDAgJiYgKGNsZWFyVGltZW91dCh0aGlzLl90aW1lciksIHRoaXMuX3RpbWVyID0gdm9pZCAwKTtcbiAgICB9LCByJDE7XG4gIH0pKClcbiksIEJ0ID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIHIgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgcmV0dXJuIHIgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihuLCBvKSB7XG4gICAgICBuLl9fcHJvdG9fXyA9IG87XG4gICAgfSB8fCBmdW5jdGlvbihuLCBvKSB7XG4gICAgICBmb3IgKHZhciBpIGluIG8pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBpKSAmJiAobltpXSA9IG9baV0pO1xuICAgIH0sIHIodCwgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbih0LCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIHIodCwgZSk7XG4gICAgZnVuY3Rpb24gbigpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSB0O1xuICAgIH1cbiAgICB0LnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKG4ucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyBuKCkpO1xuICB9O1xufSkoKSwgRHQgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKHIpIHtcbiAgICBCdCh0LCByKTtcbiAgICBmdW5jdGlvbiB0KGUsIG4pIHtcbiAgICAgIHZhciBvID0gci5jYWxsKHRoaXMsIGUsIG4pIHx8IHRoaXM7XG4gICAgICByZXR1cm4gby5vbkluaXQobiksIG87XG4gICAgfVxuICAgIHJldHVybiB0LnByb3RvdHlwZS5vbkluaXQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB2YXIgbiA9IHRoaXM7XG4gICAgICBlPy5kaXNhYmxlQXV0b0ZsdXNoT25Eb2N1bWVudEhpZGUgIT09IHRydWUgJiYgdHlwZW9mIGRvY3VtZW50IDwgXCJ1XCIgJiYgKHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwiaGlkZGVuXCIgJiYgbi5mb3JjZUZsdXNoKCkuY2F0Y2goZnVuY3Rpb24obykge1xuICAgICAgICAgIEVyKG8pO1xuICAgICAgICB9KTtcbiAgICAgIH0sIHRoaXMuX3BhZ2VIaWRlTGlzdGVuZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgbi5mb3JjZUZsdXNoKCkuY2F0Y2goZnVuY3Rpb24obykge1xuICAgICAgICAgIEVyKG8pO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciksIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyKSk7XG4gICAgfSwgdC5wcm90b3R5cGUub25TaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgdHlwZW9mIGRvY3VtZW50IDwgXCJ1XCIgJiYgKHRoaXMuX3Zpc2liaWxpdHlDaGFuZ2VMaXN0ZW5lciAmJiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCB0aGlzLl92aXNpYmlsaXR5Q2hhbmdlTGlzdGVuZXIpLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyICYmIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCB0aGlzLl9wYWdlSGlkZUxpc3RlbmVyKSk7XG4gICAgfSwgdDtcbiAgfSkoTXQpXG4pLCBVdCA9IDgsIEZ0ID0gMTYsIEd0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIC8qIEBfX1BVUkVfXyAqLyAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICAgIHRoaXMuZ2VuZXJhdGVUcmFjZUlkID0gcShGdCksIHRoaXMuZ2VuZXJhdGVTcGFuSWQgPSBxKFV0KTtcbiAgICB9XG4gICAgcmV0dXJuIHI7XG4gIH0pKClcbiksIEMgPSBBcnJheSgzMik7XG5mdW5jdGlvbiBxKHIpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGZvciAodmFyIGUgPSAwOyBlIDwgciAqIDI7IGUrKylcbiAgICAgIENbZV0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxNikgKyA0OCwgQ1tlXSA+PSA1OCAmJiAoQ1tlXSArPSAzOSk7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgQy5zbGljZSgwLCByICogMikpO1xuICB9O1xufVxudmFyIHp0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByJDEodCwgZSwgbikge1xuICAgICAgdGhpcy5fdHJhY2VyUHJvdmlkZXIgPSBuO1xuICAgICAgdmFyIG8gPSBJdChlKTtcbiAgICAgIHRoaXMuX3NhbXBsZXIgPSBvLnNhbXBsZXIsIHRoaXMuX2dlbmVyYWxMaW1pdHMgPSBvLmdlbmVyYWxMaW1pdHMsIHRoaXMuX3NwYW5MaW1pdHMgPSBvLnNwYW5MaW1pdHMsIHRoaXMuX2lkR2VuZXJhdG9yID0gZS5pZEdlbmVyYXRvciB8fCBuZXcgR3QoKSwgdGhpcy5yZXNvdXJjZSA9IG4ucmVzb3VyY2UsIHRoaXMuaW5zdHJ1bWVudGF0aW9uTGlicmFyeSA9IHQ7XG4gICAgfVxuICAgIHJldHVybiByJDEucHJvdG90eXBlLnN0YXJ0U3BhbiA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHZhciBvLCBpLCBhO1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0ge30pLCBuID09PSB2b2lkIDAgJiYgKG4gPSB4ZS5hY3RpdmUoKSksIGUucm9vdCAmJiAobiA9IGplJDEuZGVsZXRlU3BhbihuKSk7XG4gICAgICB2YXIgcyA9IGplJDEuZ2V0U3BhbihuKTtcbiAgICAgIGlmIChhJDEobikpIHtcbiAgICAgICAgci5kZWJ1ZyhcIkluc3RydW1lbnRhdGlvbiBzdXBwcmVzc2VkLCByZXR1cm5pbmcgTm9vcCBTcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gamUkMS53cmFwU3BhbkNvbnRleHQoRXMpO1xuICAgICAgICByZXR1cm4gbCQxO1xuICAgICAgfVxuICAgICAgdmFyIHUgPSBzPy5zcGFuQ29udGV4dCgpLCBwID0gdGhpcy5faWRHZW5lcmF0b3IuZ2VuZXJhdGVTcGFuSWQoKSwgYywgZiwgeTtcbiAgICAgICF1IHx8ICFqZSQxLmlzU3BhbkNvbnRleHRWYWxpZCh1KSA/IGMgPSB0aGlzLl9pZEdlbmVyYXRvci5nZW5lcmF0ZVRyYWNlSWQoKSA6IChjID0gdS50cmFjZUlkLCBmID0gdS50cmFjZVN0YXRlLCB5ID0gdS5zcGFuSWQpO1xuICAgICAgdmFyIG0gPSAobyA9IGUua2luZCkgIT09IG51bGwgJiYgbyAhPT0gdm9pZCAwID8gbyA6IGF0LklOVEVSTkFMLCBGID0gKChpID0gZS5saW5rcykgIT09IG51bGwgJiYgaSAhPT0gdm9pZCAwID8gaSA6IFtdKS5tYXAoZnVuY3Rpb24oaikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRleHQ6IGouY29udGV4dCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBRcihqLmF0dHJpYnV0ZXMpXG4gICAgICAgIH07XG4gICAgICB9KSwgRyA9IFFyKGUuYXR0cmlidXRlcyksIGIgPSB0aGlzLl9zYW1wbGVyLnNob3VsZFNhbXBsZShuLCBjLCB0LCBtLCBHLCBGKTtcbiAgICAgIGYgPSAoYSA9IGIudHJhY2VTdGF0ZSkgIT09IG51bGwgJiYgYSAhPT0gdm9pZCAwID8gYSA6IGY7XG4gICAgICB2YXIgdHQgPSBiLmRlY2lzaW9uID09PSBsLlJFQ09SRF9BTkRfU0FNUExFRCA/IHRyLlNBTVBMRUQgOiB0ci5OT05FLCB6ID0geyB0cmFjZUlkOiBjLCBzcGFuSWQ6IHAsIHRyYWNlRmxhZ3M6IHR0LCB0cmFjZVN0YXRlOiBmIH07XG4gICAgICBpZiAoYi5kZWNpc2lvbiA9PT0gbC5OT1RfUkVDT1JEKSB7XG4gICAgICAgIHIuZGVidWcoXCJSZWNvcmRpbmcgaXMgb2ZmLCBwcm9wYWdhdGluZyBjb250ZXh0IGluIGEgbm9uLXJlY29yZGluZyBzcGFuXCIpO1xuICAgICAgICB2YXIgbCQxID0gamUkMS53cmFwU3BhbkNvbnRleHQoeik7XG4gICAgICAgIHJldHVybiBsJDE7XG4gICAgICB9XG4gICAgICB2YXIgZXQgPSBRcihPYmplY3QuYXNzaWduKEcsIGIuYXR0cmlidXRlcykpLCBydCA9IG5ldyB4dCh0aGlzLCBuLCB0LCB6LCBtLCB5LCBGLCBlLnN0YXJ0VGltZSwgdm9pZCAwLCBldCk7XG4gICAgICByZXR1cm4gcnQ7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zdGFydEFjdGl2ZVNwYW4gPSBmdW5jdGlvbih0LCBlLCBuLCBvKSB7XG4gICAgICB2YXIgaSwgYSwgcztcbiAgICAgIGlmICghKGFyZ3VtZW50cy5sZW5ndGggPCAyKSkge1xuICAgICAgICBhcmd1bWVudHMubGVuZ3RoID09PSAyID8gcyA9IGUgOiBhcmd1bWVudHMubGVuZ3RoID09PSAzID8gKGkgPSBlLCBzID0gbikgOiAoaSA9IGUsIGEgPSBuLCBzID0gbyk7XG4gICAgICAgIHZhciBsID0gYSA/PyB4ZS5hY3RpdmUoKSwgdSA9IHRoaXMuc3RhcnRTcGFuKHQsIGksIGwpLCBwID0gamUkMS5zZXRTcGFuKGwsIHUpO1xuICAgICAgICByZXR1cm4geGUud2l0aChwLCBzLCB2b2lkIDAsIHUpO1xuICAgICAgfVxuICAgIH0sIHIkMS5wcm90b3R5cGUuZ2V0R2VuZXJhbExpbWl0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyYWxMaW1pdHM7XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRTcGFuTGltaXRzID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3BhbkxpbWl0cztcbiAgICB9LCByJDEucHJvdG90eXBlLmdldEFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFjZXJQcm92aWRlci5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yKCk7XG4gICAgfSwgciQxO1xuICB9KSgpXG4pLCBPID0gZnVuY3Rpb24ocikge1xuICB2YXIgdCA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIFN5bWJvbC5pdGVyYXRvciwgZSA9IHQgJiYgclt0XSwgbiA9IDA7XG4gIGlmIChlKSByZXR1cm4gZS5jYWxsKHIpO1xuICBpZiAociAmJiB0eXBlb2Ygci5sZW5ndGggPT0gXCJudW1iZXJcIikgcmV0dXJuIHtcbiAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiByICYmIG4gPj0gci5sZW5ndGggJiYgKHIgPSB2b2lkIDApLCB7IHZhbHVlOiByICYmIHJbbisrXSwgZG9uZTogIXIgfTtcbiAgICB9XG4gIH07XG4gIHRocm93IG5ldyBUeXBlRXJyb3IodCA/IFwiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIiA6IFwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcbn0sIEsgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIodCkge1xuICAgICAgdGhpcy5fc3BhblByb2Nlc3NvcnMgPSB0O1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQsIGUsIG4gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgbi5wdXNoKGEuZm9yY2VGbHVzaCgpKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAocykge1xuICAgICAgICB0ID0geyBlcnJvcjogcyB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpICYmICFpLmRvbmUgJiYgKGUgPSBvLnJldHVybikgJiYgZS5jYWxsKG8pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmICh0KSB0aHJvdyB0LmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocykge1xuICAgICAgICBQcm9taXNlLmFsbChuKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHMoKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24obCkge1xuICAgICAgICAgIEVyKGwgfHwgbmV3IEVycm9yKFwiTXVsdGlTcGFuUHJvY2Vzc29yOiBmb3JjZUZsdXNoIGZhaWxlZFwiKSksIHMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgICAgdmFyIG4sIG87XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBpID0gTyh0aGlzLl9zcGFuUHJvY2Vzc29ycyksIGEgPSBpLm5leHQoKTsgIWEuZG9uZTsgYSA9IGkubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIHMgPSBhLnZhbHVlO1xuICAgICAgICAgIHMub25TdGFydCh0LCBlKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAobCkge1xuICAgICAgICBuID0geyBlcnJvcjogbCB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhICYmICFhLmRvbmUgJiYgKG8gPSBpLnJldHVybikgJiYgby5jYWxsKGkpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmIChuKSB0aHJvdyBuLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUub25FbmQgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZSwgbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIG8gPSBPKHRoaXMuX3NwYW5Qcm9jZXNzb3JzKSwgaSA9IG8ubmV4dCgpOyAhaS5kb25lOyBpID0gby5uZXh0KCkpIHtcbiAgICAgICAgICB2YXIgYSA9IGkudmFsdWU7XG4gICAgICAgICAgYS5vbkVuZCh0KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAocykge1xuICAgICAgICBlID0geyBlcnJvcjogcyB9O1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpICYmICFpLmRvbmUgJiYgKG4gPSBvLnJldHVybikgJiYgbi5jYWxsKG8pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgci5wcm90b3R5cGUuc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0LCBlLCBuID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBvID0gTyh0aGlzLl9zcGFuUHJvY2Vzc29ycyksIGkgPSBvLm5leHQoKTsgIWkuZG9uZTsgaSA9IG8ubmV4dCgpKSB7XG4gICAgICAgICAgdmFyIGEgPSBpLnZhbHVlO1xuICAgICAgICAgIG4ucHVzaChhLnNodXRkb3duKCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzKSB7XG4gICAgICAgIHQgPSB7IGVycm9yOiBzIH07XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGkgJiYgIWkuZG9uZSAmJiAoZSA9IG8ucmV0dXJuKSAmJiBlLmNhbGwobyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKHQpIHRocm93IHQuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLCBsKSB7XG4gICAgICAgIFByb21pc2UuYWxsKG4pLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcygpO1xuICAgICAgICB9LCBsKTtcbiAgICAgIH0pO1xuICAgIH0sIHI7XG4gIH0pKClcbiksIGp0ID0gKFxuICAvKiogQGNsYXNzICovXG4gIChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiByKCkge1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUub25TdGFydCA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICB9LCByLnByb3RvdHlwZS5vbkVuZCA9IGZ1bmN0aW9uKHQpIHtcbiAgICB9LCByLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBrdCA9IGZ1bmN0aW9uKHIsIHQpIHtcbiAgdmFyIGUgPSB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiByW1N5bWJvbC5pdGVyYXRvcl07XG4gIGlmICghZSkgcmV0dXJuIHI7XG4gIHZhciBuID0gZS5jYWxsKHIpLCBvLCBpID0gW10sIGE7XG4gIHRyeSB7XG4gICAgZm9yICg7ICh0ID09PSB2b2lkIDAgfHwgdC0tID4gMCkgJiYgIShvID0gbi5uZXh0KCkpLmRvbmU7ICkgaS5wdXNoKG8udmFsdWUpO1xuICB9IGNhdGNoIChzKSB7XG4gICAgYSA9IHsgZXJyb3I6IHMgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgbyAmJiAhby5kb25lICYmIChlID0gbi5yZXR1cm4pICYmIGUuY2FsbChuKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGEpIHRocm93IGEuZXJyb3I7XG4gICAgfVxuICB9XG4gIHJldHVybiBpO1xufSwgVnQgPSBmdW5jdGlvbihyLCB0LCBlKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBuID0gMCwgbyA9IHQubGVuZ3RoLCBpOyBuIDwgbzsgbisrKVxuICAgIChpIHx8ICEobiBpbiB0KSkgJiYgKGkgfHwgKGkgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LCAwLCBuKSksIGlbbl0gPSB0W25dKTtcbiAgcmV0dXJuIHIuY29uY2F0KGkgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpO1xufSwgUztcbihmdW5jdGlvbihyKSB7XG4gIHJbci5yZXNvbHZlZCA9IDBdID0gXCJyZXNvbHZlZFwiLCByW3IudGltZW91dCA9IDFdID0gXCJ0aW1lb3V0XCIsIHJbci5lcnJvciA9IDJdID0gXCJlcnJvclwiLCByW3IudW5yZXNvbHZlZCA9IDNdID0gXCJ1bnJlc29sdmVkXCI7XG59KShTIHx8IChTID0ge30pKTtcbnZhciB0ZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gciQxKHQpIHtcbiAgICAgIHQgPT09IHZvaWQgMCAmJiAodCA9IHt9KTtcbiAgICAgIHZhciBlLCBuO1xuICAgICAgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzID0gW10sIHRoaXMuX3RyYWNlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgICAgdmFyIG8gPSBudCh7fSwgSigpLCBOdCh0KSk7XG4gICAgICBpZiAodGhpcy5yZXNvdXJjZSA9IChlID0gby5yZXNvdXJjZSkgIT09IG51bGwgJiYgZSAhPT0gdm9pZCAwID8gZSA6IFIkMS5lbXB0eSgpLCBvLm1lcmdlUmVzb3VyY2VXaXRoRGVmYXVsdHMgJiYgKHRoaXMucmVzb3VyY2UgPSBSJDEuZGVmYXVsdCgpLm1lcmdlKHRoaXMucmVzb3VyY2UpKSwgdGhpcy5fY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgbywge1xuICAgICAgICByZXNvdXJjZTogdGhpcy5yZXNvdXJjZVxuICAgICAgfSksICEoKG4gPSB0LnNwYW5Qcm9jZXNzb3JzKSA9PT0gbnVsbCB8fCBuID09PSB2b2lkIDApICYmIG4ubGVuZ3RoKVxuICAgICAgICB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMgPSBWdChbXSwga3QodC5zcGFuUHJvY2Vzc29ycyksIGZhbHNlKSwgdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yID0gbmV3IEsodGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgaSA9IHRoaXMuX2J1aWxkRXhwb3J0ZXJGcm9tRW52KCk7XG4gICAgICAgIGlmIChpICE9PSB2b2lkIDApIHtcbiAgICAgICAgICB2YXIgYSA9IG5ldyBEdChpKTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBhO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3IgPSBuZXcganQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHIkMS5wcm90b3R5cGUuZ2V0VHJhY2VyID0gZnVuY3Rpb24odCwgZSwgbikge1xuICAgICAgdmFyIG8gPSB0ICsgXCJAXCIgKyAoZSB8fCBcIlwiKSArIFwiOlwiICsgKG4/LnNjaGVtYVVybCB8fCBcIlwiKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFjZXJzLmhhcyhvKSB8fCB0aGlzLl90cmFjZXJzLnNldChvLCBuZXcgenQoeyBuYW1lOiB0LCB2ZXJzaW9uOiBlLCBzY2hlbWFVcmw6IG4/LnNjaGVtYVVybCB9LCB0aGlzLl9jb25maWcsIHRoaXMpKSwgdGhpcy5fdHJhY2Vycy5nZXQobyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5hZGRTcGFuUHJvY2Vzc29yID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmFjdGl2ZVNwYW5Qcm9jZXNzb3Iuc2h1dGRvd24oKS5jYXRjaChmdW5jdGlvbihlKSB7XG4gICAgICAgIHJldHVybiByLmVycm9yKFwiRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIHNodXRkb3duIGN1cnJlbnQgc3BhbiBwcm9jZXNzb3JcIiwgZSk7XG4gICAgICB9KSwgdGhpcy5fcmVnaXN0ZXJlZFNwYW5Qcm9jZXNzb3JzLnB1c2godCksIHRoaXMuYWN0aXZlU3BhblByb2Nlc3NvciA9IG5ldyBLKHRoaXMuX3JlZ2lzdGVyZWRTcGFuUHJvY2Vzc29ycyk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRBY3RpdmVTcGFuUHJvY2Vzc29yID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVTcGFuUHJvY2Vzc29yO1xuICAgIH0sIHIkMS5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0ID09PSB2b2lkIDAgJiYgKHQgPSB7fSksIGplJDEuc2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIodGhpcyksIHQucHJvcGFnYXRvciA9PT0gdm9pZCAwICYmICh0LnByb3BhZ2F0b3IgPSB0aGlzLl9idWlsZFByb3BhZ2F0b3JGcm9tRW52KCkpLCB0LmNvbnRleHRNYW5hZ2VyICYmIHhlLnNldEdsb2JhbENvbnRleHRNYW5hZ2VyKHQuY29udGV4dE1hbmFnZXIpLCB0LnByb3BhZ2F0b3IgJiYgeV8uc2V0R2xvYmFsUHJvcGFnYXRvcih0LnByb3BhZ2F0b3IpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLl9jb25maWcuZm9yY2VGbHVzaFRpbWVvdXRNaWxsaXMsIGUgPSB0aGlzLl9yZWdpc3RlcmVkU3BhblByb2Nlc3NvcnMubWFwKGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pIHtcbiAgICAgICAgICB2YXIgaSwgYSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBvKG5ldyBFcnJvcihcIlNwYW4gcHJvY2Vzc29yIGRpZCBub3QgY29tcGxldGVkIHdpdGhpbiB0aW1lb3V0IHBlcmlvZCBvZiBcIiArIHQgKyBcIiBtc1wiKSksIGkgPSBTLnRpbWVvdXQ7XG4gICAgICAgICAgfSwgdCk7XG4gICAgICAgICAgbi5mb3JjZUZsdXNoKCkudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChhKSwgaSAhPT0gUy50aW1lb3V0ICYmIChpID0gUy5yZXNvbHZlZCwgbyhpKSk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGEpLCBpID0gUy5lcnJvciwgbyhzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLCBvKSB7XG4gICAgICAgIFByb21pc2UuYWxsKGUpLnRoZW4oZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHZhciBhID0gaS5maWx0ZXIoZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgcmV0dXJuIHMgIT09IFMucmVzb2x2ZWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYS5sZW5ndGggPiAwID8gbyhhKSA6IG4oKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oaSkge1xuICAgICAgICAgIHJldHVybiBvKFtpXSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5zaHV0ZG93biA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU3BhblByb2Nlc3Nvci5zaHV0ZG93bigpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuX2dldFByb3BhZ2F0b3IgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRQcm9wYWdhdG9ycy5nZXQodCkpID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUoKTtcbiAgICB9LCByJDEucHJvdG90eXBlLl9nZXRTcGFuRXhwb3J0ZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB2YXIgZTtcbiAgICAgIHJldHVybiAoZSA9IHRoaXMuY29uc3RydWN0b3IuX3JlZ2lzdGVyZWRFeHBvcnRlcnMuZ2V0KHQpKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlKCk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRQcm9wYWdhdG9yRnJvbUVudiA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQgPSB0aGlzLCBlID0gQXJyYXkuZnJvbShuZXcgU2V0KE9lKCkuT1RFTF9QUk9QQUdBVE9SUykpLCBuID0gZS5tYXAoZnVuY3Rpb24oaSkge1xuICAgICAgICB2YXIgYSA9IHQuX2dldFByb3BhZ2F0b3IoaSk7XG4gICAgICAgIHJldHVybiBhIHx8IHIud2FybignUHJvcGFnYXRvciBcIicgKyBpICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBhO1xuICAgICAgfSksIG8gPSBuLnJlZHVjZShmdW5jdGlvbihpLCBhKSB7XG4gICAgICAgIHJldHVybiBhICYmIGkucHVzaChhKSwgaTtcbiAgICAgIH0sIFtdKTtcbiAgICAgIGlmIChvLmxlbmd0aCAhPT0gMClcbiAgICAgICAgcmV0dXJuIGUubGVuZ3RoID09PSAxID8gb1swXSA6IG5ldyB2ZSh7XG4gICAgICAgICAgcHJvcGFnYXRvcnM6IG9cbiAgICAgICAgfSk7XG4gICAgfSwgciQxLnByb3RvdHlwZS5fYnVpbGRFeHBvcnRlckZyb21FbnYgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0ID0gT2UoKS5PVEVMX1RSQUNFU19FWFBPUlRFUjtcbiAgICAgIGlmICghKHQgPT09IFwibm9uZVwiIHx8IHQgPT09IFwiXCIpKSB7XG4gICAgICAgIHZhciBlID0gdGhpcy5fZ2V0U3BhbkV4cG9ydGVyKHQpO1xuICAgICAgICByZXR1cm4gZSB8fCByLmVycm9yKCdFeHBvcnRlciBcIicgKyB0ICsgJ1wiIHJlcXVlc3RlZCB0aHJvdWdoIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHVuYXZhaWxhYmxlLicpLCBlO1xuICAgICAgfVxuICAgIH0sIHIkMS5fcmVnaXN0ZXJlZFByb3BhZ2F0b3JzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICAgICAgW1widHJhY2Vjb250ZXh0XCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbmV3IFZlKCk7XG4gICAgICB9XSxcbiAgICAgIFtcImJhZ2dhZ2VcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBuZXcgWnIoKTtcbiAgICAgIH1dXG4gICAgXSksIHIkMS5fcmVnaXN0ZXJlZEV4cG9ydGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksIHIkMTtcbiAgfSkoKVxuKSwgSHQgPSBmdW5jdGlvbihyKSB7XG4gIHZhciB0ID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gdCAmJiByW3RdLCBuID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwocik7XG4gIGlmIChyICYmIHR5cGVvZiByLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHIgJiYgbiA+PSByLmxlbmd0aCAmJiAociA9IHZvaWQgMCksIHsgdmFsdWU6IHIgJiYgcltuKytdLCBkb25lOiAhciB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcih0ID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgZWUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5leHBvcnQgPSBmdW5jdGlvbih0LCBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKHQsIGUpO1xuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VuZFNwYW5zKFtdKSwgdGhpcy5mb3JjZUZsdXNoKCk7XG4gICAgfSwgci5wcm90b3R5cGUuZm9yY2VGbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH0sIHIucHJvdG90eXBlLl9leHBvcnRJbmZvID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IHQucmVzb3VyY2UuYXR0cmlidXRlc1xuICAgICAgICB9LFxuICAgICAgICBpbnN0cnVtZW50YXRpb25TY29wZTogdC5pbnN0cnVtZW50YXRpb25MaWJyYXJ5LFxuICAgICAgICB0cmFjZUlkOiB0LnNwYW5Db250ZXh0KCkudHJhY2VJZCxcbiAgICAgICAgcGFyZW50SWQ6IHQucGFyZW50U3BhbklkLFxuICAgICAgICB0cmFjZVN0YXRlOiAoZSA9IHQuc3BhbkNvbnRleHQoKS50cmFjZVN0YXRlKSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnNlcmlhbGl6ZSgpLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGlkOiB0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgICBraW5kOiB0LmtpbmQsXG4gICAgICAgIHRpbWVzdGFtcDogamUodC5zdGFydFRpbWUpLFxuICAgICAgICBkdXJhdGlvbjogamUodC5kdXJhdGlvbiksXG4gICAgICAgIGF0dHJpYnV0ZXM6IHQuYXR0cmlidXRlcyxcbiAgICAgICAgc3RhdHVzOiB0LnN0YXR1cyxcbiAgICAgICAgZXZlbnRzOiB0LmV2ZW50cyxcbiAgICAgICAgbGlua3M6IHQubGlua3NcbiAgICAgIH07XG4gICAgfSwgci5wcm90b3R5cGUuX3NlbmRTcGFucyA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICAgIHZhciBuLCBvO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICh2YXIgaSA9IEh0KHQpLCBhJDEgPSBpLm5leHQoKTsgIWEkMS5kb25lOyBhJDEgPSBpLm5leHQoKSkge1xuICAgICAgICAgIHZhciBzID0gYSQxLnZhbHVlO1xuICAgICAgICAgIGNvbnNvbGUuZGlyKHRoaXMuX2V4cG9ydEluZm8ocyksIHsgZGVwdGg6IDMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGwpIHtcbiAgICAgICAgbiA9IHsgZXJyb3I6IGwgfTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYSQxICYmICFhJDEuZG9uZSAmJiAobyA9IGkucmV0dXJuKSAmJiBvLmNhbGwoaSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKG4pIHRocm93IG4uZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlKVxuICAgICAgICByZXR1cm4gZSh7IGNvZGU6IGEuU1VDQ0VTUyB9KTtcbiAgICB9LCByO1xuICB9KSgpXG4pLCBRdCA9IGZ1bmN0aW9uKHIsIHQsIGUsIG4pIHtcbiAgZnVuY3Rpb24gbyhpKSB7XG4gICAgcmV0dXJuIGkgaW5zdGFuY2VvZiBlID8gaSA6IG5ldyBlKGZ1bmN0aW9uKGEpIHtcbiAgICAgIGEoaSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbihpLCBhKSB7XG4gICAgZnVuY3Rpb24gcyhwKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KG4ubmV4dChwKSk7XG4gICAgICB9IGNhdGNoIChjKSB7XG4gICAgICAgIGEoYyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGwocCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShuLnRocm93KHApKTtcbiAgICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgICAgYShjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShwKSB7XG4gICAgICBwLmRvbmUgPyBpKHAudmFsdWUpIDogbyhwLnZhbHVlKS50aGVuKHMsIGwpO1xuICAgIH1cbiAgICB1KChuID0gbi5hcHBseShyLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgWHQgPSBmdW5jdGlvbihyLCB0KSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKGlbMF0gJiAxKSB0aHJvdyBpWzFdO1xuICAgIHJldHVybiBpWzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBuLCBvLCBpLCBhO1xuICByZXR1cm4gYSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoYVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBhO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24ocCkge1xuICAgICAgcmV0dXJuIGwoW3UsIHBdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGwodSkge1xuICAgIGlmIChuKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKG4gPSAxLCBvICYmIChpID0gdVswXSAmIDIgPyBvLnJldHVybiA6IHVbMF0gPyBvLnRocm93IHx8ICgoaSA9IG8ucmV0dXJuKSAmJiBpLmNhbGwobyksIDApIDogby5uZXh0KSAmJiAhKGkgPSBpLmNhbGwobywgdVsxXSkpLmRvbmUpIHJldHVybiBpO1xuICAgICAgc3dpdGNoIChvID0gMCwgaSAmJiAodSA9IFt1WzBdICYgMiwgaS52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGkgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbyA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAoaSA9IGUudHJ5cywgIShpID0gaS5sZW5ndGggPiAwICYmIGlbaS5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghaSB8fCB1WzFdID4gaVswXSAmJiB1WzFdIDwgaVszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCBpWzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gaVsxXSwgaSA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGkgJiYgZS5sYWJlbCA8IGlbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSBpWzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSB0LmNhbGwociwgZSk7XG4gICAgfSBjYXRjaCAocCkge1xuICAgICAgdSA9IFs2LCBwXSwgbyA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG4gPSBpID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICB9XG59LCByZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0KSB7XG4gICAgICB0aGlzLl9leHBvcnRlciA9IHQsIHRoaXMuX3NodXRkb3duT25jZSA9IG5ldyBmdCh0aGlzLl9zaHV0ZG93biwgdGhpcyksIHRoaXMuX3VucmVzb2x2ZWRFeHBvcnRzID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmZvcmNlRmx1c2ggPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBRdCh0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBYdCh0aGlzLCBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgc3dpdGNoICh0LmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0aGlzLl91bnJlc29sdmVkRXhwb3J0cykpXTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHQuc2VudCgpLCB0aGlzLl9leHBvcnRlci5mb3JjZUZsdXNoID8gWzQsIHRoaXMuX2V4cG9ydGVyLmZvcmNlRmx1c2goKV0gOiBbMywgM107XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHQuc2VudCgpLCB0LmxhYmVsID0gMztcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCByLnByb3RvdHlwZS5vblN0YXJ0ID0gZnVuY3Rpb24odCwgZSkge1xuICAgIH0sIHIucHJvdG90eXBlLm9uRW5kID0gZnVuY3Rpb24odCkge1xuICAgICAgdmFyIGUgPSB0aGlzLCBuLCBvO1xuICAgICAgaWYgKCF0aGlzLl9zaHV0ZG93bk9uY2UuaXNDYWxsZWQgJiYgKHQuc3BhbkNvbnRleHQoKS50cmFjZUZsYWdzICYgdHIuU0FNUExFRCkgIT09IDApIHtcbiAgICAgICAgdmFyIGkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICByZXR1cm4gT3QkMS5fZXhwb3J0KGUuX2V4cG9ydGVyLCBbdF0pLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgICAgICAgdmFyIGw7XG4gICAgICAgICAgICBzLmNvZGUgIT09IGEuU1VDQ0VTUyAmJiBFcigobCA9IHMuZXJyb3IpICE9PSBudWxsICYmIGwgIT09IHZvaWQgMCA/IGwgOiBuZXcgRXJyb3IoXCJTaW1wbGVTcGFuUHJvY2Vzc29yOiBzcGFuIGV4cG9ydCBmYWlsZWQgKHN0YXR1cyBcIiArIHMgKyBcIilcIikpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIEVyKHMpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpZiAodC5yZXNvdXJjZS5hc3luY0F0dHJpYnV0ZXNQZW5kaW5nKSB7XG4gICAgICAgICAgdmFyIGEkMSA9IChvID0gKG4gPSB0LnJlc291cmNlKS53YWl0Rm9yQXN5bmNBdHRyaWJ1dGVzKSA9PT0gbnVsbCB8fCBvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvLmNhbGwobikudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBhJDEgIT0gbnVsbCAmJiBlLl91bnJlc29sdmVkRXhwb3J0cy5kZWxldGUoYSQxKSwgaSgpO1xuICAgICAgICAgIH0sIGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgICAgIHJldHVybiBFcihzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhJDEgIT0gbnVsbCAmJiB0aGlzLl91bnJlc29sdmVkRXhwb3J0cy5hZGQoYSQxKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgaSgpO1xuICAgICAgfVxuICAgIH0sIHIucHJvdG90eXBlLnNodXRkb3duID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2h1dGRvd25PbmNlLmNhbGwoKTtcbiAgICB9LCByLnByb3RvdHlwZS5fc2h1dGRvd24gPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9leHBvcnRlci5zaHV0ZG93bigpO1xuICAgIH0sIHI7XG4gIH0pKClcbik7XG5cbmV4cG9ydCB7IEIsIER0IGFzIEQsIEd0IGFzIEcsIFAsIFIsIFMsIFcsIGVlIGFzIGUsIGcsIGp0IGFzIGosIHJlIGFzIHIsIHRlIGFzIHQsIHh0IGFzIHgsIHp0IGFzIHogfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBTSxLQUFLQyxHQUFJLEtBQUtDLElBQUksS0FBS0MsSUFBSSxLQUFLQyxJQUFJLEtBQUtDLElBQUksS0FBS0MsVUFBVTtBQUN6RixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxNQUFNQyxH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QkFBT1YsR0FBSyxRQUFRTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVNJLEdBQUc7QUFDckQsZ0JBQUloQjtBQUNKLFlBQUFnQixFQUFFLFNBQVNQLEVBQUUsV0FBV2xCLEdBQUlTLElBQUlnQixFQUFFLFdBQVcsUUFBUWhCLE1BQU0sU0FBU0EsSUFBSSxJQUFJLE1BQU0scURBQXFEZ0IsSUFBSSxHQUFHLENBQUM7QUFBQSxVQUNqSixDQUFDLEVBQUUsTUFBTSxTQUFTQSxHQUFHO0FBQ25CLFlBQUF6QixFQUFHeUIsQ0FBQztBQUFBLFVBQ04sQ0FBQztBQUFBLFFBQ0g7QUFDQSxZQUFJLEVBQUUsU0FBUyx3QkFBd0I7QUFDckMsY0FBSVQsS0FBT00sS0FBSyxJQUFJLEVBQUUsVUFBVSw0QkFBNEIsUUFBUUEsTUFBTSxTQUFTLFNBQVNBLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxXQUFXO0FBQ3BILG1CQUFPTixLQUFPLFFBQVFLLEVBQUUsbUJBQW1CLE9BQU9MLENBQUcsR0FBR1EsRUFBRTtBQUFBLFVBQzVELEdBQUcsU0FBU0MsR0FBRztBQUNiLG1CQUFPekIsRUFBR3lCLENBQUM7QUFBQSxVQUNiLENBQUM7QUFDRCxVQUFBVCxLQUFPLFFBQVEsS0FBSyxtQkFBbUIsSUFBSUEsQ0FBRztBQUFBLFFBQ2hEO0FBQ0UsVUFBQVEsRUFBRTtBQUFBLE1BQ047QUFBQSxJQUNGLEdBQUd0QyxFQUFFLFVBQVUsV0FBVyxXQUFXO0FBQ25DLGFBQU8sS0FBSyxjQUFjLEtBQUs7QUFBQSxJQUNqQyxHQUFHQSxFQUFFLFVBQVUsWUFBWSxXQUFXO0FBQ3BDLGFBQU8sS0FBSyxVQUFVLFNBQVM7QUFBQSxJQUNqQyxHQUFHQTtBQUFBLEVBQ0wsR0FBRztBQUFBOyIsCiAgIm5hbWVzIjogWyJ0ciIsICJqZSQxIiwgInhlIiwgIkVzIiwgImF0IiwgIlBlIiwgIkxuIiwgIlJzIiwgInIiLCAiamUiLCAieV8iLCAicWUiLCAiWGUiLCAiUiQyIiwgInBfIiwgIk8kMSIsICJOXyIsICJiXyIsICJOQSIsICJNQSIsICJyXyIsICJlQSIsICJFciIsICJPZSIsICJ2ZSIsICJWZSIsICJaciIsICJmdCIsICJTZSIsICJudCIsICJRciIsICJsIiwgImNlIiwgImQiLCAicCIsICJhciIsICJPdCQxIiwgInUiLCAiYSQxIiwgIlIkMSIsICJhIiwgInd0IiwgIkQiLCAiZSIsICJvIiwgIkN0IiwgImkiLCAicyIsICJ4dCIsICJyJDEiLCAiYyIsICJQIiwgImciLCAiQiIsICJXIiwgIkUiLCAiWSIsICJwJDEiLCAiZiIsICJCdCIsICJEdCIsICJHdCIsICJxIiwgIkMiLCAibCQxIiwgIkciLCAiYiIsICJLIiwgImt0IiwgIkh0IiwgIlF0Il0KfQo=
|