@getopenpay/openpay-js-react 0.3.14-alpha.8f138b8 → 0.3.15-alpha.72b791a

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.
Files changed (29) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{Resource-BUbQYMo6-gNl9IB1G.js → Resource-D8TOlEjr-B-qv3FcJ.js} +3 -3
  3. package/dist/SimpleSpanProcessor-B7rEuBRv-a4Fxxnjx.js +957 -0
  4. package/dist/detect-resources-CoWzCtyh-BLGcd0Bf.js +854 -0
  5. package/dist/diag-api-CS_j-083-gvfeT9eV.js +6 -0
  6. package/dist/{index-3bEWNO5t-BsGbK2jn.js → index-BD6wDwRi-Dq3qAEFs.js} +12 -12
  7. package/dist/{index-Dt81UMoA-pXGGrD8J.js → index-Cxxq_gPU-COXr17dC.js} +2 -2
  8. package/dist/{index-CIyvfLCj-DCd9pJyd.js → index-DDiS5N1--u9xRswKP.js} +24 -24
  9. package/dist/index-DPmL7fu_.js +8066 -0
  10. package/dist/{index-CUozohep-CbkzYFm9.js → index-DTEkiSSn-UXUQHBNW.js} +113 -113
  11. package/dist/index-FGSn80Fq-z4zEb9Y7.js +830 -0
  12. package/dist/{index-2ucNr53i-DQQtLs7t.js → index-HUtuiK3r-DqYCnW2e.js} +5 -5
  13. package/dist/{index-CPQpoLe--DSQasqi3.js → index-Unpme7IJ-z9dB3jf6.js} +2 -2
  14. package/dist/{index-DR3rTKvi-CtZOD_q9.js → index-Z7u_I0fv-_P03fugB.js} +8 -8
  15. package/dist/{index-iyB-OjaA-Da9gb31C.js → index-lSYhTdYC-X3hFMPTO.js} +24 -24
  16. package/dist/index.d.ts +26 -10
  17. package/dist/index.js +9 -8
  18. package/dist/{metrics-api-DPGie95w-D7qa5Q-O.js → metrics-api-CIq6mBFF-BEu-IBxj.js} +9 -9
  19. package/dist/{sdk-info-CRtcMnZT-G_nRMPsR.js → sdk-info-wum682QL-D0-wDuPw.js} +15 -15
  20. package/dist/url-BVSq8L4l-DHQsJ0N2.js +797 -0
  21. package/dist/{utils-Y3X4Ct16-Bx8LpWan.js → utils-DTpWOQzu-CE1NSUxN.js} +2 -2
  22. package/dist/{utils-BHpfmVSb-DBohbmC-.js → utils-p0tJrA3b-BwnFKyIA.js} +4 -4
  23. package/package.json +1 -1
  24. package/dist/SimpleSpanProcessor-Cam2lJfG-eMP5ue6i.js +0 -957
  25. package/dist/detect-resources-CDf272jb-BKXOZPGL.js +0 -854
  26. package/dist/diag-api-CAnpZ_mh-BicaJ-TD.js +0 -6
  27. package/dist/index-CcyNbQd8-Bw57HxYb.js +0 -830
  28. package/dist/index-DJF-pWKT.js +0 -7647
  29. package/dist/url-Co5oXKmU-Y6GbTOtJ.js +0 -797
@@ -1,8 +1,8 @@
1
- import { k as a } from "./metrics-api-DPGie95w-D7qa5Q-O.js";
2
- import { P as d } from "./index-DJF-pWKT.js";
3
- import { S as u } from "./utils-BHpfmVSb-DBohbmC-.js";
4
- import { Y as b, H as w, F as E, q as F } from "./utils-BHpfmVSb-DBohbmC-.js";
5
- import { r as c } from "./diag-api-CAnpZ_mh-BicaJ-TD.js";
1
+ import { k as a } from "./metrics-api-CIq6mBFF-BEu-IBxj.js";
2
+ import { D as d } from "./index-DPmL7fu_.js";
3
+ import { S as u } from "./utils-p0tJrA3b-BwnFKyIA.js";
4
+ import { Y as b, H as w, F as D, q as E } from "./utils-p0tJrA3b-BwnFKyIA.js";
5
+ import { r as c } from "./diag-api-CS_j-083-gvfeT9eV.js";
6
6
  function f(e, t, r, i) {
7
7
  for (var n = 0, s = e.length; n < s; n++) {
8
8
  var o = e[n];
@@ -46,7 +46,7 @@ export {
46
46
  M as InstrumentationNodeModuleFile,
47
47
  w as isWrapped,
48
48
  P as registerInstrumentations,
49
- E as safeExecuteInTheMiddle,
50
- F as safeExecuteInTheMiddleAsync
49
+ D as safeExecuteInTheMiddle,
50
+ E as safeExecuteInTheMiddleAsync
51
51
  };
52
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtRFIzclRLdmktIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGsgfSBmcm9tICcuL21ldHJpY3MtYXBpLURQR2llOTV3LSF+ezAwZH1+LmpzJztcbmltcG9ydCB7IFAgYXMgUGUgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcbmltcG9ydCB7IFMgfSBmcm9tICcuL3V0aWxzLUJIcGZtVlNiLSF+ezAwOX1+LmpzJztcbmV4cG9ydCB7IFkgYXMgSW5zdHJ1bWVudGF0aW9uQmFzZSwgSCBhcyBpc1dyYXBwZWQsIEYgYXMgc2FmZUV4ZWN1dGVJblRoZU1pZGRsZSwgcSBhcyBzYWZlRXhlY3V0ZUluVGhlTWlkZGxlQXN5bmMgfSBmcm9tICcuL3V0aWxzLUJIcGZtVlNiLSF+ezAwOX1+LmpzJztcbmltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUNBbnBaX21oLSF+ezAwN31+LmpzJztcblxuZnVuY3Rpb24gbChlLCByLCB0LCBvKSB7XG4gIGZvciAodmFyIG4gPSAwLCBhID0gZS5sZW5ndGg7IG4gPCBhOyBuKyspIHtcbiAgICB2YXIgaSA9IGVbbl07XG4gICAgciAmJiBpLnNldFRyYWNlclByb3ZpZGVyKHIpLCB0ICYmIGkuc2V0TWV0ZXJQcm92aWRlcih0KSwgbyAmJiBpLnNldExvZ2dlclByb3ZpZGVyICYmIGkuc2V0TG9nZ2VyUHJvdmlkZXIobyksIGkuZ2V0Q29uZmlnKCkuZW5hYmxlZCB8fCBpLmVuYWJsZSgpO1xuICB9XG59XG5mdW5jdGlvbiBjKGUpIHtcbiAgZS5mb3JFYWNoKGZ1bmN0aW9uKHIpIHtcbiAgICByZXR1cm4gci5kaXNhYmxlKCk7XG4gIH0pO1xufVxuZnVuY3Rpb24gSShlKSB7XG4gIHZhciByLCB0LCBvID0gZS50cmFjZXJQcm92aWRlciB8fCBQZS5nZXRUcmFjZXJQcm92aWRlcigpLCBuID0gZS5tZXRlclByb3ZpZGVyIHx8IGsuZ2V0TWV0ZXJQcm92aWRlcigpLCBhID0gZS5sb2dnZXJQcm92aWRlciB8fCBTLmdldExvZ2dlclByb3ZpZGVyKCksIGkgPSAodCA9IChyID0gZS5pbnN0cnVtZW50YXRpb25zKSA9PT0gbnVsbCB8fCByID09PSB2b2lkIDAgPyB2b2lkIDAgOiByLmZsYXQoKSkgIT09IG51bGwgJiYgdCAhPT0gdm9pZCAwID8gdCA6IFtdO1xuICByZXR1cm4gbChpLCBvLCBuLCBhKSwgZnVuY3Rpb24oKSB7XG4gICAgYyhpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG0oZSkge1xuICByZXR1cm4gci53YXJuKFwiUGF0aCBub3JtYWxpemF0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBwbGF0Zm9ybS4gVG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcsIGVuc3VyZSBubyBub2RlLXNwZWNpZmljIGluc3RydW1lbnRhdGlvbnMgYXJlIGxvYWRlZCwgYW5kIG5vZGUtc3BlY2lmaWMgdHlwZXMgKGUuZy4gSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUpLCBhcmUgbm90IHVzZWQgaW4gYSBicm93c2VyIGNvbnRleHQpXCIpLCBlO1xufVxudmFyIFAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUociwgdCwgbywgbiwgYSkge1xuICAgICAgdGhpcy5uYW1lID0gciwgdGhpcy5zdXBwb3J0ZWRWZXJzaW9ucyA9IHQsIHRoaXMucGF0Y2ggPSBvLCB0aGlzLnVucGF0Y2ggPSBuLCB0aGlzLmZpbGVzID0gYSB8fCBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0oKVxuKSwgTSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZShyLCB0LCBvLCBuKSB7XG4gICAgICB0aGlzLnN1cHBvcnRlZFZlcnNpb25zID0gdCwgdGhpcy5wYXRjaCA9IG8sIHRoaXMudW5wYXRjaCA9IG4sIHRoaXMubmFtZSA9IG0ocik7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KClcbik7XG5cbmV4cG9ydCB7IFAgYXMgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24sIE0gYXMgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUsIEkgYXMgcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsU0FBVTtBQUN4QixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBYyxLQUFMQyxHQUErQixLQUFMQyxHQUFxQixLQUFMQyxHQUFrQyxLQUFMQyxTQUF3QztBQUN4SCxTQUFTLEtBQUFDLFNBQVM7QUFFbEIsU0FBU0MsRUFBRSxHQUFHRCxHQUFHRSxHQUFHQyxHQUFHO0FBQ3JCLFdBQVMsSUFBSSxHQUFHQyxJQUFJLEVBQUUsUUFBUSxJQUFJQSxHQUFHLEtBQUs7QUFDeEMsUUFBSUMsSUFBSSxFQUFFLENBQUM7QUFDWCxJQUFBTCxLQUFLSyxFQUFFLGtCQUFrQkwsQ0FBQyxHQUFHRSxLQUFLRyxFQUFFLGlCQUFpQkgsQ0FBQyxHQUFHQyxLQUFLRSxFQUFFLHFCQUFxQkEsRUFBRSxrQkFBa0JGLENBQUMsR0FBR0UsRUFBRSxVQUFVLEVBQUUsV0FBV0EsRUFBRSxPQUFPO0FBQUEsRUFDako7QUFDRjtBQUNBLFNBQVNDLEVBQUUsR0FBRztBQUNaLElBQUUsUUFBUSxTQUFTTixHQUFHO0FBQ3BCLFdBQU9BLEVBQUUsUUFBUTtBQUFBLEVBQ25CLENBQUM7QUFDSDtBQUNBLFNBQVNPLEVBQUUsR0FBRztBQUNaLE1BQUlQLEdBQUdFLEdBQUdDLElBQUksRUFBRSxrQkFBa0JULEVBQUcsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLGlCQUFpQkQsRUFBRSxpQkFBaUIsR0FBR1csSUFBSSxFQUFFLGtCQUFrQlQsRUFBRSxrQkFBa0IsR0FBR1UsS0FBS0gsS0FBS0YsSUFBSSxFQUFFLHNCQUFzQixRQUFRQSxNQUFNLFNBQVMsU0FBU0EsRUFBRSxLQUFLLE9BQU8sUUFBUUUsTUFBTSxTQUFTQSxJQUFJLENBQUM7QUFDdFEsU0FBT0QsRUFBRUksR0FBR0YsR0FBRyxHQUFHQyxDQUFDLEdBQUcsV0FBVztBQUMvQixJQUFBRSxFQUFFRCxDQUFDO0FBQUEsRUFDTDtBQUNGO0FBQ0EsU0FBUyxFQUFFLEdBQUc7QUFDWixTQUFPTCxFQUFFLEtBQUsseU9BQXlPLEdBQUc7QUFDNVA7QUFDQSxJQUFJUTtBQUFBO0FBQUEsRUFFYywyQkFBVztBQUN6QixhQUFTLEVBQUVSLEdBQUdFLEdBQUdDLEdBQUcsR0FBR0MsR0FBRztBQUN4QixXQUFLLE9BQU9KLEdBQUcsS0FBSyxvQkFBb0JFLEdBQUcsS0FBSyxRQUFRQyxHQUFHLEtBQUssVUFBVSxHQUFHLEtBQUssUUFBUUMsS0FBSyxDQUFDO0FBQUEsSUFDbEc7QUFDQSxXQUFPO0FBQUEsRUFDVCxFQUFFO0FBQUEsR0FDRDtBQUFBO0FBQUEsRUFFZSwyQkFBVztBQUN6QixhQUFTLEVBQUVKLEdBQUdFLEdBQUdDLEdBQUcsR0FBRztBQUNyQixXQUFLLG9CQUFvQkQsR0FBRyxLQUFLLFFBQVFDLEdBQUcsS0FBSyxVQUFVLEdBQUcsS0FBSyxPQUFPLEVBQUVILENBQUM7QUFBQSxJQUMvRTtBQUNBLFdBQU87QUFBQSxFQUNULEVBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsiayIsICJQZSIsICJTIiwgIlkiLCAiSCIsICJGIiwgInEiLCAiciIsICJsIiwgInQiLCAibyIsICJhIiwgImkiLCAiYyIsICJJIiwgIlAiXQp9Cg==
52
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtWjd1X0kwZnYtIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGsgfSBmcm9tICcuL21ldHJpY3MtYXBpLUNJcTZtQkZGLSF+ezAwZH1+LmpzJztcbmltcG9ydCB7IEQgYXMgRGUgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcbmltcG9ydCB7IFMgfSBmcm9tICcuL3V0aWxzLXAwdEpyQTNiLSF+ezAwOX1+LmpzJztcbmV4cG9ydCB7IFkgYXMgSW5zdHJ1bWVudGF0aW9uQmFzZSwgSCBhcyBpc1dyYXBwZWQsIEYgYXMgc2FmZUV4ZWN1dGVJblRoZU1pZGRsZSwgcSBhcyBzYWZlRXhlY3V0ZUluVGhlTWlkZGxlQXN5bmMgfSBmcm9tICcuL3V0aWxzLXAwdEpyQTNiLSF+ezAwOX1+LmpzJztcbmltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUNTX2otMDgzLSF+ezAwN31+LmpzJztcblxuZnVuY3Rpb24gbChlLCByLCB0LCBvKSB7XG4gIGZvciAodmFyIG4gPSAwLCBhID0gZS5sZW5ndGg7IG4gPCBhOyBuKyspIHtcbiAgICB2YXIgaSA9IGVbbl07XG4gICAgciAmJiBpLnNldFRyYWNlclByb3ZpZGVyKHIpLCB0ICYmIGkuc2V0TWV0ZXJQcm92aWRlcih0KSwgbyAmJiBpLnNldExvZ2dlclByb3ZpZGVyICYmIGkuc2V0TG9nZ2VyUHJvdmlkZXIobyksIGkuZ2V0Q29uZmlnKCkuZW5hYmxlZCB8fCBpLmVuYWJsZSgpO1xuICB9XG59XG5mdW5jdGlvbiBjKGUpIHtcbiAgZS5mb3JFYWNoKGZ1bmN0aW9uKHIpIHtcbiAgICByZXR1cm4gci5kaXNhYmxlKCk7XG4gIH0pO1xufVxuZnVuY3Rpb24gSShlKSB7XG4gIHZhciByLCB0LCBvID0gZS50cmFjZXJQcm92aWRlciB8fCBEZS5nZXRUcmFjZXJQcm92aWRlcigpLCBuID0gZS5tZXRlclByb3ZpZGVyIHx8IGsuZ2V0TWV0ZXJQcm92aWRlcigpLCBhID0gZS5sb2dnZXJQcm92aWRlciB8fCBTLmdldExvZ2dlclByb3ZpZGVyKCksIGkgPSAodCA9IChyID0gZS5pbnN0cnVtZW50YXRpb25zKSA9PT0gbnVsbCB8fCByID09PSB2b2lkIDAgPyB2b2lkIDAgOiByLmZsYXQoKSkgIT09IG51bGwgJiYgdCAhPT0gdm9pZCAwID8gdCA6IFtdO1xuICByZXR1cm4gbChpLCBvLCBuLCBhKSwgZnVuY3Rpb24oKSB7XG4gICAgYyhpKTtcbiAgfTtcbn1cbmZ1bmN0aW9uIG0oZSkge1xuICByZXR1cm4gci53YXJuKFwiUGF0aCBub3JtYWxpemF0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBwbGF0Zm9ybS4gVG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcsIGVuc3VyZSBubyBub2RlLXNwZWNpZmljIGluc3RydW1lbnRhdGlvbnMgYXJlIGxvYWRlZCwgYW5kIG5vZGUtc3BlY2lmaWMgdHlwZXMgKGUuZy4gSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUpLCBhcmUgbm90IHVzZWQgaW4gYSBicm93c2VyIGNvbnRleHQpXCIpLCBlO1xufVxudmFyIFAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIGUociwgdCwgbywgbiwgYSkge1xuICAgICAgdGhpcy5uYW1lID0gciwgdGhpcy5zdXBwb3J0ZWRWZXJzaW9ucyA9IHQsIHRoaXMucGF0Y2ggPSBvLCB0aGlzLnVucGF0Y2ggPSBuLCB0aGlzLmZpbGVzID0gYSB8fCBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0oKVxuKSwgTSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZShyLCB0LCBvLCBuKSB7XG4gICAgICB0aGlzLnN1cHBvcnRlZFZlcnNpb25zID0gdCwgdGhpcy5wYXRjaCA9IG8sIHRoaXMudW5wYXRjaCA9IG4sIHRoaXMubmFtZSA9IG0ocik7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KClcbik7XG5cbmV4cG9ydCB7IFAgYXMgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZURlZmluaXRpb24sIE0gYXMgSW5zdHJ1bWVudGF0aW9uTm9kZU1vZHVsZUZpbGUsIEkgYXMgcmVnaXN0ZXJJbnN0cnVtZW50YXRpb25zIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsU0FBVTtBQUN4QixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBYyxLQUFMQyxHQUErQixLQUFMQyxHQUFxQixLQUFMQyxHQUFrQyxLQUFMQyxTQUF3QztBQUN4SCxTQUFTLEtBQUFDLFNBQVM7QUFFbEIsU0FBU0MsRUFBRSxHQUFHRCxHQUFHRSxHQUFHQyxHQUFHO0FBQ3JCLFdBQVMsSUFBSSxHQUFHQyxJQUFJLEVBQUUsUUFBUSxJQUFJQSxHQUFHLEtBQUs7QUFDeEMsUUFBSUMsSUFBSSxFQUFFLENBQUM7QUFDWCxJQUFBTCxLQUFLSyxFQUFFLGtCQUFrQkwsQ0FBQyxHQUFHRSxLQUFLRyxFQUFFLGlCQUFpQkgsQ0FBQyxHQUFHQyxLQUFLRSxFQUFFLHFCQUFxQkEsRUFBRSxrQkFBa0JGLENBQUMsR0FBR0UsRUFBRSxVQUFVLEVBQUUsV0FBV0EsRUFBRSxPQUFPO0FBQUEsRUFDako7QUFDRjtBQUNBLFNBQVNDLEVBQUUsR0FBRztBQUNaLElBQUUsUUFBUSxTQUFTTixHQUFHO0FBQ3BCLFdBQU9BLEVBQUUsUUFBUTtBQUFBLEVBQ25CLENBQUM7QUFDSDtBQUNBLFNBQVNPLEVBQUUsR0FBRztBQUNaLE1BQUlQLEdBQUdFLEdBQUdDLElBQUksRUFBRSxrQkFBa0JULEVBQUcsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLGlCQUFpQkQsRUFBRSxpQkFBaUIsR0FBR1csSUFBSSxFQUFFLGtCQUFrQlQsRUFBRSxrQkFBa0IsR0FBR1UsS0FBS0gsS0FBS0YsSUFBSSxFQUFFLHNCQUFzQixRQUFRQSxNQUFNLFNBQVMsU0FBU0EsRUFBRSxLQUFLLE9BQU8sUUFBUUUsTUFBTSxTQUFTQSxJQUFJLENBQUM7QUFDdFEsU0FBT0QsRUFBRUksR0FBR0YsR0FBRyxHQUFHQyxDQUFDLEdBQUcsV0FBVztBQUMvQixJQUFBRSxFQUFFRCxDQUFDO0FBQUEsRUFDTDtBQUNGO0FBQ0EsU0FBUyxFQUFFLEdBQUc7QUFDWixTQUFPTCxFQUFFLEtBQUsseU9BQXlPLEdBQUc7QUFDNVA7QUFDQSxJQUFJUTtBQUFBO0FBQUEsRUFFYywyQkFBVztBQUN6QixhQUFTLEVBQUVSLEdBQUdFLEdBQUdDLEdBQUcsR0FBR0MsR0FBRztBQUN4QixXQUFLLE9BQU9KLEdBQUcsS0FBSyxvQkFBb0JFLEdBQUcsS0FBSyxRQUFRQyxHQUFHLEtBQUssVUFBVSxHQUFHLEtBQUssUUFBUUMsS0FBSyxDQUFDO0FBQUEsSUFDbEc7QUFDQSxXQUFPO0FBQUEsRUFDVCxFQUFFO0FBQUEsR0FDRDtBQUFBO0FBQUEsRUFFZSwyQkFBVztBQUN6QixhQUFTLEVBQUVKLEdBQUdFLEdBQUdDLEdBQUcsR0FBRztBQUNyQixXQUFLLG9CQUFvQkQsR0FBRyxLQUFLLFFBQVFDLEdBQUcsS0FBSyxVQUFVLEdBQUcsS0FBSyxPQUFPLEVBQUVILENBQUM7QUFBQSxJQUMvRTtBQUNBLFdBQU87QUFBQSxFQUNULEVBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsiayIsICJEZSIsICJTIiwgIlkiLCAiSCIsICJGIiwgInEiLCAiciIsICJsIiwgInQiLCAibyIsICJhIiwgImkiLCAiYyIsICJJIiwgIlAiXQp9Cg==
@@ -1,9 +1,9 @@
1
- import { r as D } from "./diag-api-CAnpZ_mh-BicaJ-TD.js";
2
- import { j as M, q as B, Z as W, z as X, y as v, a as Z, Q as G, x as I, p as C, S as Q, O as $ } from "./url-Co5oXKmU-Y6GbTOtJ.js";
3
- import { F as Y, H as J, Y as K } from "./utils-BHpfmVSb-DBohbmC-.js";
1
+ import { r as z } from "./diag-api-CS_j-083-gvfeT9eV.js";
2
+ import { j as M, q as B, Z as X, z as W, y as v, a as Z, Q as G, x as I, p as C, S as Q, O as $ } from "./url-BVSq8L4l-DHQsJ0N2.js";
3
+ import { F as Y, H as J, Y as K } from "./utils-p0tJrA3b-BwnFKyIA.js";
4
4
  import { l as b } from "./utils-BGeftTvk-CchVJ54o.js";
5
- import { T as E, x as P, R as k, s as V, b as tt } from "./utils-Y3X4Ct16-Bx8LpWan.js";
6
- import { P as x, C as h, q as et } from "./index-DJF-pWKT.js";
5
+ import { T as E, x as k, R as x, s as V, b as tt } from "./utils-DTpWOQzu-CE1NSUxN.js";
6
+ import { D as P, N as h, X as et } from "./index-DPmL7fu_.js";
7
7
  var g;
8
8
  (function(o) {
9
9
  o.COMPONENT = "component", o.HTTP_ERROR_NAME = "http.error_name", o.HTTP_STATUS_TEXT = "http.status_text";
@@ -118,7 +118,7 @@ var nt = function(o, i, t, n) {
118
118
  }
119
119
  }
120
120
  return e;
121
- }, N = D.createComponentLogger({
121
+ }, j = z.createComponentLogger({
122
122
  namespace: "@opentelemetry/opentelemetry-instrumentation-fetch/utils"
123
123
  });
124
124
  function st() {
@@ -142,7 +142,7 @@ function st() {
142
142
  }
143
143
  function at(o) {
144
144
  if (!o.pipeThrough)
145
- return N.warn("Platform has ReadableStream but not pipeThrough!"), {
145
+ return j.warn("Platform has ReadableStream but not pipeThrough!"), {
146
146
  body: o,
147
147
  length: Promise.resolve(void 0)
148
148
  };
@@ -189,7 +189,7 @@ function ut(o) {
189
189
  return S(o.toString());
190
190
  if (typeof o == "string")
191
191
  return S(o);
192
- N.warn("unknown body type");
192
+ j.warn("unknown body type");
193
193
  }
194
194
  var ct = new TextEncoder();
195
195
  function S(o) {
@@ -250,7 +250,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
250
250
  if (arguments.length === 2) for (var n = 0, r = i.length, e; n < r; n++)
251
251
  (e || !(n in i)) && (e || (e = Array.prototype.slice.call(i, 0, n)), e[n] = i[n]);
252
252
  return o.concat(e || Array.prototype.slice.call(i));
253
- }, _, dt = 300, j = typeof process == "object" && ((_ = process.release) === null || _ === void 0 ? void 0 : _.name) === "node", St = (
253
+ }, _, dt = 300, N = typeof process == "object" && ((_ = process.release) === null || _ === void 0 ? void 0 : _.name) === "node", St = (
254
254
  /** @class */
255
255
  function(o) {
256
256
  lt(i, o);
@@ -263,11 +263,11 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
263
263
  }, i.prototype._addChildSpan = function(t, n) {
264
264
  var r = this.tracer.startSpan("CORS Preflight", {
265
265
  startTime: n[E.FETCH_START]
266
- }, x.setSpan(h.active(), t));
267
- P(r, n, this.getConfig().ignoreNetworkEvents), r.end(n[E.RESPONSE_END]);
266
+ }, P.setSpan(h.active(), t));
267
+ k(r, n, this.getConfig().ignoreNetworkEvents), r.end(n[E.RESPONSE_END]);
268
268
  }, i.prototype._addFinalSpanAttributes = function(t, n) {
269
- var r = k(n.url);
270
- t.setAttribute(M, n.status), n.statusText != null && t.setAttribute(g.HTTP_STATUS_TEXT, n.statusText), t.setAttribute(B, r.host), t.setAttribute(W, r.protocol.replace(":", "")), typeof navigator < "u" && t.setAttribute(X, navigator.userAgent);
269
+ var r = x(n.url);
270
+ t.setAttribute(M, n.status), n.statusText != null && t.setAttribute(g.HTTP_STATUS_TEXT, n.statusText), t.setAttribute(B, r.host), t.setAttribute(X, r.protocol.replace(":", "")), typeof navigator < "u" && t.setAttribute(W, navigator.userAgent);
271
271
  }, i.prototype._addHeaders = function(t, n) {
272
272
  if (!V(n, this.getConfig().propagateTraceHeaderCorsUrls)) {
273
273
  var r = {};
@@ -321,7 +321,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
321
321
  var a = s.mainRequest;
322
322
  this._markResourceAsUsed(a);
323
323
  var c = s.corsPreFlightRequest;
324
- c && (this._addChildSpan(t, c), this._markResourceAsUsed(c)), P(t, a, this.getConfig().ignoreNetworkEvents);
324
+ c && (this._addChildSpan(t, c), this._markResourceAsUsed(c)), k(t, a, this.getConfig().ignoreNetworkEvents);
325
325
  }
326
326
  }, i.prototype._markResourceAsUsed = function(t) {
327
327
  this._usedResources.add(t);
@@ -338,7 +338,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
338
338
  return function() {
339
339
  for (var e = [], s = 0; s < arguments.length; s++)
340
340
  e[s] = arguments[s];
341
- var a = this, c = k(e[0] instanceof Request ? e[0].url : String(e[0])).href, u = e[0] instanceof Request ? e[0] : e[1] || {}, l = r._createSpan(c, u);
341
+ var a = this, c = x(e[0] instanceof Request ? e[0].url : String(e[0])).href, u = e[0] instanceof Request ? e[0] : e[1] || {}, l = r._createSpan(c, u);
342
342
  if (!l)
343
343
  return n.apply(this, e);
344
344
  var d = r._prepareSpanData(c);
@@ -363,12 +363,12 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
363
363
  }
364
364
  function U(f, p, y) {
365
365
  try {
366
- var F = y.clone(), H = y.clone(), A = F.body;
366
+ var H = y.clone(), q = y.clone(), A = H.body;
367
367
  if (A) {
368
368
  var L = A.getReader(), R = function() {
369
369
  L.read().then(function(m) {
370
- var z = m.done;
371
- z ? w(f, H) : R();
370
+ var D = m.done;
371
+ D ? w(f, q) : R();
372
372
  }, function(m) {
373
373
  T(f, m);
374
374
  });
@@ -380,7 +380,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
380
380
  p(y);
381
381
  }
382
382
  }
383
- function q(f, p, y) {
383
+ function F(f, p, y) {
384
384
  try {
385
385
  T(f, y);
386
386
  } finally {
@@ -388,8 +388,8 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
388
388
  }
389
389
  }
390
390
  return new Promise(function(f, p) {
391
- return h.with(x.setSpan(h.active(), l), function() {
392
- return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(U.bind(a, l, f), q.bind(a, l, p));
391
+ return h.with(P.setSpan(h.active(), l), function() {
392
+ return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(U.bind(a, l, f), F.bind(a, l, p));
393
393
  });
394
394
  });
395
395
  };
@@ -415,17 +415,17 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
415
415
  entryTypes: ["resource"]
416
416
  }), { entries: r, observer: e, startTime: n, spanUrl: t };
417
417
  }, i.prototype.enable = function() {
418
- if (j) {
418
+ if (N) {
419
419
  this._diag.warn("this instrumentation is intended for web usage only, it does not instrument Node.js's fetch()");
420
420
  return;
421
421
  }
422
422
  J(fetch) && (this._unwrap(b, "fetch"), this._diag.debug("removing previous patch for constructor")), this._wrap(b, "fetch", this._patchConstructor());
423
423
  }, i.prototype.disable = function() {
424
- j || (this._unwrap(b, "fetch"), this._usedResources = /* @__PURE__ */ new WeakSet());
424
+ N || (this._unwrap(b, "fetch"), this._usedResources = /* @__PURE__ */ new WeakSet());
425
425
  }, i;
426
426
  }(K)
427
427
  );
428
428
  export {
429
429
  St as FetchInstrumentation
430
430
  };
431
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtaXlCLU9qYUEtIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUNBbnBaX21oLSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGogYXMgakEsIHEgYXMgcUEsIFogYXMgWkEsIHogYXMgekEsIHkgYXMgeV8sIGEgYXMgWmUsIFEgYXMgUUEsIHggYXMgeEEsIHAgYXMgcF8sIFMgYXMgU3IsIE8gfSBmcm9tICcuL3VybC1DbzVvWEttVS0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBGLCBIIGFzIEgkMSwgWSB9IGZyb20gJy4vdXRpbHMtQkhwZm1WU2ItIX57MDA5fX4uanMnO1xuaW1wb3J0IHsgbCB9IGZyb20gJy4vdXRpbHMtQkdlZnRUdmstIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgVCwgeCwgUiwgcywgYiBhcyBiJDEgfSBmcm9tICcuL3V0aWxzLVkzWDRDdDE2LSF+ezAwNX1+LmpzJztcbmltcG9ydCB7IFAgYXMgUGUsIEMgYXMgQ2UsIHEgYXMgcWUgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIHk7XG4oZnVuY3Rpb24oYSkge1xuICBhLkNPTVBPTkVOVCA9IFwiY29tcG9uZW50XCIsIGEuSFRUUF9FUlJPUl9OQU1FID0gXCJodHRwLmVycm9yX25hbWVcIiwgYS5IVFRQX1NUQVRVU19URVhUID0gXCJodHRwLnN0YXR1c190ZXh0XCI7XG59KSh5IHx8ICh5ID0ge30pKTtcbnZhciBuZSA9IGZ1bmN0aW9uKGEsIG8sIGUsIHIpIHtcbiAgZnVuY3Rpb24gbih0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGkpIHtcbiAgICAgIGkodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBpKSB7XG4gICAgZnVuY3Rpb24gcyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KHIubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGYoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGgpIHtcbiAgICAgICAgaShoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogbihjLnZhbHVlKS50aGVuKHMsIGYpO1xuICAgIH1cbiAgICB1KChyID0gci5hcHBseShhLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgYWUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdO1xuICAgIHJldHVybiB0WzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCByLCBuLCB0LCBpO1xuICByZXR1cm4gaSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBpO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuIGYoW3UsIGNdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGYodSkge1xuICAgIGlmIChyKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKHIgPSAxLCBuICYmICh0ID0gdVswXSAmIDIgPyBuLnJldHVybiA6IHVbMF0gPyBuLnRocm93IHx8ICgodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobiksIDApIDogbi5uZXh0KSAmJiAhKHQgPSB0LmNhbGwobiwgdVsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgc3dpdGNoIChuID0gMCwgdCAmJiAodSA9IFt1WzBdICYgMiwgdC52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHQgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbiA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodCA9IGUudHJ5cywgISh0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghdCB8fCB1WzFdID4gdFswXSAmJiB1WzFdIDwgdFszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCB0WzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsxXSwgdCA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHQgJiYgZS5sYWJlbCA8IHRbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSBvLmNhbGwoYSwgZSk7XG4gICAgfSBjYXRjaCAoYykge1xuICAgICAgdSA9IFs2LCBjXSwgbiA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHIgPSB0ID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogITAgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCEoZSAhPSBudWxsICYmIGUuYm9keSkpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGUuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKSB7XG4gICAgICB2YXIgciA9IHVlKGUuYm9keSksIG4gPSByLmJvZHksIHQgPSByLmxlbmd0aDtcbiAgICAgIHJldHVybiBlLmJvZHkgPSBuLCB0O1xuICAgIH0gZWxzZVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmZShlLmJvZHkpKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgaSA9IGFbMF07XG4gICAgcmV0dXJuIGkgIT0gbnVsbCAmJiBpLmJvZHkgPyBpLmNsb25lKCkudGV4dCgpLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIGIocyk7XG4gICAgfSkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxufVxuZnVuY3Rpb24gdWUoYSkge1xuICBpZiAoIWEucGlwZVRocm91Z2gpXG4gICAgcmV0dXJuIFUud2FybihcIlBsYXRmb3JtIGhhcyBSZWFkYWJsZVN0cmVhbSBidXQgbm90IHBpcGVUaHJvdWdoIVwiKSwge1xuICAgICAgYm9keTogYSxcbiAgICAgIGxlbmd0aDogUHJvbWlzZS5yZXNvbHZlKHZvaWQgMClcbiAgICB9O1xuICB2YXIgbyA9IDAsIGUsIHIgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgZSA9IHQ7XG4gIH0pLCBuID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICByZXR1cm4gbmUodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcztcbiAgICAgICAgcmV0dXJuIGFlKHRoaXMsIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBzd2l0Y2ggKGYubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgcmV0dXJuIFs0LCB0XTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHMgPSBmLnNlbnQoKSwgbyArPSBzLmJ5dGVMZW5ndGgsIGkuZW5xdWV1ZSh0KSwgW1xuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICAvKnJldHVybiovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmx1c2g6IGZ1bmN0aW9uKCkge1xuICAgICAgZShvKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJvZHk6IGEucGlwZVRocm91Z2gobiksXG4gICAgbGVuZ3RoOiByXG4gIH07XG59XG5mdW5jdGlvbiBmZShhKSB7XG4gIGlmICh0eXBlb2YgRG9jdW1lbnQgPCBcInVcIiAmJiBhIGluc3RhbmNlb2YgRG9jdW1lbnQpXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpLmxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBCbG9iKVxuICAgIHJldHVybiBhLnNpemU7XG4gIGlmIChhLmJ5dGVMZW5ndGggIT09IHZvaWQgMClcbiAgICByZXR1cm4gYS5ieXRlTGVuZ3RoO1xuICBpZiAoYSBpbnN0YW5jZW9mIEZvcm1EYXRhKVxuICAgIHJldHVybiBsZShhKTtcbiAgaWYgKGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIGIoYS50b1N0cmluZygpKTtcbiAgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGIoYSk7XG4gIFUud2FybihcInVua25vd24gYm9keSB0eXBlXCIpO1xufVxudmFyIGNlID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBiKGEpIHtcbiAgcmV0dXJuIGNlLmVuY29kZShhKS5ieXRlTGVuZ3RoO1xufVxuZnVuY3Rpb24gbGUoYSkge1xuICB2YXIgbywgZSwgciA9IDA7XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgbiA9IGllKGEuZW50cmllcygpKSwgdCA9IG4ubmV4dCgpOyAhdC5kb25lOyB0ID0gbi5uZXh0KCkpIHtcbiAgICAgIHZhciBpID0gb2UodC52YWx1ZSwgMiksIHMgPSBpWzBdLCBmID0gaVsxXTtcbiAgICAgIHIgKz0gcy5sZW5ndGgsIGYgaW5zdGFuY2VvZiBCbG9iID8gciArPSBmLnNpemUgOiByICs9IGYubGVuZ3RoO1xuICAgIH1cbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIHQgJiYgIXQuZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcjtcbn1cbnZhciBrID0gXCIwLjU3LjBcIiwgZGUgPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciBhID0gZnVuY3Rpb24obywgZSkge1xuICAgIHJldHVybiBhID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgbikge1xuICAgICAgci5fX3Byb3RvX18gPSBuO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgbikge1xuICAgICAgZm9yICh2YXIgdCBpbiBuKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobiwgdCkgJiYgKHJbdF0gPSBuW3RdKTtcbiAgICB9LCBhKG8sIGUpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24obywgZSkge1xuICAgIGlmICh0eXBlb2YgZSAhPSBcImZ1bmN0aW9uXCIgJiYgZSAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGUpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICBhKG8sIGUpO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gbztcbiAgICB9XG4gICAgby5wcm90b3R5cGUgPSBlID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShlKSA6IChyLnByb3RvdHlwZSA9IGUucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBiZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbihhKSB7XG4gICAgZGUobywgYSk7XG4gICAgZnVuY3Rpb24gbyhlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgciA9IGEuY2FsbCh0aGlzLCBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1mZXRjaFwiLCBrLCBlKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHIuY29tcG9uZW50ID0gXCJmZXRjaFwiLCByLnZlcnNpb24gPSBrLCByLm1vZHVsZU5hbWUgPSByLmNvbXBvbmVudCwgci5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpLCByLl90YXNrc0NvdW50ID0gMCwgcjtcbiAgICB9XG4gICAgcmV0dXJuIG8ucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbigpIHtcbiAgICB9LCBvLnByb3RvdHlwZS5fYWRkQ2hpbGRTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oXCJDT1JTIFByZWZsaWdodFwiLCB7XG4gICAgICAgIHN0YXJ0VGltZTogcltULkZFVENIX1NUQVJUXVxuICAgICAgfSwgUGUuc2V0U3BhbihDZS5hY3RpdmUoKSwgZSkpO1xuICAgICAgeChuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IFIoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoakEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoekEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFzKHIsIHRoaXMuZ2V0Q29uZmlnKCkucHJvcGFnYXRlVHJhY2VIZWFkZXJDb3JzVXJscykpIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KENlLmFjdGl2ZSgpLCBuKSwgT2JqZWN0LmtleXMobikubGVuZ3RoID4gMCAmJiB0aGlzLl9kaWFnLmRlYnVnKFwiaGVhZGVycyBpbmplY3Qgc2tpcHBlZCBkdWUgdG8gQ09SUyBwb2xpY3lcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVxdWVzdClcbiAgICAgICAgeV8uaW5qZWN0KENlLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpXG4gICAgICAgIHlfLmluamVjdChDZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIGlmIChlLmhlYWRlcnMgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgIHlfLmluamVjdChDZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KENlLmFjdGl2ZSgpLCBuKSwgZS5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgbiwgZS5oZWFkZXJzIHx8IHt9KTtcbiAgICAgIH1cbiAgICB9LCBvLnByb3RvdHlwZS5fY2xlYXJSZXNvdXJjZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3Rhc2tzQ291bnQgPT09IDAgJiYgdGhpcy5nZXRDb25maWcoKS5jbGVhclRpbWluZ1Jlc291cmNlcyAmJiAocGVyZm9ybWFuY2UuY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSwgdGhpcy5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fY3JlYXRlU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuO1xuICAgICAgaWYgKHIgPT09IHZvaWQgMCAmJiAociA9IHt9KSwgWmUoZSwgdGhpcy5nZXRDb25maWcoKS5pZ25vcmVVcmxzKSkge1xuICAgICAgICB0aGlzLl9kaWFnLmRlYnVnKFwiaWdub3Jpbmcgc3BhbiBhcyB1cmwgbWF0Y2hlcyBpZ25vcmVkIHVybFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHQgPSAoci5tZXRob2QgfHwgXCJHRVRcIikudG9VcHBlckNhc2UoKSwgaSA9IFwiSFRUUCBcIiArIHQ7XG4gICAgICByZXR1cm4gdGhpcy50cmFjZXIuc3RhcnRTcGFuKGksIHtcbiAgICAgICAga2luZDogcWUuQ0xJRU5ULFxuICAgICAgICBhdHRyaWJ1dGVzOiAobiA9IHt9LCBuW3kuQ09NUE9ORU5UXSA9IHRoaXMubW9kdWxlTmFtZSwgbltRQV0gPSB0LCBuW3hBXSA9IGUsIG4pXG4gICAgICB9KTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZmluZFJlc291cmNlQW5kQWRkTmV0d29ya0V2ZW50cyA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gci5lbnRyaWVzO1xuICAgICAgaWYgKCF0Lmxlbmd0aCkge1xuICAgICAgICBpZiAoIXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInJlc291cmNlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGkgPSBiJDEoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeChlLCBzLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9tYXJrUmVzb3VyY2VBc1VzZWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl91c2VkUmVzb3VyY2VzLmFkZChlKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZW5kU3BhbiA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gdGhpcywgaSA9IE8oRGF0ZS5ub3coKSksIHMgPSBwXygpO1xuICAgICAgdGhpcy5fYWRkRmluYWxTcGFuQXR0cmlidXRlcyhlLCBuKSwgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGY7XG4gICAgICAgIChmID0gci5vYnNlcnZlcikgPT09IG51bGwgfHwgZiA9PT0gdm9pZCAwIHx8IGYuZGlzY29ubmVjdCgpLCB0Ll9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzKGUsIHIsIHMpLCB0Ll90YXNrc0NvdW50LS0sIHQuX2NsZWFyUmVzb3VyY2VzKCksIGUuZW5kKGkpO1xuICAgICAgfSwgdmUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wYXRjaENvbnN0cnVjdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocikge1xuICAgICAgICB2YXIgbiA9IGU7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gW10sIHMgPSAwOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKVxuICAgICAgICAgICAgaVtzXSA9IGFyZ3VtZW50c1tzXTtcbiAgICAgICAgICB2YXIgZiA9IHRoaXMsIHUgPSBSKGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXS51cmwgOiBTdHJpbmcoaVswXSkpLmhyZWYsIGMgPSBpWzBdIGluc3RhbmNlb2YgUmVxdWVzdCA/IGlbMF0gOiBpWzFdIHx8IHt9LCBoID0gbi5fY3JlYXRlU3Bhbih1LCBjKTtcbiAgICAgICAgICBpZiAoIWgpXG4gICAgICAgICAgICByZXR1cm4gci5hcHBseSh0aGlzLCBpKTtcbiAgICAgICAgICB2YXIgbSA9IG4uX3ByZXBhcmVTcGFuRGF0YSh1KTtcbiAgICAgICAgICBuLmdldENvbmZpZygpLm1lYXN1cmVSZXF1ZXN0U2l6ZSAmJiBzZS5hcHBseSh2b2lkIDAsIHBlKFtdLCBoZShpKSwgITEpKS50aGVuKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIGwgJiYgaC5zZXRBdHRyaWJ1dGUoU3IsIGwpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIG4uX2RpYWcud2FybihcImdldEZldGNoQm9keUxlbmd0aFwiLCBsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmdW5jdGlvbiBFKGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIG4uX2VuZFNwYW4obCwgbSwge1xuICAgICAgICAgICAgICBzdGF0dXM6IGQuc3RhdHVzIHx8IDAsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQubWVzc2FnZSxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdyhsLCBkKSB7XG4gICAgICAgICAgICBuLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoKGwsIGMsIGQpLCBkLnN0YXR1cyA+PSAyMDAgJiYgZC5zdGF0dXMgPCA0MDAgPyBuLl9lbmRTcGFuKGwsIG0sIGQpIDogbi5fZW5kU3BhbihsLCBtLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTShsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgaiA9IHYuY2xvbmUoKSwgRCA9IHYuY2xvbmUoKSwgUiA9IGouYm9keTtcbiAgICAgICAgICAgICAgaWYgKFIpIHtcbiAgICAgICAgICAgICAgICB2YXIgQiA9IFIuZ2V0UmVhZGVyKCksIEEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgIEIucmVhZCgpLnRoZW4oZnVuY3Rpb24oZykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IGcuZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgRiA/IHcobCwgRCkgOiBBKCk7XG4gICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbihnKSB7XG4gICAgICAgICAgICAgICAgICAgIEUobCwgZyk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEEoKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgdyhsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIEwobCwgZCwgdikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRShsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLCBkKSB7XG4gICAgICAgICAgICByZXR1cm4gQ2Uud2l0aChQZS5zZXRTcGFuKENlLmFjdGl2ZSgpLCBoKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuLl9hZGRIZWFkZXJzKGMsIHUpLCBuLl90YXNrc0NvdW50KyssIHIuYXBwbHkoZiwgYyBpbnN0YW5jZW9mIFJlcXVlc3QgPyBbY10gOiBbdSwgY10pLnRoZW4oTS5iaW5kKGYsIGgsIGwpLCBMLmJpbmQoZiwgaCwgZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sIG8ucHJvdG90eXBlLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gdGhpcy5nZXRDb25maWcoKS5hcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW47XG4gICAgICBpICYmIEYoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpKGUsIHIsIG4pO1xuICAgICAgfSwgZnVuY3Rpb24ocykge1xuICAgICAgICBzICYmIHQuX2RpYWcuZXJyb3IoXCJhcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW5cIiwgcyk7XG4gICAgICB9LCAhMCk7XG4gICAgfSwgby5wcm90b3R5cGUuX3ByZXBhcmVTcGFuRGF0YSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciByID0gcF8oKSwgbiA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBQZXJmb3JtYW5jZU9ic2VydmVyICE9IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIHsgZW50cmllczogbiwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgICB2YXIgdCA9IG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgdmFyIHMgPSBpLmdldEVudHJpZXMoKTtcbiAgICAgICAgcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBmLmluaXRpYXRvclR5cGUgPT09IFwiZmV0Y2hcIiAmJiBmLm5hbWUgPT09IGUgJiYgbi5wdXNoKGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQub2JzZXJ2ZSh7XG4gICAgICAgIGVudHJ5VHlwZXM6IFtcInJlc291cmNlXCJdXG4gICAgICB9KSwgeyBlbnRyaWVzOiBuLCBvYnNlcnZlcjogdCwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgfSwgby5wcm90b3R5cGUuZW5hYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoSCkge1xuICAgICAgICB0aGlzLl9kaWFnLndhcm4oXCJ0aGlzIGluc3RydW1lbnRhdGlvbiBpcyBpbnRlbmRlZCBmb3Igd2ViIHVzYWdlIG9ubHksIGl0IGRvZXMgbm90IGluc3RydW1lbnQgTm9kZS5qcydzIGZldGNoKClcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIEgkMShmZXRjaCkgJiYgKHRoaXMuX3Vud3JhcChsLCBcImZldGNoXCIpLCB0aGlzLl9kaWFnLmRlYnVnKFwicmVtb3ZpbmcgcHJldmlvdXMgcGF0Y2ggZm9yIGNvbnN0cnVjdG9yXCIpKSwgdGhpcy5fd3JhcChsLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGwsIFwiZmV0Y2hcIiksIHRoaXMuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSk7XG4gICAgfSwgbztcbiAgfShZKVxuKTtcblxuZXhwb3J0IHsgYmUgYXMgRmV0Y2hJbnN0cnVtZW50YXRpb24gfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUFBLFNBQVM7QUFDbEIsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLFNBQVM7QUFDNUcsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsU0FBUztBQUMvQixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxLQUFBQyxHQUFHLEtBQUFDLEdBQUcsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUtDLFVBQVc7QUFDckMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU1osRUFBRWEsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFaEMsRUFBRSxLQUFLZ0MsQ0FB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QUN6QixDQUFDLEdBQUcsRUFBRSxTQUFTRCxHQUFHLFVBQVVDLEdBQUcsV0FBVzlCLEdBQUcsU0FBUzRCLEVBQUU7QUFBQSxJQUMxRCxHQUFHRCxFQUFFLFVBQVUsU0FBUyxXQUFXO0FBQ2pDLFVBQUl3QixHQUFHO0FBQ0wsYUFBSyxNQUFNLEtBQUssK0ZBQStGO0FBQy9HO0FBQUEsTUFDRjtBQUNBLE1BQUF0QyxFQUFJLEtBQUssTUFBTSxLQUFLLFFBQVFFLEdBQUcsT0FBTyxHQUFHLEtBQUssTUFBTSxNQUFNLHlDQUF5QyxJQUFJLEtBQUssTUFBTUEsR0FBRyxTQUFTLEtBQUssa0JBQWtCLENBQUM7QUFBQSxJQUN4SixHQUFHWSxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUF3QixNQUFNLEtBQUssUUFBUXBDLEdBQUcsT0FBTyxHQUFHLEtBQUssaUJBQWlDLG9CQUFJLFFBQVE7QUFBQSxJQUNwRixHQUFHWTtBQUFBLEVBQ0wsRUFBRWIsQ0FBQztBQUFBOyIsCiAgIm5hbWVzIjogWyJyIiwgImpBIiwgInFBIiwgIlpBIiwgInpBIiwgInlfIiwgIlplIiwgIlFBIiwgInhBIiwgInBfIiwgIlNyIiwgIk8iLCAiRiIsICJIJDEiLCAiWSIsICJsIiwgIlQiLCAieCIsICJSIiwgInMiLCAiYiQxIiwgIlBlIiwgIkNlIiwgInFlIiwgInkiLCAiYSIsICJuZSIsICJvIiwgImUiLCAibiIsICJ0IiwgImkiLCAiYyIsICJoIiwgImYiLCAiYWUiLCAiaWUiLCAib2UiLCAiVSIsICJzZSIsICJ1ZSIsICJmZSIsICJiIiwgImxlIiwgImNlIiwgImsiLCAiZGUiLCAiaGUiLCAicGUiLCAiUyIsICJ2ZSIsICJIIiwgImJlIiwgInUiLCAibSIsICJFIiwgImQiLCAiTSIsICJ2IiwgImoiLCAiRCIsICJCIiwgIkEiLCAiZyIsICJMIl0KfQo=
431
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtbFNZaFRkWUMtIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUNTX2otMDgzLSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGogYXMgakEsIHEgYXMgcUEsIFogYXMgWkEsIHogYXMgekEsIHkgYXMgeV8sIGEgYXMgWmUsIFEgYXMgUUEsIHggYXMgeEEsIHAgYXMgcF8sIFMgYXMgU3IsIE8gfSBmcm9tICcuL3VybC1CVlNxOEw0bC0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBGLCBIIGFzIEgkMSwgWSB9IGZyb20gJy4vdXRpbHMtcDB0SnJBM2ItIX57MDA5fX4uanMnO1xuaW1wb3J0IHsgbCB9IGZyb20gJy4vdXRpbHMtQkdlZnRUdmstIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgVCwgeCwgUiwgcywgYiBhcyBiJDEgfSBmcm9tICcuL3V0aWxzLURUcFdPUXp1LSF+ezAwNX1+LmpzJztcbmltcG9ydCB7IEQgYXMgRGUsIE4gYXMgTmUsIFggYXMgWGUgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIHk7XG4oZnVuY3Rpb24oYSkge1xuICBhLkNPTVBPTkVOVCA9IFwiY29tcG9uZW50XCIsIGEuSFRUUF9FUlJPUl9OQU1FID0gXCJodHRwLmVycm9yX25hbWVcIiwgYS5IVFRQX1NUQVRVU19URVhUID0gXCJodHRwLnN0YXR1c190ZXh0XCI7XG59KSh5IHx8ICh5ID0ge30pKTtcbnZhciBuZSA9IGZ1bmN0aW9uKGEsIG8sIGUsIHIpIHtcbiAgZnVuY3Rpb24gbih0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGkpIHtcbiAgICAgIGkodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBpKSB7XG4gICAgZnVuY3Rpb24gcyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KHIubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGYoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGgpIHtcbiAgICAgICAgaShoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogbihjLnZhbHVlKS50aGVuKHMsIGYpO1xuICAgIH1cbiAgICB1KChyID0gci5hcHBseShhLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgYWUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdO1xuICAgIHJldHVybiB0WzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCByLCBuLCB0LCBpO1xuICByZXR1cm4gaSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBpO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuIGYoW3UsIGNdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGYodSkge1xuICAgIGlmIChyKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKHIgPSAxLCBuICYmICh0ID0gdVswXSAmIDIgPyBuLnJldHVybiA6IHVbMF0gPyBuLnRocm93IHx8ICgodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobiksIDApIDogbi5uZXh0KSAmJiAhKHQgPSB0LmNhbGwobiwgdVsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgc3dpdGNoIChuID0gMCwgdCAmJiAodSA9IFt1WzBdICYgMiwgdC52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHQgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbiA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodCA9IGUudHJ5cywgISh0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghdCB8fCB1WzFdID4gdFswXSAmJiB1WzFdIDwgdFszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCB0WzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsxXSwgdCA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHQgJiYgZS5sYWJlbCA8IHRbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSBvLmNhbGwoYSwgZSk7XG4gICAgfSBjYXRjaCAoYykge1xuICAgICAgdSA9IFs2LCBjXSwgbiA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHIgPSB0ID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogITAgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCEoZSAhPSBudWxsICYmIGUuYm9keSkpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGUuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKSB7XG4gICAgICB2YXIgciA9IHVlKGUuYm9keSksIG4gPSByLmJvZHksIHQgPSByLmxlbmd0aDtcbiAgICAgIHJldHVybiBlLmJvZHkgPSBuLCB0O1xuICAgIH0gZWxzZVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmZShlLmJvZHkpKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgaSA9IGFbMF07XG4gICAgcmV0dXJuIGkgIT0gbnVsbCAmJiBpLmJvZHkgPyBpLmNsb25lKCkudGV4dCgpLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIGIocyk7XG4gICAgfSkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxufVxuZnVuY3Rpb24gdWUoYSkge1xuICBpZiAoIWEucGlwZVRocm91Z2gpXG4gICAgcmV0dXJuIFUud2FybihcIlBsYXRmb3JtIGhhcyBSZWFkYWJsZVN0cmVhbSBidXQgbm90IHBpcGVUaHJvdWdoIVwiKSwge1xuICAgICAgYm9keTogYSxcbiAgICAgIGxlbmd0aDogUHJvbWlzZS5yZXNvbHZlKHZvaWQgMClcbiAgICB9O1xuICB2YXIgbyA9IDAsIGUsIHIgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgZSA9IHQ7XG4gIH0pLCBuID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICByZXR1cm4gbmUodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcztcbiAgICAgICAgcmV0dXJuIGFlKHRoaXMsIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBzd2l0Y2ggKGYubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgcmV0dXJuIFs0LCB0XTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHMgPSBmLnNlbnQoKSwgbyArPSBzLmJ5dGVMZW5ndGgsIGkuZW5xdWV1ZSh0KSwgW1xuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICAvKnJldHVybiovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmx1c2g6IGZ1bmN0aW9uKCkge1xuICAgICAgZShvKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJvZHk6IGEucGlwZVRocm91Z2gobiksXG4gICAgbGVuZ3RoOiByXG4gIH07XG59XG5mdW5jdGlvbiBmZShhKSB7XG4gIGlmICh0eXBlb2YgRG9jdW1lbnQgPCBcInVcIiAmJiBhIGluc3RhbmNlb2YgRG9jdW1lbnQpXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpLmxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBCbG9iKVxuICAgIHJldHVybiBhLnNpemU7XG4gIGlmIChhLmJ5dGVMZW5ndGggIT09IHZvaWQgMClcbiAgICByZXR1cm4gYS5ieXRlTGVuZ3RoO1xuICBpZiAoYSBpbnN0YW5jZW9mIEZvcm1EYXRhKVxuICAgIHJldHVybiBsZShhKTtcbiAgaWYgKGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIGIoYS50b1N0cmluZygpKTtcbiAgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGIoYSk7XG4gIFUud2FybihcInVua25vd24gYm9keSB0eXBlXCIpO1xufVxudmFyIGNlID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBiKGEpIHtcbiAgcmV0dXJuIGNlLmVuY29kZShhKS5ieXRlTGVuZ3RoO1xufVxuZnVuY3Rpb24gbGUoYSkge1xuICB2YXIgbywgZSwgciA9IDA7XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgbiA9IGllKGEuZW50cmllcygpKSwgdCA9IG4ubmV4dCgpOyAhdC5kb25lOyB0ID0gbi5uZXh0KCkpIHtcbiAgICAgIHZhciBpID0gb2UodC52YWx1ZSwgMiksIHMgPSBpWzBdLCBmID0gaVsxXTtcbiAgICAgIHIgKz0gcy5sZW5ndGgsIGYgaW5zdGFuY2VvZiBCbG9iID8gciArPSBmLnNpemUgOiByICs9IGYubGVuZ3RoO1xuICAgIH1cbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIHQgJiYgIXQuZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcjtcbn1cbnZhciBrID0gXCIwLjU3LjBcIiwgZGUgPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciBhID0gZnVuY3Rpb24obywgZSkge1xuICAgIHJldHVybiBhID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgbikge1xuICAgICAgci5fX3Byb3RvX18gPSBuO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgbikge1xuICAgICAgZm9yICh2YXIgdCBpbiBuKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobiwgdCkgJiYgKHJbdF0gPSBuW3RdKTtcbiAgICB9LCBhKG8sIGUpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24obywgZSkge1xuICAgIGlmICh0eXBlb2YgZSAhPSBcImZ1bmN0aW9uXCIgJiYgZSAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGUpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICBhKG8sIGUpO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gbztcbiAgICB9XG4gICAgby5wcm90b3R5cGUgPSBlID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShlKSA6IChyLnByb3RvdHlwZSA9IGUucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBiZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbihhKSB7XG4gICAgZGUobywgYSk7XG4gICAgZnVuY3Rpb24gbyhlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgciA9IGEuY2FsbCh0aGlzLCBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1mZXRjaFwiLCBrLCBlKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHIuY29tcG9uZW50ID0gXCJmZXRjaFwiLCByLnZlcnNpb24gPSBrLCByLm1vZHVsZU5hbWUgPSByLmNvbXBvbmVudCwgci5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpLCByLl90YXNrc0NvdW50ID0gMCwgcjtcbiAgICB9XG4gICAgcmV0dXJuIG8ucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbigpIHtcbiAgICB9LCBvLnByb3RvdHlwZS5fYWRkQ2hpbGRTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oXCJDT1JTIFByZWZsaWdodFwiLCB7XG4gICAgICAgIHN0YXJ0VGltZTogcltULkZFVENIX1NUQVJUXVxuICAgICAgfSwgRGUuc2V0U3BhbihOZS5hY3RpdmUoKSwgZSkpO1xuICAgICAgeChuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IFIoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoakEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoekEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFzKHIsIHRoaXMuZ2V0Q29uZmlnKCkucHJvcGFnYXRlVHJhY2VIZWFkZXJDb3JzVXJscykpIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KE5lLmFjdGl2ZSgpLCBuKSwgT2JqZWN0LmtleXMobikubGVuZ3RoID4gMCAmJiB0aGlzLl9kaWFnLmRlYnVnKFwiaGVhZGVycyBpbmplY3Qgc2tpcHBlZCBkdWUgdG8gQ09SUyBwb2xpY3lcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVxdWVzdClcbiAgICAgICAgeV8uaW5qZWN0KE5lLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpXG4gICAgICAgIHlfLmluamVjdChOZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIGlmIChlLmhlYWRlcnMgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgIHlfLmluamVjdChOZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KE5lLmFjdGl2ZSgpLCBuKSwgZS5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgbiwgZS5oZWFkZXJzIHx8IHt9KTtcbiAgICAgIH1cbiAgICB9LCBvLnByb3RvdHlwZS5fY2xlYXJSZXNvdXJjZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3Rhc2tzQ291bnQgPT09IDAgJiYgdGhpcy5nZXRDb25maWcoKS5jbGVhclRpbWluZ1Jlc291cmNlcyAmJiAocGVyZm9ybWFuY2UuY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSwgdGhpcy5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fY3JlYXRlU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuO1xuICAgICAgaWYgKHIgPT09IHZvaWQgMCAmJiAociA9IHt9KSwgWmUoZSwgdGhpcy5nZXRDb25maWcoKS5pZ25vcmVVcmxzKSkge1xuICAgICAgICB0aGlzLl9kaWFnLmRlYnVnKFwiaWdub3Jpbmcgc3BhbiBhcyB1cmwgbWF0Y2hlcyBpZ25vcmVkIHVybFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHQgPSAoci5tZXRob2QgfHwgXCJHRVRcIikudG9VcHBlckNhc2UoKSwgaSA9IFwiSFRUUCBcIiArIHQ7XG4gICAgICByZXR1cm4gdGhpcy50cmFjZXIuc3RhcnRTcGFuKGksIHtcbiAgICAgICAga2luZDogWGUuQ0xJRU5ULFxuICAgICAgICBhdHRyaWJ1dGVzOiAobiA9IHt9LCBuW3kuQ09NUE9ORU5UXSA9IHRoaXMubW9kdWxlTmFtZSwgbltRQV0gPSB0LCBuW3hBXSA9IGUsIG4pXG4gICAgICB9KTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZmluZFJlc291cmNlQW5kQWRkTmV0d29ya0V2ZW50cyA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gci5lbnRyaWVzO1xuICAgICAgaWYgKCF0Lmxlbmd0aCkge1xuICAgICAgICBpZiAoIXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInJlc291cmNlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGkgPSBiJDEoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeChlLCBzLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9tYXJrUmVzb3VyY2VBc1VzZWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl91c2VkUmVzb3VyY2VzLmFkZChlKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZW5kU3BhbiA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gdGhpcywgaSA9IE8oRGF0ZS5ub3coKSksIHMgPSBwXygpO1xuICAgICAgdGhpcy5fYWRkRmluYWxTcGFuQXR0cmlidXRlcyhlLCBuKSwgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGY7XG4gICAgICAgIChmID0gci5vYnNlcnZlcikgPT09IG51bGwgfHwgZiA9PT0gdm9pZCAwIHx8IGYuZGlzY29ubmVjdCgpLCB0Ll9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzKGUsIHIsIHMpLCB0Ll90YXNrc0NvdW50LS0sIHQuX2NsZWFyUmVzb3VyY2VzKCksIGUuZW5kKGkpO1xuICAgICAgfSwgdmUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wYXRjaENvbnN0cnVjdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocikge1xuICAgICAgICB2YXIgbiA9IGU7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gW10sIHMgPSAwOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKVxuICAgICAgICAgICAgaVtzXSA9IGFyZ3VtZW50c1tzXTtcbiAgICAgICAgICB2YXIgZiA9IHRoaXMsIHUgPSBSKGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXS51cmwgOiBTdHJpbmcoaVswXSkpLmhyZWYsIGMgPSBpWzBdIGluc3RhbmNlb2YgUmVxdWVzdCA/IGlbMF0gOiBpWzFdIHx8IHt9LCBoID0gbi5fY3JlYXRlU3Bhbih1LCBjKTtcbiAgICAgICAgICBpZiAoIWgpXG4gICAgICAgICAgICByZXR1cm4gci5hcHBseSh0aGlzLCBpKTtcbiAgICAgICAgICB2YXIgbSA9IG4uX3ByZXBhcmVTcGFuRGF0YSh1KTtcbiAgICAgICAgICBuLmdldENvbmZpZygpLm1lYXN1cmVSZXF1ZXN0U2l6ZSAmJiBzZS5hcHBseSh2b2lkIDAsIHBlKFtdLCBoZShpKSwgITEpKS50aGVuKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIGwgJiYgaC5zZXRBdHRyaWJ1dGUoU3IsIGwpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIG4uX2RpYWcud2FybihcImdldEZldGNoQm9keUxlbmd0aFwiLCBsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmdW5jdGlvbiBFKGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIG4uX2VuZFNwYW4obCwgbSwge1xuICAgICAgICAgICAgICBzdGF0dXM6IGQuc3RhdHVzIHx8IDAsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQubWVzc2FnZSxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdyhsLCBkKSB7XG4gICAgICAgICAgICBuLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoKGwsIGMsIGQpLCBkLnN0YXR1cyA+PSAyMDAgJiYgZC5zdGF0dXMgPCA0MDAgPyBuLl9lbmRTcGFuKGwsIG0sIGQpIDogbi5fZW5kU3BhbihsLCBtLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTShsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgaiA9IHYuY2xvbmUoKSwgRCA9IHYuY2xvbmUoKSwgUiA9IGouYm9keTtcbiAgICAgICAgICAgICAgaWYgKFIpIHtcbiAgICAgICAgICAgICAgICB2YXIgQiA9IFIuZ2V0UmVhZGVyKCksIEEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgIEIucmVhZCgpLnRoZW4oZnVuY3Rpb24oZykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IGcuZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgRiA/IHcobCwgRCkgOiBBKCk7XG4gICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbihnKSB7XG4gICAgICAgICAgICAgICAgICAgIEUobCwgZyk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEEoKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgdyhsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIEwobCwgZCwgdikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRShsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLCBkKSB7XG4gICAgICAgICAgICByZXR1cm4gTmUud2l0aChEZS5zZXRTcGFuKE5lLmFjdGl2ZSgpLCBoKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuLl9hZGRIZWFkZXJzKGMsIHUpLCBuLl90YXNrc0NvdW50KyssIHIuYXBwbHkoZiwgYyBpbnN0YW5jZW9mIFJlcXVlc3QgPyBbY10gOiBbdSwgY10pLnRoZW4oTS5iaW5kKGYsIGgsIGwpLCBMLmJpbmQoZiwgaCwgZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sIG8ucHJvdG90eXBlLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gdGhpcy5nZXRDb25maWcoKS5hcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW47XG4gICAgICBpICYmIEYoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpKGUsIHIsIG4pO1xuICAgICAgfSwgZnVuY3Rpb24ocykge1xuICAgICAgICBzICYmIHQuX2RpYWcuZXJyb3IoXCJhcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW5cIiwgcyk7XG4gICAgICB9LCAhMCk7XG4gICAgfSwgby5wcm90b3R5cGUuX3ByZXBhcmVTcGFuRGF0YSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciByID0gcF8oKSwgbiA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBQZXJmb3JtYW5jZU9ic2VydmVyICE9IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIHsgZW50cmllczogbiwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgICB2YXIgdCA9IG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgdmFyIHMgPSBpLmdldEVudHJpZXMoKTtcbiAgICAgICAgcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBmLmluaXRpYXRvclR5cGUgPT09IFwiZmV0Y2hcIiAmJiBmLm5hbWUgPT09IGUgJiYgbi5wdXNoKGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQub2JzZXJ2ZSh7XG4gICAgICAgIGVudHJ5VHlwZXM6IFtcInJlc291cmNlXCJdXG4gICAgICB9KSwgeyBlbnRyaWVzOiBuLCBvYnNlcnZlcjogdCwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgfSwgby5wcm90b3R5cGUuZW5hYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoSCkge1xuICAgICAgICB0aGlzLl9kaWFnLndhcm4oXCJ0aGlzIGluc3RydW1lbnRhdGlvbiBpcyBpbnRlbmRlZCBmb3Igd2ViIHVzYWdlIG9ubHksIGl0IGRvZXMgbm90IGluc3RydW1lbnQgTm9kZS5qcydzIGZldGNoKClcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIEgkMShmZXRjaCkgJiYgKHRoaXMuX3Vud3JhcChsLCBcImZldGNoXCIpLCB0aGlzLl9kaWFnLmRlYnVnKFwicmVtb3ZpbmcgcHJldmlvdXMgcGF0Y2ggZm9yIGNvbnN0cnVjdG9yXCIpKSwgdGhpcy5fd3JhcChsLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGwsIFwiZmV0Y2hcIiksIHRoaXMuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSk7XG4gICAgfSwgbztcbiAgfShZKVxuKTtcblxuZXhwb3J0IHsgYmUgYXMgRmV0Y2hJbnN0cnVtZW50YXRpb24gfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUFBLFNBQVM7QUFDbEIsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLFNBQVM7QUFDNUcsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsU0FBUztBQUMvQixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxLQUFBQyxHQUFHLEtBQUFDLEdBQUcsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUtDLFVBQVc7QUFDckMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU1osRUFBRWEsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFaEMsRUFBRSxLQUFLZ0MsQ0FB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QUN6QixDQUFDLEdBQUcsRUFBRSxTQUFTRCxHQUFHLFVBQVVDLEdBQUcsV0FBVzlCLEdBQUcsU0FBUzRCLEVBQUU7QUFBQSxJQUMxRCxHQUFHRCxFQUFFLFVBQVUsU0FBUyxXQUFXO0FBQ2pDLFVBQUl3QixHQUFHO0FBQ0wsYUFBSyxNQUFNLEtBQUssK0ZBQStGO0FBQy9HO0FBQUEsTUFDRjtBQUNBLE1BQUF0QyxFQUFJLEtBQUssTUFBTSxLQUFLLFFBQVFFLEdBQUcsT0FBTyxHQUFHLEtBQUssTUFBTSxNQUFNLHlDQUF5QyxJQUFJLEtBQUssTUFBTUEsR0FBRyxTQUFTLEtBQUssa0JBQWtCLENBQUM7QUFBQSxJQUN4SixHQUFHWSxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUF3QixNQUFNLEtBQUssUUFBUXBDLEdBQUcsT0FBTyxHQUFHLEtBQUssaUJBQWlDLG9CQUFJLFFBQVE7QUFBQSxJQUNwRixHQUFHWTtBQUFBLEVBQ0wsRUFBRWIsQ0FBQztBQUFBOyIsCiAgIm5hbWVzIjogWyJyIiwgImpBIiwgInFBIiwgIlpBIiwgInpBIiwgInlfIiwgIlplIiwgIlFBIiwgInhBIiwgInBfIiwgIlNyIiwgIk8iLCAiRiIsICJIJDEiLCAiWSIsICJsIiwgIlQiLCAieCIsICJSIiwgInMiLCAiYiQxIiwgIkRlIiwgIk5lIiwgIlhlIiwgInkiLCAiYSIsICJuZSIsICJvIiwgImUiLCAibiIsICJ0IiwgImkiLCAiYyIsICJoIiwgImYiLCAiYWUiLCAiaWUiLCAib2UiLCAiVSIsICJzZSIsICJ1ZSIsICJmZSIsICJiIiwgImxlIiwgImNlIiwgImsiLCAiZGUiLCAiaGUiLCAicGUiLCAiUyIsICJ2ZSIsICJIIiwgImJlIiwgInUiLCAibSIsICJFIiwgImQiLCAiTSIsICJ2IiwgImoiLCAiRCIsICJCIiwgIkEiLCAiZyIsICJMIl0KfQo=
package/dist/index.d.ts CHANGED
@@ -257,14 +257,6 @@ declare enum ElementTypeEnum {
257
257
  CDE_BRIDGE = 'cde-bridge',
258
258
  }
259
259
 
260
- declare enum Environment {
261
- Local = 'local',
262
- Development = 'development',
263
- Staging = 'staging',
264
- Demo = 'demo',
265
- Production = 'production',
266
- }
267
-
268
260
  declare interface ExchangableToken extends Omit<TokenExchangeDetailsResponse, 'exchangeRates'> {
269
261
  wrapsTo?: string;
270
262
  exchange: ExchangeRateDetails;
@@ -363,7 +355,7 @@ export declare interface LoopConnectConfig {
363
355
  apiKey: string;
364
356
  entityId: string;
365
357
  merchantId?: string;
366
- environment?: Environment | `${Environment}`;
358
+ environment?: LoopEnvironment | `${LoopEnvironment}`;
367
359
  customStyles?: CustomStyles;
368
360
  onInitialized?: (detail: InitializedEvent) => void;
369
361
  onInitFailed?: (detail: InitFailedEvent) => void;
@@ -402,6 +394,14 @@ export declare type LoopCryptoWidgetProps = {
402
394
  invoiceRefId?: string;
403
395
  };
404
396
 
397
+ export declare enum LoopEnvironment {
398
+ Local = 'local',
399
+ Development = 'development',
400
+ Staging = 'staging',
401
+ Demo = 'demo',
402
+ Production = 'production',
403
+ }
404
+
405
405
  declare interface NetworkChangeEvent {
406
406
  id: number;
407
407
  name: string;
@@ -429,10 +429,13 @@ declare type OnValidationError = (field: AllFieldNames, errors: string[], elemen
429
429
  declare interface PayInCompleteEvent extends PayinResponse {}
430
430
 
431
431
  export declare enum PayInFailed {
432
+ // Create payment method
433
+ METHOD_CREATION_FAILED = 'methodCreationFailed',
432
434
  INSUFFICIENT_BALANCE = 'insufficientBalance',
433
435
  INSUFFICIENT_AUTHORIZATION = 'insufficientAuthorization',
434
436
  SIGNED_MESSAGE_REQUIRED = 'signedMessageRequired',
435
437
  CUSTOMER_CREATION_FAILED = 'customerCreationFailed',
438
+ // Create pay-in
436
439
  PAYMENT_FAILED = 'paymentFailed',
437
440
  TRANSACTION_FAILED = 'transactionFailed',
438
441
  }
@@ -536,6 +539,7 @@ export declare enum PayInState {
536
539
  UPDATING_AUTHORIZATION = 'updatingAuthorization',
537
540
  SIGNING_MESSAGE = 'signingMessage',
538
541
  CREATING_CUSTOMER = 'creatingCustomer',
542
+ CREATING_PAYMENT_METHOD = 'creatingPaymentMethod',
539
543
  /**
540
544
  * @deprecated State CREATING_PAYMENT is used when a payment is awaiting creation confirmation
541
545
  */
@@ -594,6 +598,15 @@ declare interface PayInStateChangeEventCreatingPayment {
594
598
  paymentMethodId: string;
595
599
  }
596
600
 
601
+ declare interface PayInStateChangeEventCreatingPaymentMethod {
602
+ token: LoopConnectToken;
603
+ walletAddress: string;
604
+ chain: BlockchainNetwork;
605
+ networkName: string;
606
+ customerId: string;
607
+ customerRefId?: string;
608
+ }
609
+
597
610
  declare type PayInStateChangeEventIdle = unknown;
598
611
 
599
612
  /**
@@ -632,6 +645,7 @@ declare type PayInStateDataMap = {
632
645
  [PayInState.UPDATING_AUTHORIZATION]: PayInStateChangeEventUpdatingAuthorization;
633
646
  [PayInState.SIGNING_MESSAGE]: PayInStateChangeEventSigningMessage;
634
647
  [PayInState.CREATING_CUSTOMER]: PayInStateChangeEventCreatingCustomer;
648
+ [PayInState.CREATING_PAYMENT_METHOD]: PayInStateChangeEventCreatingPaymentMethod;
635
649
  [PayInState.PROCESSING_PAYMENT]: PayInStateChangeEventProcessingPayment;
636
650
  [PayInState.CREATING_PAYMENT]: PayInStateChangeEventCreatingPayment;
637
651
  [PayInState.CONFIRMING_PAYMENT]: PayInStateChangeEventConfirmingPayment;
@@ -751,7 +765,7 @@ declare interface PaymentMethodTokenExchangeRate {
751
765
  timestamp: number;
752
766
  }
753
767
 
754
- declare const PaymentProcessor = z.enum(['stripe', 'airwallex', 'authorize_net']);
768
+ declare const PaymentProcessor = z.enum(['stripe', 'airwallex', 'authorize_net', 'adyen']);
755
769
 
756
770
  declare type PaymentProcessor = z.infer<typeof PaymentProcessor>;
757
771
 
@@ -818,6 +832,8 @@ declare type ProcessorSpecificSubmitSettings<T extends SubmitMethod = SubmitMeth
818
832
  'airwallex-apple-pay': ApplePayFlowCustomParams;
819
833
  'authorizenet-google-pay': GooglePayFlowCustomParams;
820
834
  'authorizenet-apple-pay': ApplePayFlowCustomParams;
835
+ 'adyen-google-pay': GooglePayFlowCustomParams;
836
+ 'adyen-apple-pay': ApplePayFlowCustomParams;
821
837
  'loop-crypto': LoopCryptoFlowCustomParams;
822
838
  paypal: PaypalFlowCustomParams;
823
839
  }[T];
package/dist/index.js CHANGED
@@ -1,16 +1,17 @@
1
- import { d as t, e as n, f as l, g as E, E as d, h as i, i as o, j as p, u as C } from "./index-DJF-pWKT.js";
2
- import "uuid";
3
1
  import "penpal";
2
+ import { C as t, g as n, h as l, i as o, E, F as i, l as p, P as d, j as C, u as y } from "./index-DPmL7fu_.js";
3
+ import "uuid";
4
4
  import "chalk";
5
5
  export {
6
6
  t as CardCvcElement,
7
7
  n as CardElement,
8
8
  l as CardExpiryElement,
9
- E as CardNumberElement,
10
- d as ElementsForm,
9
+ o as CardNumberElement,
10
+ E as ElementsForm,
11
11
  i as FieldName,
12
- o as PayInFailed,
13
- p as PayInState,
14
- C as useOpenPayElements
12
+ p as LoopEnvironment,
13
+ d as PayInFailed,
14
+ C as PayInState,
15
+ y as useOpenPayElements
15
16
  };
16
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IGQgYXMgQ2FyZEN2Y0VsZW1lbnQsIGUgYXMgQ2FyZEVsZW1lbnQsIGYgYXMgQ2FyZEV4cGlyeUVsZW1lbnQsIGcgYXMgQ2FyZE51bWJlckVsZW1lbnQsIEUgYXMgRWxlbWVudHNGb3JtLCBoIGFzIEZpZWxkTmFtZSwgaSBhcyBQYXlJbkZhaWxlZCwgaiBhcyBQYXlJblN0YXRlLCB1IGFzIHVzZU9wZW5QYXlFbGVtZW50cyB9IGZyb20gJy4vaW5kZXgtIX57MDA0fX4uanMnO1xuaW1wb3J0ICd1dWlkJztcbmltcG9ydCAncGVucGFsJztcbmltcG9ydCAnY2hhbGsnOyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQWMsS0FBTEEsR0FBMEIsS0FBTEMsR0FBdUIsS0FBTEMsR0FBNkIsS0FBTEMsR0FBNkIsS0FBTEMsR0FBd0IsS0FBTEMsR0FBcUIsS0FBTEMsR0FBdUIsS0FBTEMsR0FBc0IsS0FBTEMsU0FBK0I7QUFDck0sT0FBTztBQUNQLE9BQU87QUFDUCxPQUFPOyIsCiAgIm5hbWVzIjogWyJkIiwgImUiLCAiZiIsICJnIiwgIkUiLCAiaCIsICJpIiwgImoiLCAidSJdCn0K
17
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAncGVucGFsJztcbmV4cG9ydCB7IEMgYXMgQ2FyZEN2Y0VsZW1lbnQsIGcgYXMgQ2FyZEVsZW1lbnQsIGggYXMgQ2FyZEV4cGlyeUVsZW1lbnQsIGkgYXMgQ2FyZE51bWJlckVsZW1lbnQsIEUgYXMgRWxlbWVudHNGb3JtLCBGIGFzIEZpZWxkTmFtZSwgbCBhcyBMb29wRW52aXJvbm1lbnQsIFAgYXMgUGF5SW5GYWlsZWQsIGogYXMgUGF5SW5TdGF0ZSwgdSBhcyB1c2VPcGVuUGF5RWxlbWVudHMgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcbmltcG9ydCAndXVpZCc7XG5pbXBvcnQgJ2NoYWxrJzsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFPO0FBQ1AsU0FBYyxLQUFMQSxHQUEwQixLQUFMQyxHQUF1QixLQUFMQyxHQUE2QixLQUFMQyxHQUE2QixHQUFtQixLQUFMQyxHQUFxQixLQUFMQyxHQUEyQixLQUFMQyxHQUF1QixLQUFMQyxHQUFzQixLQUFMQyxTQUErQjtBQUMzTixPQUFPO0FBQ1AsT0FBTzsiLAogICJuYW1lcyI6IFsiQyIsICJnIiwgImgiLCAiaSIsICJGIiwgImwiLCAiUCIsICJqIiwgInUiXQp9Cg==
@@ -1,4 +1,4 @@
1
- import { F as l, n as f, z as y, M as h } from "./index-DJF-pWKT.js";
1
+ import { c as l, d as f, Q as y, e as h } from "./index-DPmL7fu_.js";
2
2
  var o = /* @__PURE__ */ function() {
3
3
  var t = function(n, e) {
4
4
  return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, u) {
@@ -56,7 +56,7 @@ var o = /* @__PURE__ */ function() {
56
56
  return n.prototype.add = function(e, r) {
57
57
  }, n;
58
58
  }(i)
59
- ), w = (
59
+ ), d = (
60
60
  /** @class */
61
61
  function(t) {
62
62
  o(n, t);
@@ -66,7 +66,7 @@ var o = /* @__PURE__ */ function() {
66
66
  return n.prototype.add = function(e, r) {
67
67
  }, n;
68
68
  }(i)
69
- ), d = (
69
+ ), w = (
70
70
  /** @class */
71
71
  function(t) {
72
72
  o(n, t);
@@ -122,8 +122,8 @@ var o = /* @__PURE__ */ function() {
122
122
  }
123
123
  return n;
124
124
  }(a)
125
- ), s = new b(), C = new g(), M = new d(), P = new v(), k = new w(), G = new m(), j = new O(), D = new _();
126
- function B() {
125
+ ), s = new b(), C = new g(), M = new w(), P = new v(), k = new d(), G = new m(), j = new O(), D = new _();
126
+ function E() {
127
127
  return s;
128
128
  }
129
129
  var I = (
@@ -152,9 +152,9 @@ var I = (
152
152
  h(p, f.instance());
153
153
  }, t;
154
154
  }()
155
- ), E = x.getInstance();
155
+ ), Q = x.getInstance();
156
156
  export {
157
- B as D,
158
- E as k
157
+ E as D,
158
+ Q as k
159
159
  };
160
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWV0cmljcy1hcGktRFBHaWU5NXctIX57MDBkfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IEYgYXMgRnQsIG4gYXMgbnQsIHogYXMgemUsIE0gYXMgTXQgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIG8gPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciB0ID0gZnVuY3Rpb24oZSwgbikge1xuICAgIHJldHVybiB0ID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgYSkge1xuICAgICAgci5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgYSkge1xuICAgICAgZm9yICh2YXIgdSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgdSkgJiYgKHJbdV0gPSBhW3VdKTtcbiAgICB9LCB0KGUsIG4pO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgbikge1xuICAgIGlmICh0eXBlb2YgbiAhPSBcImZ1bmN0aW9uXCIgJiYgbiAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKG4pICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICB0KGUsIG4pO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSBuID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShuKSA6IChyLnByb3RvdHlwZSA9IG4ucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgTyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlR2F1Z2UgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gaDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVIaXN0b2dyYW0gPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gUDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIG07XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlVXBEb3duQ291bnRlciA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBkO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVHYXVnZSA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBSO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIHc7XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gRztcbiAgICB9LCB0LnByb3RvdHlwZS5hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICB9LCB0LnByb3RvdHlwZS5yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUpIHtcbiAgICB9LCB0O1xuICB9KClcbiksIGkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHQoKSB7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KClcbiksIE0gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIGIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIE4gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLmFkZENhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQucHJvdG90eXBlLnJlbW92ZUNhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQ7XG4gIH0oKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbih0KSB7XG4gICAgbyhlLCB0KTtcbiAgICBmdW5jdGlvbiBlKCkge1xuICAgICAgcmV0dXJuIHQgIT09IG51bGwgJiYgdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KHApXG4pLCBDID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKHQpIHtcbiAgICBvKGUsIHQpO1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgICByZXR1cm4gdCAhPT0gbnVsbCAmJiB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0ocClcbiksIEUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbiAgfShwKVxuKSwgbCA9IG5ldyBPKCksIG0gPSBuZXcgTSgpLCBoID0gbmV3IE4oKSwgUCA9IG5ldyB5KCksIGQgPSBuZXcgYigpLCB3ID0gbmV3IGcoKSwgUiA9IG5ldyBDKCksIEcgPSBuZXcgRSgpO1xuZnVuY3Rpb24gRCgpIHtcbiAgcmV0dXJuIGw7XG59XG52YXIgSSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuZ2V0TWV0ZXIgPSBmdW5jdGlvbihlLCBuLCByKSB7XG4gICAgICByZXR1cm4gbDtcbiAgICB9LCB0O1xuICB9KClcbiksIFQgPSBuZXcgSSgpLCBjID0gXCJtZXRyaWNzXCIsIFUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgdCgpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgdC5wcm90b3R5cGUuc2V0R2xvYmFsTWV0ZXJQcm92aWRlciA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHJldHVybiBGdChjLCBlLCBudC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gemUoYykgfHwgVDtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlciA9IGZ1bmN0aW9uKGUsIG4sIHIpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLCBuLCByKTtcbiAgICB9LCB0LnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBNdChjLCBudC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0O1xuICB9KClcbiksIGsgPSBVLmdldEluc3RhbmNlKCk7XG5cbmV4cG9ydCB7IEQsIGsgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLFNBQVU7QUFFbkQsSUFBSSxJQUFvQiwyQkFBVztBQUNqQyxNQUFJLElBQUksU0FBU0MsR0FBR0MsR0FBRztBQUNyQixXQUFPLElBQUksT0FBTyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLFNBQVMsU0FBUyxHQUFHQyxHQUFHO0FBQ3ZGLFFBQUUsWUFBWUE7QUFBQSxJQUNoQixLQUFLLFNBQVMsR0FBR0EsR0FBRztBQUNsQixlQUFTQyxLQUFLRCxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUtBLEdBQUdDLENBQUMsTUFB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RyxTQUFTRSxJQUFJO0FBQ1gsU0FBT0Q7QUFDVDtBQUNBLElBQUk7QUFBQTtBQUFBLEVBRUYsV0FBVztBQUNULGFBQVMsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPLEVBQUUsVUFBVSxXQUFXLFNBQVNuQixHQUFHQyxHQUFHLEdBQUc7QUFDOUMsYUFBT2tCO0FBQUEsSUFDVCxHQUFHO0FBQUEsRUFDTCxFQUFFO0FBQUEsR0FDREUsSUFBSSxJQUFJLEVBQUUsR0FBR0MsSUFBSSxXQUFXQztBQUFBO0FBQUEsRUFFN0IsV0FBVztBQUNULGFBQVMsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPLEVBQUUsY0FBYyxXQUFXO0FBQ2hDLGFBQU8sS0FBSyxjQUFjLEtBQUssWUFBWSxJQUFJLEVBQUUsSUFBSSxLQUFLO0FBQUEsSUFDNUQsR0FBRyxFQUFFLFVBQVUseUJBQXlCLFNBQVN2QixHQUFHO0FBQ2xELGFBQU9KLEVBQUcwQixHQUFHdEIsR0FBR0gsRUFBRyxTQUFTLENBQUM7QUFBQSxJQUMvQixHQUFHLEVBQUUsVUFBVSxtQkFBbUIsV0FBVztBQUMzQyxhQUFPQyxFQUFHd0IsQ0FBQyxLQUFLRDtBQUFBLElBQ2xCLEdBQUcsRUFBRSxVQUFVLFdBQVcsU0FBU3JCLEdBQUdDLEdBQUcsR0FBRztBQUMxQyxhQUFPLEtBQUssaUJBQWlCLEVBQUUsU0FBU0QsR0FBR0MsR0FBRyxDQUFDO0FBQUEsSUFDakQsR0FBRyxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUFGLEVBQUd1QixHQUFHekIsRUFBRyxTQUFTLENBQUM7QUFBQSxJQUNyQixHQUFHO0FBQUEsRUFDTCxFQUFFO0FBQUEsR0FDRDJCLElBQUlELEVBQUUsWUFBWTsiLAogICJuYW1lcyI6IFsiRnQiLCAibnQiLCAiemUiLCAiTXQiLCAiZSIsICJuIiwgImEiLCAidSIsICJPIiwgImgiLCAibSIsICJkIiwgIlIiLCAidyIsICJHIiwgIk0iLCAiYiIsICJOIiwgInkiLCAicCIsICJnIiwgIkMiLCAiRSIsICJsIiwgIkQiLCAiVCIsICJjIiwgIlUiLCAiayJdCn0K
160
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWV0cmljcy1hcGktQ0lxNm1CRkYtIX57MDBkfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGMgYXMgVnQsIGQgYXMgZnQsIFEgYXMgUWUsIGUgYXMgR3QgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIG8gPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciB0ID0gZnVuY3Rpb24oZSwgbikge1xuICAgIHJldHVybiB0ID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgYSkge1xuICAgICAgci5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgYSkge1xuICAgICAgZm9yICh2YXIgdSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgdSkgJiYgKHJbdV0gPSBhW3VdKTtcbiAgICB9LCB0KGUsIG4pO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgbikge1xuICAgIGlmICh0eXBlb2YgbiAhPSBcImZ1bmN0aW9uXCIgJiYgbiAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKG4pICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICB0KGUsIG4pO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSBuID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShuKSA6IChyLnByb3RvdHlwZSA9IG4ucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgTyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlR2F1Z2UgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gaDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVIaXN0b2dyYW0gPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gUDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIG07XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlVXBEb3duQ291bnRlciA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBkO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVHYXVnZSA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBSO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIHc7XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gRztcbiAgICB9LCB0LnByb3RvdHlwZS5hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICB9LCB0LnByb3RvdHlwZS5yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUpIHtcbiAgICB9LCB0O1xuICB9KClcbiksIGkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHQoKSB7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KClcbiksIE0gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIGIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIE4gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLmFkZENhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQucHJvdG90eXBlLnJlbW92ZUNhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQ7XG4gIH0oKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbih0KSB7XG4gICAgbyhlLCB0KTtcbiAgICBmdW5jdGlvbiBlKCkge1xuICAgICAgcmV0dXJuIHQgIT09IG51bGwgJiYgdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KHApXG4pLCBDID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKHQpIHtcbiAgICBvKGUsIHQpO1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgICByZXR1cm4gdCAhPT0gbnVsbCAmJiB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0ocClcbiksIEUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbiAgfShwKVxuKSwgbCA9IG5ldyBPKCksIG0gPSBuZXcgTSgpLCBoID0gbmV3IE4oKSwgUCA9IG5ldyB5KCksIGQgPSBuZXcgYigpLCB3ID0gbmV3IGcoKSwgUiA9IG5ldyBDKCksIEcgPSBuZXcgRSgpO1xuZnVuY3Rpb24gRCgpIHtcbiAgcmV0dXJuIGw7XG59XG52YXIgSSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuZ2V0TWV0ZXIgPSBmdW5jdGlvbihlLCBuLCByKSB7XG4gICAgICByZXR1cm4gbDtcbiAgICB9LCB0O1xuICB9KClcbiksIFQgPSBuZXcgSSgpLCBjID0gXCJtZXRyaWNzXCIsIFUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgdCgpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgdC5wcm90b3R5cGUuc2V0R2xvYmFsTWV0ZXJQcm92aWRlciA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHJldHVybiBWdChjLCBlLCBmdC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gUWUoYykgfHwgVDtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlciA9IGZ1bmN0aW9uKGUsIG4sIHIpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLCBuLCByKTtcbiAgICB9LCB0LnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBHdChjLCBmdC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0O1xuICB9KClcbiksIGsgPSBVLmdldEluc3RhbmNlKCk7XG5cbmV4cG9ydCB7IEQsIGsgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLFNBQVU7QUFFbkQsSUFBSSxJQUFvQiwyQkFBVztBQUNqQyxNQUFJLElBQUksU0FBU0MsR0FBR0MsR0FBRztBQUNyQixXQUFPLElBQUksT0FBTyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLFNBQVMsU0FBUyxHQUFHQyxHQUFHO0FBQ3ZGLFFBQUUsWUFBWUE7QUFBQSxJQUNoQixLQUFLLFNBQVMsR0FBR0EsR0FBRztBQUNsQixlQUFTQyxLQUFLRCxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUtBLEdBQUdDLENBQUMsTUFB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RyxTQUFTRSxJQUFJO0FBQ1gsU0FBT0Q7QUFDVDtBQUNBLElBQUk7QUFBQTtBQUFBLEVBRUYsV0FBVztBQUNULGFBQVMsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPLEVBQUUsVUFBVSxXQUFXLFNBQVNuQixHQUFHQyxHQUFHLEdBQUc7QUFDOUMsYUFBT2tCO0FBQUEsSUFDVCxHQUFHO0FBQUEsRUFDTCxFQUFFO0FBQUEsR0FDREUsSUFBSSxJQUFJLEVBQUUsR0FBR0MsSUFBSSxXQUFXQztBQUFBO0FBQUEsRUFFN0IsV0FBVztBQUNULGFBQVMsSUFBSTtBQUFBLElBQ2I7QUFDQSxXQUFPLEVBQUUsY0FBYyxXQUFXO0FBQ2hDLGFBQU8sS0FBSyxjQUFjLEtBQUssWUFBWSxJQUFJLEVBQUUsSUFBSSxLQUFLO0FBQUEsSUFDNUQsR0FBRyxFQUFFLFVBQVUseUJBQXlCLFNBQVN2QixHQUFHO0FBQ2xELGFBQU9KLEVBQUcwQixHQUFHdEIsR0FBR0gsRUFBRyxTQUFTLENBQUM7QUFBQSxJQUMvQixHQUFHLEVBQUUsVUFBVSxtQkFBbUIsV0FBVztBQUMzQyxhQUFPQyxFQUFHd0IsQ0FBQyxLQUFLRDtBQUFBLElBQ2xCLEdBQUcsRUFBRSxVQUFVLFdBQVcsU0FBU3JCLEdBQUdDLEdBQUcsR0FBRztBQUMxQyxhQUFPLEtBQUssaUJBQWlCLEVBQUUsU0FBU0QsR0FBR0MsR0FBRyxDQUFDO0FBQUEsSUFDakQsR0FBRyxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUFGLEVBQUd1QixHQUFHekIsRUFBRyxTQUFTLENBQUM7QUFBQSxJQUNyQixHQUFHO0FBQUEsRUFDTCxFQUFFO0FBQUEsR0FDRDJCLElBQUlELEVBQUUsWUFBWTsiLAogICJuYW1lcyI6IFsiVnQiLCAiZnQiLCAiUWUiLCAiR3QiLCAiZSIsICJuIiwgImEiLCAidSIsICJPIiwgImgiLCAibSIsICJkIiwgIlIiLCAidyIsICJHIiwgIk0iLCAiYiIsICJOIiwgInkiLCAicCIsICJnIiwgIkMiLCAiRSIsICJsIiwgIkQiLCAiVCIsICJjIiwgIlUiLCAiayJdCn0K