(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/__qc_index__.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);} require('./assets/OP15/scene/OP15'); require('./assets/OP15/script/defaultData'); require('./assets/OP15/script/state'); require('./assets/OP15/script/util'); require('./assets/OP15/script/xstate'); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/OP15/script/state.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, '6acefvFAO9O7qvqEFnz5PJj', 'state'); // OP15/script/state.js "use strict"; exports.__esModule = true; exports.assign = o; exports.createMachine = s; exports.interpret = v; exports.InterpreterStatus = void 0; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ function t(t, n) { var e = "function" == typeof Symbol && t[Symbol.iterator]; if (!e) return t; var r, o, i = e.call(t), a = []; try { for (; (void 0 === n || n-- > 0) && !(r = i.next()).done;) { a.push(r.value); } } catch (t) { o = { error: t }; } finally { try { r && !r.done && (e = i["return"]) && e.call(i); } finally { if (o) throw o.error; } } return a; } var n; exports.InterpreterStatus = n; !function (t) { t[t.NotStarted = 0] = "NotStarted", t[t.Running = 1] = "Running", t[t.Stopped = 2] = "Stopped"; }(n || (exports.InterpreterStatus = n = {})); var e = { type: "xstate.init" }; function r(t) { return void 0 === t ? [] : [].concat(t); } function o(t) { return { type: "xstate.assign", assignment: t }; } function i(t, n) { return "string" == typeof (t = "string" == typeof t && n && n[t] ? n[t] : t) ? { type: t } : "function" == typeof t ? { type: t.name, exec: t } : t; } function a(t) { return function (n) { return t === n; }; } function u(t) { return "string" == typeof t ? { type: t } : t; } function c(t, n) { return { value: t, context: n, actions: [], changed: !1, matches: a(t) }; } function f(t, n, e) { var r = n, o = !1; return [t.filter(function (t) { if ("xstate.assign" === t.type) { o = !0; var n = Object.assign({}, r); return "function" == typeof t.assignment ? n = t.assignment(r, e) : Object.keys(t.assignment).forEach(function (o) { n[o] = "function" == typeof t.assignment[o] ? t.assignment[o](r, e) : t.assignment[o]; }), r = n, !1; } return !0; }), r, o]; } function s(n, o) { void 0 === o && (o = {}); var s = t(f(r(n.states[n.initial].entry).map(function (t) { return i(t, o.actions); }), n.context, e), 2), l = s[0], v = s[1], y = { config: n, _options: o, initialState: { value: n.initial, actions: l, context: v, matches: a(n.initial) }, transition: function transition(e, o) { var s, l, v = "string" == typeof e ? { value: e, context: n.context } : e, p = v.value, g = v.context, d = u(o), x = n.states[p]; if (x.on) { var m = r(x.on[d.type]); try { for (var h = function (t) { var n = "function" == typeof Symbol && Symbol.iterator, e = n && t[n], r = 0; if (e) return e.call(t); if (t && "number" == typeof t.length) return { next: function next() { return t && r >= t.length && (t = void 0), { value: t && t[r++], done: !t }; } }; throw new TypeError(n ? "Object is not iterable." : "Symbol.iterator is not defined."); }(m), b = h.next(); !b.done; b = h.next()) { var S = b.value; if (void 0 === S) return c(p, g); var w = "string" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function () { return !0; } : N, _ = void 0 === j, k = null != j ? j : p, T = n.states[k]; if (O(g, d)) { var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function (t) { return t; })).map(function (t) { return i(t, y._options.actions); }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p; return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) }; } } } catch (t) { s = { error: t }; } finally { try { b && !b.done && (l = h["return"]) && l.call(h); } finally { if (s) throw s.error; } } } return c(p, g); } }; return y; } var l = function l(t, n) { return t.actions.forEach(function (e) { var r = e.exec; return r && r(t.context, n); }); }; function v(t) { var r = t.initialState, o = n.NotStarted, i = new Set(), c = { _machine: t, send: function send(e) { o === n.Running && (r = t.transition(r, e), l(r, u(e)), i.forEach(function (t) { return t(r); })); }, subscribe: function subscribe(t) { return i.add(t), t(r), { unsubscribe: function unsubscribe() { return i["delete"](t); } }; }, start: function start(i) { if (i) { var u = "object" == typeof i ? i : { context: t.config.context, value: i }; r = { value: u.value, actions: [], context: u.context, matches: a(u.value) }; } return o = n.Running, l(r, e), c; }, stop: function stop() { return o = n.Stopped, i.clear(), c; }, get state() { return r; }, get status() { return o; } }; return c; } cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9zdGF0ZS5qcyJdLCJuYW1lcyI6WyJ0IiwibiIsImUiLCJTeW1ib2wiLCJpdGVyYXRvciIsInIiLCJvIiwiaSIsImNhbGwiLCJhIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnJvciIsIk5vdFN0YXJ0ZWQiLCJSdW5uaW5nIiwiU3RvcHBlZCIsInR5cGUiLCJjb25jYXQiLCJhc3NpZ25tZW50IiwibmFtZSIsImV4ZWMiLCJ1IiwiYyIsImNvbnRleHQiLCJhY3Rpb25zIiwiY2hhbmdlZCIsIm1hdGNoZXMiLCJmIiwiZmlsdGVyIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJzIiwic3RhdGVzIiwiaW5pdGlhbCIsImVudHJ5IiwibWFwIiwibCIsInYiLCJ5IiwiY29uZmlnIiwiX29wdGlvbnMiLCJpbml0aWFsU3RhdGUiLCJ0cmFuc2l0aW9uIiwicCIsImciLCJkIiwieCIsIm9uIiwibSIsImgiLCJsZW5ndGgiLCJUeXBlRXJyb3IiLCJiIiwiUyIsInciLCJ0YXJnZXQiLCJqIiwiRSIsIlIiLCJOIiwiY29uZCIsIk8iLCJfIiwiayIsIlQiLCJxIiwiZXhpdCIsInoiLCJBIiwiQiIsIkMiLCJTZXQiLCJfbWFjaGluZSIsInNlbmQiLCJzdWJzY3JpYmUiLCJhZGQiLCJ1bnN1YnNjcmliZSIsInN0YXJ0Iiwic3RvcCIsImNsZWFyIiwic3RhdGUiLCJzdGF0dXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLENBQVQsQ0FBV0EsQ0FBWCxFQUFhQyxDQUFiLEVBQWU7QUFBQyxNQUFJQyxDQUFDLEdBQUMsY0FBWSxPQUFPQyxNQUFuQixJQUEyQkgsQ0FBQyxDQUFDRyxNQUFNLENBQUNDLFFBQVIsQ0FBbEM7QUFBb0QsTUFBRyxDQUFD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LFNBQTNCO0FBQThERixRQUFBQSxDQUFDLEdBQUM7QUFBQ1EsVUFBQUEsS0FBSyxFQUFDVSxDQUFDLENBQUNWLEtBQVQ7QUFBZWEsVUFBQUEsT0FBTyxFQUFDLEVBQXZCO0FBQTBCRCxVQUFBQSxPQUFPLEVBQUNGLENBQUMsQ0FBQ0UsT0FBcEM7QUFBNENHLFVBQUFBLE9BQU8sRUFBQ25CLENBQUMsQ0FBQ2MsQ0FBQyxDQUFDVixLQUFIO0FBQXJELFNBQUY7QUFBa0U7O0FBQUEsYUFBT1AsQ0FBQyxHQUFDTCxDQUFDLENBQUNlLE9BQUosRUFBWXdCLENBQUMsQ0FBQ25DLENBQUQsRUFBR0gsQ0FBSCxDQUFiLEVBQW1Cc0IsQ0FBMUI7QUFBNEIsS0FBaFk7QUFBaVkwRCxJQUFBQSxJQUFJLEVBQUMsZ0JBQVU7QUFBQyxhQUFPNUUsQ0FBQyxHQUFDTCxDQUFDLENBQUNnQixPQUFKLEVBQVlWLENBQUMsQ0FBQzRFLEtBQUYsRUFBWixFQUFzQjNELENBQTdCO0FBQStCLEtBQWhiOztBQUFpYixRQUFJNEQsS0FBSixHQUFXO0FBQUMsYUFBTy9FLENBQVA7QUFBUyxLQUF0Yzs7QUFBdWMsUUFBSWdGLE1BQUosR0FBWTtBQUFDLGFBQU8vRSxDQUFQO0FBQVM7O0FBQTdkLEdBQWhEO0FBQStnQixTQUFPa0IsQ0FBUDtBQUFTIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxuXG5QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXG5BTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG5JTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXG5PVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG5QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmZ1bmN0aW9uIHQodCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXTtpZighZSlyZXR1cm4gdDt2YXIgcixvLGk9ZS5jYWxsKHQpLGE9W107dHJ5e2Zvcig7KHZvaWQgMD09PW58fG4tLSA+MCkmJiEocj1pLm5leHQoKSkuZG9uZTspYS5wdXNoKHIudmFsdWUpfWNhdGNoKHQpe289e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3ImJiFyLmRvbmUmJihlPWkucmV0dXJuKSYmZS5jYWxsKGkpfWZpbmFsbHl7aWYobyl0aHJvdyBvLmVycm9yfX1yZXR1cm4gYX12YXIgbjshZnVuY3Rpb24odCl7dFt0Lk5vdFN0YXJ0ZWQ9MF09XCJOb3RTdGFydGVkXCIsdFt0LlJ1bm5pbmc9MV09XCJSdW5uaW5nXCIsdFt0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCJ9KG58fChuPXt9KSk7dmFyIGU9e3R5cGU6XCJ4c3RhdGUuaW5pdFwifTtmdW5jdGlvbiByKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOltdLmNvbmNhdCh0KX1mdW5jdGlvbiBvKHQpe3JldHVybnt0eXBlOlwieHN0YXRlLmFzc2lnblwiLGFzc2lnbm1lbnQ6dH19ZnVuY3Rpb24gaSh0LG4pe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZih0PVwic3RyaW5nXCI9PXR5cGVvZiB0JiZuJiZuW3RdP25bdF06dCk/e3R5cGU6dH06XCJmdW5jdGlvblwiPT10eXBlb2YgdD97dHlwZTp0Lm5hbWUsZXhlYzp0fTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0PT09bn19ZnVuY3Rpb24gdSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIGModCxuKXtyZXR1cm57dmFsdWU6dCxjb250ZXh0Om4sYWN0aW9uczpbXSxjaGFuZ2VkOiExLG1hdGNoZXM6YSh0KX19ZnVuY3Rpb24gZih0LG4sZSl7dmFyIHI9bixvPSExO3JldHVyblt0LmZpbHRlcigoZnVuY3Rpb24odCl7aWYoXCJ4c3RhdGUuYXNzaWduXCI9PT10LnR5cGUpe289ITA7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmFzc2lnbm1lbnQ/bj10LmFzc2lnbm1lbnQocixlKTpPYmplY3Qua2V5cyh0LmFzc2lnbm1lbnQpLmZvckVhY2goKGZ1bmN0aW9uKG8pe25bb109XCJmdW5jdGlvblwiPT10eXBlb2YgdC5hc3NpZ25tZW50W29dP3QuYXNzaWdubWVudFtvXShyLGUpOnQuYXNzaWdubWVudFtvXX0pKSxyPW4sITF9cmV0dXJuITB9KSkscixvXX1mdW5jdGlvbiBzKG4sbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXQoZihyKG4uc3RhdGVzW24uaW5pdGlhbF0uZW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkodCxvLmFjdGlvbnMpfSkpLG4uY29udGV4dCxlKSwyKSxsPXNbMF0sdj1zWzFdLHk9e2NvbmZpZzpuLF9vcHRpb25zOm8saW5pdGlhbFN0YXRlOnt2YWx1ZTpuLmluaXRpYWwsYWN0aW9uczpsLGNvbnRleHQ6dixtYXRjaGVzOmEobi5pbml0aWFsKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciBzLGwsdj1cInN0cmluZ1wiPT10eXBlb2YgZT97dmFsdWU6ZSxjb250ZXh0Om4uY29udGV4dH06ZSxwPXYudmFsdWUsZz12LmNvbnRleHQsZD11KG8pLHg9bi5zdGF0ZXNbcF07aWYoeC5vbil7dmFyIG09cih4Lm9uW2QudHlwZV0pO3RyeXtmb3IodmFyIGg9ZnVuY3Rpb24odCl7dmFyIG49XCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsZT1uJiZ0W25dLHI9MDtpZihlKXJldHVybiBlLmNhbGwodCk7aWYodCYmXCJudW1iZXJcIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJnI+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W3IrK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKG4/XCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiOlwiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKX0obSksYj1oLm5leHQoKTshYi5kb25lO2I9aC5uZXh0KCkpe3ZhciBTPWIudmFsdWU7aWYodm9pZCAwPT09UylyZXR1cm4gYyhwLGcpO3ZhciB3PVwic3RyaW5nXCI9PXR5cGVvZiBTP3t0YXJnZXQ6U306UyxqPXcudGFyZ2V0LEU9dy5hY3Rpb25zLFI9dm9pZCAwPT09RT9bXTpFLE49dy5jb25kLE89dm9pZCAwPT09Tj9mdW5jdGlvbigpe3JldHVybiEwfTpOLF89dm9pZCAwPT09aixrPW51bGwhPWo/ajpwLFQ9bi5zdGF0ZXNba107aWYoTyhnLGQpKXt2YXIgcT10KGYoKF8/cihSKTpbXS5jb25jYXQoeC5leGl0LFIsVC5lbnRyeSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHkuX29wdGlvbnMuYWN0aW9ucyl9KSksZyxkKSwzKSx6PXFbMF0sQT1xWzFdLEI9cVsyXSxDPW51bGwhPWo/ajpwO3JldHVybnt2YWx1ZTpDLGNvbnRleHQ6QSxhY3Rpb25zOnosY2hhbmdlZDpqIT09cHx8ei5sZW5ndGg+MHx8QixtYXRjaGVzOmEoQyl9fX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGw9aC5yZXR1cm4pJiZsLmNhbGwoaCl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fX1yZXR1cm4gYyhwLGcpfX07cmV0dXJuIHl9dmFyIGw9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC5hY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWUuZXhlYztyZXR1cm4gciYmcih0LmNvbnRleHQsbil9KSl9O2Z1bmN0aW9uIHYodCl7dmFyIHI9dC5pbml0aWFsU3RhdGUsbz1uLk5vdFN0YXJ0ZWQsaT1uZXcgU2V0LGM9e19tYWNoaW5lOnQsc2VuZDpmdW5jdGlvbihlKXtvPT09bi5SdW5uaW5nJiYocj10LnRyYW5zaXRpb24ocixlKSxsKHIsdShlKSksaS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdChyKX0pKSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gaS5hZGQodCksdChyKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtyZXR1cm4gaS5kZWxldGUodCl9fX0sc3RhcnQ6ZnVuY3Rpb24oaSl7aWYoaSl7dmFyIHU9XCJvYmplY3RcIj09dHlwZW9mIGk/aTp7Y29udGV4dDp0LmNvbmZpZy5jb250ZXh0LHZhbHVlOml9O3I9e3ZhbHVlOnUudmFsdWUsYWN0aW9uczpbXSxjb250ZXh0OnUuY29udGV4dCxtYXRjaGVzOmEodS52YWx1ZSl9fXJldHVybiBvPW4uUnVubmluZyxsKHIsZSksY30sc3RvcDpmdW5jdGlvbigpe3JldHVybiBvPW4uU3RvcHBlZCxpLmNsZWFyKCksY30sZ2V0IHN0YXRlKCl7cmV0dXJuIHJ9LGdldCBzdGF0dXMoKXtyZXR1cm4gb319O3JldHVybiBjfWV4cG9ydHtuIGFzIEludGVycHJldGVyU3RhdHVzLG8gYXMgYXNzaWduLHMgYXMgY3JlYXRlTWFjaGluZSx2IGFzIGludGVycHJldH07XG4iXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/OP15/scene/OP15.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, 'ddbf4iIJnhHIImfp+SKRF1C', 'OP15'); // OP15/scene/OP15.js "use strict"; var _util = require("../script/util"); var _defaultData = require("../script/defaultData"); var _xstate = require("../script/xstate"); function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var pure = _xstate.actions.pure, send = _xstate.actions.send, raise = _xstate.actions.raise, sendParent = _xstate.actions.sendParent; cc.Class({ "extends": cc.Component, properties: { /*ant: { default: null, type: cc.Node, }, apple: { default: null, type: cc.Node, }, bird: { default: null, type: cc.Node, }, car: { default: null, type: cc.Node, }, cat: { default: null, type: cc.Node, }, cow: { default: null, type: cc.Node, }, duck: { default: null, type: cc.Node, }, egg: { default: null, type: cc.Node, }, farmer: { default: null, type: cc.Node, }, fish: { default: null, type: cc.Node, }, girl: { default: null, type: cc.Node, }, hen: { default: null, type: cc.Node, }, house: { default: null, type: cc.Node, },*/ rightAudio: { "default": null, type: cc.AudioClip }, wrongAudio: { "default": null, type: cc.AudioClip }, logoCat: { "default": null, type: cc.Node } }, playAni: function playAni(idx, name, options) { var times = options && options.times || 1; var cb = options && options.callback || null; // const cat = cc.find(`Canvas/frame-border/ground/${node}`); var node = this._figurePointRectArray[idx].node; var dragonDisplay = node.getComponent(dragonBones.ArmatureDisplay); var state = dragonDisplay.playAnimation(name, times); // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { // //TODO 这里写触发事件 // //event.name为事件名称 // console.log(event.name) // }, this); // animationDisplay.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback); return state; }, // 生命周期 onLoad onLoad: function onLoad() { this._timeoutIds = []; this._intervalIds = []; this.initSceneData(); this.initSize(); window.ccc = this; }, _imageResList: null, _audioResList: null, _animaResList: null, _lastFingerPosition: null, _hintsNodeList: null, _figurePointRectArray: null, _allAnimationNodes: null, initSceneData: function initSceneData() { this._imageResList = []; this._audioResList = []; this._animaResList = []; this._allAnimationNodes = []; this._hintsNodeList = []; this._lastFingerPosition = { pos: null, dirty: false }; this._figurePointRectArray = []; }, _designSize: null, // 设计分辨率 _frameSize: null, // 屏幕分辨率 _mapScaleMin: null, // 场景中常用缩放(取大值) _mapScaleMax: null, // 场景中常用缩放(取小值) _cocosScale: null, // cocos 自缩放 (较少用到) initSize: function initSize() { // 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小 var screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height; var design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height; var f = screen_size >= design_size; cc.Canvas.instance.fitHeight = f; cc.Canvas.instance.fitWidth = !f; var frameSize = cc.view.getFrameSize(); this._frameSize = frameSize; this._designSize = cc.view.getDesignResolutionSize(); var sx = cc.winSize.width / frameSize.width; var sy = cc.winSize.height / frameSize.height; this._cocosScale = Math.min(sx, sy); sx = frameSize.width / this._designSize.width; sy = frameSize.height / this._designSize.height; this._mapScaleMin = Math.min(sx, sy) * this._cocosScale; this._mapScaleMax = Math.max(sx, sy) * this._cocosScale; }, createStateMachine: function createStateMachine() { var _this = this; var check = [{ target: '#game.end', cond: function cond(ctx, evt) { console.log('[answer NEXT] check if end', ctx.questionIndex >= ctx.questionsCount - 1); return ctx.questionIndex >= ctx.questionsCount - 1; } }, { target: 'hint' } // reenter 'hint' state ]; var QuestionState = { id: 'question', initial: 'hint', states: { hint: { invoke: { src: function src(ctx, event) { console.log("[hint] play question " + ctx.questionIndex + ": " + ctx.questionPlayTimes + " audio"); ctx.questionPlayTimes += 1; return new Promise(function (resolve, reject) { (0, _util.playAudioByUrl)(ctx.questions[ctx.questionIndex].audio_url, function () { console.log('hint finish'); resolve(); }); }); }, onDone: 'answer', onError: 'answer' } }, answer: { after: { 8000: [{ target: 'wrong' } // reenter 'hint' state ] }, invoke: { src: function src(context, event) { return function (callback, onReceive) { console.log('[answer] thinking and playing'); // check every second var id = setInterval(function () { if (!_this._lastFingerPosition.dirty) { return; } var region = context.questions[context.questionIndex]; var result = _this.checkInRegion(region.rect); if (result === null) { return; } console.log('[Genise JS] checkInRegion' + result); if (result) { callback('RIGHT'); } else { callback('WRONG'); } }, 300); _this._intervalIds.push(id); // Perform cleanup return function () { return clearInterval(id); }; }; } }, on: { RIGHT: { target: 'right' }, WRONG: { target: 'wrong' } } }, right: { invoke: { src: function src(context, event) { _this._lastFingerPosition.pos = null; _this._lastFingerPosition.dirty = false; return new Promise(function (resolve, reject) { console.log('answer right'); // this.playAni(context.questionIndex, 'normal') var an = context.questions[context.questionIndex].node; console.log('in right ' + typeof an); an.active = true; var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); dragonDisplay.playAnimation('normal', 0); var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); ddLogoCat.playAnimation('right', 1); ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); }, _this); (0, _util.playAudioByUrl)(_this.rightAudio, function () { resolve(); }); }); }, onDone: { target: '#QuestionsArray.next', actions: raise('CHECK') }, onError: { target: '#QuestionsArray.next', actions: raise('CHECK') } } }, wrong: { invoke: { src: function src(context, event) { _this._lastFingerPosition.pos = null; _this._lastFingerPosition.dirty = false; return new Promise(function (resolve, reject) { console.log('answer wrong', context.questionIndex, context.questionPlayTimes, context.maxQuestionTryTimes); var ddLogoCat = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); ddLogoCat.playAnimation('wrong', 1); ddLogoCat.once(dragonBones.EventObject.COMPLETE, function () { this.logoCat.getComponent(dragonBones.ArmatureDisplay).playAnimation('normal', 0); }, _this); var wrongEffect = _this.wrongAudio; // 第一和第二题的提示音 if ([0, 1].includes(context.questionIndex)) { wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; } else { // 非第一和第二题,并且做第二遍的提示音 if (context.questionPlayTimes == 2) { wrongEffect = _this.data["wrong_audio" + context.questionPlayTimes]; } } if (context.questionPlayTimes >= context.maxQuestionTryTimes) { var an = context.questions[context.questionIndex].node; an.active = true; var dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); dragonDisplay.playAnimation('normal', 0); console.log('show animation', an.active); } (0, _util.playAudioByUrl)(wrongEffect, function () { if (context.questionPlayTimes >= context.maxQuestionTryTimes) { // const an = context.questions[context.questionIndex].node; // an.active = true; // const dragonDisplay = an.getComponent(dragonBones.ArmatureDisplay); // dragonDisplay.playAnimation('normal', 0); // console.log('show animation', an.active); reject(); } else { resolve(); } }); }); }, onDone: { target: 'hint' // actions: raise('CHECK') }, onError: { target: '#QuestionsArray.next', actions: raise('CHECK') } } } } }; var QuestionsArrayStatus = { id: 'QuestionsArray', initial: 'play', states: { play: _extends({}, QuestionState), next: { on: { CHECK: [{ target: '#game.end', cond: function cond(ctx, evt) { ctx.questionIndex += 1; ctx.questionPlayTimes = 0; console.log('#game.end', ctx.questionIndex >= ctx.questionsCount); return ctx.questionIndex >= ctx.questionsCount; } }, { target: 'play' }] } } } }; var state = { id: 'game', initial: 'begin', context: { questionIndex: 0, questionPlayTimes: 0, maxQuestionTryTimes: 2, questionsCount: this._figurePointRectArray.length, questions: this._figurePointRectArray }, states: { begin: { invoke: { src: function src(ctx) { console.log('game begin 1'); if (window.courseware && window.courseware.openOsmoFingerRead) { _this.isOpenedOsmoFingerRead = true; window.courseware.openOsmoFingerRead({ "page_id": 27, "book_id": "opw1" }); } var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); var state = dragonDisplay.playAnimation('begin', 0); return new Promise(function (resolve, reject) { (0, _util.playAudioByUrl)(_this.data.begin_audio, function () { console.log('game begin audio finish'); resolve(); }); }); }, onDone: 'guide', onError: 'guide' } }, guide: { invoke: { src: function src(ctx) { return new Promise(function (resolve, reject) { (0, _util.playAudioByUrl)(_this.data.guide_audio, function () { console.log('game guide audio finish'); reject(); }); }); }, onDone: 'playing', onError: 'playing' } }, playing: _extends({ entry: function entry(ctx) { console.log('entry play stage'); var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); var state = dragonDisplay.playAnimation('normal', 0); cc.assetManager.loadRemote(_this.data.playing_audio, function (err, audioClip) { cc.audioEngine.playMusic(audioClip, true, 0.8); }); ctx.questions.forEach(function (block) { block.node.active = false; }); }, exit: function exit() { console.log('exit play stage'); cc.audioEngine.stopMusic(); }, on: { NEXT: 'end' } }, QuestionsArrayStatus), end: { entry: function entry(ctx, event) { console.log('game end'); var dragonDisplay = _this.logoCat.getComponent(dragonBones.ArmatureDisplay); var state = dragonDisplay.playAnimation('finish', 0); if (window.courseware && window.courseware.closeOsmoFingerRead) { _this.isOpenedOsmoFingerRead = false; window.courseware.closeOsmoFingerRead(); } (0, _util.playAudioByUrl)(_this.data.end_audio, function () { console.log('game finish'); }); // return new Promise((resolve,reject) => { // setTimeout(() => { // console.log('hint finish'); // resolve() // }, 2000) // }) } } } }; var after = {}; var _loop = function _loop(i) { var t = _this._hintsNodeList[i].node; var k = _this._hintsNodeList[i].after; after[k] = { actions: function actions() { var dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); dragonDisplay.playAnimation('enlarge', 1); console.log(dragonDisplay._armatureKey, 'enlarge'); dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, function (event) {// TODO 这里写触发事件 // event.name为事件名称 // event.armature.animation.play('normal', 0); // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') }, _this); // const dragonDisplay = t.getComponent(dragonBones.ArmatureDisplay); // dragonDisplay.playAnimation('enlarge', 1); // console.log(dragonDisplay._armatureKey, 'enlarge') // dragonDisplay.addEventListener(dragonBones.EventObject.COMPLETE, (event) => { // //TODO 这里写触发事件 // //event.name为事件名称 // event.armature.animation.play('normal', 0); // console.log(event.animationState.name, dragonDisplay._armatureKey, 'end') // }, this); } }; }; for (var i = 0; i < this._hintsNodeList.length; i++) { _loop(i); } if (this.data.begin_sep_time) { var t = +this.data.begin_sep_time * 1000; after[t] = { actions: function actions() { console.log('game begin 2'); for (var _i = 0; _i < _this._allAnimationNodes.length; _i++) { var _t = _this._allAnimationNodes[_i]; var dragonDisplay = _t.getComponent(dragonBones.ArmatureDisplay); dragonDisplay.playAnimation('normal', 0); } } }; } state.states.begin.after = after; var gameMachine = (0, _xstate.createMachine)(state); window.gameMachine = gameMachine; this.gameMachineService = (0, _xstate.interpret)(gameMachine).onTransition(function (state) {// console.log(1, state.value, state.context); }); this.gameMachineService.start(); window.gameMachineService = gameMachineService; }, // 生命周期 start start: function start() { var _this2 = this; var getData = this.getData.bind(this); if (window && window.courseware) { getData = window.courseware.getData; } getData(function (data) { // console.log('data:', data); _this2.data = data || _this2.getDefaultData(); _this2.data = JSON.parse(JSON.stringify(_this2.data)); _this2.preloadItem(); }); window.air = window.air || {}; if (window.air) { window.air.osmoFingerReadCallback = function (result) { if (!_this2.gameMachineService) { return; } // const st = this.gameMachineService.state.value.constructor.name == 'Object' // && this.gameMachineService.state.value['playing'] // && this.gameMachineService.state.value['playing'].constructor.name == 'Object' // && this.gameMachineService.state.value['playing']['play'] // && this.gameMachineService.state.value['playing']['play'] == 'answer' // if (st) { // } var resultObj = JSON.parse(result); console.log('[Genise JS] ' + JSON.stringify(resultObj.finger_pos_in_page)); var p = resultObj.finger_pos_in_page; if (p.x == -1 || p.y == -1) { _this2._lastFingerPosition.pos = null; _this2._lastFingerPosition.dirty = false; return; } _this2._lastFingerPosition = { pos: { x: p.x, y: p.y }, dirty: true }; _this2.debugPointer(p.x, p.y); }; } this.isDebug = false; }, checkInRegion: function checkInRegion(r) { if (!this._lastFingerPosition && !this._lastFingerPosition.pos) { return null; } var p = this._lastFingerPosition ? this._lastFingerPosition.pos || { x: 0, y: 0 } : { x: 0, y: 0 }; var w = p.x > r.x && p.x < r.x + r.width; var h = p.y > r.y && p.y < r.y + r.height; return w && h; }, getData: function getData(func) { if (window && window.courseware) { window.courseware.getData(func, 'scene'); return; } var middleLayer = cc.find('middleLayer'); if (middleLayer) { var middleLayerComponent = middleLayer.getComponent('middleLayer'); middleLayerComponent.getData(func); return; } func(this.getDefaultData()); }, getDefaultData: function getDefaultData() { return _defaultData.defaultData; }, preloadItem: function preloadItem() { this.addPreloadImage(); this.addPreloadAudio(); this.addPreloadAnima(); this.preload(); }, addPreloadImage: function addPreloadImage() { this._imageResList.push({ url: this.data.bgItem.url }); for (var _iterator = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step; !(_step = _iterator()).done;) { var q = _step.value; if (q.gIdx == '0') { this._imageResList.push({ url: q.texPngData.url }); } if (q.gIdx == '1') { this._imageResList.push({ url: q.texPngData.url }); } if (q.gIdx == '2') { this._imageResList.push({ url: q.pic_url }); } } }, prepareAudioClip: function prepareAudioClip(url, key) { var _this3 = this; if (url) { cc.assetManager.loadRemote(url, function (err, audioClip) { if (audioClip) { _this3[key] = audioClip; } }); } }, addPreloadAudio: function addPreloadAudio() { this._audioResList.push({ url: this.data.begin_audio }); // this.prepareAudioClip(this.data.begin_audio1, 'begin_audio1') // this._audioResList.push({ url: this.data.begin_audio2 }); // this.prepareAudioClip(this.data.begin_audio2, 'begin_audio2') this._audioResList.push({ url: this.data.guide_audio }); this._audioResList.push({ url: this.data.playing_audio }); if (this.data.wrong_audio) { this._audioResList.push({ url: this.data.wrong_audio }); this.wrongAudio = this.data.wrong_audio; } if (this.data.right_audio) { this._audioResList.push({ url: this.data.right_audio }); this.rightAudio = this.data.right_audio; } this._audioResList.push({ url: this.data.wrong_audio1 }); this._audioResList.push({ url: this.data.wrong_audio2 }); this._audioResList.push({ url: this.data.end_audio }); for (var _iterator2 = _createForOfIteratorHelperLoose(this.data.hotZoneItemArr), _step2; !(_step2 = _iterator2()).done;) { var q = _step2.value; if (q.gIdx == '0') { this._audioResList.push({ url: q.audio_url }); } } }, debugPointer: function debugPointer() { var boxDebugger = cc.find('Canvas/box-debugger'); if (!this.isDebug) { boxDebugger.active = false; return; } if (!this.POINTER_NODE) { this.POINTER_NODE = new cc.Node(); this.POINTER_NODE.parent = boxDebugger; this.POINTER_NODE.name = 'POINTER_NODE'; this.POINTER_NODE.addComponent(cc.Graphics); } var grap = this.POINTER_NODE.getComponent(cc.Graphics); grap.clear(); var ground = cc.find('Canvas/frame-border/ground'); var baseW = ground.width, baseH = ground.height; var _this$_lastFingerPosi = this._lastFingerPosition.pos, px = _this$_lastFingerPosi.x, py = _this$_lastFingerPosi.y; var x = baseW * px - baseW / 2; var y = baseH - baseH * py - baseH / 2 - 16; var pn = new cc.Node(); grap.fillColor = cc.color(255, 0, 0); grap.circle(x, y, 32); grap.fill(); grap.stroke(); }, debugGraphics: function debugGraphics() { var boxDebugger = cc.find('Canvas/box-debugger'); if (!this.isDebug) { boxDebugger.active = false; return; } boxDebugger.active = true; console.log('show debug graphics'); var ground = cc.find('Canvas/frame-border/ground'); var canvas = cc.find('Canvas'); var baseW = ground.width, baseH = ground.height; var _this$data$bgItem$rec = this.data.bgItem.rect, bgW = _this$data$bgItem$rec.width, bgH = _this$data$bgItem$rec.height; var scaleX = bgW / baseW; var scaleY = bgH / baseH; var added = false; this.data.hotZoneItemArr.forEach(function (area) { if (added) {// return } if (area.gIdx != '0') { return; } added = true; var dn = new cc.Node(); var lblNode = new cc.Node(); lblNode.parent = dn; var lbl = lblNode.addComponent(cc.Label); lblNode.color = cc.color(0, 0, 0); lbl.string = area.skeJsonData.name.substring(0, area.skeJsonData.name.length - 9); dn.name = lbl.string; dn.parent = boxDebugger; dn.width = baseW; dn.height = baseH; var grap = dn.addComponent(cc.Graphics); var r = (0, _util.RandomInt)(1, 255); var g = (0, _util.RandomInt)(1, 255); var b = (0, _util.RandomInt)(1, 255); grap.fillColor = cc.color(r, g, b, 127); var _area$rect = area.rect, rx = _area$rect.x, ry = _area$rect.y, rw = _area$rect.width, rh = _area$rect.height; var w = rw / bgW * baseW; var h = rh / bgH * baseH; var x = rx / bgW * baseW - baseW / 2; var y = baseH - ry / bgH * baseH - h - baseH / 2; // w *= scaleX // h *= scaleY // x *= scaleX // y *= scaleY // const p = boxDebugger.convertToNodeSpaceAR(cc.v2(x,y)); // x = p.x; // y = p.y; lblNode.x = x; lblNode.y = y + h; // dn.scaleX = scaleX; // dn.scaleY = scaleY; // dn.scale = area.mapScale; // minScale; // this._mapScaleMax * area.mapScale; // ; console.log('[debug]', area.skeJsonData.name, x, y, w, h); grap.fillRect(x, y, w, h); grap.stroke(); }); }, addPreloadAnima: function addPreloadAnima() {}, preload: function preload() { var _this4 = this; var preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); // console.log(preloadArr); cc.assetManager.loadAny(preloadArr, null, function (f, t, item) {// console.log(f, t, item) }, function (err, data) { // console.log(err, data); var ground = cc.find("Canvas/frame-border/ground"); var groundBg = cc.find("Canvas/frame-border/ground/bg"); groundBg.active = false; var baseRect = _this4.data.bgItem.rect; (0, _util.getSpriteFrimeByUrl)(_this4.data.bgItem.url, function (sf) { var gs = groundBg.getComponent(cc.Sprite); gs.spriteFrame = sf; groundBg.active = true; var dbCount = 0; var finishDbCount = 0; for (var _iterator3 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step3; !(_step3 = _iterator3()).done;) { var block = _step3.value; if (block.gIdx == '0' || block.gIdx == '1') { dbCount++; } } for (var _iterator4 = _createForOfIteratorHelperLoose(_this4.data.hotZoneItemArr), _step4; !(_step4 = _iterator4()).done;) { var _block = _step4.value; if (_block.gIdx == '2') { (function () { var s1 = (ground.width / _block.imgSizeW + ground.height / _block.imgSizeH) / 2; var node = new cc.Node(); node.parent = ground; var spr = node.addComponent(cc.Sprite); (0, _util.getSpriteFrimeByUrl)(_block.pic_url, function (sf) { spr.spriteFrame = sf; node.scale = s1; }); })(); } if (_block.gIdx == '0' || _block.gIdx == '1') { (function () { var n = new cc.Node(); n.scale = 0.25; var db = n.addComponent(dragonBones.ArmatureDisplay); n.parent = ground; n.active = false; (0, _util.loadDragonBones)(db, { tex: _block.texPngData.url, atlas: _block.texJsonData.url, ske: _block.skeJsonData.url }).then(function (_ref) { var width = _ref.width, height = _ref.height; n.width = width; n.height = height; n.active = true; db.playAnimation('null', 0); _this4._allAnimationNodes.push(n); finishDbCount++; console.log(finishDbCount, dbCount); if (finishDbCount == dbCount) { _this4.loadEnd(); } })["catch"](function () { finishDbCount++; console.log(finishDbCount, dbCount); if (finishDbCount == dbCount) { _this4.loadEnd(); } }); if (_block.gIdx == '0') { var rectInfo = { node: n, audio_url: _block.audio_url, rect: { x: _block.rect.x / baseRect.width, y: _block.rect.y / baseRect.height, width: _block.rect.width / baseRect.width, height: _block.rect.height / baseRect.height } }; _this4._figurePointRectArray.push(rectInfo); if (_block.labelText) { var k = +_block.labelText * 1000; if (!isNaN(k)) { _this4._hintsNodeList.push({ node: n, after: k }); } } } })(); } } }); // console.log(this.data); console.log('resource perload finish'); // <<<<<<< HEAD // ======= // if (window && window["air"]) { // // cc.find('Canvas').opacity = 0; // window.air.onCourseInScreen = (next) => { // // cc.find('Canvas').opacity = 255; // this.loadEnd(); // next(); // } // window.air.hideAirClassLoading(); // } else { // this.loadEnd(); // } // >>>>>>> 2d461e1910571bcfc6ad4dc93c2cedafc20923ea cc.debug.setDisplayStats(false); }); }, loadEnd: function loadEnd() { if (window && window["air"] && window["air"].hideAirClassLoading) { window["air"].hideAirClassLoading(); } this.initData(); // this.initAudio(); // this.initView(); this.initBg(); // this.initListener(); this.debugGraphics(); this.createStateMachine(); }, _cantouch: null, initData: function initData() { // 所有全局变量 默认都是null this._cantouch = true; }, // audioBtn: null, // initAudio() { // const audioNode = cc.find('Canvas/res/audio'); // const getAudioByResName = (resName) => { // return audioNode.getChildByName(resName).getComponent(cc.AudioSource); // } // this.audioBtn = getAudioByResName('btn'); // }, // initView() { // // this.initBg(); // // this.initPic(); // // this.initBtn(); // this.initIcon(); // }, initBg: function initBg() { var bgNode = cc.find('Canvas/bg'); bgNode.scale = this._mapScaleMax; console.log('this._mapScaleMax', this._mapScaleMax); }, /*initBtn() { this.curPage = 0; const bottomPart = cc.find('Canvas/bottomPart'); bottomPart.zIndex = 5; // 提高层级 bottomPart.x = bottomPart.parent.width / 2; bottomPart.y = -bottomPart.parent.height / 2; const leftBtnNode = bottomPart.getChildByName('btn_left'); //节点中添加了button组件 则可以添加click事件监听 leftBtnNode.on('click', () => { if (!this._cantouch) { return; } if (this.curPage == 0) { return; } this.curPage = 0 this.leftMove(); // 游戏结束时需要调用这个方法通知系统作业完成 onHomeworkFinish(); cc.audioEngine.play(this.audioBtn.clip, false, 0.8) }) const rightBtnNode = bottomPart.getChildByName('btn_right'); //节点中添加了button组件 则可以添加click事件监听 rightBtnNode.on('click', () => { if (!this._cantouch) { return; } if (this.curPage == 1) { return; } this.curPage = 1 this.rightMove(); cc.audioEngine.play(this.audioBtn.clip, false, 0.5) }) },*/ // update (dt) {}, _timeoutIds: null, _intervalIds: null, // 生命周期 onDestroy: function onDestroy() { console.log('op15 onDestroy'); this._timeoutIds.forEach(function (id) { clearTimeout(id); }); this._intervalIds.forEach(function (id) { clearInterval(id); }); this.gameMachineService.stopChild(); this.gameMachineService.stop(); if (window.courseware && window.courseware.closeOsmoFingerRead) { if (this.isOpenedOsmoFingerRead) { window.courseware.closeOsmoFingerRead(); } } } }); cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjZW5lL09QMTUuanMiXSwibmFtZXMiOlsicHVyZSIsImFjdGlvbnMiLCJzZW5kIiwicmFpc2UiLCJzZW5kUGFyZW50IiwiY2MiLCJDbGFzcyIsIkNvbXBvbmVudCIsInByb3BlcnRpZXMiLCJyaWdodEF1ZGlvIiwidHlwZSIsIkF1ZGlvQ2xpcCIsIndyb25nQXVkaW8iLCJsb2dvQ2F0IiwiTm9kZSIsInBsYXlBbmkiLCJpZHgiLCJuYW1lIiwib3B0aW9ucyIsInRpbWVzIiwiY2IiLCJjYWxsYmFjayIsIm5vZGUiLCJfZmlndXJlUG9pbnRSZWN0QXJyYXkiLCJkcmFnb25EaXNwbGF5IiwiZ2V0Q29tcG9uZW50IiwiZHJhZ29uQm9uZXMiLCJBcm1hdHVyZURpc3BsYXkiLCJzdGF0ZSIsInBsYXlBbmltYXRpb24iLCJvbkxvYWQiLCJfdGltZW91dElkcyIsIl9pbnRlcnZhbElkcyIsImluaXRTY2VuZURhdGEiLCJpbml0U2l6ZSIsIndpbmRvdyIsImNjYyIsIl9pbWFnZVJlc0xpc3QiLCJfYXVkaW9SZXNMaXN0IiwiX2FuaW1hUmVzTGlzdCIsIl9sYXN0RmluZ2VyUG9zaXRpb24iLCJfaGludHNOb2RlTGlzdCIsIl9hbGxBbmltYXRpb25Ob2RlcyIsInBvcyIsImRpcnR5IiwiX2Rlc2lnblNpemUiLCJfZnJhbWVTaXplIiwiX21hcFNjYWxlTWluIiwiX21hcFNjYWxlTWF4IiwiX2NvY29zU2NhbGUiLCJzY3JlZW5fc2l6ZSIsInZpZXciLCJnZXRGcmFtZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsImRlc2lnbl9zaXplIiwiQ2FudmFzIiwiaW5zdGFuY2UiLCJkZXNpZ25SZXNvbHV0aW9uIiwiZiIsImZpdEhlaWdodCIsImZpdFdpZHRoIiwiZnJhbWVTaXplIiwiZ2V0RGVzaWduUmVzb2x1dGlvblNpemUiLCJzeCIsIndpblNpemUiLCJzeSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJjcmVhdGVTdGF0ZU1hY2hpbmUiLCJjaGVjayIsInRhcmdldCIsImNvbmQiLCJjdHgiLCJldnQiLCJjb25zb2xlIiwibG9nIiwicXVlc3Rpb25JbmRleCIsInF1ZXN0aW9uc0NvdW50IiwiUXVlc3Rpb25TdGF0ZSIsImlkIiwiaW5pdGlhbCIsInN0YXRlcyIsImhpbnQiLCJpbnZva2UiLCJzcmMiLCJldmVudCIsInF1ZXN0aW9uUGxheVRpbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVzdGlvbnMiLCJhdWRpb191cmwiLCJvbkRvbmUiLCJvbkVycm9yIiwiYW5zd2VyIiwiYWZ0ZXIiLCJjb250ZXh0Iiwib25SZWNlaXZlIiwic2V0SW50ZXJ2YWwiLCJyZWdpb24iLCJyZXN1bHQiLCJjaGVja0luUmVnaW9uIiwicmVjdCIsInB1c2giLCJjbGVhckludGVydmFsIiwib24iLCJSSUdIVCIsIldST05HIiwicmlnaHQiLCJhbiIsImFjdGl2ZSIsImRkTG9nb0NhdCIsIm9uY2UiLCJFdmVudE9iamVjdCIsIkNPTVBMRVRFIiwid3JvbmciLCJtYXhRdWVzdGlvblRyeVRpbWVzIiwid3JvbmdFZmZlY3QiLCJpbmNsdWRlcyIsImRhdGEiLCJRdWVzdGlvbnNBcnJheVN0YXR1cyIsInBsYXkiLCJuZXh0IiwiQ0hFQ0siLCJsZW5ndGgiLCJiZWdpbiIsImNvdXJzZXdhcmUiLCJvcGVuT3Ntb0ZpbmdlclJlYWQiLCJpc09wZW5lZE9zbW9GaW5nZXJSZWFkIiwiYmVnaW5fYXVkaW8iLCJndWlkZSIsImd1aWRlX2F1ZGlvIiwicGxheWluZyIsImVudHJ5IiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsInBsYXlpbmdfYXVkaW8iLCJlcnIiLCJhdWRpb0NsaXAiLCJhdWRpb0VuZ2luZSIsInBsYXlNdXNpYyIsImZvckVhY2giLCJibG9jayIsImV4aXQiLCJzdG9wTXVzaWMiLCJORVhUIiwiZW5kIiwiY2xvc2VPc21vRmluZ2VyUmVhZCIsImVuZF9hdWRpbyIsImkiLCJ0IiwiayIsIl9hcm1hdHVyZUtleSIsImFkZEV2ZW50TGlzdGVuZXIiLCJiZWdpbl9zZXBfdGltZSIsImdhbWVNYWNoaW5lIiwiZ2FtZU1hY2hpbmVTZXJ2aWNlIiwib25UcmFuc2l0aW9uIiwic3RhcnQiLCJnZXREYXRhIiwiYmluZCIsImdldERlZmF1bHREYXRhIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwicHJlbG9hZEl0ZW0iLCJhaXIiLCJvc21vRmluZ2VyUmVhZENhbGxiYWNrIiwicmVzdWx0T2JqIiwiZmluZ2VyX3Bvc19pbl9wYWdlIiwicCIsIngiLCJ5IiwiZGVidWdQb2ludGVyIiwiaXNEZWJ1ZyIsInIiLCJ3IiwiaCIsImZ1bmMiLCJtaWRkbGVMYXllciIsImZpbmQiLCJtaWRkbGVMYXllckNvbXBvbmVudCIsImRlZmF1bHREYXRhIiwiYWRkUHJlbG9hZEltYWdlIiwiYWRkUHJlbG9hZEF1ZGlvIiwiYWRkUHJlbG9hZEFuaW1hIiwicHJlbG9hZCIsInVybCIsImJnSXRlbSIsImhvdFpvbmVJdGVtQXJyIiwicSIsImdJZHgiLCJ0ZXhQbmdEYXRhIiwicGljX3VybCIsInByZXBhcmVBdWRpb0NsaXAiLCJrZXkiLCJ3cm9uZ19hdWRpbyIsInJpZ2h0X2F1ZGlvIiwid3JvbmdfYXVkaW8xIiwid3JvbmdfYXVkaW8yIiwiYm94RGVidWdnZXIiLCJQT0lOVEVSX05PREUiLCJwYXJlbnQiLCJhZGRDb21wb25lbnQiLCJHcmFwaGljcyIsImdyYXAiLCJjbGVhciIsImdyb3VuZCIsImJhc2VXIiwiYmFzZUgiLCJweCIsInB5IiwicG4iLCJmaWxsQ29sb3IiLCJjb2xvciIsImNpcmNsZSIsImZpbGwiLCJzdHJva2UiLCJkZWJ1Z0dyYXBoaWNzIiwiY2FudmFzIiwiYmdXIiwiYmdIIiwic2NhbGVYIiwic2NhbGVZIiwiYWRkZWQiLCJhcmVhIiwiZG4iLCJsYmxOb2RlIiwibGJsIiwiTGFiZWwiLCJzdHJpbmciLCJza2VKc29uRGF0YSIsInN1YnN0cmluZyIsImciLCJiIiwicngiLCJyeSIsInJ3IiwicmgiLCJmaWxsUmVjdCIsInByZWxvYWRBcnIiLCJjb25jYXQiLCJsb2FkQW55IiwiaXRlbSIsImdyb3VuZEJnIiwiYmFzZVJlY3QiLCJzZiIsImdzIiwiU3ByaXRlIiwic3ByaXRlRnJhbWUiLCJkYkNvdW50IiwiZmluaXNoRGJDb3VudCIsInMxIiwiaW1nU2l6ZVciLCJpbWdTaXplSCIsInNwciIsInNjYWxlIiwibiIsImRiIiwidGV4IiwiYXRsYXMiLCJ0ZXhKc29uRGF0YSIsInNrZSIsInRoZW4iLCJsb2FkRW5kIiwicmVjdEluZm8iLCJsYWJlbFRleHQiLCJpc05hTiIsImRlYnVnIiwic2V0RGlzcGxheVN0YXRzIiwiaGlkZUFpckNsYXNzTG9hZGluZyIsImluaXREYXRhIiwiaW5pdEJnIiwiX2NhbnRvdWNoIiwiYmdOb2RlIiwib25EZXN0cm95IiwiY2xlYXJUaW1lb3V0Iiwic3RvcENoaWxkIiwic3RvcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztJQUNRQSxPQUFvQ0MsZ0JBQXBDRDtJQUFPRSxPQUE2QkQsZ0JBQTdCQztJQUFNQyxRQUF1QkYsZ0JBQXZCRTtJQUFPQyxhQUFnQkgsZ0JBQWhCRztBQUc1QkMsRUFBRSxDQUFDQyxLQUFILENBQVM7QUFFUixhQUFTRCxFQUFFLENBQUNFLFNBRko7QUFJUkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1g7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsSUFBQUEsVUFBVSxFQUFFO0FBQ1gsaUJBQVMsSUFERTtBQUVYQyxNQUFBQSxJQUFJLEVBQUVMLEVBQUUs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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYUM7QUFxQkFqQixFQUFBQSxXQUFXLEVBQUUsSUE1OEJMO0FBNjhCUkMsRUFBQUEsWUFBWSxFQUFFLElBNzhCTjtBQTg4QlI7QUFDQXFQLEVBQUFBLFNBLzhCUSx1QkErOEJJO0FBQ1h6TSxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxnQkFBWjs7QUFDQSxTQUFLOUMsV0FBTCxDQUFpQmdILE9BQWpCLENBQXlCLFVBQUE5RCxFQUFFLEVBQUk7QUFDOUJxTSxNQUFBQSxZQUFZLENBQUNyTSxFQUFELENBQVo7QUFDQSxLQUZEOztBQUdBLFNBQUtqRCxZQUFMLENBQWtCK0csT0FBbEIsQ0FBMEIsVUFBQTlELEVBQUUsRUFBSTtBQUMvQnlCLE1BQUFBLGFBQWEsQ0FBQ3pCLEVBQUQsQ0FBYjtBQUNBLEtBRkQ7O0FBR0EsU0FBSzZFLGtCQUFMLENBQXdCeUgsU0FBeEI7QUFDQSxTQUFLekgsa0JBQUwsQ0FBd0IwSCxJQUF4Qjs7QUFDQSxRQUFHclAsTUFBTSxDQUFDNkYsVUFBUCxJQUFxQjdGLE1BQU0sQ0FBQzZGLFVBQVAsQ0FBa0JxQixtQkFBMUMsRUFBK0Q7QUFDOUQsVUFBSSxLQUFLbkIsc0JBQVQsRUFBaUM7QUFDaEMvRixRQUFBQSxNQUFNLENBQUM2RixVQUFQLENBQWtCcUIsbUJBQWxCO0FBQ0E7QUFDRDtBQUNEO0FBOTlCTyxDQUFUIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvbkhvbWV3b3JrRmluaXNoLCBSYW5kb21JbnQsIHBsYXlBdWRpb0J5VXJsLCBsb2FkRHJhZ29uQm9uZXMsIGdldFNwcml0ZUZyaW1lQnlVcmwgfSBmcm9tIFwiLi4vc2NyaXB0L3V0aWxcIjtcbmltcG9ydCB7IGRlZmF1bHREYXRhIH0gZnJvbSBcIi4uL3NjcmlwdC9kZWZhdWx0RGF0YVwiO1xuaW1wb3J0IHsgYXNzaWduLCBjcmVhdGVNYWNoaW5lLCBpbnRlcnByZXQsIGFjdGlvbnMsIGZvcndhcmRUbywgbWF0Y2hlc1N0YXRlICB9IGZyb20gXCIuLi9zY3JpcHQveHN0YXRlXCI7XG5jb25zdCB7IHB1cmUgLCBzZW5kLCByYWlzZSwgc2VuZFBhcmVudCAgfSA9IGFjdGlvbnM7XG5cblxuY2MuQ2xhc3Moe1xuXG5cdGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcblxuXHRwcm9wZXJ0aWVzOiB7XG5cdFx0LyphbnQ6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YXBwbGU6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0YmlyZDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRjYXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0Y2F0OiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGNvdzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRkdWNrOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGVnZzoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRmYXJtZXI6IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5Ob2RlLFxuXHRcdH0sXG5cdFx0ZmlzaDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRnaXJsOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuTm9kZSxcblx0XHR9LFxuXHRcdGhlbjoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSxcblx0XHRob3VzZToge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGUsXG5cdFx0fSwqL1xuXHRcdHJpZ2h0QXVkaW86IHtcblx0XHRcdGRlZmF1bHQ6IG51bGwsXG5cdFx0XHR0eXBlOiBjYy5BdWRpb0NsaXAsXG5cdFx0fSxcblx0XHR3cm9uZ0F1ZGlvOiB7XG5cdFx0XHRkZWZhdWx0OiBudWxsLFxuXHRcdFx0dHlwZTogY2MuQXVkaW9DbGlwLFxuXHRcdH0sXG5cdFx0bG9nb0NhdDoge1xuXHRcdFx0ZGVmYXVsdDogbnVsbCxcblx0XHRcdHR5cGU6IGNjLk5vZGVcblx0XHR9XG5cblx0fSxcblxuXHRwbGF5QW5pKGlkeCwgbmFtZSwgb3B0aW9ucykge1xuXHRcdGNvbnN0IHRpbWVzID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50aW1lcykgfHwgMTtcblx0XHRjb25zdCBjYiA9IChvcHRpb25zICYmIG9wdGlvbnMuY2FsbGJhY2spIHx8IG51bGw7XG5cdFx0Ly8gY29uc3QgY2F0ID0gY2MuZmluZChgQ2FudmFzL2ZyYW1lLWJvcmRlci9ncm91bmQvJHtub2RlfWApO1xuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheVtpZHhdLm5vZGVcblx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IG5vZGUuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cblx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbihuYW1lLCB0aW1lcyk7XG5cdFx0Ly8gZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHQvLyBcdC8vVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHQvLyBcdC8vZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdC8vIFx0Y29uc29sZS5sb2coZXZlbnQubmFtZSlcblx0XHQvLyB9LCB0aGlzKTtcblx0XHQvLyBhbmltYXRpb25EaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGNvbXBsZXRlQ2FsbGJhY2spO1xuXHRcdHJldHVybiBzdGF0ZTtcblx0fSxcblx0Ly8g55Sf5ZG95ZGo5pyfIG9uTG9hZFxuXHRvbkxvYWQoKSB7XG5cdFx0dGhpcy5fdGltZW91dElkcyA9IFtdO1xuXHRcdHRoaXMuX2ludGVydmFsSWRzID0gW107XG5cdFx0dGhpcy5pbml0U2NlbmVEYXRhKCk7XG5cdFx0dGhpcy5pbml0U2l6ZSgpO1xuXHRcdHdpbmRvdy5jY2MgPSB0aGlzO1xuXHR9LFxuXG5cdF9pbWFnZVJlc0xpc3Q6IG51bGwsXG5cdF9hdWRpb1Jlc0xpc3Q6IG51bGwsXG5cdF9hbmltYVJlc0xpc3Q6IG51bGwsXG5cblx0X2xhc3RGaW5nZXJQb3NpdGlvbjogbnVsbCxcblxuXHRfaGludHNOb2RlTGlzdCA6IG51bGwsXG5cdF9maWd1cmVQb2ludFJlY3RBcnJheTogbnVsbCxcblxuXHRfYWxsQW5pbWF0aW9uTm9kZXM6IG51bGwsXG5cblx0aW5pdFNjZW5lRGF0YSgpIHtcblx0XHR0aGlzLl9pbWFnZVJlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QgPSBbXTtcblx0XHR0aGlzLl9hbmltYVJlc0xpc3QgPSBbXTtcblxuXHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzID0gW107XG5cdFx0dGhpcy5faGludHNOb2RlTGlzdCA9IFtdO1xuXHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbj0ge1xuXHRcdFx0cG9zOiBudWxsLFxuXHRcdFx0ZGlydHk6IGZhbHNlXG5cdFx0fTtcblx0XHR0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheSA9IFtdO1xuXHR9LFxuXG5cdF9kZXNpZ25TaXplOiBudWxsLCAgLy8g6K6+6K6h5YiG6L6o546HXG5cdF9mcmFtZVNpemU6IG51bGwsICAvLyDlsY/luZXliIbovqjnjodcblx0X21hcFNjYWxlTWluOiBudWxsLCAgLy8g5Zy65pmv5Lit5bi455So57yp5pS+77yI5Y+W5aSn5YC877yJXG5cdF9tYXBTY2FsZU1heDogbnVsbCwgIC8vIOWcuuaZr+S4reW4uOeUqOe8qeaUvu+8iOWPluWwj+WAvO+8iVxuXHRfY29jb3NTY2FsZTogbnVsbCwgIC8vIGNvY29zIOiHque8qeaUviDvvIjovoPlsJHnlKjliLDvvIlcblx0XG5cdGluaXRTaXplKCkge1xuXHRcdC8vIOazqOaEj2NjLndpblNpemXlj6rmnInlnKjpgILphY3lkI4o5L+u5pS5Zml0SGVpZ2h0L2ZpdFdpZHRo5ZCOKeaJjeiDveiOt+WPluWIsOato+ehrueahOWAvCzlm6DmraTkvb/nlKhjYy5nZXRGcmFtZVNpemUoKeadpeiOt+WPluWIneWni+eahOWxj+W5leWkp+Wwj1xuXHRcdGxldCBzY3JlZW5fc2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCkud2lkdGggLyBjYy52aWV3LmdldEZyYW1lU2l6ZSgpLmhlaWdodFxuXHRcdGxldCBkZXNpZ25fc2l6ZSA9IGNjLkNhbnZhcy5pbnN0YW5jZS5kZXNpZ25SZXNvbHV0aW9uLndpZHRoIC8gY2MuQ2FudmFzLmluc3RhbmNlLmRlc2lnblJlc29sdXRpb24uaGVpZ2h0XG5cdFx0bGV0IGYgPSBzY3JlZW5fc2l6ZSA+PSBkZXNpZ25fc2l6ZVxuXHRcdGNjLkNhbnZhcy5pbnN0YW5jZS5maXRIZWlnaHQgPSBmXG5cdFx0Y2MuQ2FudmFzLmluc3RhbmNlLmZpdFdpZHRoID0gIWZcblxuXHRcdGNvbnN0IGZyYW1lU2l6ZSA9IGNjLnZpZXcuZ2V0RnJhbWVTaXplKCk7XG5cdFx0dGhpcy5fZnJhbWVTaXplID0gZnJhbWVTaXplO1xuXG5cdFx0dGhpcy5fZGVzaWduU2l6ZSA9IGNjLnZpZXcuZ2V0RGVzaWduUmVzb2x1dGlvblNpemUoKTtcblxuXHRcdGxldCBzeCA9IGNjLndpblNpemUud2lkdGggLyBmcmFtZVNpemUud2lkdGg7XG5cdFx0bGV0IHN5ID0gY2Mud2luU2l6ZS5oZWlnaHQgLyBmcmFtZVNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX2NvY29zU2NhbGUgPSBNYXRoLm1pbihzeCwgc3kpO1xuXG5cdFx0c3ggPSBmcmFtZVNpemUud2lkdGggLyB0aGlzLl9kZXNpZ25TaXplLndpZHRoO1xuXHRcdHN5ID0gZnJhbWVTaXplLmhlaWdodCAvIHRoaXMuX2Rlc2lnblNpemUuaGVpZ2h0O1xuXHRcdHRoaXMuX21hcFNjYWxlTWluID0gTWF0aC5taW4oc3gsIHN5KSAqIHRoaXMuX2NvY29zU2NhbGU7XG5cdFx0dGhpcy5fbWFwU2NhbGVNYXggPSBNYXRoLm1heChzeCwgc3kpICogdGhpcy5fY29jb3NTY2FsZTtcblx0fSxcblx0Y3JlYXRlU3RhdGVNYWNoaW5lKCl7XG5cdFx0Y29uc3QgY2hlY2sgPSAgW1xuXHRcdFx0XHRcdFx0XHR7IHRhcmdldDogJyNnYW1lLmVuZCcsIGNvbmQ6IChjdHgsIGV2dCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbYW5zd2VyIE5FWFRdIGNoZWNrIGlmIGVuZCcsIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCAtIDEpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBjdHgucXVlc3Rpb25JbmRleCA+PSBjdHgucXVlc3Rpb25zQ291bnQgLTFcblxuXHRcdFx0XHRcdFx0XHR9IH0sXG4gICAgICAgIFx0XHRcdFx0XHR7IHRhcmdldDogJ2hpbnQnIH0gLy8gcmVlbnRlciAnaGludCcgc3RhdGVcblx0XHRcdFx0XHRcdF1cblx0XHRjb25zdCBRdWVzdGlvblN0YXRlID0ge1xuXHRcdFx0aWQ6ICdxdWVzdGlvbicsXG5cdFx0XHRpbml0aWFsOiAnaGludCcsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0aGludDoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY3R4LCBldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2hpbnRdIHBsYXkgcXVlc3Rpb24gJHtjdHgucXVlc3Rpb25JbmRleH06ICR7Y3R4LnF1ZXN0aW9uUGxheVRpbWVzIH0gYXVkaW9gKTtcblx0XHRcdFx0XHRcdFx0Y3R4LnF1ZXN0aW9uUGxheVRpbWVzICs9IDE7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRwbGF5QXVkaW9CeVVybChjdHgucXVlc3Rpb25zW2N0eC5xdWVzdGlvbkluZGV4XS5hdWRpb191cmwsICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdoaW50IGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICdhbnN3ZXInLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ2Fuc3dlcidcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFuc3dlcjoge1xuXHRcdFx0XHRcdGFmdGVyOiB7XG5cdFx0XHRcdFx0XHQ4MDAwOiBbXG4gICAgICAgIFx0XHRcdFx0XHR7IFxuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDogJ3dyb25nJyxcblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0fSAvLyByZWVudGVyICdoaW50JyBzdGF0ZVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IChjYWxsYmFjaywgb25SZWNlaXZlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnW2Fuc3dlcl0gdGhpbmtpbmcgYW5kIHBsYXlpbmcnKTtcblx0XHRcdFx0XHRcdFx0Ly8gY2hlY2sgZXZlcnkgc2Vjb25kXG5cdFx0XHRcdFx0XHRcdGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLmRpcnR5KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHJlZ2lvbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF07XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy5jaGVja0luUmVnaW9uKHJlZ2lvbi5yZWN0KTtcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0ID09PSBudWxsKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdbR2VuaXNlIEpTXSBjaGVja0luUmVnaW9uJyArIHJlc3VsdClcblx0XHRcdFx0XHRcdFx0XHRpZiAocmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnUklHSFQnKVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjYWxsYmFjaygnV1JPTkcnKVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSwgMzAwKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5faW50ZXJ2YWxJZHMucHVzaChpZCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdC8vIFBlcmZvcm0gY2xlYW51cFxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpZCk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0UklHSFQ6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAncmlnaHQnLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFdST05HOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJ3dyb25nJyxcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdFxuXHRcdFx0XHRyaWdodDoge1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgcmlnaHQnKTtcblx0XHRcdFx0XHRcdFx0XHQvLyB0aGlzLnBsYXlBbmkoY29udGV4dC5xdWVzdGlvbkluZGV4LCAnbm9ybWFsJylcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhbiA9IGNvbnRleHQucXVlc3Rpb25zW2NvbnRleHQucXVlc3Rpb25JbmRleF0ubm9kZTtcblx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnaW4gcmlnaHQgJyArICh0eXBlb2YgYW4pKVxuXHRcdFx0XHRcdFx0XHRcdGFuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGRMb2dvQ2F0ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0LnBsYXlBbmltYXRpb24oJ3JpZ2h0JywgMSlcblx0XHRcdFx0XHRcdFx0XHRkZExvZ29DYXQub25jZShkcmFnb25Cb25lcy5FdmVudE9iamVjdC5DT01QTEVURSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMClcblx0XHRcdFx0XHRcdFx0XHR9LCB0aGlzKVxuXG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5yaWdodEF1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRXJyb3I6IHtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI1F1ZXN0aW9uc0FycmF5Lm5leHQnLFxuXHRcdFx0XHRcdFx0XHRhY3Rpb25zOiByYWlzZSgnQ0hFQ0snKVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0d3Jvbmc6e1xuXHRcdFx0XHRcdGludm9rZToge1xuXHRcdFx0XHRcdFx0c3JjOiAoY29udGV4dCwgZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcyA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdhbnN3ZXIgd3JvbmcnLCBjb250ZXh0LnF1ZXN0aW9uSW5kZXgsIGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgLCBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRkTG9nb0NhdCA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KVxuXHRcdFx0XHRcdFx0XHRcdGRkTG9nb0NhdC5wbGF5QW5pbWF0aW9uKCd3cm9uZycsIDEpXG5cdFx0XHRcdFx0XHRcdFx0ZGRMb2dvQ2F0Lm9uY2UoZHJhZ29uQm9uZXMuRXZlbnRPYmplY3QuQ09NUExFVEUsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpLnBsYXlBbmltYXRpb24oJ25vcm1hbCcsIDApXG5cdFx0XHRcdFx0XHRcdFx0fSwgdGhpcyk7XG5cdFx0XHRcdFx0XHRcdFx0bGV0IHdyb25nRWZmZWN0ID0gdGhpcy53cm9uZ0F1ZGlvO1xuXHRcdFx0XHRcdFx0XHRcdC8vIOesrOS4gOWSjOesrOS6jOmimOeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdGlmIChbMCwgMV0uaW5jbHVkZXMoY29udGV4dC5xdWVzdGlvbkluZGV4KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0d3JvbmdFZmZlY3QgPSB0aGlzLmRhdGFbYHdyb25nX2F1ZGlvJHtjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzfWBdXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIOmdnuesrOS4gOWSjOesrOS6jOmimO+8jOW5tuS4lOWBmuesrOS6jOmBjeeahOaPkOekuumfs1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbnRleHQucXVlc3Rpb25QbGF5VGltZXMgPT0gMikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR3cm9uZ0VmZmVjdCA9IHRoaXMuZGF0YVtgd3JvbmdfYXVkaW8ke2NvbnRleHQucXVlc3Rpb25QbGF5VGltZXN9YF1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblxuXHRcdFx0XHRcdFx0XHRcdGlmIChjb250ZXh0LnF1ZXN0aW9uUGxheVRpbWVzID49IGNvbnRleHQubWF4UXVlc3Rpb25UcnlUaW1lcykge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRhbi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgZHJhZ29uRGlzcGxheSA9IGFuLmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdzaG93IGFuaW1hdGlvbicsIGFuLmFjdGl2ZSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHdyb25nRWZmZWN0LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY29udGV4dC5xdWVzdGlvblBsYXlUaW1lcyA+PSBjb250ZXh0Lm1heFF1ZXN0aW9uVHJ5VGltZXMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc3QgYW4gPSBjb250ZXh0LnF1ZXN0aW9uc1tjb250ZXh0LnF1ZXN0aW9uSW5kZXhdLm5vZGU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuLmFjdGl2ZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnN0IGRyYWdvbkRpc3BsYXkgPSBhbi5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coJ3Nob3cgYW5pbWF0aW9uJywgYW4uYWN0aXZlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVqZWN0KClcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG9uRG9uZToge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQ6ICdoaW50Jyxcblx0XHRcdFx0XHRcdFx0Ly8gYWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkVycm9yOiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldDogJyNRdWVzdGlvbnNBcnJheS5uZXh0Jyxcblx0XHRcdFx0XHRcdFx0YWN0aW9uczogcmFpc2UoJ0NIRUNLJylcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGNvbnN0IFF1ZXN0aW9uc0FycmF5U3RhdHVzID0ge1xuXHRcdFx0aWQ6ICdRdWVzdGlvbnNBcnJheScsXG5cdFx0XHRpbml0aWFsOiAncGxheScsXG5cdFx0XHRzdGF0ZXM6IHtcblx0XHRcdFx0cGxheToge1xuXHRcdFx0XHRcdC4uLlF1ZXN0aW9uU3RhdGVcblx0XHRcdFx0fSxcblx0XHRcdFx0bmV4dDoge1xuXHRcdFx0XHRcdG9uOiB7XG5cdFx0XHRcdFx0XHRDSEVDSzogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiAnI2dhbWUuZW5kJyxcblx0XHRcdFx0XHRcdFx0XHRjb25kOiAoY3R4LCBldnQpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvbkluZGV4ICs9IDE7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdHgucXVlc3Rpb25QbGF5VGltZXMgPSAwXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnI2dhbWUuZW5kJywgIGN0eC5xdWVzdGlvbkluZGV4ID49IGN0eC5xdWVzdGlvbnNDb3VudCApXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gY3R4LnF1ZXN0aW9uSW5kZXggPj0gY3R4LnF1ZXN0aW9uc0NvdW50XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7dGFyZ2V0OiAncGxheSd9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0XG5cdFx0Y29uc3Qgc3RhdGUgPSB7XG5cdFx0XHRpZDogJ2dhbWUnLFxuXHRcdFx0aW5pdGlhbDogJ2JlZ2luJyxcblx0XHRcdGNvbnRleHQ6IHtcblx0XHRcdFx0cXVlc3Rpb25JbmRleDogMCxcblx0XHRcdFx0cXVlc3Rpb25QbGF5VGltZXM6IDAsXG5cdFx0XHRcdG1heFF1ZXN0aW9uVHJ5VGltZXM6IDIsXG5cdFx0XHRcdHF1ZXN0aW9uc0NvdW50OiB0aGlzLl9maWd1cmVQb2ludFJlY3RBcnJheS5sZW5ndGgsXG5cdFx0XHRcdHF1ZXN0aW9uczogdGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXksXG5cdFx0XHR9LFxuXHRcdFx0c3RhdGVzOiB7XG5cdFx0XHRcdGJlZ2luOiB7XG5cdFx0XHRcdFx0aW52b2tlOiB7XG5cdFx0XHRcdFx0XHRzcmM6IChjdHgpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gMScpO1xuXHRcdFx0XHRcdFx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5vcGVuT3Ntb0ZpbmdlclJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmlzT3BlbmVkT3Ntb0ZpbmdlclJlYWQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5jb3Vyc2V3YXJlLm9wZW5Pc21vRmluZ2VyUmVhZCh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcInBhZ2VfaWRcIjogMjcsXG5cdFx0XHRcdFx0XHRcdFx0XHRcImJvb2tfaWRcIjogXCJvcHcxXCJcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHZhciBkcmFnb25EaXNwbGF5ID0gdGhpcy5sb2dvQ2F0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignYmVnaW4nLCAwKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdHBsYXlBdWRpb0J5VXJsKHRoaXMuZGF0YS5iZWdpbl9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2dhbWUgYmVnaW4gYXVkaW8gZmluaXNoJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRvbkRvbmU6ICAnZ3VpZGUnLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ2d1aWRlJ1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0XG5cdFx0XHRcdGd1aWRlOntcblx0XHRcdFx0XHRpbnZva2U6IHtcblx0XHRcdFx0XHRcdHNyYzogKGN0eCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmd1aWRlX2F1ZGlvLCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZ2FtZSBndWlkZSBhdWRpbyBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0XHRcdHJlamVjdCgpXG5cdFx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0b25Eb25lOiAgJ3BsYXlpbmcnLFxuXHRcdFx0XHRcdFx0b25FcnJvcjogJ3BsYXlpbmcnXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcblx0XHRcdFx0fSxcblx0XHRcdFx0cGxheWluZzoge1xuXHRcdFx0XHRcdGVudHJ5OiAoY3R4KSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnZW50cnkgcGxheSBzdGFnZScpO1xuXHRcdFx0XHRcdFx0dmFyIGRyYWdvbkRpc3BsYXkgPSB0aGlzLmxvZ29DYXQuZ2V0Q29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRjb25zdCBzdGF0ZSA9IGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh0aGlzLmRhdGEucGxheWluZ19hdWRpbywgKGVyciwgYXVkaW9DbGlwKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXlNdXNpYyhhdWRpb0NsaXAsIHRydWUsIDAuOCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGN0eC5xdWVzdGlvbnMuZm9yRWFjaCgoYmxvY2spID0+IHtcblx0XHRcdFx0XHRcdFx0YmxvY2subm9kZS5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZXhpdDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ2V4aXQgcGxheSBzdGFnZScpO1xuXHRcdFx0XHRcdFx0Y2MuYXVkaW9FbmdpbmUuc3RvcE11c2ljKCk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRvbjoge1xuXHRcdFx0XHRcdFx0TkVYVDogJ2VuZCdcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdC8vIC4uLlF1ZXN0aW9uc1N0YXRlc1xuXHRcdFx0XHRcdC4uLlF1ZXN0aW9uc0FycmF5U3RhdHVzXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVuZDoge1xuXHRcdFx0XHRcdFx0ZW50cnk6IChjdHgsIGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGVuZCcpO1xuXHRcdFx0XHRcdFx0XHR2YXIgZHJhZ29uRGlzcGxheSA9IHRoaXMubG9nb0NhdC5nZXRDb21wb25lbnQoZHJhZ29uQm9uZXMuQXJtYXR1cmVEaXNwbGF5KTtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3RhdGUgPSBkcmFnb25EaXNwbGF5LnBsYXlBbmltYXRpb24oJ2ZpbmlzaCcsIDApO1xuXHRcdFx0XHRcdFx0XHRpZih3aW5kb3cuY291cnNld2FyZSAmJiB3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5pc09wZW5lZE9zbW9GaW5nZXJSZWFkID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCgpXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cGxheUF1ZGlvQnlVcmwodGhpcy5kYXRhLmVuZF9hdWRpbywgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGZpbmlzaCcpO1xuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHQvLyByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRjb25zb2xlLmxvZygnaGludCBmaW5pc2gnKTtcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdHJlc29sdmUoKVxuXHRcdFx0XHRcdFx0XHQvLyBcdH0sIDIwMDApXG5cdFx0XHRcdFx0XHRcdC8vIH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XG5cdFx0XHRcdH0sXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRjb25zdCBhZnRlciA9IHt9O1xuXHRcdGZvcihsZXQgaSA9IDAgO2kgIDwgdGhpcy5faGludHNOb2RlTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgdCA9IHRoaXMuX2hpbnRzTm9kZUxpc3RbaV0ubm9kZTtcblx0XHRcdGNvbnN0IGsgPSB0aGlzLl9oaW50c05vZGVMaXN0W2ldLmFmdGVyO1xuXHRcdFx0YWZ0ZXJba109IHtcblx0XHRcdFx0YWN0aW9uczogKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5sYXJnZScpXG5cdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdC8vIFRPRE8g6L+Z6YeM5YaZ6Kem5Y+R5LqL5Lu2XG5cdFx0XHRcdFx0XHQvLyBldmVudC5uYW1l5Li65LqL5Lu25ZCN56ewXG5cdFx0XHRcdFx0XHQvLyBldmVudC5hcm1hdHVyZS5hbmltYXRpb24ucGxheSgnbm9ybWFsJywgMCk7XG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhldmVudC5hbmltYXRpb25TdGF0ZS5uYW1lLCBkcmFnb25EaXNwbGF5Ll9hcm1hdHVyZUtleSwgJ2VuZCcpXG5cdFx0XHRcdFx0fSwgdGhpcyk7XG5cblxuXHRcdFx0XHRcdC8vIGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdC8vIGRyYWdvbkRpc3BsYXkucGxheUFuaW1hdGlvbignZW5sYXJnZScsIDEpO1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGRyYWdvbkRpc3BsYXkuX2FybWF0dXJlS2V5LCAnZW5sYXJnZScpXG5cdFx0XHRcdFx0Ly8gZHJhZ29uRGlzcGxheS5hZGRFdmVudExpc3RlbmVyKGRyYWdvbkJvbmVzLkV2ZW50T2JqZWN0LkNPTVBMRVRFLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHQvLyBcdC8vVE9ETyDov5nph4zlhpnop6blj5Hkuovku7Zcblx0XHRcdFx0XHQvLyBcdC8vZXZlbnQubmFtZeS4uuS6i+S7tuWQjeensFxuXHRcdFx0XHRcdC8vIFx0ZXZlbnQuYXJtYXR1cmUuYW5pbWF0aW9uLnBsYXkoJ25vcm1hbCcsIDApO1xuXHRcdFx0XHRcdC8vIFx0Y29uc29sZS5sb2coZXZlbnQuYW5pbWF0aW9uU3RhdGUubmFtZSwgZHJhZ29uRGlzcGxheS5fYXJtYXR1cmVLZXksICdlbmQnKVxuXHRcdFx0XHRcdC8vIH0sIHRoaXMpO1xuXHRcdFx0XHR9IFxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAodGhpcy5kYXRhLmJlZ2luX3NlcF90aW1lKSB7XG5cdFx0XHRjb25zdCB0ID0gK3RoaXMuZGF0YS5iZWdpbl9zZXBfdGltZSAqIDEwMDA7XG5cdFx0XHRhZnRlclt0XSA9IHtcblx0XHRcdFx0YWN0aW9uczogKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUubG9nKCdnYW1lIGJlZ2luIDInKTtcblxuXHRcdFx0XHRcdGZvcihsZXQgaSA9IDAgO2kgIDwgdGhpcy5fYWxsQW5pbWF0aW9uTm9kZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdGNvbnN0IHQgPSB0aGlzLl9hbGxBbmltYXRpb25Ob2Rlc1tpXTtcblx0XHRcdFx0XHRcdGNvbnN0IGRyYWdvbkRpc3BsYXkgPSB0LmdldENvbXBvbmVudChkcmFnb25Cb25lcy5Bcm1hdHVyZURpc3BsYXkpO1xuXHRcdFx0XHRcdFx0ZHJhZ29uRGlzcGxheS5wbGF5QW5pbWF0aW9uKCdub3JtYWwnLCAwKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0c3RhdGUuc3RhdGVzLmJlZ2luLmFmdGVyID0gYWZ0ZXI7XG5cblxuXG5cdFx0Y29uc3QgZ2FtZU1hY2hpbmUgPSBjcmVhdGVNYWNoaW5lKHN0YXRlKTtcblx0XHR3aW5kb3cuZ2FtZU1hY2hpbmUgPSBnYW1lTWFjaGluZTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZSA9IGludGVycHJldChnYW1lTWFjaGluZSkub25UcmFuc2l0aW9uKChzdGF0ZSkgPT4ge1xuXHRcdC8vIGNvbnNvbGUubG9nKDEsIHN0YXRlLnZhbHVlLCBzdGF0ZS5jb250ZXh0KTtcblx0XHR9KTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGFydCgpO1xuXHRcdHdpbmRvdy5nYW1lTWFjaGluZVNlcnZpY2UgPSBnYW1lTWFjaGluZVNlcnZpY2U7XG5cblxuXHR9LFxuXG5cdC8vIOeUn+WRveWRqOacnyBzdGFydFxuXHRzdGFydCgpIHtcblx0XHRsZXQgZ2V0RGF0YSA9IHRoaXMuZ2V0RGF0YS5iaW5kKHRoaXMpO1xuXHRcdGlmICh3aW5kb3cgJiYgd2luZG93LmNvdXJzZXdhcmUpIHtcblx0XHRcdGdldERhdGEgPSB3aW5kb3cuY291cnNld2FyZS5nZXREYXRhO1xuXHRcdH1cblxuXHRcdGdldERhdGEoKGRhdGEpID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdkYXRhOicsIGRhdGEpO1xuXHRcdFx0dGhpcy5kYXRhID0gZGF0YSB8fCB0aGlzLmdldERlZmF1bHREYXRhKCk7XG5cdFx0XHR0aGlzLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSkpXG5cdFx0XHRcblx0XHRcdHRoaXMucHJlbG9hZEl0ZW0oKVxuXHRcdH0pO1xuXHRcdHdpbmRvdy5haXIgPSB3aW5kb3cuYWlyIHx8IHt9XG5cdFx0aWYgKHdpbmRvdy5haXIpIHtcblx0XHRcdHdpbmRvdy5haXIub3Ntb0ZpbmdlclJlYWRDYWxsYmFjayA9IChyZXN1bHQpID0+IHtcblx0XHRcdFx0aWYgKCF0aGlzLmdhbWVNYWNoaW5lU2VydmljZSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBjb25zdCBzdCA9IHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ09iamVjdCcgXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11cblx0XHRcdFx0Ly8gJiYgdGhpcy5nYW1lTWFjaGluZVNlcnZpY2Uuc3RhdGUudmFsdWVbJ3BsYXlpbmcnXS5jb25zdHJ1Y3Rvci5uYW1lID09ICdPYmplY3QnXG5cdFx0XHRcdC8vICYmIHRoaXMuZ2FtZU1hY2hpbmVTZXJ2aWNlLnN0YXRlLnZhbHVlWydwbGF5aW5nJ11bJ3BsYXknXVxuXHRcdFx0XHQvLyAmJiB0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdGF0ZS52YWx1ZVsncGxheWluZyddWydwbGF5J10gPT0gJ2Fuc3dlcidcblx0XHRcdFx0Ly8gaWYgKHN0KSB7XG5cdFx0XHRcdC8vIH1cblx0XHRcdFx0Y29uc3QgcmVzdWx0T2JqID0gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHRcdFx0XHRjb25zb2xlLmxvZygnW0dlbmlzZSBKU10gJysgSlNPTi5zdHJpbmdpZnkocmVzdWx0T2JqLmZpbmdlcl9wb3NfaW5fcGFnZSkpXG5cdFx0XHRcdGNvbnN0IHAgPSByZXN1bHRPYmouZmluZ2VyX3Bvc19pbl9wYWdlO1xuXHRcdFx0XHRpZiAocC54ID09IC0xIHx8IHAueSA9PSAtMSkge1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgPSBudWxsO1xuXHRcdFx0XHRcdHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5kaXJ0eSA9IGZhbHNlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24gPSB7XG5cdFx0XHRcdFx0cG9zOntcblx0XHRcdFx0XHRcdHg6IHAueCxcblx0XHRcdFx0XHRcdHk6IHAueVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZGlydHk6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRlYnVnUG9pbnRlcihwLngsIHAueSlcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5pc0RlYnVnID0gZmFsc2U7XG5cdFx0XG5cdH0sXG5cdGNoZWNrSW5SZWdpb24ocikge1xuXHRcdGlmICghdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uICYmICF0aGlzLl9sYXN0RmluZ2VyUG9zaXRpb24ucG9zKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0Y29uc3QgcCA9IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbiA/IHRoaXMuX2xhc3RGaW5nZXJQb3NpdGlvbi5wb3MgfHwge3g6MCwgeTowfSA6IHt4OjAsIHk6MH07XG5cdFx0Y29uc3QgdyA9IHAueCA+IHIueCAmJiBwLnggPCAoci54ICsgci53aWR0aCk7XG5cdFx0Y29uc3QgaCA9IHAueSA+IHIueSAmJiBwLnkgPCAoci55ICsgci5oZWlnaHQpO1xuXHRcdHJldHVybiB3ICYmIGg7XG5cblx0fSxcblxuXHRnZXREYXRhKGZ1bmMpIHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5jb3Vyc2V3YXJlKSB7XG5cdFx0XHR3aW5kb3cuY291cnNld2FyZS5nZXREYXRhKGZ1bmMsICdzY2VuZScpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pZGRsZUxheWVyID0gY2MuZmluZCgnbWlkZGxlTGF5ZXInKTtcblx0XHRpZiAobWlkZGxlTGF5ZXIpIHtcblx0XHRcdGNvbnN0IG1pZGRsZUxheWVyQ29tcG9uZW50ID0gbWlkZGxlTGF5ZXIuZ2V0Q29tcG9uZW50KCdtaWRkbGVMYXllcicpO1xuXHRcdFx0bWlkZGxlTGF5ZXJDb21wb25lbnQuZ2V0RGF0YShmdW5jKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmdW5jKHRoaXMuZ2V0RGVmYXVsdERhdGEoKSk7XG5cdH0sXG5cblx0Z2V0RGVmYXVsdERhdGEoKSB7XG5cdFx0cmV0dXJuIGRlZmF1bHREYXRhO1xuXHR9LFxuXG5cdHByZWxvYWRJdGVtKCkge1xuXHRcdHRoaXMuYWRkUHJlbG9hZEltYWdlKCk7XG5cdFx0dGhpcy5hZGRQcmVsb2FkQXVkaW8oKTtcblx0XHR0aGlzLmFkZFByZWxvYWRBbmltYSgpO1xuXHRcdHRoaXMucHJlbG9hZCgpO1xuXHR9LFxuXG5cblx0YWRkUHJlbG9hZEltYWdlKCkge1xuXG5cdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5iZ0l0ZW0udXJsfSk7XG5cblx0XHRmb3IgKGNvbnN0IHEgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cdFx0XHRpZiAocS5nSWR4ID09JzAnKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnRleFBuZ0RhdGEudXJsfSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChxLmdJZHggPT0nMScpIHtcblx0XHRcdFx0dGhpcy5faW1hZ2VSZXNMaXN0LnB1c2goeyB1cmw6IHEudGV4UG5nRGF0YS51cmwgfSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocS5nSWR4ID09JzInKSB7XG5cdFx0XHRcdHRoaXMuX2ltYWdlUmVzTGlzdC5wdXNoKHsgdXJsOiBxLnBpY191cmx9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHByZXBhcmVBdWRpb0NsaXAodXJsLCBrZXkpIHtcblx0XHRpZiAodXJsKSB7XG5cdFx0XHRjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuXHRcdFx0XHRpZiAoYXVkaW9DbGlwKSB7XG5cdFx0XHRcdFx0dGhpc1trZXldID0gYXVkaW9DbGlwO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cdGFkZFByZWxvYWRBdWRpbygpIHtcblxuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8gfSk7XG5cdFx0Ly8gdGhpcy5wcmVwYXJlQXVkaW9DbGlwKHRoaXMuZGF0YS5iZWdpbl9hdWRpbzEsICdiZWdpbl9hdWRpbzEnKVxuXHRcdC8vIHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEuYmVnaW5fYXVkaW8yIH0pO1xuXHRcdC8vIHRoaXMucHJlcGFyZUF1ZGlvQ2xpcCh0aGlzLmRhdGEuYmVnaW5fYXVkaW8yLCAnYmVnaW5fYXVkaW8yJylcblx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLmd1aWRlX2F1ZGlvIH0pO1xuXHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucGxheWluZ19hdWRpbyB9KTtcblx0XHRpZiAodGhpcy5kYXRhLndyb25nX2F1ZGlvKSB7XG5cdFx0XHR0aGlzLl9hdWRpb1Jlc0xpc3QucHVzaCh7IHVybDogdGhpcy5kYXRhLndyb25nX2F1ZGlvIH0pO1xuXHRcdFx0dGhpcy53cm9uZ0F1ZGlvID0gdGhpcy5kYXRhLndyb25nX2F1ZGlvXG5cdFx0fVxuXHRcdGlmICh0aGlzLmRhdGEucmlnaHRfYXVkaW8pIHtcblx0XHRcdHRoaXMuX2F1ZGlvUmVzTGlzdC5wdXNoKHsgdXJsOiB0aGlzLmRhdGEucmlnaHRfYXVkaW8gfSk7XG5cdFx0XHR0aGlzLnJpZ2h0QXVkaW8gPSB0aGlzLmRhdGEucmlnaHRfYXVkaW9cblx0XHR9XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzEgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS53cm9uZ19hdWRpbzIgfSk7XG5cdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHRoaXMuZGF0YS5lbmRfYXVkaW8gfSk7XG5cblxuXHRcdGZvciAoY29uc3QgcSBvZiB0aGlzLmRhdGEuaG90Wm9uZUl0ZW1BcnIpIHtcblx0XHRcdGlmIChxLmdJZHggPT0nMCcpIHtcblx0XHRcdFx0dGhpcy5fYXVkaW9SZXNMaXN0LnB1c2goeyB1cmw6IHEuYXVkaW9fdXJsIH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGVidWdQb2ludGVyKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLlBPSU5URVJfTk9ERSkge1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0dGhpcy5QT0lOVEVSX05PREUucGFyZW50ID0gYm94RGVidWdnZXI7XG5cdFx0XHR0aGlzLlBPSU5URVJfTk9ERS5uYW1lID0gJ1BPSU5URVJfTk9ERSdcblx0XHRcdHRoaXMuUE9JTlRFUl9OT0RFLmFkZENvbXBvbmVudChjYy5HcmFwaGljcyk7XG5cdFx0fVxuXHRcdGNvbnN0IGdyYXAgPSB0aGlzLlBPSU5URVJfTk9ERS5nZXRDb21wb25lbnQoY2MuR3JhcGhpY3MpO1xuXHRcdGdyYXAuY2xlYXIoKTtcblx0XHRjb25zdCBncm91bmQgPSBjYy5maW5kKCdDYW52YXMvZnJhbWUtYm9yZGVyL2dyb3VuZCcpO1xuXHRcdGNvbnN0IHt3aWR0aDogYmFzZVcsIGhlaWdodDogYmFzZUh9ID0gZ3JvdW5kO1xuXHRcdGNvbnN0IHt4OiBweCwgeTogcHl9ID0gdGhpcy5fbGFzdEZpbmdlclBvc2l0aW9uLnBvcztcblx0XHRsZXQgeCA9IGJhc2VXICogcHggLSBiYXNlVyAvIDI7XG5cdFx0bGV0IHkgPSBiYXNlSCAtIChiYXNlSCAqIHB5KSAtIGJhc2VIIC8gMiAtIDE2O1xuXHRcdGNvbnN0IHBuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcblx0XHRncmFwLmZpbGxDb2xvcj1jYy5jb2xvcigyNTUsIDAsIDApO1xuXHRcdGdyYXAuY2lyY2xlKHgsIHksIDMyKTtcblx0XHRncmFwLmZpbGwoKTtcblx0XHRncmFwLnN0cm9rZSgpO1xuXHR9LFxuXHRkZWJ1Z0dyYXBoaWNzKCkge1xuXHRcdGNvbnN0IGJveERlYnVnZ2VyID0gY2MuZmluZCgnQ2FudmFzL2JveC1kZWJ1Z2dlcicpO1xuXHRcdGlmICghdGhpcy5pc0RlYnVnKSB7XG5cdFx0XHRib3hEZWJ1Z2dlci5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ym94RGVidWdnZXIuYWN0aXZlID0gdHJ1ZTtcblx0XHRjb25zb2xlLmxvZygnc2hvdyBkZWJ1ZyBncmFwaGljcycpO1xuXHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoJ0NhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kJyk7XG5cdFx0Y29uc3QgY2FudmFzID0gY2MuZmluZCgnQ2FudmFzJyk7XG5cdFx0Y29uc3Qge3dpZHRoOiBiYXNlVywgaGVpZ2h0OiBiYXNlSH0gPSBncm91bmQ7XG5cdFx0Y29uc3Qge3dpZHRoOiBiZ1csIGhlaWdodDogYmdIfSA9IHRoaXMuZGF0YS5iZ0l0ZW0ucmVjdFxuXHRcdGNvbnN0IHNjYWxlWCA9IGJnVyAvIGJhc2VXO1xuXHRcdGNvbnN0IHNjYWxlWSA9IGJnSCAvIGJhc2VIO1xuXHRcdGxldCBhZGRlZCAgPWZhbHNlXG5cdFx0dGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyLmZvckVhY2goYXJlYSA9PiB7XG5cdFx0XHRcblx0XHRcdGlmIChhZGRlZCkge1xuXHRcdFx0XHQvLyByZXR1cm5cblx0XHRcdH1cblx0XHRcdGlmIChhcmVhLmdJZHggIT0gJzAnKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGFkZGVkID0gdHJ1ZTtcblx0XHRcdGNvbnN0IGRuID0gbmV3IGNjLk5vZGUoKTtcblx0XHRcdGNvbnN0IGxibE5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0bGJsTm9kZS5wYXJlbnQgPSBkblxuXHRcdFx0Y29uc3QgbGJsID0gbGJsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWwpO1xuXHRcdFx0bGJsTm9kZS5jb2xvciA9IGNjLmNvbG9yKDAsMCwwKVxuXHRcdFx0bGJsLnN0cmluZyA9IGFyZWEuc2tlSnNvbkRhdGEubmFtZS5zdWJzdHJpbmcoMCwgYXJlYS5za2VKc29uRGF0YS5uYW1lLmxlbmd0aCAtIDkpXG5cdFx0XHRkbi5uYW1lID0gbGJsLnN0cmluZztcblx0XHRcdGRuLnBhcmVudCA9IGJveERlYnVnZ2VyO1xuXHRcdFx0ZG4ud2lkdGggPSBiYXNlVztcblx0XHRcdGRuLmhlaWdodCA9IGJhc2VIO1xuXHRcdFx0XG5cdFx0XHRjb25zdCBncmFwID0gZG4uYWRkQ29tcG9uZW50KGNjLkdyYXBoaWNzKTtcblx0XHRcdGNvbnN0IHIgPSBSYW5kb21JbnQoMSwyNTUpXG5cdFx0XHRjb25zdCBnID0gUmFuZG9tSW50KDEsMjU1KVxuXHRcdFx0Y29uc3QgYiA9IFJhbmRvbUludCgxLDI1NSlcblx0XHRcdGdyYXAuZmlsbENvbG9yPWNjLmNvbG9yKHIsIGcsIGIsIDEyNyk7XG5cdFx0XHRjb25zdCB7eDogcngsIHk6IHJ5LCB3aWR0aDogcncsIGhlaWdodDogcmh9ID0gIGFyZWEucmVjdDtcblx0XHRcdGxldCB3ID0gKHJ3IC8gYmdXKSAqIGJhc2VXO1xuXHRcdFx0bGV0IGggPSAocmggLyBiZ0gpICogYmFzZUg7XG5cdFx0XHRsZXQgeCA9IChyeCAvIGJnVykgKiBiYXNlVyAtIGJhc2VXIC8gMjtcblx0XHRcdGxldCB5ID0gYmFzZUggLSAoKHJ5IC8gYmdIKSAqIGJhc2VIKSAtIGggLSBiYXNlSCAvIDI7XG5cdFx0XHQvLyB3ICo9IHNjYWxlWFxuXHRcdFx0Ly8gaCAqPSBzY2FsZVlcblx0XHRcdC8vIHggKj0gc2NhbGVYXG5cdFx0XHQvLyB5ICo9IHNjYWxlWVxuICAgICAgICAgICAgLy8gY29uc3QgcCA9IGJveERlYnVnZ2VyLmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHgseSkpO1xuXHRcdFx0Ly8geCA9IHAueDtcblx0XHRcdC8vIHkgPSBwLnk7XG5cdFx0XHRsYmxOb2RlLnggPSB4O1xuXHRcdFx0bGJsTm9kZS55ID0geSArIGg7XG5cdFx0XHQvLyBkbi5zY2FsZVggPSBzY2FsZVg7XG5cdFx0XHQvLyBkbi5zY2FsZVkgPSBzY2FsZVk7XG5cdFx0XHQvLyBkbi5zY2FsZSA9IGFyZWEubWFwU2NhbGU7IC8vIG1pblNjYWxlOyAvLyB0aGlzLl9tYXBTY2FsZU1heCAqIGFyZWEubWFwU2NhbGU7IC8vIDtcblx0XHRcdGNvbnNvbGUubG9nKCdbZGVidWddJywgYXJlYS5za2VKc29uRGF0YS5uYW1lLCB4LCB5LCB3LCBoKTtcblx0XHRcdGdyYXAuZmlsbFJlY3QoeCwgeSwgdywgaCk7XG5cdFx0XHRncmFwLnN0cm9rZSgpO1xuXHRcdFx0XG5cdFx0fSk7XG5cblx0fSxcblx0YWRkUHJlbG9hZEFuaW1hKCkge1xuXG5cdH0sXG5cblx0cHJlbG9hZCgpIHtcblxuXHRcdGNvbnN0IHByZWxvYWRBcnIgPSB0aGlzLl9pbWFnZVJlc0xpc3QuY29uY2F0KHRoaXMuX2F1ZGlvUmVzTGlzdCkuY29uY2F0KHRoaXMuX2FuaW1hUmVzTGlzdCk7XG5cdFx0Ly8gY29uc29sZS5sb2cocHJlbG9hZEFycik7XG5cdFx0Y2MuYXNzZXRNYW5hZ2VyLmxvYWRBbnkocHJlbG9hZEFyciwgbnVsbCwgKGYsIHQsIGl0ZW0pID0+IHtcblx0XHRcdC8vIGNvbnNvbGUubG9nKGYsIHQsIGl0ZW0pXG5cdFx0fSwgKGVyciwgZGF0YSkgPT4ge1xuXHRcdFx0Ly8gY29uc29sZS5sb2coZXJyLCBkYXRhKTtcblx0XHRcdGNvbnN0IGdyb3VuZCA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kYCk7XG5cdFx0XHRjb25zdCBncm91bmRCZyA9IGNjLmZpbmQoYENhbnZhcy9mcmFtZS1ib3JkZXIvZ3JvdW5kL2JnYCk7XG5cdFx0XHRncm91bmRCZy5hY3RpdmUgPSBmYWxzZTtcblx0XHRcdGNvbnN0IGJhc2VSZWN0ID0gdGhpcy5kYXRhLmJnSXRlbS5yZWN0O1xuXHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybCh0aGlzLmRhdGEuYmdJdGVtLnVybCwgKHNmKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdzID0gZ3JvdW5kQmcuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSk7XG5cdFx0XHRcdGdzLnNwcml0ZUZyYW1lID0gc2Y7XG5cdFx0XHRcdGdyb3VuZEJnLmFjdGl2ZSA9IHRydWU7XG5cblx0XHRcdFx0bGV0IGRiQ291bnQgPSAwO1xuXHRcdFx0XHRsZXQgZmluaXNoRGJDb3VudCA9IDBcblx0XHRcdFx0Zm9yKGNvbnN0IGJsb2NrIG9mIHRoaXMuZGF0YS5ob3Rab25lSXRlbUFycikge1xuXHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJyB8fCBibG9jay5nSWR4ID09ICcxJykge1xuXHRcdFx0XHRcdFx0ZGJDb3VudCsrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IoY29uc3QgYmxvY2sgb2YgdGhpcy5kYXRhLmhvdFpvbmVJdGVtQXJyKSB7XG5cblx0XHRcdFx0XHRcblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMicpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHMxID0gKChncm91bmQud2lkdGggIC8gYmxvY2suaW1nU2l6ZVcpICsgKGdyb3VuZC5oZWlnaHQgIC8gYmxvY2suaW1nU2l6ZUgpKSAvIDJcblx0XHRcdFx0XHRcdGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bm9kZS5wYXJlbnQgPSBncm91bmQ7XG5cdFx0XHRcdFx0XHRjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuXHRcdFx0XHRcdFx0Z2V0U3ByaXRlRnJpbWVCeVVybChibG9jay5waWNfdXJsLCAoc2YpID0+IHtcblx0XHRcdFx0XHRcdHNwci5zcHJpdGVGcmFtZSA9IHNmO1xuXHRcdFx0XHRcdFx0bm9kZS5zY2FsZSA9IHMxO1xuXHRcdFx0XHRcdFx0fSlcblxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYmxvY2suZ0lkeCA9PSAnMCcgfHwgYmxvY2suZ0lkeCA9PSAnMScpIHtcblx0XHRcdFx0XHRcdGNvbnN0IG4gPSBuZXcgY2MuTm9kZSgpO1xuXHRcdFx0XHRcdFx0bi5zY2FsZSA9IDAuMjU7XG5cdFx0XHRcdFx0XHRjb25zdCBkYiA9IG4uYWRkQ29tcG9uZW50KGRyYWdvbkJvbmVzLkFybWF0dXJlRGlzcGxheSk7XG5cdFx0XHRcdFx0XHRuLnBhcmVudCA9IGdyb3VuZDtcblx0XHRcdFx0XHRcdG4uYWN0aXZlID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRsb2FkRHJhZ29uQm9uZXMoZGIsIHtcblx0XHRcdFx0XHRcdFx0dGV4OiBibG9jay50ZXhQbmdEYXRhLnVybCwgXG5cdFx0XHRcdFx0XHRcdGF0bGFzOiBibG9jay50ZXhKc29uRGF0YS51cmwsXG5cdFx0XHRcdFx0XHRcdHNrZTogYmxvY2suc2tlSnNvbkRhdGEudXJsLFxuXHRcdFx0XHRcdFx0fSkudGhlbigoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG5cdFx0XHRcdFx0XHRcdG4ud2lkdGggPSB3aWR0aDtcblx0XHRcdFx0XHRcdFx0bi5oZWlnaHQgPSBoZWlnaHQ7XHRcblx0XHRcdFx0XHRcdFx0bi5hY3RpdmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRkYi5wbGF5QW5pbWF0aW9uKCdudWxsJywgMCk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2FsbEFuaW1hdGlvbk5vZGVzLnB1c2gobik7XG5cdFx0XHRcdFx0XHRcdGZpbmlzaERiQ291bnQrKztcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZEVuZCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGZpbmlzaERiQ291bnQrKztcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coZmluaXNoRGJDb3VudCwgZGJDb3VudClcblx0XHRcdFx0XHRcdFx0aWYgKGZpbmlzaERiQ291bnQgPT0gZGJDb3VudCkge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMubG9hZEVuZCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGlmIChibG9jay5nSWR4ID09ICcwJykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCByZWN0SW5mbyA9IHtcblx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdGF1ZGlvX3VybDogYmxvY2suYXVkaW9fdXJsICxcblx0XHRcdFx0XHRcdFx0XHRyZWN0OiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR4OiBibG9jay5yZWN0LnggLyBiYXNlUmVjdC53aWR0aCxcblx0XHRcdFx0XHRcdFx0XHRcdHk6IGJsb2NrLnJlY3QueSAvIGJhc2VSZWN0LmhlaWdodCxcblx0XHRcdFx0XHRcdFx0XHRcdHdpZHRoOiBibG9jay5yZWN0LndpZHRoIC8gYmFzZVJlY3Qud2lkdGgsXG5cdFx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ6IGJsb2NrLnJlY3QuaGVpZ2h0IC8gYmFzZVJlY3QuaGVpZ2h0LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dGhpcy5fZmlndXJlUG9pbnRSZWN0QXJyYXkucHVzaChyZWN0SW5mbyk7XG5cdFx0XG5cdFx0XHRcdFx0XHRcdGlmIChibG9jay5sYWJlbFRleHQpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBrID0gK2Jsb2NrLmxhYmVsVGV4dCAqIDEwMDA7XG5cdFx0XHRcdFx0XHRcdFx0aWYoIWlzTmFOKGspKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9oaW50c05vZGVMaXN0LnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlOiBuLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRhZnRlcjoga1xuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdFxuXHRcdFx0Ly8gY29uc29sZS5sb2codGhpcy5kYXRhKTtcblx0XHRcdGNvbnNvbGUubG9nKCdyZXNvdXJjZSBwZXJsb2FkIGZpbmlzaCcpO1xuXG4vLyA8PDw8PDw8IEhFQURcbi8vID09PT09PT1cbi8vIFx0XHRcdGlmICh3aW5kb3cgJiYgd2luZG93W1wiYWlyXCJdKSB7XG4vLyBcdFx0XHRcdC8vIGNjLmZpbmQoJ0NhbnZhcycpLm9wYWNpdHkgPSAwO1xuLy8gXHRcdFx0XHR3aW5kb3cuYWlyLm9uQ291cnNlSW5TY3JlZW4gPSAobmV4dCkgPT4ge1xuLy8gXHRcdFx0XHRcdC8vIGNjLmZpbmQoJ0NhbnZhcycpLm9wYWNpdHkgPSAyNTU7XG4vLyBcdFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG4vLyBcdFx0XHRcdFx0bmV4dCgpO1xuLy8gXHRcdFx0XHR9XG4vLyBcdFx0XHRcdHdpbmRvdy5haXIuaGlkZUFpckNsYXNzTG9hZGluZygpO1xuLy8gXHRcdFx0fSBlbHNlIHtcbi8vIFx0XHRcdFx0dGhpcy5sb2FkRW5kKCk7XG4vLyBcdFx0XHR9XG4vLyA+Pj4+Pj4+IDJkNDYxZTE5MTA1NzFiY2ZjNmFkNGRjOTNjMmNlZGFmYzIwOTIzZWFcblxuXHRcdFx0Y2MuZGVidWcuc2V0RGlzcGxheVN0YXRzKGZhbHNlKTtcblx0XHR9KTtcblx0fSxcblxuXG5cdGxvYWRFbmQoKSB7XG5cdFx0aWYgKHdpbmRvdyAmJiB3aW5kb3dbXCJhaXJcIl0gJiYgd2luZG93W1wiYWlyXCJdLmhpZGVBaXJDbGFzc0xvYWRpbmcpIHtcblx0XHRcdHdpbmRvd1tcImFpclwiXS5oaWRlQWlyQ2xhc3NMb2FkaW5nKCk7XG5cdFx0fVxuXHRcdHRoaXMuaW5pdERhdGEoKTtcblx0XHQvLyB0aGlzLmluaXRBdWRpbygpO1xuXHRcdC8vIHRoaXMuaW5pdFZpZXcoKTtcblx0XHR0aGlzLmluaXRCZygpO1xuXHRcdC8vIHRoaXMuaW5pdExpc3RlbmVyKCk7XG5cdFx0dGhpcy5kZWJ1Z0dyYXBoaWNzKCk7XG5cdFx0dGhpcy5jcmVhdGVTdGF0ZU1hY2hpbmUoKTtcblx0fSxcblxuXHRfY2FudG91Y2g6IG51bGwsXG5cdGluaXREYXRhKCkge1xuXHRcdC8vIOaJgOacieWFqOWxgOWPmOmHjyDpu5jorqTpg73mmK9udWxsIFxuXHRcdHRoaXMuX2NhbnRvdWNoID0gdHJ1ZTtcblx0fSxcblxuXHQvLyBhdWRpb0J0bjogbnVsbCxcblx0Ly8gaW5pdEF1ZGlvKCkge1xuXHQvLyBcdGNvbnN0IGF1ZGlvTm9kZSA9IGNjLmZpbmQoJ0NhbnZhcy9yZXMvYXVkaW8nKTtcblxuXHQvLyBcdGNvbnN0IGdldEF1ZGlvQnlSZXNOYW1lID0gKHJlc05hbWUpID0+IHtcblx0Ly8gXHRcdHJldHVybiBhdWRpb05vZGUuZ2V0Q2hpbGRCeU5hbWUocmVzTmFtZSkuZ2V0Q29tcG9uZW50KGNjLkF1ZGlvU291cmNlKTtcblx0Ly8gXHR9XG5cblx0Ly8gXHR0aGlzLmF1ZGlvQnRuID0gZ2V0QXVkaW9CeVJlc05hbWUoJ2J0bicpO1xuXG5cdC8vIH0sXG5cblxuXHQvLyBpbml0VmlldygpIHtcblxuXHQvLyBcdC8vIHRoaXMuaW5pdEJnKCk7XG5cdC8vIFx0Ly8gdGhpcy5pbml0UGljKCk7XG5cdC8vIFx0Ly8gdGhpcy5pbml0QnRuKCk7XG5cdC8vIFx0dGhpcy5pbml0SWNvbigpO1xuXHQvLyB9LFxuXG5cdGluaXRCZygpIHtcblx0XHRjb25zdCBiZ05vZGUgPSBjYy5maW5kKCdDYW52YXMvYmcnKTtcblx0XHRiZ05vZGUuc2NhbGUgPSB0aGlzLl9tYXBTY2FsZU1heDtcblx0XHRjb25zb2xlLmxvZygndGhpcy5fbWFwU2NhbGVNYXgnLCB0aGlzLl9tYXBTY2FsZU1heCk7XG5cdH0sXG5cblx0XG5cdFxuXG5cdC8qaW5pdEJ0bigpIHtcblxuXHRcdHRoaXMuY3VyUGFnZSA9IDA7XG5cdFx0Y29uc3QgYm90dG9tUGFydCA9IGNjLmZpbmQoJ0NhbnZhcy9ib3R0b21QYXJ0Jyk7XG5cdFx0Ym90dG9tUGFydC56SW5kZXggPSA1OyAvLyDmj5Dpq5jlsYLnuqdcblxuXHRcdGJvdHRvbVBhcnQueCA9IGJvdHRvbVBhcnQucGFyZW50LndpZHRoIC8gMjtcblx0XHRib3R0b21QYXJ0LnkgPSAtYm90dG9tUGFydC5wYXJlbnQuaGVpZ2h0IC8gMjtcblxuXHRcdGNvbnN0IGxlZnRCdG5Ob2RlID0gYm90dG9tUGFydC5nZXRDaGlsZEJ5TmFtZSgnYnRuX2xlZnQnKTtcblx0XHQvL+iKgueCueS4rea3u+WKoOS6hmJ1dHRvbue7hOS7tiDliJnlj6/ku6Xmt7vliqBjbGlja+S6i+S7tuebkeWQrFxuXHRcdGxlZnRCdG5Ob2RlLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdGlmICghdGhpcy5fY2FudG91Y2gpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY3VyUGFnZSA9PSAwKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMuY3VyUGFnZSA9IDBcblx0XHRcdHRoaXMubGVmdE1vdmUoKTtcblxuXHRcdFx0Ly8g5ri45oiP57uT5p2f5pe26ZyA6KaB6LCD55So6L+Z5Liq5pa55rOV6YCa55+l57O757uf5L2c5Lia5a6M5oiQXG5cdFx0XHRvbkhvbWV3b3JrRmluaXNoKCk7XG5cblx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXkodGhpcy5hdWRpb0J0bi5jbGlwLCBmYWxzZSwgMC44KVxuXHRcdH0pXG5cblx0XHRjb25zdCByaWdodEJ0bk5vZGUgPSBib3R0b21QYXJ0LmdldENoaWxkQnlOYW1lKCdidG5fcmlnaHQnKTtcblx0XHQvL+iKgueCueS4rea3u+WKoOS6hmJ1dHRvbue7hOS7tiDliJnlj6/ku6Xmt7vliqBjbGlja+S6i+S7tuebkeWQrFxuXHRcdHJpZ2h0QnRuTm9kZS5vbignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMuX2NhbnRvdWNoKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmN1clBhZ2UgPT0gMSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuY3VyUGFnZSA9IDFcblx0XHRcdHRoaXMucmlnaHRNb3ZlKCk7XG5cblx0XHRcdGNjLmF1ZGlvRW5naW5lLnBsYXkodGhpcy5hdWRpb0J0bi5jbGlwLCBmYWxzZSwgMC41KVxuXHRcdH0pXG5cdH0sKi9cblxuXG5cblxuXHQvLyB1cGRhdGUgKGR0KSB7fSxcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cdF90aW1lb3V0SWRzOiBudWxsLFxuXHRfaW50ZXJ2YWxJZHM6IG51bGwsXG5cdC8vIOeUn+WRveWRqOacn1xuXHRvbkRlc3Ryb3koKSB7XG5cdFx0Y29uc29sZS5sb2coJ29wMTUgb25EZXN0cm95Jyk7XG5cdFx0dGhpcy5fdGltZW91dElkcy5mb3JFYWNoKGlkID0+IHtcblx0XHRcdGNsZWFyVGltZW91dChpZCk7XG5cdFx0fSk7XG5cdFx0dGhpcy5faW50ZXJ2YWxJZHMuZm9yRWFjaChpZCA9PiB7XG5cdFx0XHRjbGVhckludGVydmFsKGlkKTtcblx0XHR9KTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdG9wQ2hpbGQoKTtcblx0XHR0aGlzLmdhbWVNYWNoaW5lU2VydmljZS5zdG9wKCk7XG5cdFx0aWYod2luZG93LmNvdXJzZXdhcmUgJiYgd2luZG93LmNvdXJzZXdhcmUuY2xvc2VPc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0aWYgKHRoaXMuaXNPcGVuZWRPc21vRmluZ2VyUmVhZCkge1xuXHRcdFx0XHR3aW5kb3cuY291cnNld2FyZS5jbG9zZU9zbW9GaW5nZXJSZWFkKClcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblxuXG5cblxufSk7XG4iXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/OP15/script/xstate.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}(function (global){ "use strict"; cc._RF.push(module, 'ccc6ebxJZFI24GNYY/uty5V', 'xstate'); // OP15/script/xstate.js "use strict"; !function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).XState = {}); }(void 0, function (t) { "use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var _e = function e() { return (_e = Object.assign || function (t) { for (var e, n = 1, r = arguments.length; n < r; n++) { for (var i in e = arguments[n]) { Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]); } } return t; }).apply(this, arguments); }; function n(t, e) { var n = {}; for (var r in t) { Object.prototype.hasOwnProperty.call(t, r) && e.indexOf(r) < 0 && (n[r] = t[r]); } if (null != t && "function" == typeof Object.getOwnPropertySymbols) { var i = 0; for (r = Object.getOwnPropertySymbols(t); i < r.length; i++) { e.indexOf(r[i]) < 0 && Object.prototype.propertyIsEnumerable.call(t, r[i]) && (n[r[i]] = t[r[i]]); } } return n; } function r(t) { var e = "function" == typeof Symbol && Symbol.iterator, n = e && t[e], r = 0; if (n) return n.call(t); if (t && "number" == typeof t.length) return { next: function next() { return t && r >= t.length && (t = void 0), { value: t && t[r++], done: !t }; } }; throw new TypeError(e ? "Object is not iterable." : "Symbol.iterator is not defined."); } function i(t, e) { var n = "function" == typeof Symbol && t[Symbol.iterator]; if (!n) return t; var r, i, o = n.call(t), a = []; try { for (; (void 0 === e || e-- > 0) && !(r = o.next()).done;) { a.push(r.value); } } catch (t) { i = { error: t }; } finally { try { r && !r.done && (n = o["return"]) && n.call(o); } finally { if (i) throw i.error; } } return a; } function o(t, e, n) { if (n || 2 === arguments.length) for (var r, i = 0, o = e.length; i < o; i++) { !r && i in e || (r || (r = Array.prototype.slice.call(e, 0, i)), r[i] = e[i]); } return t.concat(r || Array.prototype.slice.call(e)); } var a = {}; function s(t) { return Object.keys(t); } function c(t, e, n) { void 0 === n && (n = "."); var r = f(t, n), i = f(e, n); return A(i) ? !!A(r) && i === r : A(r) ? r in i : s(r).every(function (t) { return t in i && c(r[t], i[t]); }); } function u(t) { try { return A(t) || "number" == typeof t ? "".concat(t) : t.type; } catch (t) { throw new Error("Events must be strings or objects with a string event.type property."); } } function h(t, e) { try { return T(t) ? t : t.toString().split(e); } catch (e) { throw new Error("'".concat(t, "' is not a valid state path.")); } } function f(t, e) { return "object" == typeof (n = t) && "value" in n && "context" in n && "event" in n && "_event" in n ? t.value : T(t) ? l(t) : "string" != typeof t ? t : l(h(t, e)); var n; } function l(t) { if (1 === t.length) return t[0]; for (var e = {}, n = e, r = 0; r < t.length - 1; r++) { r === t.length - 2 ? n[t[r]] = t[r + 1] : (n[t[r]] = {}, n = n[t[r]]); } return e; } function d(t, e) { for (var n = {}, r = s(t), i = 0; i < r.length; i++) { var o = r[i]; n[o] = e(t[o], o, t, i); } return n; } function p(t, e, n) { var i, o, a = {}; try { for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { var h = u.value, f = t[h]; n(f) && (a[h] = e(f, h, t)); } } catch (t) { i = { error: t }; } finally { try { u && !u.done && (o = c["return"]) && o.call(c); } finally { if (i) throw i.error; } } return a; } var v = function v(t) { return function (e) { var n, i, o = e; try { for (var a = r(t), s = a.next(); !s.done; s = a.next()) { o = o[s.value]; } } catch (t) { n = { error: t }; } finally { try { s && !s.done && (i = a["return"]) && i.call(a); } finally { if (n) throw n.error; } } return o; }; }; function y(t) { return t ? A(t) ? [[t]] : g(s(t).map(function (e) { var n = t[e]; return "string" == typeof n || n && Object.keys(n).length ? y(t[e]).map(function (t) { return [e].concat(t); }) : [[e]]; })) : [[]]; } function g(t) { var e; return (e = []).concat.apply(e, o([], i(t), !1)); } function m(t) { return T(t) ? t : [t]; } function S(t) { return void 0 === t ? [] : m(t); } function x(t, e, n) { var i, o; if (N(t)) return t(e, n.data); var a = {}; try { for (var s = r(Object.keys(t)), c = s.next(); !c.done; c = s.next()) { var u = c.value, h = t[u]; N(h) ? a[u] = h(e, n.data) : a[u] = h; } } catch (t) { i = { error: t }; } finally { try { c && !c.done && (o = s["return"]) && o.call(s); } finally { if (i) throw i.error; } } return a; } function w(t) { return t instanceof Promise || !(null === t || !N(t) && "object" != typeof t || !N(t.then)); } function b(t, e) { var n, o, a = i([[], []], 2), s = a[0], c = a[1]; try { for (var u = r(t), h = u.next(); !h.done; h = u.next()) { var f = h.value; e(f) ? s.push(f) : c.push(f); } } catch (t) { n = { error: t }; } finally { try { h && !h.done && (o = u["return"]) && o.call(u); } finally { if (n) throw n.error; } } return [s, c]; } function _(t, e) { return d(t.states, function (t, n) { if (t) { var r = (A(e) ? void 0 : e[n]) || (t ? t.current : void 0); if (r) return { current: r, states: _(t, r) }; } }); } function E(t, e, n, i) { return t ? n.reduce(function (t, n) { var o, a, c = n.assignment, u = { state: i, action: n, _event: e }, h = {}; if (N(c)) h = c(t, e.data, u);else try { for (var f = r(s(c)), l = f.next(); !l.done; l = f.next()) { var d = l.value, p = c[d]; h[d] = N(p) ? p(t, e.data, u) : p; } } catch (t) { o = { error: t }; } finally { try { l && !l.done && (a = f["return"]) && a.call(f); } finally { if (o) throw o.error; } } return Object.assign({}, t, h); }, t) : t; } function T(t) { return Array.isArray(t); } function N(t) { return "function" == typeof t; } function A(t) { return "string" == typeof t; } function O(t, e) { if (t) return A(t) ? { type: "xstate.guard", name: t, predicate: e ? e[t] : void 0 } : N(t) ? { type: "xstate.guard", name: t.name, predicate: t } : t; } var P = function () { return "function" == typeof Symbol && Symbol.observable || "@@observable"; }(); function k(t) { try { return "__xstatenode" in t; } catch (t) { return !1; } } var I, j, C = function () { var t = 0; return function () { return (++t).toString(16); }; }(); function V(t, n) { return A(t) || "number" == typeof t ? _e({ type: t }, n) : t; } function L(t, n) { if (!A(t) && "$$type" in t && "scxml" === t.$$type) return t; var r = V(t); return _e({ name: r.type, data: r, $$type: "scxml", type: "external" }, n); } function D(t, n) { return m(n).map(function (n) { return void 0 === n || "string" == typeof n || k(n) ? { target: n, event: t } : _e(_e({}, n), { event: t }); }); } function R(t, e, n, r, i) { var o = t.options.guards, a = { state: i, cond: e, _event: r }; if ("xstate.guard" === e.type) return ((null == o ? void 0 : o[e.name]) || e.predicate)(n, r.data, a); var s = o[e.type]; if (!s) throw new Error("Guard '".concat(e.type, "' is not implemented on machine '").concat(t.id, "'.")); return s(n, r.data, a); } function M(t) { return "string" == typeof t ? { type: t } : t; } function z(t, e, n) { if ("object" == typeof t) return t; var r = function r() {}; return { next: t, error: e || r, complete: n || r }; } (I = t.ActionTypes || (t.ActionTypes = {})).Start = "xstate.start", I.Stop = "xstate.stop", I.Raise = "xstate.raise", I.Send = "xstate.send", I.Cancel = "xstate.cancel", I.NullEvent = "", I.Assign = "xstate.assign", I.After = "xstate.after", I.DoneState = "done.state", I.DoneInvoke = "done.invoke", I.Log = "xstate.log", I.Init = "xstate.init", I.Invoke = "xstate.invoke", I.ErrorExecution = "error.execution", I.ErrorCommunication = "error.communication", I.ErrorPlatform = "error.platform", I.ErrorCustom = "xstate.error", I.Update = "xstate.update", I.Pure = "xstate.pure", I.Choose = "xstate.choose", (j = t.SpecialTargets || (t.SpecialTargets = {})).Parent = "#_parent", j.Internal = "#_internal"; var F = function F(t) { return "atomic" === t.type || "final" === t.type; }; function U(t) { return s(t.states).map(function (e) { return t.states[e]; }); } function B(t) { var e = [t]; return F(t) ? e : e.concat(g(U(t).map(B))); } function J(t, e) { var n, i, o, a, s, c, u, h, f = q(new Set(t)), l = new Set(e); try { for (var d = r(l), p = d.next(); !p.done; p = d.next()) { for (var v = (E = p.value).parent; v && !l.has(v);) { l.add(v), v = v.parent; } } } catch (t) { n = { error: t }; } finally { try { p && !p.done && (i = d["return"]) && i.call(d); } finally { if (n) throw n.error; } } var y = q(l); try { for (var g = r(l), m = g.next(); !m.done; m = g.next()) { if ("compound" !== (E = m.value).type || y.get(E) && y.get(E).length) { if ("parallel" === E.type) try { for (var S = (s = void 0, r(U(E))), x = S.next(); !x.done; x = S.next()) { var w = x.value; "history" !== w.type && (l.has(w) || (l.add(w), f.get(w) ? f.get(w).forEach(function (t) { return l.add(t); }) : w.initialStateNodes.forEach(function (t) { return l.add(t); }))); } } catch (t) { s = { error: t }; } finally { try { x && !x.done && (c = S["return"]) && c.call(S); } finally { if (s) throw s.error; } } } else f.get(E) ? f.get(E).forEach(function (t) { return l.add(t); }) : E.initialStateNodes.forEach(function (t) { return l.add(t); }); } } catch (t) { o = { error: t }; } finally { try { m && !m.done && (a = g["return"]) && a.call(g); } finally { if (o) throw o.error; } } try { for (var b = r(l), _ = b.next(); !_.done; _ = b.next()) { var E; for (v = (E = _.value).parent; v && !l.has(v);) { l.add(v), v = v.parent; } } } catch (t) { u = { error: t }; } finally { try { _ && !_.done && (h = b["return"]) && h.call(b); } finally { if (u) throw u.error; } } return l; } function q(t) { var e, n, i = new Map(); try { for (var o = r(t), a = o.next(); !a.done; a = o.next()) { var s = a.value; i.has(s) || i.set(s, []), s.parent && (i.has(s.parent) || i.set(s.parent, []), i.get(s.parent).push(s)); } } catch (t) { e = { error: t }; } finally { try { a && !a.done && (n = o["return"]) && n.call(o); } finally { if (e) throw e.error; } } return i; } function $(t, e) { return function t(e, n) { var r = n.get(e); if (!r) return {}; if ("compound" === e.type) { var i = r[0]; if (!i) return {}; if (F(i)) return i.key; } var o = {}; return r.forEach(function (e) { o[e.key] = t(e, n); }), o; }(t, q(J([t], e))); } function X(t, e) { return Array.isArray(t) ? t.some(function (t) { return t === e; }) : t instanceof Set && t.has(e); } function H(t, e) { return "compound" === e.type ? U(e).some(function (e) { return "final" === e.type && X(t, e); }) : "parallel" === e.type && U(e).every(function (e) { return H(t, e); }); } function G(t) { return new Set(g(t.map(function (t) { return t.tags; }))); } var K = t.ActionTypes.Start, Q = t.ActionTypes.Stop, W = t.ActionTypes.Raise, Y = t.ActionTypes.Send, Z = t.ActionTypes.Cancel, tt = t.ActionTypes.NullEvent, et = t.ActionTypes.Assign, nt = (t.ActionTypes.After, t.ActionTypes.DoneState, t.ActionTypes.Log), rt = t.ActionTypes.Init, it = t.ActionTypes.Invoke, ot = (t.ActionTypes.ErrorExecution, t.ActionTypes.ErrorPlatform), at = t.ActionTypes.ErrorCustom, st = t.ActionTypes.Update, ct = t.ActionTypes.Choose, ut = t.ActionTypes.Pure, ht = L({ type: rt }); function ft(t, e) { return e && e[t] || void 0; } function lt(t, n) { var r; if (A(t) || "number" == typeof t) r = N(i = ft(t, n)) ? { type: t, exec: i } : i || { type: t, exec: void 0 };else if (N(t)) r = { type: t.name || t.toString(), exec: t };else { var i; if (N(i = ft(t.type, n))) r = _e(_e({}, t), { exec: i });else if (i) { var o = i.type || t.type; r = _e(_e(_e({}, i), t), { type: o }); } else r = t; } return r; } var dt = function dt(t, e) { return t ? (T(t) ? t : [t]).map(function (t) { return lt(t, e); }) : []; }; function pt(t) { var n = lt(t); return _e(_e({ id: A(t) ? t : n.id }, n), { type: n.type }); } function vt(e) { return A(e) ? { type: W, event: e } : yt(e, { to: t.SpecialTargets.Internal }); } function yt(t, e) { return { to: e ? e.to : void 0, type: Y, event: N(t) ? t : V(t), delay: e ? e.delay : void 0, id: e && void 0 !== e.id ? e.id : N(t) ? t.name : u(t) }; } function gt(n, r) { return yt(n, _e(_e({}, r), { to: t.SpecialTargets.Parent })); } function mt() { return gt(st); } var St = function St(t, e) { return { context: t, event: e }; }; var xt = function xt(t) { return { type: Z, sendId: t }; }; function wt(e) { var n = pt(e); return { type: t.ActionTypes.Start, activity: n, exec: void 0 }; } function bt(e) { var n = N(e) ? e : pt(e); return { type: t.ActionTypes.Stop, activity: n, exec: void 0 }; } var _t = function _t(t) { return { type: et, assignment: t }; }; function Et(e, n) { var r = n ? "#".concat(n) : ""; return "".concat(t.ActionTypes.After, "(").concat(e, ")").concat(r); } function Tt(e, n) { var r = "".concat(t.ActionTypes.DoneState, ".").concat(e), i = { type: r, data: n, toString: function toString() { return r; } }; return i; } function Nt(e, n) { var r = "".concat(t.ActionTypes.DoneInvoke, ".").concat(e), i = { type: r, data: n, toString: function toString() { return r; } }; return i; } function At(e, n) { var r = "".concat(t.ActionTypes.ErrorPlatform, ".").concat(e), i = { type: r, data: n, toString: function toString() { return r; } }; return i; } function Ot(t, n) { return yt(function (t, e) { return e; }, _e(_e({}, n), { to: t })); } function Pt(n, r, a, s, c, u) { void 0 === u && (u = !1); var h = i(u ? [[], c] : b(c, function (t) { return t.type === et; }), 2), f = h[0], l = h[1], d = f.length ? E(a, s, f, r) : a, p = u ? [a] : void 0; return [g(l.map(function (a) { var c; switch (a.type) { case W: return { type: W, _event: L(a.event) }; case Y: return function (t, n, r, i) { var o, a = { _event: r }, s = L(N(t.event) ? t.event(n, r.data, a) : t.event); if (A(t.delay)) { var c = i && i[t.delay]; o = N(c) ? c(n, r.data, a) : c; } else o = N(t.delay) ? t.delay(n, r.data, a) : t.delay; var u = N(t.to) ? t.to(n, r.data, a) : t.to; return _e(_e({}, t), { to: u, _event: s, event: s.data, delay: o }); }(a, d, s, n.options.delays); case nt: return function (t, n, r) { return _e(_e({}, t), { value: A(t.expr) ? t.expr : t.expr(n, r.data, { _event: r }) }); }(a, d, s); case ct: if (!(v = null === (c = a.conds.find(function (t) { var e = O(t.cond, n.options.guards); return !e || R(n, e, d, s, r); })) || void 0 === c ? void 0 : c.actions)) return []; var h = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), f = h[0], l = h[1]; return d = l, null == p || p.push(d), f; case ut: var v; if (!(v = a.get(d, s.data))) return []; var y = i(Pt(n, r, d, s, dt(S(v), n.options.actions), u), 2), g = y[0], m = y[1]; return d = m, null == p || p.push(d), g; case Q: return function (e, n, r) { var i = N(e.activity) ? e.activity(n, r.data) : e.activity, o = "string" == typeof i ? { id: i } : i; return { type: t.ActionTypes.Stop, activity: o }; }(a, d, s); case et: d = E(d, s, [a], r), null == p || p.push(d); break; default: var x = lt(a, n.options.actions), w = x.exec; if (w && p) { var b = p.length - 1; x = _e(_e({}, x), { exec: function exec(t) { for (var e = [], n = 1; n < arguments.length; n++) { e[n - 1] = arguments[n]; } w.apply(void 0, o([p[b]], i(e), !1)); } }); } return x; } }).filter(function (t) { return !!t; })), d]; } var kt = function () { function t(t) { var e, n, r = this; this.actions = [], this.activities = a, this.meta = {}, this.events = [], this.value = t.value, this.context = t.context, this._event = t._event, this._sessionid = t._sessionid, this.event = this._event.data, this.historyValue = t.historyValue, this.history = t.history, this.actions = t.actions || [], this.activities = t.activities || a, this.meta = (void 0 === (n = t.configuration) && (n = []), n.reduce(function (t, e) { return void 0 !== e.meta && (t[e.id] = e.meta), t; }, {})), this.events = t.events || [], this.matches = this.matches.bind(this), this.toStrings = this.toStrings.bind(this), this.configuration = t.configuration, this.transitions = t.transitions, this.children = t.children, this.done = !!t.done, this.tags = null !== (e = Array.isArray(t.tags) ? new Set(t.tags) : t.tags) && void 0 !== e ? e : new Set(), this.machine = t.machine, Object.defineProperty(this, "nextEvents", { get: function get() { return function (t) { return o([], i(new Set(g(o([], i(t.map(function (t) { return t.ownEvents; })), !1)))), !1); }(r.configuration); } }); } return t.from = function (e, n) { return e instanceof t ? e.context !== n ? new t({ value: e.value, context: n, _event: e._event, _sessionid: null, historyValue: e.historyValue, history: e.history, actions: [], activities: e.activities, meta: {}, events: [], configuration: [], transitions: [], children: {} }) : e : new t({ value: e, context: n, _event: ht, _sessionid: null, historyValue: void 0, history: void 0, actions: [], activities: void 0, meta: void 0, events: [], configuration: [], transitions: [], children: {} }); }, t.create = function (e) { return new t(e); }, t.inert = function (e, n) { if (e instanceof t) { if (!e.actions.length) return e; var r = ht; return new t({ value: e.value, context: n, _event: r, _sessionid: null, historyValue: e.historyValue, history: e.history, activities: e.activities, configuration: e.configuration, transitions: [], children: {} }); } return t.from(e, n); }, t.prototype.toStrings = function (t, e) { var n = this; if (void 0 === t && (t = this.value), void 0 === e && (e = "."), A(t)) return [t]; var r = s(t); return r.concat.apply(r, o([], i(r.map(function (r) { return n.toStrings(t[r], e).map(function (t) { return r + e + t; }); })), !1)); }, t.prototype.toJSON = function () { var t = this, r = (t.configuration, t.transitions, t.tags), i = (t.machine, n(t, ["configuration", "transitions", "tags", "machine"])); return _e(_e({}, i), { tags: Array.from(r) }); }, t.prototype.matches = function (t) { return c(t, this.value); }, t.prototype.hasTag = function (t) { return this.tags.has(t); }, t.prototype.can = function (t) { var e; return this.machine, !!(null === (e = this.machine) || void 0 === e ? void 0 : e.transition(this, t).changed); }, t; }(), It = [], jt = function jt(t, e) { It.push(t); var n = e(t); return It.pop(), n; }; function Ct(t) { return { id: t, send: function send() {}, subscribe: function subscribe() { return { unsubscribe: function unsubscribe() {} }; }, getSnapshot: function getSnapshot() {}, toJSON: function toJSON() { return { id: t }; } }; } function Vt(t, e, n) { var r = Ct(e); if (r.deferred = !0, k(t)) { var i = r.state = jt(void 0, function () { return (n ? t.withContext(n) : t).initialState; }); r.getSnapshot = function () { return i; }; } return r; } function Lt(t) { if ("string" == typeof t) { var e = { type: t, toString: function toString() { return t; } }; return e; } return t; } function Dt(t) { return _e(_e({ type: it }, t), { toJSON: function toJSON() { t.onDone, t.onError; var r = n(t, ["onDone", "onError"]); return _e(_e({}, r), { type: it, src: Lt(t.src) }); } }); } var Rt = {}, Mt = function Mt(t) { return "#" === t[0]; }, zt = function () { function a(t, n, c) { var u, h = this; void 0 === c && (c = "context" in t ? t.context : void 0), this.config = t, this._context = c, this.order = -1, this.__xstatenode = !0, this.__cache = { events: void 0, relativeValue: new Map(), initialStateValue: void 0, initialState: void 0, on: void 0, transitions: void 0, candidates: {}, delayedTransitions: void 0 }, this.idMap = {}, this.tags = [], this.options = Object.assign({ actions: {}, guards: {}, services: {}, activities: {}, delays: {} }, n), this.parent = this.options._parent, this.key = this.config.key || this.options._key || this.config.id || "(machine)", this.machine = this.parent ? this.parent.machine : this, this.path = this.parent ? this.parent.path.concat(this.key) : [], this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : "."), this.id = this.config.id || o([this.machine.key], i(this.path), !1).join(this.delimiter), this.version = this.parent ? this.parent.version : this.config.version, this.type = this.config.type || (this.config.parallel ? "parallel" : this.config.states && s(this.config.states).length ? "compound" : this.config.history ? "history" : "atomic"), this.schema = this.parent ? this.machine.schema : null !== (u = this.config.schema) && void 0 !== u ? u : {}, this.description = this.config.description, this.initial = this.config.initial, this.states = this.config.states ? d(this.config.states, function (t, n) { var r, i = new a(t, { _parent: h, _key: n }); return Object.assign(h.idMap, _e(((r = {})[i.id] = i, r), i.idMap)), i; }) : Rt; var f = 0; !function t(e) { var n, i; e.order = f++; try { for (var o = r(U(e)), a = o.next(); !a.done; a = o.next()) { t(a.value); } } catch (t) { n = { error: t }; } finally { try { a && !a.done && (i = o["return"]) && i.call(o); } finally { if (n) throw n.error; } } }(this), this.history = !0 === this.config.history ? "shallow" : this.config.history || !1, this._transient = !!this.config.always || !!this.config.on && (Array.isArray(this.config.on) ? this.config.on.some(function (t) { return "" === t.event; }) : "" in this.config.on), this.strict = !!this.config.strict, this.onEntry = S(this.config.entry || this.config.onEntry).map(function (t) { return lt(t); }), this.onExit = S(this.config.exit || this.config.onExit).map(function (t) { return lt(t); }), this.meta = this.config.meta, this.doneData = "final" === this.type ? this.config.data : void 0, this.invoke = S(this.config.invoke).map(function (t, n) { var r, i; if (k(t)) return h.machine.options.services = _e(((r = {})[t.id] = t, r), h.machine.options.services), Dt({ src: t.id, id: t.id }); if (A(t.src)) return Dt(_e(_e({}, t), { id: t.id || t.src, src: t.src })); if (k(t.src) || N(t.src)) { var o = "".concat(h.id, ":invocation[").concat(n, "]"); return h.machine.options.services = _e(((i = {})[o] = t.src, i), h.machine.options.services), Dt(_e(_e({ id: o }, t), { src: o })); } var a = t.src; return Dt(_e(_e({ id: a.type }, t), { src: a })); }), this.activities = S(this.config.activities).concat(this.invoke).map(function (t) { return pt(t); }), this.transition = this.transition.bind(this), this.tags = S(this.config.tags); } return a.prototype._init = function () { this.__cache.transitions || B(this).forEach(function (t) { return t.on; }); }, a.prototype.withConfig = function (t, n) { var r = this.options, i = r.actions, o = r.activities, s = r.guards, c = r.services, u = r.delays; return new a(this.config, { actions: _e(_e({}, i), t.actions), activities: _e(_e({}, o), t.activities), guards: _e(_e({}, s), t.guards), services: _e(_e({}, c), t.services), delays: _e(_e({}, u), t.delays) }, null != n ? n : this.context); }, a.prototype.withContext = function (t) { return new a(this.config, this.options, t); }, Object.defineProperty(a.prototype, "context", { get: function get() { return N(this._context) ? this._context() : this._context; }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "definition", { get: function get() { return { id: this.id, key: this.key, version: this.version, context: this.context, type: this.type, initial: this.initial, history: this.history, states: d(this.states, function (t) { return t.definition; }), on: this.on, transitions: this.transitions, entry: this.onEntry, exit: this.onExit, activities: this.activities || [], meta: this.meta, order: this.order || -1, data: this.doneData, invoke: this.invoke, description: this.description, tags: this.tags }; }, enumerable: !1, configurable: !0 }), a.prototype.toJSON = function () { return this.definition; }, Object.defineProperty(a.prototype, "on", { get: function get() { if (this.__cache.on) return this.__cache.on; var t = this.transitions; return this.__cache.on = t.reduce(function (t, e) { return t[e.eventType] = t[e.eventType] || [], t[e.eventType].push(e), t; }, {}); }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "after", { get: function get() { return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions); }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "transitions", { get: function get() { return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions); }, enumerable: !1, configurable: !0 }), a.prototype.getCandidates = function (t) { if (this.__cache.candidates[t]) return this.__cache.candidates[t]; var e = "" === t, n = this.transitions.filter(function (n) { var r = n.eventType === t; return e ? r : r || "*" === n.eventType; }); return this.__cache.candidates[t] = n, n; }, a.prototype.getDelayedTransitions = function () { var t = this, n = this.config.after; if (!n) return []; var r = function r(e, n) { var r = Et(N(e) ? "".concat(t.id, ":delay[").concat(n, "]") : e, t.id); return t.onEntry.push(yt(r, { delay: e })), t.onExit.push(xt(r)), r; }; return (T(n) ? n.map(function (t, n) { var i = r(t.delay, n); return _e(_e({}, t), { event: i }); }) : g(s(n).map(function (t, i) { var o = n[t], a = A(o) ? { target: o } : o, s = isNaN(+t) ? t : +t, c = r(s, i); return S(a).map(function (t) { return _e(_e({}, t), { event: c, delay: s }); }); }))).map(function (n) { var r = n.delay; return _e(_e({}, t.formatTransition(n)), { delay: r }); }); }, a.prototype.getStateNodes = function (t) { var e, n = this; if (!t) return []; var r = t instanceof kt ? t.value : f(t, this.delimiter); if (A(r)) { var i = this.getStateNode(r).initial; return void 0 !== i ? this.getStateNodes(((e = {})[r] = i, e)) : [this, this.states[r]]; } var o = s(r), a = o.map(function (t) { return n.getStateNode(t); }); return a.push(this), a.concat(o.reduce(function (t, e) { var i = n.getStateNode(e).getStateNodes(r[e]); return t.concat(i); }, [])); }, a.prototype.handles = function (t) { var e = u(t); return this.events.includes(e); }, a.prototype.resolveState = function (t) { var n = Array.from(J([], this.getStateNodes(t.value))); return new kt(_e(_e({}, t), { value: this.resolve(t.value), configuration: n, done: H(n, this), tags: G(n) })); }, a.prototype.transitionLeafNode = function (t, e, n) { var r = this.getStateNode(t).next(e, n); return r && r.transitions.length ? r : this.next(e, n); }, a.prototype.transitionCompoundNode = function (t, e, n) { var r = s(t), i = this.getStateNode(r[0])._transition(t[r[0]], e, n); return i && i.transitions.length ? i : this.next(e, n); }, a.prototype.transitionParallelNode = function (t, e, n) { var i, o, a = {}; try { for (var c = r(s(t)), u = c.next(); !u.done; u = c.next()) { var h = u.value, f = t[h]; if (f) { var l = this.getStateNode(h)._transition(f, e, n); l && (a[h] = l); } } } catch (t) { i = { error: t }; } finally { try { u && !u.done && (o = c["return"]) && o.call(c); } finally { if (i) throw i.error; } } var d = s(a).map(function (t) { return a[t]; }), p = g(d.map(function (t) { return t.transitions; })); if (!d.some(function (t) { return t.transitions.length > 0; })) return this.next(e, n); var v = g(d.map(function (t) { return t.entrySet; })), y = g(s(a).map(function (t) { return a[t].configuration; })); return { transitions: p, entrySet: v, exitSet: g(d.map(function (t) { return t.exitSet; })), configuration: y, source: e, actions: g(s(a).map(function (t) { return a[t].actions; })) }; }, a.prototype._transition = function (t, e, n) { return A(t) ? this.transitionLeafNode(t, e, n) : 1 === s(t).length ? this.transitionCompoundNode(t, e, n) : this.transitionParallelNode(t, e, n); }, a.prototype.next = function (t, e) { var n, a, s, u = this, h = e.name, l = [], d = []; try { for (var p = r(this.getCandidates(h)), y = p.next(); !y.done; y = p.next()) { var m = y.value, S = m.cond, x = m["in"], w = t.context, b = !x || (A(x) && Mt(x) ? t.matches(f(this.getStateNodeById(x).path, this.delimiter)) : c(f(x, this.delimiter), v(this.path.slice(0, -2))(t.value))), _ = !1; try { _ = !S || R(this.machine, S, w, e, t); } catch (t) { throw new Error("Unable to evaluate guard '".concat(S.name || S.type, "' in transition for event '").concat(h, "' in state node '").concat(this.id, "':\n").concat(t.message)); } if (_ && b) { void 0 !== m.target && (d = m.target), l.push.apply(l, o([], i(m.actions), !1)), s = m; break; } } } catch (t) { n = { error: t }; } finally { try { y && !y.done && (a = p["return"]) && a.call(p); } finally { if (n) throw n.error; } } if (s) { if (!d.length) return { transitions: [s], entrySet: [], exitSet: [], configuration: t.value ? [this] : [], source: t, actions: l }; var E = g(d.map(function (e) { return u.getRelativeStateNodes(e, t.historyValue); })), T = !!s.internal; return { transitions: [s], entrySet: T ? [] : g(E.map(function (t) { return u.nodesFromChild(t); })), exitSet: T ? [] : [this], configuration: E, source: t, actions: l }; } }, a.prototype.nodesFromChild = function (t) { if (t.escapes(this)) return []; for (var e = [], n = t; n && n !== this;) { e.push(n), n = n.parent; } return e.push(this), e; }, a.prototype.escapes = function (t) { if (this === t) return !1; for (var e = this.parent; e;) { if (e === t) return !1; e = e.parent; } return !0; }, a.prototype.getActions = function (t, e, n, a) { var s, c, u, h, f = J([], a ? this.getStateNodes(a.value) : [this]), l = t.configuration.length ? J(f, t.configuration) : f; try { for (var d = r(l), p = d.next(); !p.done; p = d.next()) { X(f, m = p.value) || t.entrySet.push(m); } } catch (t) { s = { error: t }; } finally { try { p && !p.done && (c = d["return"]) && c.call(d); } finally { if (s) throw s.error; } } try { for (var v = r(f), y = v.next(); !y.done; y = v.next()) { var m; X(l, m = y.value) && !X(t.exitSet, m.parent) || t.exitSet.push(m); } } catch (t) { u = { error: t }; } finally { try { y && !y.done && (h = v["return"]) && h.call(v); } finally { if (u) throw u.error; } } t.source || (t.exitSet = [], t.entrySet.push(this)); var S = g(t.entrySet.map(function (r) { var i = []; if ("final" !== r.type) return i; var o = r.parent; if (!o.parent) return i; i.push(Tt(r.id, r.doneData), Tt(o.id, r.doneData ? x(r.doneData, e, n) : void 0)); var a = o.parent; return "parallel" === a.type && U(a).every(function (e) { return H(t.configuration, e); }) && i.push(Tt(a.id)), i; })); t.exitSet.sort(function (t, e) { return e.order - t.order; }), t.entrySet.sort(function (t, e) { return t.order - e.order; }); var w = new Set(t.entrySet), b = new Set(t.exitSet), _ = i([g(Array.from(w).map(function (t) { return o(o([], i(t.activities.map(function (t) { return wt(t); })), !1), i(t.onEntry), !1); })).concat(S.map(vt)), g(Array.from(b).map(function (t) { return o(o([], i(t.onExit), !1), i(t.activities.map(function (t) { return bt(t); })), !1); }))], 2), E = _[0], T = _[1]; return dt(T.concat(t.actions).concat(E), this.machine.options.actions); }, a.prototype.transition = function (t, e, n) { void 0 === t && (t = this.initialState); var r, a, s = L(e); if (t instanceof kt) r = void 0 === n ? t : this.resolveState(kt.from(t, n));else { var c = A(t) ? this.resolve(l(this.getResolvedPath(t))) : this.resolve(t), u = null != n ? n : this.machine.context; r = this.resolveState(kt.from(c, u)); } if (this.strict && !this.events.includes(s.name) && (a = s.name, !/^(done|error)\./.test(a))) throw new Error("Machine '".concat(this.id, "' does not accept event '").concat(s.name, "'")); var h = this._transition(r.value, r, s) || { transitions: [], configuration: [], entrySet: [], exitSet: [], source: r, actions: [] }, f = J([], this.getStateNodes(r.value)), d = h.configuration.length ? J(f, h.configuration) : f; return h.configuration = o([], i(d), !1), this.resolveTransition(h, r, s); }, a.prototype.resolveRaisedTransition = function (t, e, n) { var r, a = t.actions; return (t = this.transition(t, e))._event = n, t.event = n.data, (r = t.actions).unshift.apply(r, o([], i(a), !1)), t; }, a.prototype.resolveTransition = function (n, o, a, c) { var u, h, f = this; void 0 === a && (a = ht), void 0 === c && (c = this.machine.context); var l = n.configuration, d = !o || n.transitions.length > 0, p = d ? $(this.machine, l) : void 0, v = o ? o.historyValue ? o.historyValue : n.source ? this.machine.historyValue(o.value) : void 0 : void 0, y = o ? o.context : c, g = this.getActions(n, y, a, o), m = o ? _e({}, o.activities) : {}; try { for (var S = r(g), w = S.next(); !w.done; w = S.next()) { var E = w.value; E.type === K ? m[E.activity.id || E.activity.type] = E : E.type === Q && (m[E.activity.id || E.activity.type] = !1); } } catch (t) { u = { error: t }; } finally { try { w && !w.done && (h = S["return"]) && h.call(S); } finally { if (u) throw u.error; } } var T, N, O = i(Pt(this, o, y, a, g, this.machine.config.preserveActionOrder), 2), P = O[0], k = O[1], I = i(b(P, function (e) { return e.type === W || e.type === Y && e.to === t.SpecialTargets.Internal; }), 2), j = I[0], C = I[1], V = P.filter(function (t) { var e; return t.type === K && (null === (e = t.activity) || void 0 === e ? void 0 : e.type) === it; }).reduce(function (t, e) { return t[e.activity.id] = function (t, e, n, r) { var i, o = M(t.src), a = null === (i = null == e ? void 0 : e.options.services) || void 0 === i ? void 0 : i[o.type], s = t.data ? x(t.data, n, r) : void 0, c = a ? Vt(a, t.id, s) : Ct(t.id); return c.meta = t, c; }(e.activity, f.machine, k, a), t; }, o ? _e({}, o.children) : {}), L = p ? n.configuration : o ? o.configuration : [], D = H(L, this), R = new kt({ value: p || o.value, context: k, _event: a, _sessionid: o ? o._sessionid : null, historyValue: p ? v ? (T = v, N = p, { current: N, states: _(T, N) }) : void 0 : o ? o.historyValue : void 0, history: !p || n.source ? o : void 0, actions: p ? C : [], activities: p ? m : o ? o.activities : {}, events: [], configuration: L, transitions: n.transitions, children: V, done: D, tags: null == o ? void 0 : o.tags, machine: this }), z = y !== k; R.changed = a.name === st || z; var F = R.history; F && delete F.history; var U = !D && (this._transient || l.some(function (t) { return t._transient; })); if (!(d || U && "" !== a.name)) return R; var B = R; if (!D) for (U && (B = this.resolveRaisedTransition(B, { type: tt }, a)); j.length;) { var J = j.shift(); B = this.resolveRaisedTransition(B, J._event, a); } var q = B.changed || (F ? !!B.actions.length || z || typeof F.value != typeof B.value || !function t(e, n) { if (e === n) return !0; if (void 0 === e || void 0 === n) return !1; if (A(e) || A(n)) return e === n; var r = s(e), i = s(n); return r.length === i.length && r.every(function (r) { return t(e[r], n[r]); }); }(B.value, F.value) : void 0); return B.changed = q, B.history = F, B.tags = G(B.configuration), B; }, a.prototype.getStateNode = function (t) { if (Mt(t)) return this.machine.getStateNodeById(t); if (!this.states) throw new Error("Unable to retrieve child state '".concat(t, "' from '").concat(this.id, "'; no child states exist.")); var e = this.states[t]; if (!e) throw new Error("Child state '".concat(t, "' does not exist on '").concat(this.id, "'")); return e; }, a.prototype.getStateNodeById = function (t) { var e = Mt(t) ? t.slice("#".length) : t; if (e === this.id) return this; var n = this.machine.idMap[e]; if (!n) throw new Error("Child state node '#".concat(e, "' does not exist on machine '").concat(this.id, "'")); return n; }, a.prototype.getStateNodeByPath = function (t) { if ("string" == typeof t && Mt(t)) try { return this.getStateNodeById(t.slice(1)); } catch (t) {} for (var e = h(t, this.delimiter).slice(), n = this; e.length;) { var r = e.shift(); if (!r.length) break; n = n.getStateNode(r); } return n; }, a.prototype.resolve = function (t) { var e, n = this; if (!t) return this.initialStateValue || Rt; switch (this.type) { case "parallel": return d(this.initialStateValue, function (e, r) { return e ? n.getStateNode(r).resolve(t[r] || e) : Rt; }); case "compound": if (A(t)) { var r = this.getStateNode(t); return "parallel" === r.type || "compound" === r.type ? ((e = {})[t] = r.initialStateValue, e) : t; } return s(t).length ? d(t, function (t, e) { return t ? n.getStateNode(e).resolve(t) : Rt; }) : this.initialStateValue || {}; default: return t || Rt; } }, a.prototype.getResolvedPath = function (t) { if (Mt(t)) { var e = this.machine.idMap[t.slice("#".length)]; if (!e) throw new Error("Unable to find state node '".concat(t, "'")); return e.path; } return h(t, this.delimiter); }, Object.defineProperty(a.prototype, "initialStateValue", { get: function get() { var t, e; if (this.__cache.initialStateValue) return this.__cache.initialStateValue; if ("parallel" === this.type) e = p(this.states, function (t) { return t.initialStateValue || Rt; }, function (t) { return !("history" === t.type); });else if (void 0 !== this.initial) { if (!this.states[this.initial]) throw new Error("Initial state '".concat(this.initial, "' not found on '").concat(this.key, "'")); e = F(this.states[this.initial]) ? this.initial : ((t = {})[this.initial] = this.states[this.initial].initialStateValue, t); } else e = {}; return this.__cache.initialStateValue = e, this.__cache.initialStateValue; }, enumerable: !1, configurable: !0 }), a.prototype.getInitialState = function (t, e) { var n = this.getStateNodes(t); return this.resolveTransition({ configuration: n, entrySet: n, exitSet: [], transitions: [], source: void 0, actions: [] }, void 0, void 0, e); }, Object.defineProperty(a.prototype, "initialState", { get: function get() { this._init(); var t = this.initialStateValue; if (!t) throw new Error("Cannot retrieve initial state from simple state '".concat(this.id, "'.")); return this.getInitialState(t); }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "target", { get: function get() { var t; if ("history" === this.type) { var e = this.config; t = A(e.target) && Mt(e.target) ? l(this.machine.getStateNodeById(e.target).path.slice(this.path.length - 1)) : e.target; } return t; }, enumerable: !1, configurable: !0 }), a.prototype.getRelativeStateNodes = function (t, e, n) { return void 0 === n && (n = !0), n ? "history" === t.type ? t.resolveHistory(e) : t.initialStateNodes : [t]; }, Object.defineProperty(a.prototype, "initialStateNodes", { get: function get() { var t = this; return F(this) ? [this] : "compound" !== this.type || this.initial ? g(y(this.initialStateValue).map(function (e) { return t.getFromRelativePath(e); })) : [this]; }, enumerable: !1, configurable: !0 }), a.prototype.getFromRelativePath = function (t) { if (!t.length) return [this]; var e = i(t), n = e[0], r = e.slice(1); if (!this.states) throw new Error("Cannot retrieve subPath '".concat(n, "' from node with no states")); var o = this.getStateNode(n); if ("history" === o.type) return o.resolveHistory(); if (!this.states[n]) throw new Error("Child state '".concat(n, "' does not exist on '").concat(this.id, "'")); return this.states[n].getFromRelativePath(r); }, a.prototype.historyValue = function (t) { if (s(this.states).length) return { current: t || this.initialStateValue, states: p(this.states, function (e, n) { if (!t) return e.historyValue(); var r = A(t) ? void 0 : t[n]; return e.historyValue(r || e.initialStateValue); }, function (t) { return !t.history; }) }; }, a.prototype.resolveHistory = function (t) { var e = this; if ("history" !== this.type) return [this]; var n = this.parent; if (!t) { var i = this.target; return i ? g(y(i).map(function (t) { return n.getFromRelativePath(t); })) : n.initialStateNodes; } var o, a, s = (o = n.path, a = "states", function (t) { var e, n, i = t; try { for (var s = r(o), c = s.next(); !c.done; c = s.next()) { var u = c.value; i = i[a][u]; } } catch (t) { e = { error: t }; } finally { try { c && !c.done && (n = s["return"]) && n.call(s); } finally { if (e) throw e.error; } } return i; })(t).current; return A(s) ? [n.getStateNode(s)] : g(y(s).map(function (t) { return "deep" === e.history ? n.getFromRelativePath(t) : [n.states[t[0]]]; })); }, Object.defineProperty(a.prototype, "stateIds", { get: function get() { var t = this, e = g(s(this.states).map(function (e) { return t.states[e].stateIds; })); return [this.id].concat(e); }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "events", { get: function get() { var t, e, n, i; if (this.__cache.events) return this.__cache.events; var o = this.states, a = new Set(this.ownEvents); if (o) try { for (var c = r(s(o)), u = c.next(); !u.done; u = c.next()) { var h = o[u.value]; if (h.states) try { for (var f = (n = void 0, r(h.events)), l = f.next(); !l.done; l = f.next()) { var d = l.value; a.add("".concat(d)); } } catch (t) { n = { error: t }; } finally { try { l && !l.done && (i = f["return"]) && i.call(f); } finally { if (n) throw n.error; } } } } catch (e) { t = { error: e }; } finally { try { u && !u.done && (e = c["return"]) && e.call(c); } finally { if (t) throw t.error; } } return this.__cache.events = Array.from(a); }, enumerable: !1, configurable: !0 }), Object.defineProperty(a.prototype, "ownEvents", { get: function get() { var t = new Set(this.transitions.filter(function (t) { return !(!t.target && !t.actions.length && t.internal); }).map(function (t) { return t.eventType; })); return Array.from(t); }, enumerable: !1, configurable: !0 }), a.prototype.resolveTarget = function (t) { var e = this; if (void 0 !== t) return t.map(function (t) { if (!A(t)) return t; var n = t[0] === e.delimiter; if (n && !e.parent) return e.getStateNodeByPath(t.slice(1)); var r = n ? e.key + t : t; if (!e.parent) return e.getStateNodeByPath(r); try { return e.parent.getStateNodeByPath(r); } catch (t) { throw new Error("Invalid transition definition for state node '".concat(e.id, "':\n").concat(t.message)); } }); }, a.prototype.formatTransition = function (t) { var n = this, r = function (t) { if (void 0 !== t && "" !== t) return S(t); }(t.target), i = "internal" in t ? t.internal : !r || r.some(function (t) { return A(t) && t[0] === n.delimiter; }), o = this.machine.options.guards, a = this.resolveTarget(r), s = _e(_e({}, t), { actions: dt(S(t.actions)), cond: O(t.cond, o), target: a, source: this, internal: i, eventType: t.event, toJSON: function toJSON() { return _e(_e({}, s), { target: s.target ? s.target.map(function (t) { return "#".concat(t.id); }) : void 0, source: "#".concat(n.id) }); } }); return s; }, a.prototype.formatTransitions = function () { var t, e, a, c = this; if (this.config.on) { if (Array.isArray(this.config.on)) a = this.config.on;else { var u = this.config.on, h = u["*"], f = void 0 === h ? [] : h, l = n(u, ["*"]); a = g(s(l).map(function (t) { return D(t, l[t]); }).concat(D("*", f))); } } else a = []; var d = this.config.always ? D("", this.config.always) : [], p = this.config.onDone ? D(String(Tt(this.id)), this.config.onDone) : [], v = g(this.invoke.map(function (t) { var e = []; return t.onDone && e.push.apply(e, o([], i(D(String(Nt(t.id)), t.onDone)), !1)), t.onError && e.push.apply(e, o([], i(D(String(At(t.id)), t.onError)), !1)), e; })), y = this.after, m = g(o(o(o(o([], i(p), !1), i(v), !1), i(a), !1), i(d), !1).map(function (t) { return S(t).map(function (t) { return c.formatTransition(t); }); })); try { for (var x = r(y), w = x.next(); !w.done; w = x.next()) { var b = w.value; m.push(b); } } catch (e) { t = { error: e }; } finally { try { w && !w.done && (e = x["return"]) && e.call(x); } finally { if (t) throw t.error; } } return m; }, a; }(); var Ft = { deferEvents: !1 }, Ut = function () { function t(t) { this.processingEvent = !1, this.queue = [], this.initialized = !1, this.options = _e(_e({}, Ft), t); } return t.prototype.initialize = function (t) { if (this.initialized = !0, t) { if (!this.options.deferEvents) return void this.schedule(t); this.process(t); } this.flushEvents(); }, t.prototype.schedule = function (t) { if (this.initialized && !this.processingEvent) { if (0 !== this.queue.length) throw new Error("Event queue should be empty when it is not processing events"); this.process(t), this.flushEvents(); } else this.queue.push(t); }, t.prototype.clear = function () { this.queue = []; }, t.prototype.flushEvents = function () { for (var t = this.queue.shift(); t;) { this.process(t), t = this.queue.shift(); } }, t.prototype.process = function (t) { this.processingEvent = !0; try { t(); } catch (t) { throw this.clear(), t; } finally { this.processingEvent = !1; } }, t; }(), Bt = new Map(), Jt = 0, qt = function qt() { return "x:".concat(Jt++); }, $t = function $t(t, e) { return Bt.set(t, e), t; }, Xt = function Xt(t) { return Bt.get(t); }, Ht = function Ht(t) { Bt["delete"](t); }; function Gt() { return "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : void 0; } function Kt(t) { if (Gt()) { var e = function () { var t = Gt(); if (t && "__xstate__" in t) return t.__xstate__; }(); e && e.register(t); } } function Qt(t, n) { void 0 === n && (n = {}); var r, i = t.initialState, o = new Set(), a = [], s = !1, c = (r = { id: n.id, send: function send(e) { a.push(e), function () { if (!s) { for (s = !0; a.length > 0;) { var e = a.shift(); i = t.transition(i, e, u), o.forEach(function (t) { return t.next(i); }); } s = !1; } }(); }, getSnapshot: function getSnapshot() { return i; }, subscribe: function subscribe(t, e, n) { var r = z(t, e, n); return o.add(r), r.next(i), { unsubscribe: function unsubscribe() { o["delete"](r); } }; } }, _e({ subscribe: function subscribe() { return { unsubscribe: function unsubscribe() {} }; }, id: "anonymous", getSnapshot: function getSnapshot() {} }, r)), u = { parent: n.parent, self: c, id: n.id || "anonymous", observers: o }; return i = t.start ? t.start(u) : i, c; } var Wt, Yt = { sync: !1, autoForward: !1 }; (Wt = t.InterpreterStatus || (t.InterpreterStatus = {}))[Wt.NotStarted = 0] = "NotStarted", Wt[Wt.Running = 1] = "Running", Wt[Wt.Stopped = 2] = "Stopped"; var Zt = function () { function n(r, i) { var o = this; void 0 === i && (i = n.defaultOptions), this.machine = r, this.scheduler = new Ut(), this.delayedEventsMap = {}, this.listeners = new Set(), this.contextListeners = new Set(), this.stopListeners = new Set(), this.doneListeners = new Set(), this.eventListeners = new Set(), this.sendListeners = new Set(), this.initialized = !1, this.status = t.InterpreterStatus.NotStarted, this.children = new Map(), this.forwardTo = new Set(), this.init = this.start, this.send = function (e, n) { if (T(e)) return o.batch(e), o.state; var r = L(V(e, n)); if (o.status === t.InterpreterStatus.Stopped) return o.state; if (o.status !== t.InterpreterStatus.Running && !o.options.deferEvents) throw new Error('Event "'.concat(r.name, '" was sent to uninitialized service "').concat(o.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\nEvent: ').concat(JSON.stringify(r.data))); return o.scheduler.schedule(function () { o.forward(r); var t = o.nextState(r); o.update(t, r); }), o._state; }, this.sendTo = function (n, r) { var i, a = o.parent && (r === t.SpecialTargets.Parent || o.parent.id === r), s = a ? o.parent : A(r) ? o.children.get(r) || Xt(r) : (i = r) && "function" == typeof i.send ? r : void 0; if (s) "machine" in s ? s.send(_e(_e({}, n), { name: n.name === at ? "".concat(At(o.id)) : n.name, origin: o.sessionId })) : s.send(n.data);else if (!a) throw new Error("Unable to send event to child '".concat(r, "' from service '").concat(o.id, "'.")); }; var a = _e(_e({}, n.defaultOptions), i), s = a.clock, c = a.logger, u = a.parent, h = a.id, f = void 0 !== h ? h : r.id; this.id = f, this.logger = c, this.clock = s, this.parent = u, this.options = a, this.scheduler = new Ut({ deferEvents: this.options.deferEvents }), this.sessionId = qt(); } return Object.defineProperty(n.prototype, "initialState", { get: function get() { var t = this; return this._initialState ? this._initialState : jt(this, function () { return t._initialState = t.machine.initialState, t._initialState; }); }, enumerable: !1, configurable: !0 }), Object.defineProperty(n.prototype, "state", { get: function get() { return this._state; }, enumerable: !1, configurable: !0 }), n.prototype.execute = function (t, e) { var n, i; try { for (var o = r(t.actions), a = o.next(); !a.done; a = o.next()) { var s = a.value; this.exec(s, t, e); } } catch (t) { n = { error: t }; } finally { try { a && !a.done && (i = o["return"]) && i.call(o); } finally { if (n) throw n.error; } } }, n.prototype.update = function (t, e) { var n, i, o, a, s, c, u, h, f = this; if (t._sessionid = this.sessionId, this._state = t, this.options.execute && this.execute(this.state), this.children.forEach(function (t) { f.state.children[t.id] = t; }), this.devTools && this.devTools.send(e.data, t), t.event) try { for (var l = r(this.eventListeners), d = l.next(); !d.done; d = l.next()) { (0, d.value)(t.event); } } catch (t) { n = { error: t }; } finally { try { d && !d.done && (i = l["return"]) && i.call(l); } finally { if (n) throw n.error; } } try { for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { (0, v.value)(t, t.event); } } catch (t) { o = { error: t }; } finally { try { v && !v.done && (a = p["return"]) && a.call(p); } finally { if (o) throw o.error; } } try { for (var y = r(this.contextListeners), g = y.next(); !g.done; g = y.next()) { (0, g.value)(this.state.context, this.state.history ? this.state.history.context : void 0); } } catch (t) { s = { error: t }; } finally { try { g && !g.done && (c = y["return"]) && c.call(y); } finally { if (s) throw s.error; } } var m = H(t.configuration || [], this.machine); if (this.state.configuration && m) { var S = t.configuration.find(function (t) { return "final" === t.type && t.parent === f.machine; }), w = S && S.doneData ? x(S.doneData, t.context, e) : void 0; try { for (var b = r(this.doneListeners), _ = b.next(); !_.done; _ = b.next()) { (0, _.value)(Nt(this.id, w)); } } catch (t) { u = { error: t }; } finally { try { _ && !_.done && (h = b["return"]) && h.call(b); } finally { if (u) throw u.error; } } this.stop(); } }, n.prototype.onTransition = function (e) { return this.listeners.add(e), this.status === t.InterpreterStatus.Running && e(this.state, this.state.event), this; }, n.prototype.subscribe = function (e, n, r) { var i, o = this; if (!e) return { unsubscribe: function unsubscribe() {} }; var a = r; return "function" == typeof e ? i = e : (i = e.next.bind(e), a = e.complete.bind(e)), this.listeners.add(i), this.status === t.InterpreterStatus.Running && i(this.state), a && this.onDone(a), { unsubscribe: function unsubscribe() { i && o.listeners["delete"](i), a && o.doneListeners["delete"](a); } }; }, n.prototype.onEvent = function (t) { return this.eventListeners.add(t), this; }, n.prototype.onSend = function (t) { return this.sendListeners.add(t), this; }, n.prototype.onChange = function (t) { return this.contextListeners.add(t), this; }, n.prototype.onStop = function (t) { return this.stopListeners.add(t), this; }, n.prototype.onDone = function (t) { return this.doneListeners.add(t), this; }, n.prototype.off = function (t) { return this.listeners["delete"](t), this.eventListeners["delete"](t), this.sendListeners["delete"](t), this.stopListeners["delete"](t), this.doneListeners["delete"](t), this.contextListeners["delete"](t), this; }, n.prototype.start = function (e) { var n = this; if (this.status === t.InterpreterStatus.Running) return this; $t(this.sessionId, this), this.initialized = !0, this.status = t.InterpreterStatus.Running; var r = void 0 === e ? this.initialState : jt(this, function () { return !A(t = e) && "value" in t && "history" in t ? n.machine.resolveState(e) : n.machine.resolveState(kt.from(e, n.machine.context)); var t; }); return this.options.devTools && this.attachDev(), this.scheduler.initialize(function () { n.update(r, ht); }), this; }, n.prototype.stop = function () { var e, n, i, o, a, c, u, h, f, l, d = this; try { for (var p = r(this.listeners), v = p.next(); !v.done; v = p.next()) { var y = v.value; this.listeners["delete"](y); } } catch (t) { e = { error: t }; } finally { try { v && !v.done && (n = p["return"]) && n.call(p); } finally { if (e) throw e.error; } } try { for (var g = r(this.stopListeners), m = g.next(); !m.done; m = g.next()) { (y = m.value)(), this.stopListeners["delete"](y); } } catch (t) { i = { error: t }; } finally { try { m && !m.done && (o = g["return"]) && o.call(g); } finally { if (i) throw i.error; } } try { for (var S = r(this.contextListeners), x = S.next(); !x.done; x = S.next()) { y = x.value; this.contextListeners["delete"](y); } } catch (t) { a = { error: t }; } finally { try { x && !x.done && (c = S["return"]) && c.call(S); } finally { if (a) throw a.error; } } try { for (var w = r(this.doneListeners), b = w.next(); !b.done; b = w.next()) { y = b.value; this.doneListeners["delete"](y); } } catch (t) { u = { error: t }; } finally { try { b && !b.done && (h = w["return"]) && h.call(w); } finally { if (u) throw u.error; } } if (!this.initialized) return this; this.state.configuration.forEach(function (t) { var e, n; try { for (var i = r(t.definition.exit), o = i.next(); !o.done; o = i.next()) { var a = o.value; d.exec(a, d.state); } } catch (t) { e = { error: t }; } finally { try { o && !o.done && (n = i["return"]) && n.call(i); } finally { if (e) throw e.error; } } }), this.children.forEach(function (t) { N(t.stop) && t.stop(); }); try { for (var _ = r(s(this.delayedEventsMap)), E = _.next(); !E.done; E = _.next()) { var T = E.value; this.clock.clearTimeout(this.delayedEventsMap[T]); } } catch (t) { f = { error: t }; } finally { try { E && !E.done && (l = _["return"]) && l.call(_); } finally { if (f) throw f.error; } } return this.scheduler.clear(), this.initialized = !1, this.status = t.InterpreterStatus.Stopped, Ht(this.sessionId), this; }, n.prototype.batch = function (n) { var a = this; if (this.status === t.InterpreterStatus.NotStarted && this.options.deferEvents) ;else if (this.status !== t.InterpreterStatus.Running) throw new Error("".concat(n.length, ' event(s) were sent to uninitialized service "').concat(this.machine.id, '". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.')); this.scheduler.schedule(function () { var t, s, c = a.state, u = !1, h = [], f = function f(t) { var n = L(t); a.forward(n), c = jt(a, function () { return a.machine.transition(c, n); }), h.push.apply(h, o([], i(c.actions.map(function (t) { return r = c, i = (n = t).exec, _e(_e({}, n), { exec: void 0 !== i ? function () { return i(r.context, r.event, { action: n, state: r, _event: r._event }); } : void 0 }); var n, r, i; })), !1)), u = u || !!c.changed; }; try { for (var l = r(n), d = l.next(); !d.done; d = l.next()) { f(d.value); } } catch (e) { t = { error: e }; } finally { try { d && !d.done && (s = l["return"]) && s.call(l); } finally { if (t) throw t.error; } } c.changed = u, c.actions = h, a.update(c, L(n[n.length - 1])); }); }, n.prototype.sender = function (t) { return this.send.bind(this, t); }, n.prototype.nextState = function (t) { var e = this, n = L(t); if (0 === n.name.indexOf(ot) && !this.state.nextEvents.some(function (t) { return 0 === t.indexOf(ot); })) throw n.data.data; return jt(this, function () { return e.machine.transition(e.state, n); }); }, n.prototype.forward = function (t) { var e, n; try { for (var i = r(this.forwardTo), o = i.next(); !o.done; o = i.next()) { var a = o.value, s = this.children.get(a); if (!s) throw new Error("Unable to forward event '".concat(t, "' from interpreter '").concat(this.id, "' to nonexistant child '").concat(a, "'.")); s.send(t); } } catch (t) { e = { error: t }; } finally { try { o && !o.done && (n = i["return"]) && n.call(i); } finally { if (e) throw e.error; } } }, n.prototype.defer = function (t) { var e = this; this.delayedEventsMap[t.id] = this.clock.setTimeout(function () { t.to ? e.sendTo(t._event, t.to) : e.send(t._event); }, t.delay); }, n.prototype.cancel = function (t) { this.clock.clearTimeout(this.delayedEventsMap[t]), delete this.delayedEventsMap[t]; }, n.prototype.exec = function (e, n, r) { void 0 === r && (r = this.machine.options.actions); var i = n.context, o = n._event, a = e.exec || ft(e.type, r), s = N(a) ? a : a ? a.exec : e.exec; if (s) try { return s(i, o.data, { action: e, state: this.state, _event: o }); } catch (t) { throw this.parent && this.parent.send({ type: "xstate.error", data: t }), t; } switch (e.type) { case Y: var c = e; if ("number" == typeof c.delay) return void this.defer(c); c.to ? this.sendTo(c._event, c.to) : this.send(c._event); break; case Z: this.cancel(e.sendId); break; case K: var u = e.activity; if (!this.state.activities[u.id || u.type]) break; if (u.type === t.ActionTypes.Invoke) { var h = M(u.src), f = this.machine.options.services ? this.machine.options.services[h.type] : void 0, l = u.id, d = u.data, p = "autoForward" in u ? u.autoForward : !!u.forward; if (!f) return; var v = d ? x(d, i, o) : void 0; if ("string" == typeof f) return; var y = N(f) ? f(i, o.data, { data: v, src: h, meta: u.meta }) : f; if (!y) return; var g = void 0; k(y) && (y = v ? y.withContext(v) : y, g = { autoForward: p }), this.spawn(y, l, g); } else this.spawnActivity(u); break; case Q: this.stopChild(e.activity.id); break; case nt: var m = e.label, S = e.value; m ? this.logger(m, S) : this.logger(S); } }, n.prototype.removeChild = function (t) { var e; this.children["delete"](t), this.forwardTo["delete"](t), null === (e = this.state) || void 0 === e || delete e.children[t]; }, n.prototype.stopChild = function (t) { var e = this.children.get(t); e && (this.removeChild(t), N(e.stop) && e.stop()); }, n.prototype.spawn = function (t, n, r) { if (w(t)) return this.spawnPromise(Promise.resolve(t), n); if (N(t)) return this.spawnCallback(t, n); if (function (t) { try { return "function" == typeof t.send; } catch (t) { return !1; } }(o = t) && "id" in o) return this.spawnActor(t, n); if (function (t) { try { return "subscribe" in t && N(t.subscribe); } catch (t) { return !1; } }(t)) return this.spawnObservable(t, n); if (k(t)) return this.spawnMachine(t, _e(_e({}, r), { id: n })); if (null !== (i = t) && "object" == typeof i && "transition" in i && "function" == typeof i.transition) return this.spawnBehavior(t, n); throw new Error('Unable to spawn entity "'.concat(n, '" of type "').concat(typeof t, '".')); var i, o; }, n.prototype.spawnMachine = function (t, r) { var i = this; void 0 === r && (r = {}); var o = new n(t, _e(_e({}, this.options), { parent: this, id: r.id || t.id })), a = _e(_e({}, Yt), r); a.sync && o.onTransition(function (t) { i.send(st, { state: t, id: o.id }); }); var s = o; return this.children.set(o.id, s), a.autoForward && this.forwardTo.add(o.id), o.onDone(function (t) { i.removeChild(o.id), i.send(L(t, { origin: o.id })); }).start(), s; }, n.prototype.spawnBehavior = function (t, e) { var n = Qt(t, { id: e, parent: this }); return this.children.set(e, n), n; }, n.prototype.spawnPromise = function (t, e) { var n, r = this, i = !1; t.then(function (t) { i || (n = t, r.removeChild(e), r.send(L(Nt(e, t), { origin: e }))); }, function (t) { if (!i) { r.removeChild(e); var n = At(e, t); try { r.send(L(n, { origin: e })); } catch (t) { r.devTools && r.devTools.send(n, r.state), r.machine.strict && r.stop(); } } }); var o = { id: e, send: function send() {}, subscribe: function subscribe(e, n, r) { var i = z(e, n, r), o = !1; return t.then(function (t) { o || (i.next(t), o || i.complete()); }, function (t) { o || i.error(t); }), { unsubscribe: function unsubscribe() { return o = !0; } }; }, stop: function stop() { i = !0; }, toJSON: function toJSON() { return { id: e }; }, getSnapshot: function getSnapshot() { return n; } }; return this.children.set(e, o), o; }, n.prototype.spawnCallback = function (t, e) { var n, r, i = this, o = !1, a = new Set(), s = new Set(); try { r = t(function (t) { n = t, s.forEach(function (e) { return e(t); }), o || i.send(L(t, { origin: e })); }, function (t) { a.add(t); }); } catch (t) { this.send(At(e, t)); } if (w(r)) return this.spawnPromise(r, e); var c = { id: e, send: function send(t) { return a.forEach(function (e) { return e(t); }); }, subscribe: function subscribe(t) { return s.add(t), { unsubscribe: function unsubscribe() { s["delete"](t); } }; }, stop: function stop() { o = !0, N(r) && r(); }, toJSON: function toJSON() { return { id: e }; }, getSnapshot: function getSnapshot() { return n; } }; return this.children.set(e, c), c; }, n.prototype.spawnObservable = function (t, e) { var n, r = this, i = t.subscribe(function (t) { n = t, r.send(L(t, { origin: e })); }, function (t) { r.removeChild(e), r.send(L(At(e, t), { origin: e })); }, function () { r.removeChild(e), r.send(L(Nt(e), { origin: e })); }), o = { id: e, send: function send() {}, subscribe: function subscribe(e, n, r) { return t.subscribe(e, n, r); }, stop: function stop() { return i.unsubscribe(); }, getSnapshot: function getSnapshot() { return n; }, toJSON: function toJSON() { return { id: e }; } }; return this.children.set(e, o), o; }, n.prototype.spawnActor = function (t, e) { return this.children.set(e, t), t; }, n.prototype.spawnActivity = function (t) { var e = this.machine.options && this.machine.options.activities ? this.machine.options.activities[t.type] : void 0; if (e) { var n = e(this.state.context, t); this.spawnEffect(t.id, n); } }, n.prototype.spawnEffect = function (t, e) { this.children.set(t, { id: t, send: function send() {}, subscribe: function subscribe() { return { unsubscribe: function unsubscribe() {} }; }, stop: e || void 0, getSnapshot: function getSnapshot() {}, toJSON: function toJSON() { return { id: t }; } }); }, n.prototype.attachDev = function () { var t = Gt(); if (this.options.devTools && t) { if (t.__REDUX_DEVTOOLS_EXTENSION__) { var n = "object" == typeof this.options.devTools ? this.options.devTools : void 0; this.devTools = t.__REDUX_DEVTOOLS_EXTENSION__.connect(_e(_e({ name: this.id, autoPause: !0, stateSanitizer: function stateSanitizer(t) { return { value: t.value, context: t.context, actions: t.actions }; } }, n), { features: _e({ jump: !1, skip: !1 }, n ? n.features : void 0) }), this.machine), this.devTools.init(this.state); } Kt(this); } }, n.prototype.toJSON = function () { return { id: this.id }; }, n.prototype[P] = function () { return this; }, n.prototype.getSnapshot = function () { return this.status === t.InterpreterStatus.NotStarted ? this.initialState : this._state; }, n.defaultOptions = function (t) { return { execute: !0, deferEvents: !0, clock: { setTimeout: function (_setTimeout) { function setTimeout(_x, _x2) { return _setTimeout.apply(this, arguments); } setTimeout.toString = function () { return _setTimeout.toString(); }; return setTimeout; }(function (t, e) { return setTimeout(t, e); }), clearTimeout: function (_clearTimeout) { function clearTimeout(_x3) { return _clearTimeout.apply(this, arguments); } clearTimeout.toString = function () { return _clearTimeout.toString(); }; return clearTimeout; }(function (t) { return clearTimeout(t); }) }, logger: t.console.log.bind(console), devTools: !1 }; }("undefined" != typeof self ? self : global), n.interpret = te, n; }(); function te(t, e) { return new Zt(t, e); } var ee = { raise: vt, send: yt, sendParent: gt, sendUpdate: mt, log: function log(t, e) { return void 0 === t && (t = St), { type: nt, label: e, expr: t }; }, cancel: xt, start: wt, stop: bt, assign: _t, after: Et, done: Tt, respond: function respond(t, n) { return yt(t, _e(_e({}, n), { to: function to(t, e, n) { return n._event.origin; } })); }, forwardTo: Ot, escalate: function escalate(n, r) { return gt(function (t, e, r) { return { type: at, data: N(n) ? n(t, e, r) : n }; }, _e(_e({}, r), { to: t.SpecialTargets.Parent })); }, choose: function choose(e) { return { type: t.ActionTypes.Choose, conds: e }; }, pure: function pure(e) { return { type: t.ActionTypes.Pure, get: e }; } }; t.Interpreter = Zt, t.Machine = function (t, e, n) { return void 0 === n && (n = t.context), new zt(t, e, n); }, t.State = kt, t.StateNode = zt, t.actions = ee, t.assign = _t, t.createMachine = function (t, e) { return new zt(t, e); }, t.createSchema = function (t) { return t; }, t.doneInvoke = Nt, t.forwardTo = Ot, t.interpret = te, t.mapState = function (t, e) { var n, i, o; try { for (var a = r(s(t)), u = a.next(); !u.done; u = a.next()) { var h = u.value; c(h, e) && (!o || e.length > o.length) && (o = h); } } catch (t) { n = { error: t }; } finally { try { u && !u.done && (i = a["return"]) && i.call(a); } finally { if (n) throw n.error; } } return t[o]; }, t.matchState = function (t, e, n) { var o, a, s = kt.from(t, t instanceof kt ? t.context : void 0); try { for (var c = r(e), u = c.next(); !u.done; u = c.next()) { var h = i(u.value, 2), f = h[0], l = h[1]; if (s.matches(f)) return l(s); } } catch (t) { o = { error: t }; } finally { try { u && !u.done && (a = c["return"]) && a.call(c); } finally { if (o) throw o.error; } } return n(s); }, t.matchesState = c, t.send = yt, t.sendParent = gt, t.sendUpdate = mt, t.spawn = function (t, n) { var r = function (t) { return A(t) ? _e(_e({}, Yt), { name: t }) : _e(_e(_e({}, Yt), { name: C() }), t); }(n); return function (e) { return e ? e.spawn(t, r.name, r) : Vt(t, r.name); }(It[It.length - 1]); }, Object.defineProperty(t, "__esModule", { value: !0 }); }); cc._RF.pop(); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hc3NldHMvT1AxNS9zY3JpcHQveHN0YXRlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLENBQUMsVUFBUyxDQUFULEVBQVcsQ0FBWCxFQUFhO0FBQUMsY0FBVSxPQUFPLE9BQWpCLElBQTBCLGVBQWEsT0FBTyxNQUE5QyxHQUFxRCxDQUFDLENBQUMsT0FBRCxDQUF0RCxHQUFnRSxjQUFZLE9BQU8sTUFBbkIsSUFBMkIsTUFBTSxDQUFDLEdBQWxDLEdBQXNDLE1BQU0sQ0FBQyxDQUFDLFNBQUQsQ0FBRCxFQUFhLENBQWIsQ0FBNUMsR0FBNEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFDLGVBQWEsT0FBTyxVQUFwQixHQUErQixVQUEvQixHQUEwQyxDQUFDLElBQUUsSUFBaEQsRUFBc0QsTUFBdEQsR0FBNkQsRUFBOUQsQ0FBN0g7QUFBK0wsQ0FBN00sU0FBb04sVUFBUyxDQUFULEVBQVc7QUFBQztBQUNqTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUFvRixNQUFJLEVBQUMsR0FBQyxhQUFVO0FBQUMsV0FBTSxDQUFDLEVBQUMsR0FBQyxNQUFNLENBQUMsTUFBUCxJQUFlLFVBQVMsQ0FBVCxFQUFXO0FBQUMsV0FBSSxJQUFJLENBQUosRUFBTSxDQUFDLEdBQUMsQ0FBUixFQUFVLENBQUMsR0FBQyxTQUFTLENBQUMsTUFBMUIsRUFBaUMsQ0FBQyxHQUFDLENBQW5DLEVBQXFDLENBQUMsRUFBdEM7QUFBeUMsYUFBSSxJQUFJLENBQVIsSUFBYSxDQUFDLEdBQUMsU0FBUyxDQUFDLENBQUQsQ0FBeEI7QUFBNEIsVUFBQSxNQUFNLENBQUMsU0FBUCxDQUFpQixjQUFqQixDQUFnQyxJQUFoQyxDQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxNQUE0QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQUssQ0FBQyxDQUFDLENBQUQsQ0FBbEQ7QUFBNUI7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LEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUM7QUFBTixPQUFWLENBQU4sR0FBMEIsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRCxFQUFJLEVBQUosQ0FBRixFQUFVO0FBQUMsUUFBQSxJQUFJLEVBQUMsQ0FBQztBQUFQLE9BQVYsQ0FBRixFQUF3QixDQUF4QixDQUFsQztBQUE2RCxLQUF6RSxDQUEwRSxDQUExRSxDQUFOOztBQUFtRixXQUFPLFVBQVMsQ0FBVCxFQUFXO0FBQUMsYUFBTyxDQUFDLEdBQUMsQ0FBQyxDQUFDLEtBQUYsQ0FBUSxDQUFSLEVBQVUsQ0FBQyxDQUFDLElBQVosRUFBaUIsQ0FBakIsQ0FBRCxHQUFxQixFQUFFLENBQUMsQ0FBRCxFQUFHLENBQUMsQ0FBQyxJQUFMLENBQS9CO0FBQTBDLEtBQXRELENBQXVELEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBSCxHQUFVLENBQVgsQ0FBekQsQ0FBUDtBQUErRSxHQUFuakMsRUFBb2pDLE1BQU0sQ0FBQyxjQUFQLENBQXNCLENBQXRCLEVBQXdCLFlBQXhCLEVBQXFDO0FBQUMsSUFBQSxLQUFLLEVBQUMsQ0FBQztBQUFSLEdBQXJDLENBQXBqQztBQUFxbUMsQ0FkaGdwRCxDQUFEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxlKTplKCh0PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuWFN0YXRlPXt9KX0odGhpcywoZnVuY3Rpb24odCl7XCJ1c2Ugc3RyaWN0XCI7XG4vKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cblxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cblxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MSxyPWFyZ3VtZW50cy5sZW5ndGg7bjxyO24rKylmb3IodmFyIGkgaW4gZT1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkmJih0W2ldPWVbaV0pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBuKHQsZSl7dmFyIG49e307Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUuaW5kZXhPZihyKTwwJiYobltyXT10W3JdKTtpZihudWxsIT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT0wO2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7aTxyLmxlbmd0aDtpKyspZS5pbmRleE9mKHJbaV0pPDAmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0LHJbaV0pJiYobltyW2ldXT10W3JbaV1dKX1yZXR1cm4gbn1mdW5jdGlvbiByKHQpe3ZhciBlPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLG49ZSYmdFtlXSxyPTA7aWYobilyZXR1cm4gbi5jYWxsKHQpO2lmKHQmJlwibnVtYmVyXCI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiB0JiZyPj10Lmxlbmd0aCYmKHQ9dm9pZCAwKSx7dmFsdWU6dCYmdFtyKytdLGRvbmU6IXR9fX07dGhyb3cgbmV3IFR5cGVFcnJvcihlP1wiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS5cIjpcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIil9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdO2lmKCFuKXJldHVybiB0O3ZhciByLGksbz1uLmNhbGwodCksYT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09ZXx8ZS0tID4wKSYmIShyPW8ubmV4dCgpKS5kb25lOylhLnB1c2goci52YWx1ZSl9Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7ciYmIXIuZG9uZSYmKG49by5yZXR1cm4pJiZuLmNhbGwobyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXJldHVybiBhfWZ1bmN0aW9uIG8odCxlLG4pe2lmKG58fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgcixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKSFyJiZpIGluIGV8fChyfHwocj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLDAsaSkpLHJbaV09ZVtpXSk7cmV0dXJuIHQuY29uY2F0KHJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpKX12YXIgYT17fTtmdW5jdGlvbiBzKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KX1mdW5jdGlvbiBjKHQsZSxuKXt2b2lkIDA9PT1uJiYobj1cIi5cIik7dmFyIHI9Zih0LG4pLGk9ZihlLG4pO3JldHVybiBBKGkpPyEhQShyKSYmaT09PXI6QShyKT9yIGluIGk6cyhyKS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gaSYmYyhyW3RdLGlbdF0pfSkpfWZ1bmN0aW9uIHUodCl7dHJ5e3JldHVybiBBKHQpfHxcIm51bWJlclwiPT10eXBlb2YgdD9cIlwiLmNvbmNhdCh0KTp0LnR5cGV9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiRXZlbnRzIG11c3QgYmUgc3RyaW5ncyBvciBvYmplY3RzIHdpdGggYSBzdHJpbmcgZXZlbnQudHlwZSBwcm9wZXJ0eS5cIil9fWZ1bmN0aW9uIGgodCxlKXt0cnl7cmV0dXJuIFQodCk/dDp0LnRvU3RyaW5nKCkuc3BsaXQoZSl9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKFwiJ1wiLmNvbmNhdCh0LFwiJyBpcyBub3QgYSB2YWxpZCBzdGF0ZSBwYXRoLlwiKSl9fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2Yobj10KSYmXCJ2YWx1ZVwiaW4gbiYmXCJjb250ZXh0XCJpbiBuJiZcImV2ZW50XCJpbiBuJiZcIl9ldmVudFwiaW4gbj90LnZhbHVlOlQodCk/bCh0KTpcInN0cmluZ1wiIT10eXBlb2YgdD90OmwoaCh0LGUpKTt2YXIgbn1mdW5jdGlvbiBsKHQpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtmb3IodmFyIGU9e30sbj1lLHI9MDtyPHQubGVuZ3RoLTE7cisrKXI9PT10Lmxlbmd0aC0yP25bdFtyXV09dFtyKzFdOihuW3Rbcl1dPXt9LG49blt0W3JdXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgbj17fSxyPXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO25bb109ZSh0W29dLG8sdCxpKX1yZXR1cm4gbn1mdW5jdGlvbiBwKHQsZSxuKXt2YXIgaSxvLGE9e307dHJ5e2Zvcih2YXIgYz1yKHModCkpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD11LnZhbHVlLGY9dFtoXTtuKGYpJiYoYVtoXT1lKGYsaCx0KSl9fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gYX12YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG4saSxvPWU7dHJ5e2Zvcih2YXIgYT1yKHQpLHM9YS5uZXh0KCk7IXMuZG9uZTtzPWEubmV4dCgpKXtvPW9bcy52YWx1ZV19fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3MmJiFzLmRvbmUmJihpPWEucmV0dXJuKSYmaS5jYWxsKGEpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX1yZXR1cm4gb319O2Z1bmN0aW9uIHkodCl7cmV0dXJuIHQ/QSh0KT9bW3RdXTpnKHModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBufHxuJiZPYmplY3Qua2V5cyhuKS5sZW5ndGg/eSh0W2VdKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybltlXS5jb25jYXQodCl9KSk6W1tlXV19KSkpOltbXV19ZnVuY3Rpb24gZyh0KXt2YXIgZTtyZXR1cm4oZT1bXSkuY29uY2F0LmFwcGx5KGUsbyhbXSxpKHQpLCExKSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gVCh0KT90Olt0XX1mdW5jdGlvbiBTKHQpe3JldHVybiB2b2lkIDA9PT10P1tdOm0odCl9ZnVuY3Rpb24geCh0LGUsbil7dmFyIGksbztpZihOKHQpKXJldHVybiB0KGUsbi5kYXRhKTt2YXIgYT17fTt0cnl7Zm9yKHZhciBzPXIoT2JqZWN0LmtleXModCkpLGM9cy5uZXh0KCk7IWMuZG9uZTtjPXMubmV4dCgpKXt2YXIgdT1jLnZhbHVlLGg9dFt1XTtOKGgpP2FbdV09aChlLG4uZGF0YSk6YVt1XT1ofX1jYXRjaCh0KXtpPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobz1zLnJldHVybikmJm8uY2FsbChzKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIGF9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIFByb21pc2V8fCEobnVsbD09PXR8fCFOKHQpJiZcIm9iamVjdFwiIT10eXBlb2YgdHx8IU4odC50aGVuKSl9ZnVuY3Rpb24gYih0LGUpe3ZhciBuLG8sYT1pKFtbXSxbXV0sMikscz1hWzBdLGM9YVsxXTt0cnl7Zm9yKHZhciB1PXIodCksaD11Lm5leHQoKTshaC5kb25lO2g9dS5uZXh0KCkpe3ZhciBmPWgudmFsdWU7ZShmKT9zLnB1c2goZik6Yy5wdXNoKGYpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtoJiYhaC5kb25lJiYobz11LnJldHVybikmJm8uY2FsbCh1KX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19cmV0dXJuW3MsY119ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBkKHQuc3RhdGVzLChmdW5jdGlvbih0LG4pe2lmKHQpe3ZhciByPShBKGUpP3ZvaWQgMDplW25dKXx8KHQ/dC5jdXJyZW50OnZvaWQgMCk7aWYocilyZXR1cm57Y3VycmVudDpyLHN0YXRlczpfKHQscil9fX0pKX1mdW5jdGlvbiBFKHQsZSxuLGkpe3JldHVybiB0P24ucmVkdWNlKChmdW5jdGlvbih0LG4pe3ZhciBvLGEsYz1uLmFzc2lnbm1lbnQsdT17c3RhdGU6aSxhY3Rpb246bixfZXZlbnQ6ZX0saD17fTtpZihOKGMpKWg9Yyh0LGUuZGF0YSx1KTtlbHNlIHRyeXtmb3IodmFyIGY9cihzKGMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZSxwPWNbZF07aFtkXT1OKHApP3AodCxlLmRhdGEsdSk6cH19Y2F0Y2godCl7bz17ZXJyb3I6dH19ZmluYWxseXt0cnl7bCYmIWwuZG9uZSYmKGE9Zi5yZXR1cm4pJiZhLmNhbGwoZil9ZmluYWxseXtpZihvKXRocm93IG8uZXJyb3J9fXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQsaCl9KSx0KTp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTih0KXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0fWZ1bmN0aW9uIEEodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR9ZnVuY3Rpb24gTyh0LGUpe2lmKHQpcmV0dXJuIEEodCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQscHJlZGljYXRlOmU/ZVt0XTp2b2lkIDB9Ok4odCk/e3R5cGU6XCJ4c3RhdGUuZ3VhcmRcIixuYW1lOnQubmFtZSxwcmVkaWNhdGU6dH06dH12YXIgUD1mdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLm9ic2VydmFibGV8fFwiQEBvYnNlcnZhYmxlXCJ9KCk7ZnVuY3Rpb24gayh0KXt0cnl7cmV0dXJuXCJfX3hzdGF0ZW5vZGVcImluIHR9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBJLGosQz1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuKCsrdCkudG9TdHJpbmcoMTYpfX0oKTtmdW5jdGlvbiBWKHQsbil7cmV0dXJuIEEodCl8fFwibnVtYmVyXCI9PXR5cGVvZiB0P2Uoe3R5cGU6dH0sbik6dH1mdW5jdGlvbiBMKHQsbil7aWYoIUEodCkmJlwiJCR0eXBlXCJpbiB0JiZcInNjeG1sXCI9PT10LiQkdHlwZSlyZXR1cm4gdDt2YXIgcj1WKHQpO3JldHVybiBlKHtuYW1lOnIudHlwZSxkYXRhOnIsJCR0eXBlOlwic2N4bWxcIix0eXBlOlwiZXh0ZXJuYWxcIn0sbil9ZnVuY3Rpb24gRCh0LG4pe3JldHVybiBtKG4pLm1hcCgoZnVuY3Rpb24obil7cmV0dXJuIHZvaWQgMD09PW58fFwic3RyaW5nXCI9PXR5cGVvZiBufHxrKG4pP3t0YXJnZXQ6bixldmVudDp0fTplKGUoe30sbikse2V2ZW50OnR9KX0pKX1mdW5jdGlvbiBSKHQsZSxuLHIsaSl7dmFyIG89dC5vcHRpb25zLmd1YXJkcyxhPXtzdGF0ZTppLGNvbmQ6ZSxfZXZlbnQ6cn07aWYoXCJ4c3RhdGUuZ3VhcmRcIj09PWUudHlwZSlyZXR1cm4oKG51bGw9PW8/dm9pZCAwOm9bZS5uYW1lXSl8fGUucHJlZGljYXRlKShuLHIuZGF0YSxhKTt2YXIgcz1vW2UudHlwZV07aWYoIXMpdGhyb3cgbmV3IEVycm9yKFwiR3VhcmQgJ1wiLmNvbmNhdChlLnR5cGUsXCInIGlzIG5vdCBpbXBsZW1lbnRlZCBvbiBtYWNoaW5lICdcIikuY29uY2F0KHQuaWQsXCInLlwiKSk7cmV0dXJuIHMobixyLmRhdGEsYSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD97dHlwZTp0fTp0fWZ1bmN0aW9uIHoodCxlLG4pe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0KXJldHVybiB0O3ZhciByPWZ1bmN0aW9uKCl7fTtyZXR1cm57bmV4dDp0LGVycm9yOmV8fHIsY29tcGxldGU6bnx8cn19KEk9dC5BY3Rpb25UeXBlc3x8KHQuQWN0aW9uVHlwZXM9e30pKS5TdGFydD1cInhzdGF0ZS5zdGFydFwiLEkuU3RvcD1cInhzdGF0ZS5zdG9wXCIsSS5SYWlzZT1cInhzdGF0ZS5yYWlzZVwiLEkuU2VuZD1cInhzdGF0ZS5zZW5kXCIsSS5DYW5jZWw9XCJ4c3RhdGUuY2FuY2VsXCIsSS5OdWxsRXZlbnQ9XCJcIixJLkFzc2lnbj1cInhzdGF0ZS5hc3NpZ25cIixJLkFmdGVyPVwieHN0YXRlLmFmdGVyXCIsSS5Eb25lU3RhdGU9XCJkb25lLnN0YXRlXCIsSS5Eb25lSW52b2tlPVwiZG9uZS5pbnZva2VcIixJLkxvZz1cInhzdGF0ZS5sb2dcIixJLkluaXQ9XCJ4c3RhdGUuaW5pdFwiLEkuSW52b2tlPVwieHN0YXRlLmludm9rZVwiLEkuRXJyb3JFeGVjdXRpb249XCJlcnJvci5leGVjdXRpb25cIixJLkVycm9yQ29tbXVuaWNhdGlvbj1cImVycm9yLmNvbW11bmljYXRpb25cIixJLkVycm9yUGxhdGZvcm09XCJlcnJvci5wbGF0Zm9ybVwiLEkuRXJyb3JDdXN0b209XCJ4c3RhdGUuZXJyb3JcIixJLlVwZGF0ZT1cInhzdGF0ZS51cGRhdGVcIixJLlB1cmU9XCJ4c3RhdGUucHVyZVwiLEkuQ2hvb3NlPVwieHN0YXRlLmNob29zZVwiLChqPXQuU3BlY2lhbFRhcmdldHN8fCh0LlNwZWNpYWxUYXJnZXRzPXt9KSkuUGFyZW50PVwiI19wYXJlbnRcIixqLkludGVybmFsPVwiI19pbnRlcm5hbFwiO3ZhciBGPWZ1bmN0aW9uKHQpe3JldHVyblwiYXRvbWljXCI9PT10LnR5cGV8fFwiZmluYWxcIj09PXQudHlwZX07ZnVuY3Rpb24gVSh0KXtyZXR1cm4gcyh0LnN0YXRlcykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zdGF0ZXNbZV19KSl9ZnVuY3Rpb24gQih0KXt2YXIgZT1bdF07cmV0dXJuIEYodCk/ZTplLmNvbmNhdChnKFUodCkubWFwKEIpKSl9ZnVuY3Rpb24gSih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj1xKG5ldyBTZXQodCkpLGw9bmV3IFNldChlKTt0cnl7Zm9yKHZhciBkPXIobCkscD1kLm5leHQoKTshcC5kb25lO3A9ZC5uZXh0KCkpZm9yKHZhciB2PShFPXAudmFsdWUpLnBhcmVudDt2JiYhbC5oYXModik7KWwuYWRkKHYpLHY9di5wYXJlbnR9Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7cCYmIXAuZG9uZSYmKGk9ZC5yZXR1cm4pJiZpLmNhbGwoZCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXZhciB5PXEobCk7dHJ5e2Zvcih2YXIgZz1yKGwpLG09Zy5uZXh0KCk7IW0uZG9uZTttPWcubmV4dCgpKXtpZihcImNvbXBvdW5kXCIhPT0oRT1tLnZhbHVlKS50eXBlfHx5LmdldChFKSYmeS5nZXQoRSkubGVuZ3RoKXtpZihcInBhcmFsbGVsXCI9PT1FLnR5cGUpdHJ5e2Zvcih2YXIgUz0ocz12b2lkIDAscihVKEUpKSkseD1TLm5leHQoKTsheC5kb25lO3g9Uy5uZXh0KCkpe3ZhciB3PXgudmFsdWU7XCJoaXN0b3J5XCIhPT13LnR5cGUmJihsLmhhcyh3KXx8KGwuYWRkKHcpLGYuZ2V0KHcpP2YuZ2V0KHcpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKTp3LmluaXRpYWxTdGF0ZU5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBsLmFkZCh0KX0pKSkpfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt4JiYheC5kb25lJiYoYz1TLnJldHVybikmJmMuY2FsbChTKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19fWVsc2UgZi5nZXQoRSk/Zi5nZXQoRSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpOkUuaW5pdGlhbFN0YXRlTm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGwuYWRkKHQpfSkpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXttJiYhbS5kb25lJiYoYT1nLnJldHVybikmJmEuY2FsbChnKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgYj1yKGwpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXt2YXIgRTtmb3Iodj0oRT1fLnZhbHVlKS5wYXJlbnQ7diYmIWwuaGFzKHYpOylsLmFkZCh2KSx2PXYucGFyZW50fX1jYXRjaCh0KXt1PXtlcnJvcjp0fX1maW5hbGx5e3RyeXtfJiYhXy5kb25lJiYoaD1iLnJldHVybikmJmguY2FsbChiKX1maW5hbGx5e2lmKHUpdGhyb3cgdS5lcnJvcn19cmV0dXJuIGx9ZnVuY3Rpb24gcSh0KXt2YXIgZSxuLGk9bmV3IE1hcDt0cnl7Zm9yKHZhciBvPXIodCksYT1vLm5leHQoKTshYS5kb25lO2E9by5uZXh0KCkpe3ZhciBzPWEudmFsdWU7aS5oYXMocyl8fGkuc2V0KHMsW10pLHMucGFyZW50JiYoaS5oYXMocy5wYXJlbnQpfHxpLnNldChzLnBhcmVudCxbXSksaS5nZXQocy5wYXJlbnQpLnB1c2gocykpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYobj1vLnJldHVybikmJm4uY2FsbChvKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9ZnVuY3Rpb24gJCh0LGUpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7dmFyIHI9bi5nZXQoZSk7aWYoIXIpcmV0dXJue307aWYoXCJjb21wb3VuZFwiPT09ZS50eXBlKXt2YXIgaT1yWzBdO2lmKCFpKXJldHVybnt9O2lmKEYoaSkpcmV0dXJuIGkua2V5fXZhciBvPXt9O3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKGUpe29bZS5rZXldPXQoZSxuKX0pKSxvfSh0LHEoSihbdF0sZSkpKX1mdW5jdGlvbiBYKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdD09PWV9KSk6dCBpbnN0YW5jZW9mIFNldCYmdC5oYXMoZSl9ZnVuY3Rpb24gSCh0LGUpe3JldHVyblwiY29tcG91bmRcIj09PWUudHlwZT9VKGUpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVyblwiZmluYWxcIj09PWUudHlwZSYmWCh0LGUpfSkpOlwicGFyYWxsZWxcIj09PWUudHlwZSYmVShlKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodCxlKX0pKX1mdW5jdGlvbiBHKHQpe3JldHVybiBuZXcgU2V0KGcodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ3N9KSkpKX12YXIgSz10LkFjdGlvblR5cGVzLlN0YXJ0LFE9dC5BY3Rpb25UeXBlcy5TdG9wLFc9dC5BY3Rpb25UeXBlcy5SYWlzZSxZPXQuQWN0aW9uVHlwZXMuU2VuZCxaPXQuQWN0aW9uVHlwZXMuQ2FuY2VsLHR0PXQuQWN0aW9uVHlwZXMuTnVsbEV2ZW50LGV0PXQuQWN0aW9uVHlwZXMuQXNzaWduLG50PSh0LkFjdGlvblR5cGVzLkFmdGVyLHQuQWN0aW9uVHlwZXMuRG9uZVN0YXRlLHQuQWN0aW9uVHlwZXMuTG9nKSxydD10LkFjdGlvblR5cGVzLkluaXQsaXQ9dC5BY3Rpb25UeXBlcy5JbnZva2Usb3Q9KHQuQWN0aW9uVHlwZXMuRXJyb3JFeGVjdXRpb24sdC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtKSxhdD10LkFjdGlvblR5cGVzLkVycm9yQ3VzdG9tLHN0PXQuQWN0aW9uVHlwZXMuVXBkYXRlLGN0PXQuQWN0aW9uVHlwZXMuQ2hvb3NlLHV0PXQuQWN0aW9uVHlwZXMuUHVyZSxodD1MKHt0eXBlOnJ0fSk7ZnVuY3Rpb24gZnQodCxlKXtyZXR1cm4gZSYmZVt0XXx8dm9pZCAwfWZ1bmN0aW9uIGx0KHQsbil7dmFyIHI7aWYoQSh0KXx8XCJudW1iZXJcIj09dHlwZW9mIHQpcj1OKGk9ZnQodCxuKSk/e3R5cGU6dCxleGVjOml9Oml8fHt0eXBlOnQsZXhlYzp2b2lkIDB9O2Vsc2UgaWYoTih0KSlyPXt0eXBlOnQubmFtZXx8dC50b1N0cmluZygpLGV4ZWM6dH07ZWxzZXt2YXIgaTtpZihOKGk9ZnQodC50eXBlLG4pKSlyPWUoZSh7fSx0KSx7ZXhlYzppfSk7ZWxzZSBpZihpKXt2YXIgbz1pLnR5cGV8fHQudHlwZTtyPWUoZShlKHt9LGkpLHQpLHt0eXBlOm99KX1lbHNlIHI9dH1yZXR1cm4gcn12YXIgZHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD8oVCh0KT90Olt0XSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbHQodCxlKX0pKTpbXX07ZnVuY3Rpb24gcHQodCl7dmFyIG49bHQodCk7cmV0dXJuIGUoZSh7aWQ6QSh0KT90Om4uaWR9LG4pLHt0eXBlOm4udHlwZX0pfWZ1bmN0aW9uIHZ0KGUpe3JldHVybiBBKGUpP3t0eXBlOlcsZXZlbnQ6ZX06eXQoZSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pfWZ1bmN0aW9uIHl0KHQsZSl7cmV0dXJue3RvOmU/ZS50bzp2b2lkIDAsdHlwZTpZLGV2ZW50Ok4odCk/dDpWKHQpLGRlbGF5OmU/ZS5kZWxheTp2b2lkIDAsaWQ6ZSYmdm9pZCAwIT09ZS5pZD9lLmlkOk4odCk/dC5uYW1lOnUodCl9fWZ1bmN0aW9uIGd0KG4scil7cmV0dXJuIHl0KG4sZShlKHt9LHIpLHt0bzp0LlNwZWNpYWxUYXJnZXRzLlBhcmVudH0pKX1mdW5jdGlvbiBtdCgpe3JldHVybiBndChzdCl9dmFyIFN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJue2NvbnRleHQ6dCxldmVudDplfX07dmFyIHh0PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOlosc2VuZElkOnR9fTtmdW5jdGlvbiB3dChlKXt2YXIgbj1wdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0YXJ0LGFjdGl2aXR5Om4sZXhlYzp2b2lkIDB9fWZ1bmN0aW9uIGJ0KGUpe3ZhciBuPU4oZSk/ZTpwdChlKTtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlN0b3AsYWN0aXZpdHk6bixleGVjOnZvaWQgMH19dmFyIF90PWZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOmV0LGFzc2lnbm1lbnQ6dH19O2Z1bmN0aW9uIEV0KGUsbil7dmFyIHI9bj9cIiNcIi5jb25jYXQobik6XCJcIjtyZXR1cm5cIlwiLmNvbmNhdCh0LkFjdGlvblR5cGVzLkFmdGVyLFwiKFwiKS5jb25jYXQoZSxcIilcIikuY29uY2F0KHIpfWZ1bmN0aW9uIFR0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5Eb25lU3RhdGUsXCIuXCIpLmNvbmNhdChlKSxpPXt0eXBlOnIsZGF0YTpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fTtyZXR1cm4gaX1mdW5jdGlvbiBOdChlLG4pe3ZhciByPVwiXCIuY29uY2F0KHQuQWN0aW9uVHlwZXMuRG9uZUludm9rZSxcIi5cIikuY29uY2F0KGUpLGk9e3R5cGU6cixkYXRhOm4sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gcn19O3JldHVybiBpfWZ1bmN0aW9uIEF0KGUsbil7dmFyIHI9XCJcIi5jb25jYXQodC5BY3Rpb25UeXBlcy5FcnJvclBsYXRmb3JtLFwiLlwiKS5jb25jYXQoZSksaT17dHlwZTpyLGRhdGE6bix0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiByfX07cmV0dXJuIGl9ZnVuY3Rpb24gT3QodCxuKXtyZXR1cm4geXQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxlKGUoe30sbikse3RvOnR9KSl9ZnVuY3Rpb24gUHQobixyLGEscyxjLHUpe3ZvaWQgMD09PXUmJih1PSExKTt2YXIgaD1pKHU/W1tdLGNdOmIoYywoZnVuY3Rpb24odCl7cmV0dXJuIHQudHlwZT09PWV0fSkpLDIpLGY9aFswXSxsPWhbMV0sZD1mLmxlbmd0aD9FKGEscyxmLHIpOmEscD11P1thXTp2b2lkIDA7cmV0dXJuW2cobC5tYXAoKGZ1bmN0aW9uKGEpe3ZhciBjO3N3aXRjaChhLnR5cGUpe2Nhc2UgVzpyZXR1cm57dHlwZTpXLF9ldmVudDpMKGEuZXZlbnQpfTtjYXNlIFk6cmV0dXJuIGZ1bmN0aW9uKHQsbixyLGkpe3ZhciBvLGE9e19ldmVudDpyfSxzPUwoTih0LmV2ZW50KT90LmV2ZW50KG4sci5kYXRhLGEpOnQuZXZlbnQpO2lmKEEodC5kZWxheSkpe3ZhciBjPWkmJmlbdC5kZWxheV07bz1OKGMpP2MobixyLmRhdGEsYSk6Y31lbHNlIG89Tih0LmRlbGF5KT90LmRlbGF5KG4sci5kYXRhLGEpOnQuZGVsYXk7dmFyIHU9Tih0LnRvKT90LnRvKG4sci5kYXRhLGEpOnQudG87cmV0dXJuIGUoZSh7fSx0KSx7dG86dSxfZXZlbnQ6cyxldmVudDpzLmRhdGEsZGVsYXk6b30pfShhLGQscyxuLm9wdGlvbnMuZGVsYXlzKTtjYXNlIG50OnJldHVybiBmdW5jdGlvbih0LG4scil7cmV0dXJuIGUoZSh7fSx0KSx7dmFsdWU6QSh0LmV4cHIpP3QuZXhwcjp0LmV4cHIobixyLmRhdGEse19ldmVudDpyfSl9KX0oYSxkLHMpO2Nhc2UgY3Q6aWYoISh2PW51bGw9PT0oYz1hLmNvbmRzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPU8odC5jb25kLG4ub3B0aW9ucy5ndWFyZHMpO3JldHVybiFlfHxSKG4sZSxkLHMscil9KSkpfHx2b2lkIDA9PT1jP3ZvaWQgMDpjLmFjdGlvbnMpKXJldHVybltdO3ZhciBoPWkoUHQobixyLGQscyxkdChTKHYpLG4ub3B0aW9ucy5hY3Rpb25zKSx1KSwyKSxmPWhbMF0sbD1oWzFdO3JldHVybiBkPWwsbnVsbD09cHx8cC5wdXNoKGQpLGY7Y2FzZSB1dDp2YXIgdjtpZighKHY9YS5nZXQoZCxzLmRhdGEpKSlyZXR1cm5bXTt2YXIgeT1pKFB0KG4scixkLHMsZHQoUyh2KSxuLm9wdGlvbnMuYWN0aW9ucyksdSksMiksZz15WzBdLG09eVsxXTtyZXR1cm4gZD1tLG51bGw9PXB8fHAucHVzaChkKSxnO2Nhc2UgUTpyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3ZhciBpPU4oZS5hY3Rpdml0eSk/ZS5hY3Rpdml0eShuLHIuZGF0YSk6ZS5hY3Rpdml0eSxvPVwic3RyaW5nXCI9PXR5cGVvZiBpP3tpZDppfTppO3JldHVybnt0eXBlOnQuQWN0aW9uVHlwZXMuU3RvcCxhY3Rpdml0eTpvfX0oYSxkLHMpO2Nhc2UgZXQ6ZD1FKGQscyxbYV0sciksbnVsbD09cHx8cC5wdXNoKGQpO2JyZWFrO2RlZmF1bHQ6dmFyIHg9bHQoYSxuLm9wdGlvbnMuYWN0aW9ucyksdz14LmV4ZWM7aWYodyYmcCl7dmFyIGI9cC5sZW5ndGgtMTt4PWUoZSh7fSx4KSx7ZXhlYzpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10sbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspZVtuLTFdPWFyZ3VtZW50c1tuXTt3LmFwcGx5KHZvaWQgMCxvKFtwW2JdXSxpKGUpLCExKSl9fSl9cmV0dXJuIHh9fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISF0fSkpKSxkXX12YXIga3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlLG4scj10aGlzO3RoaXMuYWN0aW9ucz1bXSx0aGlzLmFjdGl2aXRpZXM9YSx0aGlzLm1ldGE9e30sdGhpcy5ldmVudHM9W10sdGhpcy52YWx1ZT10LnZhbHVlLHRoaXMuY29udGV4dD10LmNvbnRleHQsdGhpcy5fZXZlbnQ9dC5fZXZlbnQsdGhpcy5fc2Vzc2lvbmlkPXQuX3Nlc3Npb25pZCx0aGlzLmV2ZW50PXRoaXMuX2V2ZW50LmRhdGEsdGhpcy5oaXN0b3J5VmFsdWU9dC5oaXN0b3J5VmFsdWUsdGhpcy5oaXN0b3J5PXQuaGlzdG9yeSx0aGlzLmFjdGlvbnM9dC5hY3Rpb25zfHxbXSx0aGlzLmFjdGl2aXRpZXM9dC5hY3Rpdml0aWVzfHxhLHRoaXMubWV0YT0odm9pZCAwPT09KG49dC5jb25maWd1cmF0aW9uKSYmKG49W10pLG4ucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDAhPT1lLm1ldGEmJih0W2UuaWRdPWUubWV0YSksdH0pLHt9KSksdGhpcy5ldmVudHM9dC5ldmVudHN8fFtdLHRoaXMubWF0Y2hlcz10aGlzLm1hdGNoZXMuYmluZCh0aGlzKSx0aGlzLnRvU3RyaW5ncz10aGlzLnRvU3RyaW5ncy5iaW5kKHRoaXMpLHRoaXMuY29uZmlndXJhdGlvbj10LmNvbmZpZ3VyYXRpb24sdGhpcy50cmFuc2l0aW9ucz10LnRyYW5zaXRpb25zLHRoaXMuY2hpbGRyZW49dC5jaGlsZHJlbix0aGlzLmRvbmU9ISF0LmRvbmUsdGhpcy50YWdzPW51bGwhPT0oZT1BcnJheS5pc0FycmF5KHQudGFncyk/bmV3IFNldCh0LnRhZ3MpOnQudGFncykmJnZvaWQgMCE9PWU/ZTpuZXcgU2V0LHRoaXMubWFjaGluZT10Lm1hY2hpbmUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJuZXh0RXZlbnRzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbyhbXSxpKG5ldyBTZXQoZyhvKFtdLGkodC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm93bkV2ZW50c30pKSksITEpKSkpLCExKX0oci5jb25maWd1cmF0aW9uKX19KX1yZXR1cm4gdC5mcm9tPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUgaW5zdGFuY2VvZiB0P2UuY29udGV4dCE9PW4/bmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDplLl9ldmVudCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOmUuaGlzdG9yeVZhbHVlLGhpc3Rvcnk6ZS5oaXN0b3J5LGFjdGlvbnM6W10sYWN0aXZpdGllczplLmFjdGl2aXRpZXMsbWV0YTp7fSxldmVudHM6W10sY29uZmlndXJhdGlvbjpbXSx0cmFuc2l0aW9uczpbXSxjaGlsZHJlbjp7fX0pOmU6bmV3IHQoe3ZhbHVlOmUsY29udGV4dDpuLF9ldmVudDpodCxfc2Vzc2lvbmlkOm51bGwsaGlzdG9yeVZhbHVlOnZvaWQgMCxoaXN0b3J5OnZvaWQgMCxhY3Rpb25zOltdLGFjdGl2aXRpZXM6dm9pZCAwLG1ldGE6dm9pZCAwLGV2ZW50czpbXSxjb25maWd1cmF0aW9uOltdLHRyYW5zaXRpb25zOltdLGNoaWxkcmVuOnt9fSl9LHQuY3JlYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChlKX0sdC5pbmVydD1mdW5jdGlvbihlLG4pe2lmKGUgaW5zdGFuY2VvZiB0KXtpZighZS5hY3Rpb25zLmxlbmd0aClyZXR1cm4gZTt2YXIgcj1odDtyZXR1cm4gbmV3IHQoe3ZhbHVlOmUudmFsdWUsY29udGV4dDpuLF9ldmVudDpyLF9zZXNzaW9uaWQ6bnVsbCxoaXN0b3J5VmFsdWU6ZS5oaXN0b3J5VmFsdWUsaGlzdG9yeTplLmhpc3RvcnksYWN0aXZpdGllczplLmFjdGl2aXRpZXMsY29uZmlndXJhdGlvbjplLmNvbmZpZ3VyYXRpb24sdHJhbnNpdGlvbnM6W10sY2hpbGRyZW46e319KX1yZXR1cm4gdC5mcm9tKGUsbil9LHQucHJvdG90eXBlLnRvU3RyaW5ncz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09dCYmKHQ9dGhpcy52YWx1ZSksdm9pZCAwPT09ZSYmKGU9XCIuXCIpLEEodCkpcmV0dXJuW3RdO3ZhciByPXModCk7cmV0dXJuIHIuY29uY2F0LmFwcGx5KHIsbyhbXSxpKHIubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gbi50b1N0cmluZ3ModFtyXSxlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByK2UrdH0pKX0pKSksITEpKX0sdC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPSh0LmNvbmZpZ3VyYXRpb24sdC50cmFuc2l0aW9ucyx0LnRhZ3MpLGk9KHQubWFjaGluZSxuKHQsW1wiY29uZmlndXJhdGlvblwiLFwidHJhbnNpdGlvbnNcIixcInRhZ3NcIixcIm1hY2hpbmVcIl0pKTtyZXR1cm4gZShlKHt9LGkpLHt0YWdzOkFycmF5LmZyb20ocil9KX0sdC5wcm90b3R5cGUubWF0Y2hlcz1mdW5jdGlvbih0KXtyZXR1cm4gYyh0LHRoaXMudmFsdWUpfSx0LnByb3RvdHlwZS5oYXNUYWc9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGFncy5oYXModCl9LHQucHJvdG90eXBlLmNhbj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5tYWNoaW5lLCEhKG51bGw9PT0oZT10aGlzLm1hY2hpbmUpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnRyYW5zaXRpb24odGhpcyx0KS5jaGFuZ2VkKX0sdH0oKSxJdD1bXSxqdD1mdW5jdGlvbih0LGUpe0l0LnB1c2godCk7dmFyIG49ZSh0KTtyZXR1cm4gSXQucG9wKCksbn07ZnVuY3Rpb24gQ3QodCl7cmV0dXJue2lkOnQsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7fSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6dH19fX1mdW5jdGlvbiBWdCh0LGUsbil7dmFyIHI9Q3QoZSk7aWYoci5kZWZlcnJlZD0hMCxrKHQpKXt2YXIgaT1yLnN0YXRlPWp0KHZvaWQgMCwoZnVuY3Rpb24oKXtyZXR1cm4obj90LndpdGhDb250ZXh0KG4pOnQpLmluaXRpYWxTdGF0ZX0pKTtyLmdldFNuYXBzaG90PWZ1bmN0aW9uKCl7cmV0dXJuIGl9fXJldHVybiByfWZ1bmN0aW9uIEx0KHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXt2YXIgZT17dHlwZTp0LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHR9fTtyZXR1cm4gZX1yZXR1cm4gdH1mdW5jdGlvbiBEdCh0KXtyZXR1cm4gZShlKHt0eXBlOml0fSx0KSx7dG9KU09OOmZ1bmN0aW9uKCl7dC5vbkRvbmUsdC5vbkVycm9yO3ZhciByPW4odCxbXCJvbkRvbmVcIixcIm9uRXJyb3JcIl0pO3JldHVybiBlKGUoe30scikse3R5cGU6aXQsc3JjOkx0KHQuc3JjKX0pfX0pfXZhciBSdD17fSxNdD1mdW5jdGlvbih0KXtyZXR1cm5cIiNcIj09PXRbMF19LHp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSh0LG4sYyl7dmFyIHUsaD10aGlzO3ZvaWQgMD09PWMmJihjPVwiY29udGV4dFwiaW4gdD90LmNvbnRleHQ6dm9pZCAwKSx0aGlzLmNvbmZpZz10LHRoaXMuX2NvbnRleHQ9Yyx0aGlzLm9yZGVyPS0xLHRoaXMuX194c3RhdGVub2RlPSEwLHRoaXMuX19jYWNoZT17ZXZlbnRzOnZvaWQgMCxyZWxhdGl2ZVZhbHVlOm5ldyBNYXAsaW5pdGlhbFN0YXRlVmFsdWU6dm9pZCAwLGluaXRpYWxTdGF0ZTp2b2lkIDAsb246dm9pZCAwLHRyYW5zaXRpb25zOnZvaWQgMCxjYW5kaWRhdGVzOnt9LGRlbGF5ZWRUcmFuc2l0aW9uczp2b2lkIDB9LHRoaXMuaWRNYXA9e30sdGhpcy50YWdzPVtdLHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHthY3Rpb25zOnt9LGd1YXJkczp7fSxzZXJ2aWNlczp7fSxhY3Rpdml0aWVzOnt9LGRlbGF5czp7fX0sbiksdGhpcy5wYXJlbnQ9dGhpcy5vcHRpb25zLl9wYXJlbnQsdGhpcy5rZXk9dGhpcy5jb25maWcua2V5fHx0aGlzLm9wdGlvbnMuX2tleXx8dGhpcy5jb25maWcuaWR8fFwiKG1hY2hpbmUpXCIsdGhpcy5tYWNoaW5lPXRoaXMucGFyZW50P3RoaXMucGFyZW50Lm1hY2hpbmU6dGhpcyx0aGlzLnBhdGg9dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQucGF0aC5jb25jYXQodGhpcy5rZXkpOltdLHRoaXMuZGVsaW1pdGVyPXRoaXMuY29uZmlnLmRlbGltaXRlcnx8KHRoaXMucGFyZW50P3RoaXMucGFyZW50LmRlbGltaXRlcjpcIi5cIiksdGhpcy5pZD10aGlzLmNvbmZpZy5pZHx8byhbdGhpcy5tYWNoaW5lLmtleV0saSh0aGlzLnBhdGgpLCExKS5qb2luKHRoaXMuZGVsaW1pdGVyKSx0aGlzLnZlcnNpb249dGhpcy5wYXJlbnQ/dGhpcy5wYXJlbnQudmVyc2lvbjp0aGlzLmNvbmZpZy52ZXJzaW9uLHRoaXMudHlwZT10aGlzLmNvbmZpZy50eXBlfHwodGhpcy5jb25maWcucGFyYWxsZWw/XCJwYXJhbGxlbFwiOnRoaXMuY29uZmlnLnN0YXRlcyYmcyh0aGlzLmNvbmZpZy5zdGF0ZXMpLmxlbmd0aD9cImNvbXBvdW5kXCI6dGhpcy5jb25maWcuaGlzdG9yeT9cImhpc3RvcnlcIjpcImF0b21pY1wiKSx0aGlzLnNjaGVtYT10aGlzLnBhcmVudD90aGlzLm1hY2hpbmUuc2NoZW1hOm51bGwhPT0odT10aGlzLmNvbmZpZy5zY2hlbWEpJiZ2b2lkIDAhPT11P3U6e30sdGhpcy5kZXNjcmlwdGlvbj10aGlzLmNvbmZpZy5kZXNjcmlwdGlvbix0aGlzLmluaXRpYWw9dGhpcy5jb25maWcuaW5pdGlhbCx0aGlzLnN0YXRlcz10aGlzLmNvbmZpZy5zdGF0ZXM/ZCh0aGlzLmNvbmZpZy5zdGF0ZXMsKGZ1bmN0aW9uKHQsbil7dmFyIHIsaT1uZXcgYSh0LHtfcGFyZW50OmgsX2tleTpufSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oaC5pZE1hcCxlKCgocj17fSlbaS5pZF09aSxyKSxpLmlkTWFwKSksaX0pKTpSdDt2YXIgZj0wOyFmdW5jdGlvbiB0KGUpe3ZhciBuLGk7ZS5vcmRlcj1mKys7dHJ5e2Zvcih2YXIgbz1yKFUoZSkpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt0KGEudmFsdWUpfX1jYXRjaCh0KXtuPXtlcnJvcjp0fX1maW5hbGx5e3RyeXthJiYhYS5kb25lJiYoaT1vLnJldHVybikmJmkuY2FsbChvKX1maW5hbGx5e2lmKG4pdGhyb3cgbi5lcnJvcn19fSh0aGlzKSx0aGlzLmhpc3Rvcnk9ITA9PT10aGlzLmNvbmZpZy5oaXN0b3J5P1wic2hhbGxvd1wiOnRoaXMuY29uZmlnLmhpc3Rvcnl8fCExLHRoaXMuX3RyYW5zaWVudD0hIXRoaXMuY29uZmlnLmFsd2F5c3x8ISF0aGlzLmNvbmZpZy5vbiYmKEFycmF5LmlzQXJyYXkodGhpcy5jb25maWcub24pP3RoaXMuY29uZmlnLm9uLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10LmV2ZW50fSkpOlwiXCJpbiB0aGlzLmNvbmZpZy5vbiksdGhpcy5zdHJpY3Q9ISF0aGlzLmNvbmZpZy5zdHJpY3QsdGhpcy5vbkVudHJ5PVModGhpcy5jb25maWcuZW50cnl8fHRoaXMuY29uZmlnLm9uRW50cnkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGx0KHQpfSkpLHRoaXMub25FeGl0PVModGhpcy5jb25maWcuZXhpdHx8dGhpcy5jb25maWcub25FeGl0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsdCh0KX0pKSx0aGlzLm1ldGE9dGhpcy5jb25maWcubWV0YSx0aGlzLmRvbmVEYXRhPVwiZmluYWxcIj09PXRoaXMudHlwZT90aGlzLmNvbmZpZy5kYXRhOnZvaWQgMCx0aGlzLmludm9rZT1TKHRoaXMuY29uZmlnLmludm9rZSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciByLGk7aWYoayh0KSlyZXR1cm4gaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXM9ZSgoKHI9e30pW3QuaWRdPXQsciksaC5tYWNoaW5lLm9wdGlvbnMuc2VydmljZXMpLER0KHtzcmM6dC5pZCxpZDp0LmlkfSk7aWYoQSh0LnNyYykpcmV0dXJuIER0KGUoZSh7fSx0KSx7aWQ6dC5pZHx8dC5zcmMsc3JjOnQuc3JjfSkpO2lmKGsodC5zcmMpfHxOKHQuc3JjKSl7dmFyIG89XCJcIi5jb25jYXQoaC5pZCxcIjppbnZvY2F0aW9uW1wiKS5jb25jYXQobixcIl1cIik7cmV0dXJuIGgubWFjaGluZS5vcHRpb25zLnNlcnZpY2VzPWUoKChpPXt9KVtvXT10LnNyYyxpKSxoLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcyksRHQoZShlKHtpZDpvfSx0KSx7c3JjOm99KSl9dmFyIGE9dC5zcmM7cmV0dXJuIER0KGUoZSh7aWQ6YS50eXBlfSx0KSx7c3JjOmF9KSl9KSksdGhpcy5hY3Rpdml0aWVzPVModGhpcy5jb25maWcuYWN0aXZpdGllcykuY29uY2F0KHRoaXMuaW52b2tlKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBwdCh0KX0pKSx0aGlzLnRyYW5zaXRpb249dGhpcy50cmFuc2l0aW9uLmJpbmQodGhpcyksdGhpcy50YWdzPVModGhpcy5jb25maWcudGFncyl9cmV0dXJuIGEucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKCl7dGhpcy5fX2NhY2hlLnRyYW5zaXRpb25zfHxCKHRoaXMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9ufSkpfSxhLnByb3RvdHlwZS53aXRoQ29uZmlnPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcy5vcHRpb25zLGk9ci5hY3Rpb25zLG89ci5hY3Rpdml0aWVzLHM9ci5ndWFyZHMsYz1yLnNlcnZpY2VzLHU9ci5kZWxheXM7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHthY3Rpb25zOmUoZSh7fSxpKSx0LmFjdGlvbnMpLGFjdGl2aXRpZXM6ZShlKHt9LG8pLHQuYWN0aXZpdGllcyksZ3VhcmRzOmUoZSh7fSxzKSx0Lmd1YXJkcyksc2VydmljZXM6ZShlKHt9LGMpLHQuc2VydmljZXMpLGRlbGF5czplKGUoe30sdSksdC5kZWxheXMpfSxudWxsIT1uP246dGhpcy5jb250ZXh0KX0sYS5wcm90b3R5cGUud2l0aENvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHRoaXMuY29uZmlnLHRoaXMub3B0aW9ucyx0KX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiY29udGV4dFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLl9jb250ZXh0KT90aGlzLl9jb250ZXh0KCk6dGhpcy5fY29udGV4dH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJkZWZpbml0aW9uXCIse2dldDpmdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkLGtleTp0aGlzLmtleSx2ZXJzaW9uOnRoaXMudmVyc2lvbixjb250ZXh0OnRoaXMuY29udGV4dCx0eXBlOnRoaXMudHlwZSxpbml0aWFsOnRoaXMuaW5pdGlhbCxoaXN0b3J5OnRoaXMuaGlzdG9yeSxzdGF0ZXM6ZCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVmaW5pdGlvbn0pKSxvbjp0aGlzLm9uLHRyYW5zaXRpb25zOnRoaXMudHJhbnNpdGlvbnMsZW50cnk6dGhpcy5vbkVudHJ5LGV4aXQ6dGhpcy5vbkV4aXQsYWN0aXZpdGllczp0aGlzLmFjdGl2aXRpZXN8fFtdLG1ldGE6dGhpcy5tZXRhLG9yZGVyOnRoaXMub3JkZXJ8fC0xLGRhdGE6dGhpcy5kb25lRGF0YSxpbnZva2U6dGhpcy5pbnZva2UsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbix0YWdzOnRoaXMudGFnc319LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmaW5pdGlvbn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwib25cIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2NhY2hlLm9uKXJldHVybiB0aGlzLl9fY2FjaGUub247dmFyIHQ9dGhpcy50cmFuc2l0aW9ucztyZXR1cm4gdGhpcy5fX2NhY2hlLm9uPXQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuZXZlbnRUeXBlXT10W2UuZXZlbnRUeXBlXXx8W10sdFtlLmV2ZW50VHlwZV0ucHVzaChlKSx0fSkse30pfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImFmdGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUuZGVsYXllZFRyYW5zaXRpb25zfHwodGhpcy5fX2NhY2hlLmRlbGF5ZWRUcmFuc2l0aW9ucz10aGlzLmdldERlbGF5ZWRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS5kZWxheWVkVHJhbnNpdGlvbnMpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRyYW5zaXRpb25zXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnN8fCh0aGlzLl9fY2FjaGUudHJhbnNpdGlvbnM9dGhpcy5mb3JtYXRUcmFuc2l0aW9ucygpLHRoaXMuX19jYWNoZS50cmFuc2l0aW9ucyl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0Q2FuZGlkYXRlcz1mdW5jdGlvbih0KXtpZih0aGlzLl9fY2FjaGUuY2FuZGlkYXRlc1t0XSlyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF07dmFyIGU9XCJcIj09PXQsbj10aGlzLnRyYW5zaXRpb25zLmZpbHRlcigoZnVuY3Rpb24obil7dmFyIHI9bi5ldmVudFR5cGU9PT10O3JldHVybiBlP3I6cnx8XCIqXCI9PT1uLmV2ZW50VHlwZX0pKTtyZXR1cm4gdGhpcy5fX2NhY2hlLmNhbmRpZGF0ZXNbdF09bixufSxhLnByb3RvdHlwZS5nZXREZWxheWVkVHJhbnNpdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49dGhpcy5jb25maWcuYWZ0ZXI7aWYoIW4pcmV0dXJuW107dmFyIHI9ZnVuY3Rpb24oZSxuKXt2YXIgcj1FdChOKGUpP1wiXCIuY29uY2F0KHQuaWQsXCI6ZGVsYXlbXCIpLmNvbmNhdChuLFwiXVwiKTplLHQuaWQpO3JldHVybiB0Lm9uRW50cnkucHVzaCh5dChyLHtkZWxheTplfSkpLHQub25FeGl0LnB1c2goeHQocikpLHJ9O3JldHVybihUKG4pP24ubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPXIodC5kZWxheSxuKTtyZXR1cm4gZShlKHt9LHQpLHtldmVudDppfSl9KSk6ZyhzKG4pLm1hcCgoZnVuY3Rpb24odCxpKXt2YXIgbz1uW3RdLGE9QShvKT97dGFyZ2V0Om99Om8scz1pc05hTigrdCk/dDordCxjPXIocyxpKTtyZXR1cm4gUyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKGUoe30sdCkse2V2ZW50OmMsZGVsYXk6c30pfSkpfSkpKSkubWFwKChmdW5jdGlvbihuKXt2YXIgcj1uLmRlbGF5O3JldHVybiBlKGUoe30sdC5mb3JtYXRUcmFuc2l0aW9uKG4pKSx7ZGVsYXk6cn0pfSkpfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcztpZighdClyZXR1cm5bXTt2YXIgcj10IGluc3RhbmNlb2Yga3Q/dC52YWx1ZTpmKHQsdGhpcy5kZWxpbWl0ZXIpO2lmKEEocikpe3ZhciBpPXRoaXMuZ2V0U3RhdGVOb2RlKHIpLmluaXRpYWw7cmV0dXJuIHZvaWQgMCE9PWk/dGhpcy5nZXRTdGF0ZU5vZGVzKCgoZT17fSlbcl09aSxlKSk6W3RoaXMsdGhpcy5zdGF0ZXNbcl1dfXZhciBvPXMociksYT1vLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0U3RhdGVOb2RlKHQpfSkpO3JldHVybiBhLnB1c2godGhpcyksYS5jb25jYXQoby5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9bi5nZXRTdGF0ZU5vZGUoZSkuZ2V0U3RhdGVOb2RlcyhyW2VdKTtyZXR1cm4gdC5jb25jYXQoaSl9KSxbXSkpfSxhLnByb3RvdHlwZS5oYW5kbGVzPWZ1bmN0aW9uKHQpe3ZhciBlPXUodCk7cmV0dXJuIHRoaXMuZXZlbnRzLmluY2x1ZGVzKGUpfSxhLnByb3RvdHlwZS5yZXNvbHZlU3RhdGU9ZnVuY3Rpb24odCl7dmFyIG49QXJyYXkuZnJvbShKKFtdLHRoaXMuZ2V0U3RhdGVOb2Rlcyh0LnZhbHVlKSkpO3JldHVybiBuZXcga3QoZShlKHt9LHQpLHt2YWx1ZTp0aGlzLnJlc29sdmUodC52YWx1ZSksY29uZmlndXJhdGlvbjpuLGRvbmU6SChuLHRoaXMpLHRhZ3M6RyhuKX0pKX0sYS5wcm90b3R5cGUudHJhbnNpdGlvbkxlYWZOb2RlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLmdldFN0YXRlTm9kZSh0KS5uZXh0KGUsbik7cmV0dXJuIHImJnIudHJhbnNpdGlvbnMubGVuZ3RoP3I6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25Db21wb3VuZE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXModCksaT10aGlzLmdldFN0YXRlTm9kZShyWzBdKS5fdHJhbnNpdGlvbih0W3JbMF1dLGUsbik7cmV0dXJuIGkmJmkudHJhbnNpdGlvbnMubGVuZ3RoP2k6dGhpcy5uZXh0KGUsbil9LGEucHJvdG90eXBlLnRyYW5zaXRpb25QYXJhbGxlbE5vZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG8sYT17fTt0cnl7Zm9yKHZhciBjPXIocyh0KSksdT1jLm5leHQoKTshdS5kb25lO3U9Yy5uZXh0KCkpe3ZhciBoPXUudmFsdWUsZj10W2hdO2lmKGYpe3ZhciBsPXRoaXMuZ2V0U3RhdGVOb2RlKGgpLl90cmFuc2l0aW9uKGYsZSxuKTtsJiYoYVtoXT1sKX19fWNhdGNoKHQpe2k9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihvPWMucmV0dXJuKSYmby5jYWxsKGMpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX12YXIgZD1zKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KSkscD1nKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFuc2l0aW9uc30pKSk7aWYoIWQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbnMubGVuZ3RoPjB9KSkpcmV0dXJuIHRoaXMubmV4dChlLG4pO3ZhciB2PWcoZC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmVudHJ5U2V0fSkpKSx5PWcocyhhKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBhW3RdLmNvbmZpZ3VyYXRpb259KSkpO3JldHVybnt0cmFuc2l0aW9uczpwLGVudHJ5U2V0OnYsZXhpdFNldDpnKGQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGl0U2V0fSkpKSxjb25maWd1cmF0aW9uOnksc291cmNlOmUsYWN0aW9uczpnKHMoYSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYVt0XS5hY3Rpb25zfSkpKX19LGEucHJvdG90eXBlLl90cmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQSh0KT90aGlzLnRyYW5zaXRpb25MZWFmTm9kZSh0LGUsbik6MT09PXModCkubGVuZ3RoP3RoaXMudHJhbnNpdGlvbkNvbXBvdW5kTm9kZSh0LGUsbik6dGhpcy50cmFuc2l0aW9uUGFyYWxsZWxOb2RlKHQsZSxuKX0sYS5wcm90b3R5cGUubmV4dD1mdW5jdGlvbih0LGUpe3ZhciBuLGEscyx1PXRoaXMsaD1lLm5hbWUsbD1bXSxkPVtdO3RyeXtmb3IodmFyIHA9cih0aGlzLmdldENhbmRpZGF0ZXMoaCkpLHk9cC5uZXh0KCk7IXkuZG9uZTt5PXAubmV4dCgpKXt2YXIgbT15LnZhbHVlLFM9bS5jb25kLHg9bS5pbix3PXQuY29udGV4dCxiPSF4fHwoQSh4KSYmTXQoeCk/dC5tYXRjaGVzKGYodGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHgpLnBhdGgsdGhpcy5kZWxpbWl0ZXIpKTpjKGYoeCx0aGlzLmRlbGltaXRlciksdih0aGlzLnBhdGguc2xpY2UoMCwtMikpKHQudmFsdWUpKSksXz0hMTt0cnl7Xz0hU3x8Uih0aGlzLm1hY2hpbmUsUyx3LGUsdCl9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV2YWx1YXRlIGd1YXJkICdcIi5jb25jYXQoUy5uYW1lfHxTLnR5cGUsXCInIGluIHRyYW5zaXRpb24gZm9yIGV2ZW50ICdcIikuY29uY2F0KGgsXCInIGluIHN0YXRlIG5vZGUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIic6XFxuXCIpLmNvbmNhdCh0Lm1lc3NhZ2UpKX1pZihfJiZiKXt2b2lkIDAhPT1tLnRhcmdldCYmKGQ9bS50YXJnZXQpLGwucHVzaC5hcHBseShsLG8oW10saShtLmFjdGlvbnMpLCExKSkscz1tO2JyZWFrfX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7eSYmIXkuZG9uZSYmKGE9cC5yZXR1cm4pJiZhLmNhbGwocCl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fWlmKHMpe2lmKCFkLmxlbmd0aClyZXR1cm57dHJhbnNpdGlvbnM6W3NdLGVudHJ5U2V0OltdLGV4aXRTZXQ6W10sY29uZmlndXJhdGlvbjp0LnZhbHVlP1t0aGlzXTpbXSxzb3VyY2U6dCxhY3Rpb25zOmx9O3ZhciBFPWcoZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB1LmdldFJlbGF0aXZlU3RhdGVOb2RlcyhlLHQuaGlzdG9yeVZhbHVlKX0pKSksVD0hIXMuaW50ZXJuYWw7cmV0dXJue3RyYW5zaXRpb25zOltzXSxlbnRyeVNldDpUP1tdOmcoRS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1Lm5vZGVzRnJvbUNoaWxkKHQpfSkpKSxleGl0U2V0OlQ/W106W3RoaXNdLGNvbmZpZ3VyYXRpb246RSxzb3VyY2U6dCxhY3Rpb25zOmx9fX0sYS5wcm90b3R5cGUubm9kZXNGcm9tQ2hpbGQ9ZnVuY3Rpb24odCl7aWYodC5lc2NhcGVzKHRoaXMpKXJldHVybltdO2Zvcih2YXIgZT1bXSxuPXQ7biYmbiE9PXRoaXM7KWUucHVzaChuKSxuPW4ucGFyZW50O3JldHVybiBlLnB1c2godGhpcyksZX0sYS5wcm90b3R5cGUuZXNjYXBlcz1mdW5jdGlvbih0KXtpZih0aGlzPT09dClyZXR1cm4hMTtmb3IodmFyIGU9dGhpcy5wYXJlbnQ7ZTspe2lmKGU9PT10KXJldHVybiExO2U9ZS5wYXJlbnR9cmV0dXJuITB9LGEucHJvdG90eXBlLmdldEFjdGlvbnM9ZnVuY3Rpb24odCxlLG4sYSl7dmFyIHMsYyx1LGgsZj1KKFtdLGE/dGhpcy5nZXRTdGF0ZU5vZGVzKGEudmFsdWUpOlt0aGlzXSksbD10LmNvbmZpZ3VyYXRpb24ubGVuZ3RoP0ooZix0LmNvbmZpZ3VyYXRpb24pOmY7dHJ5e2Zvcih2YXIgZD1yKGwpLHA9ZC5uZXh0KCk7IXAuZG9uZTtwPWQubmV4dCgpKXtYKGYsbT1wLnZhbHVlKXx8dC5lbnRyeVNldC5wdXNoKG0pfX1jYXRjaCh0KXtzPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtwJiYhcC5kb25lJiYoYz1kLnJldHVybikmJmMuY2FsbChkKX1maW5hbGx5e2lmKHMpdGhyb3cgcy5lcnJvcn19dHJ5e2Zvcih2YXIgdj1yKGYpLHk9di5uZXh0KCk7IXkuZG9uZTt5PXYubmV4dCgpKXt2YXIgbTtYKGwsbT15LnZhbHVlKSYmIVgodC5leGl0U2V0LG0ucGFyZW50KXx8dC5leGl0U2V0LnB1c2gobSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3kmJiF5LmRvbmUmJihoPXYucmV0dXJuKSYmaC5jYWxsKHYpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX10LnNvdXJjZXx8KHQuZXhpdFNldD1bXSx0LmVudHJ5U2V0LnB1c2godGhpcykpO3ZhciBTPWcodC5lbnRyeVNldC5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBpPVtdO2lmKFwiZmluYWxcIiE9PXIudHlwZSlyZXR1cm4gaTt2YXIgbz1yLnBhcmVudDtpZighby5wYXJlbnQpcmV0dXJuIGk7aS5wdXNoKFR0KHIuaWQsci5kb25lRGF0YSksVHQoby5pZCxyLmRvbmVEYXRhP3goci5kb25lRGF0YSxlLG4pOnZvaWQgMCkpO3ZhciBhPW8ucGFyZW50O3JldHVyblwicGFyYWxsZWxcIj09PWEudHlwZSYmVShhKS5ldmVyeSgoZnVuY3Rpb24oZSl7cmV0dXJuIEgodC5jb25maWd1cmF0aW9uLGUpfSkpJiZpLnB1c2goVHQoYS5pZCkpLGl9KSkpO3QuZXhpdFNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLm9yZGVyLXQub3JkZXJ9KSksdC5lbnRyeVNldC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm9yZGVyLWUub3JkZXJ9KSk7dmFyIHc9bmV3IFNldCh0LmVudHJ5U2V0KSxiPW5ldyBTZXQodC5leGl0U2V0KSxfPWkoW2coQXJyYXkuZnJvbSh3KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvKG8oW10saSh0LmFjdGl2aXRpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gd3QodCl9KSkpLCExKSxpKHQub25FbnRyeSksITEpfSkpKS5jb25jYXQoUy5tYXAodnQpKSxnKEFycmF5LmZyb20oYikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyhvKFtdLGkodC5vbkV4aXQpLCExKSxpKHQuYWN0aXZpdGllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBidCh0KX0pKSksITEpfSkpKV0sMiksRT1fWzBdLFQ9X1sxXTtyZXR1cm4gZHQoVC5jb25jYXQodC5hY3Rpb25zKS5jb25jYXQoRSksdGhpcy5tYWNoaW5lLm9wdGlvbnMuYWN0aW9ucyl9LGEucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlLG4pe3ZvaWQgMD09PXQmJih0PXRoaXMuaW5pdGlhbFN0YXRlKTt2YXIgcixhLHM9TChlKTtpZih0IGluc3RhbmNlb2Yga3Qpcj12b2lkIDA9PT1uP3Q6dGhpcy5yZXNvbHZlU3RhdGUoa3QuZnJvbSh0LG4pKTtlbHNle3ZhciBjPUEodCk/dGhpcy5yZXNvbHZlKGwodGhpcy5nZXRSZXNvbHZlZFBhdGgodCkpKTp0aGlzLnJlc29sdmUodCksdT1udWxsIT1uP246dGhpcy5tYWNoaW5lLmNvbnRleHQ7cj10aGlzLnJlc29sdmVTdGF0ZShrdC5mcm9tKGMsdSkpfWlmKHRoaXMuc3RyaWN0JiYhdGhpcy5ldmVudHMuaW5jbHVkZXMocy5uYW1lKSYmKGE9cy5uYW1lLCEvXihkb25lfGVycm9yKVxcLi8udGVzdChhKSkpdGhyb3cgbmV3IEVycm9yKFwiTWFjaGluZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInIGRvZXMgbm90IGFjY2VwdCBldmVudCAnXCIpLmNvbmNhdChzLm5hbWUsXCInXCIpKTt2YXIgaD10aGlzLl90cmFuc2l0aW9uKHIudmFsdWUscixzKXx8e3RyYW5zaXRpb25zOltdLGNvbmZpZ3VyYXRpb246W10sZW50cnlTZXQ6W10sZXhpdFNldDpbXSxzb3VyY2U6cixhY3Rpb25zOltdfSxmPUooW10sdGhpcy5nZXRTdGF0ZU5vZGVzKHIudmFsdWUpKSxkPWguY29uZmlndXJhdGlvbi5sZW5ndGg/SihmLGguY29uZmlndXJhdGlvbik6ZjtyZXR1cm4gaC5jb25maWd1cmF0aW9uPW8oW10saShkKSwhMSksdGhpcy5yZXNvbHZlVHJhbnNpdGlvbihoLHIscyl9LGEucHJvdG90eXBlLnJlc29sdmVSYWlzZWRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixhPXQuYWN0aW9ucztyZXR1cm4odD10aGlzLnRyYW5zaXRpb24odCxlKSkuX2V2ZW50PW4sdC5ldmVudD1uLmRhdGEsKHI9dC5hY3Rpb25zKS51bnNoaWZ0LmFwcGx5KHIsbyhbXSxpKGEpLCExKSksdH0sYS5wcm90b3R5cGUucmVzb2x2ZVRyYW5zaXRpb249ZnVuY3Rpb24obixvLGEsYyl7dmFyIHUsaCxmPXRoaXM7dm9pZCAwPT09YSYmKGE9aHQpLHZvaWQgMD09PWMmJihjPXRoaXMubWFjaGluZS5jb250ZXh0KTt2YXIgbD1uLmNvbmZpZ3VyYXRpb24sZD0hb3x8bi50cmFuc2l0aW9ucy5sZW5ndGg+MCxwPWQ/JCh0aGlzLm1hY2hpbmUsbCk6dm9pZCAwLHY9bz9vLmhpc3RvcnlWYWx1ZT9vLmhpc3RvcnlWYWx1ZTpuLnNvdXJjZT90aGlzLm1hY2hpbmUuaGlzdG9yeVZhbHVlKG8udmFsdWUpOnZvaWQgMDp2b2lkIDAseT1vP28uY29udGV4dDpjLGc9dGhpcy5nZXRBY3Rpb25zKG4seSxhLG8pLG09bz9lKHt9LG8uYWN0aXZpdGllcyk6e307dHJ5e2Zvcih2YXIgUz1yKGcpLHc9Uy5uZXh0KCk7IXcuZG9uZTt3PVMubmV4dCgpKXt2YXIgRT13LnZhbHVlO0UudHlwZT09PUs/bVtFLmFjdGl2aXR5LmlkfHxFLmFjdGl2aXR5LnR5cGVdPUU6RS50eXBlPT09USYmKG1bRS5hY3Rpdml0eS5pZHx8RS5hY3Rpdml0eS50eXBlXT0hMSl9fWNhdGNoKHQpe3U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e3cmJiF3LmRvbmUmJihoPVMucmV0dXJuKSYmaC5jYWxsKFMpfWZpbmFsbHl7aWYodSl0aHJvdyB1LmVycm9yfX12YXIgVCxOLE89aShQdCh0aGlzLG8seSxhLGcsdGhpcy5tYWNoaW5lLmNvbmZpZy5wcmVzZXJ2ZUFjdGlvbk9yZGVyKSwyKSxQPU9bMF0saz1PWzFdLEk9aShiKFAsKGZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT1XfHxlLnR5cGU9PT1ZJiZlLnRvPT09dC5TcGVjaWFsVGFyZ2V0cy5JbnRlcm5hbH0pKSwyKSxqPUlbMF0sQz1JWzFdLFY9UC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0LnR5cGU9PT1LJiYobnVsbD09PShlPXQuYWN0aXZpdHkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnR5cGUpPT09aXR9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0W2UuYWN0aXZpdHkuaWRdPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpLG89TSh0LnNyYyksYT1udWxsPT09KGk9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25zLnNlcnZpY2VzKXx8dm9pZCAwPT09aT92b2lkIDA6aVtvLnR5cGVdLHM9dC5kYXRhP3godC5kYXRhLG4scik6dm9pZCAwLGM9YT9WdChhLHQuaWQscyk6Q3QodC5pZCk7cmV0dXJuIGMubWV0YT10LGN9KGUuYWN0aXZpdHksZi5tYWNoaW5lLGssYSksdH0pLG8/ZSh7fSxvLmNoaWxkcmVuKTp7fSksTD1wP24uY29uZmlndXJhdGlvbjpvP28uY29uZmlndXJhdGlvbjpbXSxEPUgoTCx0aGlzKSxSPW5ldyBrdCh7dmFsdWU6cHx8by52YWx1ZSxjb250ZXh0OmssX2V2ZW50OmEsX3Nlc3Npb25pZDpvP28uX3Nlc3Npb25pZDpudWxsLGhpc3RvcnlWYWx1ZTpwP3Y/KFQ9dixOPXAse2N1cnJlbnQ6TixzdGF0ZXM6XyhULE4pfSk6dm9pZCAwOm8/by5oaXN0b3J5VmFsdWU6dm9pZCAwLGhpc3Rvcnk6IXB8fG4uc291cmNlP286dm9pZCAwLGFjdGlvbnM6cD9DOltdLGFjdGl2aXRpZXM6cD9tOm8/by5hY3Rpdml0aWVzOnt9LGV2ZW50czpbXSxjb25maWd1cmF0aW9uOkwsdHJhbnNpdGlvbnM6bi50cmFuc2l0aW9ucyxjaGlsZHJlbjpWLGRvbmU6RCx0YWdzOm51bGw9PW8/dm9pZCAwOm8udGFncyxtYWNoaW5lOnRoaXN9KSx6PXkhPT1rO1IuY2hhbmdlZD1hLm5hbWU9PT1zdHx8ejt2YXIgRj1SLmhpc3Rvcnk7RiYmZGVsZXRlIEYuaGlzdG9yeTt2YXIgVT0hRCYmKHRoaXMuX3RyYW5zaWVudHx8bC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fdHJhbnNpZW50fSkpKTtpZighKGR8fFUmJlwiXCIhPT1hLm5hbWUpKXJldHVybiBSO3ZhciBCPVI7aWYoIUQpZm9yKFUmJihCPXRoaXMucmVzb2x2ZVJhaXNlZFRyYW5zaXRpb24oQix7dHlwZTp0dH0sYSkpO2oubGVuZ3RoOyl7dmFyIEo9ai5zaGlmdCgpO0I9dGhpcy5yZXNvbHZlUmFpc2VkVHJhbnNpdGlvbihCLEouX2V2ZW50LGEpfXZhciBxPUIuY2hhbmdlZHx8KEY/ISFCLmFjdGlvbnMubGVuZ3RofHx6fHx0eXBlb2YgRi52YWx1ZSE9dHlwZW9mIEIudmFsdWV8fCFmdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuITA7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09bilyZXR1cm4hMTtpZihBKGUpfHxBKG4pKXJldHVybiBlPT09bjt2YXIgcj1zKGUpLGk9cyhuKTtyZXR1cm4gci5sZW5ndGg9PT1pLmxlbmd0aCYmci5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIHQoZVtyXSxuW3JdKX0pKX0oQi52YWx1ZSxGLnZhbHVlKTp2b2lkIDApO3JldHVybiBCLmNoYW5nZWQ9cSxCLmhpc3Rvcnk9RixCLnRhZ3M9RyhCLmNvbmZpZ3VyYXRpb24pLEJ9LGEucHJvdG90eXBlLmdldFN0YXRlTm9kZT1mdW5jdGlvbih0KXtpZihNdCh0KSlyZXR1cm4gdGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQodCk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byByZXRyaWV2ZSBjaGlsZCBzdGF0ZSAnXCIuY29uY2F0KHQsXCInIGZyb20gJ1wiKS5jb25jYXQodGhpcy5pZCxcIic7IG5vIGNoaWxkIHN0YXRlcyBleGlzdC5cIikpO3ZhciBlPXRoaXMuc3RhdGVzW3RdO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIkNoaWxkIHN0YXRlICdcIi5jb25jYXQodCxcIicgZG9lcyBub3QgZXhpc3Qgb24gJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBlfSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeUlkPWZ1bmN0aW9uKHQpe3ZhciBlPU10KHQpP3Quc2xpY2UoXCIjXCIubGVuZ3RoKTp0O2lmKGU9PT10aGlzLmlkKXJldHVybiB0aGlzO3ZhciBuPXRoaXMubWFjaGluZS5pZE1hcFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSBub2RlICcjXCIuY29uY2F0KGUsXCInIGRvZXMgbm90IGV4aXN0IG9uIG1hY2hpbmUgJ1wiKS5jb25jYXQodGhpcy5pZCxcIidcIikpO3JldHVybiBufSxhLnByb3RvdHlwZS5nZXRTdGF0ZU5vZGVCeVBhdGg9ZnVuY3Rpb24odCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJk10KHQpKXRyeXtyZXR1cm4gdGhpcy5nZXRTdGF0ZU5vZGVCeUlkKHQuc2xpY2UoMSkpfWNhdGNoKHQpe31mb3IodmFyIGU9aCh0LHRoaXMuZGVsaW1pdGVyKS5zbGljZSgpLG49dGhpcztlLmxlbmd0aDspe3ZhciByPWUuc2hpZnQoKTtpZighci5sZW5ndGgpYnJlYWs7bj1uLmdldFN0YXRlTm9kZShyKX1yZXR1cm4gbn0sYS5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbih0KXt2YXIgZSxuPXRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0O3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcInBhcmFsbGVsXCI6cmV0dXJuIGQodGhpcy5pbml0aWFsU3RhdGVWYWx1ZSwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT9uLmdldFN0YXRlTm9kZShyKS5yZXNvbHZlKHRbcl18fGUpOlJ0fSkpO2Nhc2VcImNvbXBvdW5kXCI6aWYoQSh0KSl7dmFyIHI9dGhpcy5nZXRTdGF0ZU5vZGUodCk7cmV0dXJuXCJwYXJhbGxlbFwiPT09ci50eXBlfHxcImNvbXBvdW5kXCI9PT1yLnR5cGU/KChlPXt9KVt0XT1yLmluaXRpYWxTdGF0ZVZhbHVlLGUpOnR9cmV0dXJuIHModCkubGVuZ3RoP2QodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdD9uLmdldFN0YXRlTm9kZShlKS5yZXNvbHZlKHQpOlJ0fSkpOnRoaXMuaW5pdGlhbFN0YXRlVmFsdWV8fHt9O2RlZmF1bHQ6cmV0dXJuIHR8fFJ0fX0sYS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRQYXRoPWZ1bmN0aW9uKHQpe2lmKE10KHQpKXt2YXIgZT10aGlzLm1hY2hpbmUuaWRNYXBbdC5zbGljZShcIiNcIi5sZW5ndGgpXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBzdGF0ZSBub2RlICdcIi5jb25jYXQodCxcIidcIikpO3JldHVybiBlLnBhdGh9cmV0dXJuIGgodCx0aGlzLmRlbGltaXRlcil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVZhbHVlXCIse2dldDpmdW5jdGlvbigpe3ZhciB0LGU7aWYodGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlKXJldHVybiB0aGlzLl9fY2FjaGUuaW5pdGlhbFN0YXRlVmFsdWU7aWYoXCJwYXJhbGxlbFwiPT09dGhpcy50eXBlKWU9cCh0aGlzLnN0YXRlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5pdGlhbFN0YXRlVmFsdWV8fFJ0fSksKGZ1bmN0aW9uKHQpe3JldHVybiEoXCJoaXN0b3J5XCI9PT10LnR5cGUpfSkpO2Vsc2UgaWYodm9pZCAwIT09dGhpcy5pbml0aWFsKXtpZighdGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSl0aHJvdyBuZXcgRXJyb3IoXCJJbml0aWFsIHN0YXRlICdcIi5jb25jYXQodGhpcy5pbml0aWFsLFwiJyBub3QgZm91bmQgb24gJ1wiKS5jb25jYXQodGhpcy5rZXksXCInXCIpKTtlPUYodGhpcy5zdGF0ZXNbdGhpcy5pbml0aWFsXSk/dGhpcy5pbml0aWFsOigodD17fSlbdGhpcy5pbml0aWFsXT10aGlzLnN0YXRlc1t0aGlzLmluaXRpYWxdLmluaXRpYWxTdGF0ZVZhbHVlLHQpfWVsc2UgZT17fTtyZXR1cm4gdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlPWUsdGhpcy5fX2NhY2hlLmluaXRpYWxTdGF0ZVZhbHVlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuZ2V0U3RhdGVOb2Rlcyh0KTtyZXR1cm4gdGhpcy5yZXNvbHZlVHJhbnNpdGlvbih7Y29uZmlndXJhdGlvbjpuLGVudHJ5U2V0Om4sZXhpdFNldDpbXSx0cmFuc2l0aW9uczpbXSxzb3VyY2U6dm9pZCAwLGFjdGlvbnM6W119LHZvaWQgMCx2b2lkIDAsZSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcImluaXRpYWxTdGF0ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0aGlzLl9pbml0KCk7dmFyIHQ9dGhpcy5pbml0aWFsU3RhdGVWYWx1ZTtpZighdCl0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgaW5pdGlhbCBzdGF0ZSBmcm9tIHNpbXBsZSBzdGF0ZSAnXCIuY29uY2F0KHRoaXMuaWQsXCInLlwiKSk7cmV0dXJuIHRoaXMuZ2V0SW5pdGlhbFN0YXRlKHQpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcInRhcmdldFwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtpZihcImhpc3RvcnlcIj09PXRoaXMudHlwZSl7dmFyIGU9dGhpcy5jb25maWc7dD1BKGUudGFyZ2V0KSYmTXQoZS50YXJnZXQpP2wodGhpcy5tYWNoaW5lLmdldFN0YXRlTm9kZUJ5SWQoZS50YXJnZXQpLnBhdGguc2xpY2UodGhpcy5wYXRoLmxlbmd0aC0xKSk6ZS50YXJnZXR9cmV0dXJuIHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksYS5wcm90b3R5cGUuZ2V0UmVsYXRpdmVTdGF0ZU5vZGVzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49ITApLG4/XCJoaXN0b3J5XCI9PT10LnR5cGU/dC5yZXNvbHZlSGlzdG9yeShlKTp0LmluaXRpYWxTdGF0ZU5vZGVzOlt0XX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLFwiaW5pdGlhbFN0YXRlTm9kZXNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gRih0aGlzKT9bdGhpc106XCJjb21wb3VuZFwiIT09dGhpcy50eXBlfHx0aGlzLmluaXRpYWw/Zyh5KHRoaXMuaW5pdGlhbFN0YXRlVmFsdWUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0RnJvbVJlbGF0aXZlUGF0aChlKX0pKSk6W3RoaXNdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGEucHJvdG90eXBlLmdldEZyb21SZWxhdGl2ZVBhdGg9ZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVyblt0aGlzXTt2YXIgZT1pKHQpLG49ZVswXSxyPWUuc2xpY2UoMSk7aWYoIXRoaXMuc3RhdGVzKXRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXRyaWV2ZSBzdWJQYXRoICdcIi5jb25jYXQobixcIicgZnJvbSBub2RlIHdpdGggbm8gc3RhdGVzXCIpKTt2YXIgbz10aGlzLmdldFN0YXRlTm9kZShuKTtpZihcImhpc3RvcnlcIj09PW8udHlwZSlyZXR1cm4gby5yZXNvbHZlSGlzdG9yeSgpO2lmKCF0aGlzLnN0YXRlc1tuXSl0aHJvdyBuZXcgRXJyb3IoXCJDaGlsZCBzdGF0ZSAnXCIuY29uY2F0KG4sXCInIGRvZXMgbm90IGV4aXN0IG9uICdcIikuY29uY2F0KHRoaXMuaWQsXCInXCIpKTtyZXR1cm4gdGhpcy5zdGF0ZXNbbl0uZ2V0RnJvbVJlbGF0aXZlUGF0aChyKX0sYS5wcm90b3R5cGUuaGlzdG9yeVZhbHVlPWZ1bmN0aW9uKHQpe2lmKHModGhpcy5zdGF0ZXMpLmxlbmd0aClyZXR1cm57Y3VycmVudDp0fHx0aGlzLmluaXRpYWxTdGF0ZVZhbHVlLHN0YXRlczpwKHRoaXMuc3RhdGVzLChmdW5jdGlvbihlLG4pe2lmKCF0KXJldHVybiBlLmhpc3RvcnlWYWx1ZSgpO3ZhciByPUEodCk/dm9pZCAwOnRbbl07cmV0dXJuIGUuaGlzdG9yeVZhbHVlKHJ8fGUuaW5pdGlhbFN0YXRlVmFsdWUpfSksKGZ1bmN0aW9uKHQpe3JldHVybiF0Lmhpc3Rvcnl9KSl9fSxhLnByb3RvdHlwZS5yZXNvbHZlSGlzdG9yeT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKFwiaGlzdG9yeVwiIT09dGhpcy50eXBlKXJldHVyblt0aGlzXTt2YXIgbj10aGlzLnBhcmVudDtpZighdCl7dmFyIGk9dGhpcy50YXJnZXQ7cmV0dXJuIGk/Zyh5KGkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG4uZ2V0RnJvbVJlbGF0aXZlUGF0aCh0KX0pKSk6bi5pbml0aWFsU3RhdGVOb2Rlc312YXIgbyxhLHM9KG89bi5wYXRoLGE9XCJzdGF0ZXNcIixmdW5jdGlvbih0KXt2YXIgZSxuLGk9dDt0cnl7Zm9yKHZhciBzPXIobyksYz1zLm5leHQoKTshYy5kb25lO2M9cy5uZXh0KCkpe3ZhciB1PWMudmFsdWU7aT1pW2FdW3VdfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXtjJiYhYy5kb25lJiYobj1zLnJldHVybikmJm4uY2FsbChzKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19cmV0dXJuIGl9KSh0KS5jdXJyZW50O3JldHVybiBBKHMpP1tuLmdldFN0YXRlTm9kZShzKV06Zyh5KHMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuXCJkZWVwXCI9PT1lLmhpc3Rvcnk/bi5nZXRGcm9tUmVsYXRpdmVQYXRoKHQpOltuLnN0YXRlc1t0WzBdXV19KSkpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJzdGF0ZUlkc1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZyhzKHRoaXMuc3RhdGVzKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0LnN0YXRlc1tlXS5zdGF0ZUlkc30pKSk7cmV0dXJuW3RoaXMuaWRdLmNvbmNhdChlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYS5wcm90b3R5cGUsXCJldmVudHNcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuLGk7aWYodGhpcy5fX2NhY2hlLmV2ZW50cylyZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50czt2YXIgbz10aGlzLnN0YXRlcyxhPW5ldyBTZXQodGhpcy5vd25FdmVudHMpO2lmKG8pdHJ5e2Zvcih2YXIgYz1yKHMobykpLHU9Yy5uZXh0KCk7IXUuZG9uZTt1PWMubmV4dCgpKXt2YXIgaD1vW3UudmFsdWVdO2lmKGguc3RhdGVzKXRyeXtmb3IodmFyIGY9KG49dm9pZCAwLHIoaC5ldmVudHMpKSxsPWYubmV4dCgpOyFsLmRvbmU7bD1mLm5leHQoKSl7dmFyIGQ9bC52YWx1ZTthLmFkZChcIlwiLmNvbmNhdChkKSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2wmJiFsLmRvbmUmJihpPWYucmV0dXJuKSYmaS5jYWxsKGYpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19fWNhdGNoKGUpe3Q9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e3UmJiF1LmRvbmUmJihlPWMucmV0dXJuKSYmZS5jYWxsKGMpfWZpbmFsbHl7aWYodCl0aHJvdyB0LmVycm9yfX1yZXR1cm4gdGhpcy5fX2NhY2hlLmV2ZW50cz1BcnJheS5mcm9tKGEpfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSxcIm93bkV2ZW50c1wiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgU2V0KHRoaXMudHJhbnNpdGlvbnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hKCF0LnRhcmdldCYmIXQuYWN0aW9ucy5sZW5ndGgmJnQuaW50ZXJuYWwpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlbnRUeXBlfSkpKTtyZXR1cm4gQXJyYXkuZnJvbSh0KX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlwZS5yZXNvbHZlVGFyZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodm9pZCAwIT09dClyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCFBKHQpKXJldHVybiB0O3ZhciBuPXRbMF09PT1lLmRlbGltaXRlcjtpZihuJiYhZS5wYXJlbnQpcmV0dXJuIGUuZ2V0U3RhdGVOb2RlQnlQYXRoKHQuc2xpY2UoMSkpO3ZhciByPW4/ZS5rZXkrdDp0O2lmKCFlLnBhcmVudClyZXR1cm4gZS5nZXRTdGF0ZU5vZGVCeVBhdGgocik7dHJ5e3JldHVybiBlLnBhcmVudC5nZXRTdGF0ZU5vZGVCeVBhdGgocil9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB0cmFuc2l0aW9uIGRlZmluaXRpb24gZm9yIHN0YXRlIG5vZGUgJ1wiLmNvbmNhdChlLmlkLFwiJzpcXG5cIikuY29uY2F0KHQubWVzc2FnZSkpfX0pKX0sYS5wcm90b3R5cGUuZm9ybWF0VHJhbnNpdGlvbj1mdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9ZnVuY3Rpb24odCl7aWYodm9pZCAwIT09dCYmXCJcIiE9PXQpcmV0dXJuIFModCl9KHQudGFyZ2V0KSxpPVwiaW50ZXJuYWxcImluIHQ/dC5pbnRlcm5hbDohcnx8ci5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gQSh0KSYmdFswXT09PW4uZGVsaW1pdGVyfSkpLG89dGhpcy5tYWNoaW5lLm9wdGlvbnMuZ3VhcmRzLGE9dGhpcy5yZXNvbHZlVGFyZ2V0KHIpLHM9ZShlKHt9LHQpLHthY3Rpb25zOmR0KFModC5hY3Rpb25zKSksY29uZDpPKHQuY29uZCxvKSx0YXJnZXQ6YSxzb3VyY2U6dGhpcyxpbnRlcm5hbDppLGV2ZW50VHlwZTp0LmV2ZW50LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybiBlKGUoe30scykse3RhcmdldDpzLnRhcmdldD9zLnRhcmdldC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVyblwiI1wiLmNvbmNhdCh0LmlkKX0pKTp2b2lkIDAsc291cmNlOlwiI1wiLmNvbmNhdChuLmlkKX0pfX0pO3JldHVybiBzfSxhLnByb3RvdHlwZS5mb3JtYXRUcmFuc2l0aW9ucz1mdW5jdGlvbigpe3ZhciB0LGUsYSxjPXRoaXM7aWYodGhpcy5jb25maWcub24paWYoQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5vbikpYT10aGlzLmNvbmZpZy5vbjtlbHNle3ZhciB1PXRoaXMuY29uZmlnLm9uLGg9dVtcIipcIl0sZj12b2lkIDA9PT1oP1tdOmgsbD1uKHUsW1wiKlwiXSk7YT1nKHMobCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LGxbdF0pfSkpLmNvbmNhdChEKFwiKlwiLGYpKSl9ZWxzZSBhPVtdO3ZhciBkPXRoaXMuY29uZmlnLmFsd2F5cz9EKFwiXCIsdGhpcy5jb25maWcuYWx3YXlzKTpbXSxwPXRoaXMuY29uZmlnLm9uRG9uZT9EKFN0cmluZyhUdCh0aGlzLmlkKSksdGhpcy5jb25maWcub25Eb25lKTpbXSx2PWcodGhpcy5pbnZva2UubWFwKChmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5vbkRvbmUmJmUucHVzaC5hcHBseShlLG8oW10saShEKFN0cmluZyhOdCh0LmlkKSksdC5vbkRvbmUpKSwhMSkpLHQub25FcnJvciYmZS5wdXNoLmFwcGx5KGUsbyhbXSxpKEQoU3RyaW5nKEF0KHQuaWQpKSx0Lm9uRXJyb3IpKSwhMSkpLGV9KSkpLHk9dGhpcy5hZnRlcixtPWcobyhvKG8obyhbXSxpKHApLCExKSxpKHYpLCExKSxpKGEpLCExKSxpKGQpLCExKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBTKHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGMuZm9ybWF0VHJhbnNpdGlvbih0KX0pKX0pKSk7dHJ5e2Zvcih2YXIgeD1yKHkpLHc9eC5uZXh0KCk7IXcuZG9uZTt3PXgubmV4dCgpKXt2YXIgYj13LnZhbHVlO20ucHVzaChiKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7dyYmIXcuZG9uZSYmKGU9eC5yZXR1cm4pJiZlLmNhbGwoeCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fXJldHVybiBtfSxhfSgpO3ZhciBGdD17ZGVmZXJFdmVudHM6ITF9LFV0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMSx0aGlzLnF1ZXVlPVtdLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5vcHRpb25zPWUoZSh7fSxGdCksdCl9cmV0dXJuIHQucHJvdG90eXBlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZD0hMCx0KXtpZighdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKXJldHVybiB2b2lkIHRoaXMuc2NoZWR1bGUodCk7dGhpcy5wcm9jZXNzKHQpfXRoaXMuZmx1c2hFdmVudHMoKX0sdC5wcm90b3R5cGUuc2NoZWR1bGU9ZnVuY3Rpb24odCl7aWYodGhpcy5pbml0aWFsaXplZCYmIXRoaXMucHJvY2Vzc2luZ0V2ZW50KXtpZigwIT09dGhpcy5xdWV1ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiRXZlbnQgcXVldWUgc2hvdWxkIGJlIGVtcHR5IHdoZW4gaXQgaXMgbm90IHByb2Nlc3NpbmcgZXZlbnRzXCIpO3RoaXMucHJvY2Vzcyh0KSx0aGlzLmZsdXNoRXZlbnRzKCl9ZWxzZSB0aGlzLnF1ZXVlLnB1c2godCl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5xdWV1ZT1bXX0sdC5wcm90b3R5cGUuZmx1c2hFdmVudHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5xdWV1ZS5zaGlmdCgpO3Q7KXRoaXMucHJvY2Vzcyh0KSx0PXRoaXMucXVldWUuc2hpZnQoKX0sdC5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbih0KXt0aGlzLnByb2Nlc3NpbmdFdmVudD0hMDt0cnl7dCgpfWNhdGNoKHQpe3Rocm93IHRoaXMuY2xlYXIoKSx0fWZpbmFsbHl7dGhpcy5wcm9jZXNzaW5nRXZlbnQ9ITF9fSx0fSgpLEJ0PW5ldyBNYXAsSnQ9MCxxdD1mdW5jdGlvbigpe3JldHVyblwieDpcIi5jb25jYXQoSnQrKyl9LCR0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEJ0LnNldCh0LGUpLHR9LFh0PWZ1bmN0aW9uKHQpe3JldHVybiBCdC5nZXQodCl9LEh0PWZ1bmN0aW9uKHQpe0J0LmRlbGV0ZSh0KX07ZnVuY3Rpb24gR3QoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6dm9pZCAwfWZ1bmN0aW9uIEt0KHQpe2lmKEd0KCkpe3ZhciBlPWZ1bmN0aW9uKCl7dmFyIHQ9R3QoKTtpZih0JiZcIl9feHN0YXRlX19cImluIHQpcmV0dXJuIHQuX194c3RhdGVfX30oKTtlJiZlLnJlZ2lzdGVyKHQpfX1mdW5jdGlvbiBRdCh0LG4pe3ZvaWQgMD09PW4mJihuPXt9KTt2YXIgcixpPXQuaW5pdGlhbFN0YXRlLG89bmV3IFNldCxhPVtdLHM9ITEsYz0ocj17aWQ6bi5pZCxzZW5kOmZ1bmN0aW9uKGUpe2EucHVzaChlKSxmdW5jdGlvbigpe2lmKCFzKXtmb3Iocz0hMDthLmxlbmd0aD4wOyl7dmFyIGU9YS5zaGlmdCgpO2k9dC50cmFuc2l0aW9uKGksZSx1KSxvLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHQoaSl9KSl9cz0hMX19KCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHN1YnNjcmliZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9eih0LGUsbik7cmV0dXJuIG8uYWRkKHIpLHIubmV4dChpKSx7dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXtvLmRlbGV0ZShyKX19fX0sZSh7c3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0dXJue3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7fX19LGlkOlwiYW5vbnltb3VzXCIsZ2V0U25hcHNob3Q6ZnVuY3Rpb24oKXt9fSxyKSksdT17cGFyZW50Om4ucGFyZW50LHNlbGY6YyxpZDpuLmlkfHxcImFub255bW91c1wiLG9ic2VydmVyczpvfTtyZXR1cm4gaT10LnN0YXJ0P3Quc3RhcnQodSk6aSxjfXZhciBXdCxZdD17c3luYzohMSxhdXRvRm9yd2FyZDohMX07KFd0PXQuSW50ZXJwcmV0ZXJTdGF0dXN8fCh0LkludGVycHJldGVyU3RhdHVzPXt9KSlbV3QuTm90U3RhcnRlZD0wXT1cIk5vdFN0YXJ0ZWRcIixXdFtXdC5SdW5uaW5nPTFdPVwiUnVubmluZ1wiLFd0W1d0LlN0b3BwZWQ9Ml09XCJTdG9wcGVkXCI7dmFyIFp0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihyLGkpe3ZhciBvPXRoaXM7dm9pZCAwPT09aSYmKGk9bi5kZWZhdWx0T3B0aW9ucyksdGhpcy5tYWNoaW5lPXIsdGhpcy5zY2hlZHVsZXI9bmV3IFV0LHRoaXMuZGVsYXllZEV2ZW50c01hcD17fSx0aGlzLmxpc3RlbmVycz1uZXcgU2V0LHRoaXMuY29udGV4dExpc3RlbmVycz1uZXcgU2V0LHRoaXMuc3RvcExpc3RlbmVycz1uZXcgU2V0LHRoaXMuZG9uZUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuZXZlbnRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLnNlbmRMaXN0ZW5lcnM9bmV3IFNldCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCx0aGlzLmNoaWxkcmVuPW5ldyBNYXAsdGhpcy5mb3J3YXJkVG89bmV3IFNldCx0aGlzLmluaXQ9dGhpcy5zdGFydCx0aGlzLnNlbmQ9ZnVuY3Rpb24oZSxuKXtpZihUKGUpKXJldHVybiBvLmJhdGNoKGUpLG8uc3RhdGU7dmFyIHI9TChWKGUsbikpO2lmKG8uc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5TdG9wcGVkKXJldHVybiBvLnN0YXRlO2lmKG8uc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nJiYhby5vcHRpb25zLmRlZmVyRXZlbnRzKXRocm93IG5ldyBFcnJvcignRXZlbnQgXCInLmNvbmNhdChyLm5hbWUsJ1wiIHdhcyBzZW50IHRvIHVuaW5pdGlhbGl6ZWQgc2VydmljZSBcIicpLmNvbmNhdChvLm1hY2hpbmUuaWQsJ1wiLiBNYWtlIHN1cmUgLnN0YXJ0KCkgaXMgY2FsbGVkIGZvciB0aGlzIHNlcnZpY2UsIG9yIHNldCB7IGRlZmVyRXZlbnRzOiB0cnVlIH0gaW4gdGhlIHNlcnZpY2Ugb3B0aW9ucy5cXG5FdmVudDogJykuY29uY2F0KEpTT04uc3RyaW5naWZ5KHIuZGF0YSkpKTtyZXR1cm4gby5zY2hlZHVsZXIuc2NoZWR1bGUoKGZ1bmN0aW9uKCl7by5mb3J3YXJkKHIpO3ZhciB0PW8ubmV4dFN0YXRlKHIpO28udXBkYXRlKHQscil9KSksby5fc3RhdGV9LHRoaXMuc2VuZFRvPWZ1bmN0aW9uKG4scil7dmFyIGksYT1vLnBhcmVudCYmKHI9PT10LlNwZWNpYWxUYXJnZXRzLlBhcmVudHx8by5wYXJlbnQuaWQ9PT1yKSxzPWE/by5wYXJlbnQ6QShyKT9vLmNoaWxkcmVuLmdldChyKXx8WHQocik6KGk9cikmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2VuZD9yOnZvaWQgMDtpZihzKVwibWFjaGluZVwiaW4gcz9zLnNlbmQoZShlKHt9LG4pLHtuYW1lOm4ubmFtZT09PWF0P1wiXCIuY29uY2F0KEF0KG8uaWQpKTpuLm5hbWUsb3JpZ2luOm8uc2Vzc2lvbklkfSkpOnMuc2VuZChuLmRhdGEpO2Vsc2UgaWYoIWEpdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIHNlbmQgZXZlbnQgdG8gY2hpbGQgJ1wiLmNvbmNhdChyLFwiJyBmcm9tIHNlcnZpY2UgJ1wiKS5jb25jYXQoby5pZCxcIicuXCIpKX07dmFyIGE9ZShlKHt9LG4uZGVmYXVsdE9wdGlvbnMpLGkpLHM9YS5jbG9jayxjPWEubG9nZ2VyLHU9YS5wYXJlbnQsaD1hLmlkLGY9dm9pZCAwIT09aD9oOnIuaWQ7dGhpcy5pZD1mLHRoaXMubG9nZ2VyPWMsdGhpcy5jbG9jaz1zLHRoaXMucGFyZW50PXUsdGhpcy5vcHRpb25zPWEsdGhpcy5zY2hlZHVsZXI9bmV3IFV0KHtkZWZlckV2ZW50czp0aGlzLm9wdGlvbnMuZGVmZXJFdmVudHN9KSx0aGlzLnNlc3Npb25JZD1xdCgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobi5wcm90b3R5cGUsXCJpbml0aWFsU3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faW5pdGlhbFN0YXRlP3RoaXMuX2luaXRpYWxTdGF0ZTpqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiB0Ll9pbml0aWFsU3RhdGU9dC5tYWNoaW5lLmluaXRpYWxTdGF0ZSx0Ll9pbml0aWFsU3RhdGV9KSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwic3RhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXRlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLG4ucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24odCxlKXt2YXIgbixpO3RyeXtmb3IodmFyIG89cih0LmFjdGlvbnMpLGE9by5uZXh0KCk7IWEuZG9uZTthPW8ubmV4dCgpKXt2YXIgcz1hLnZhbHVlO3RoaXMuZXhlYyhzLHQsZSl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2EmJiFhLmRvbmUmJihpPW8ucmV0dXJuKSYmaS5jYWxsKG8pfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX19LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUpe3ZhciBuLGksbyxhLHMsYyx1LGgsZj10aGlzO2lmKHQuX3Nlc3Npb25pZD10aGlzLnNlc3Npb25JZCx0aGlzLl9zdGF0ZT10LHRoaXMub3B0aW9ucy5leGVjdXRlJiZ0aGlzLmV4ZWN1dGUodGhpcy5zdGF0ZSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtmLnN0YXRlLmNoaWxkcmVuW3QuaWRdPXR9KSksdGhpcy5kZXZUb29scyYmdGhpcy5kZXZUb29scy5zZW5kKGUuZGF0YSx0KSx0LmV2ZW50KXRyeXtmb3IodmFyIGw9cih0aGlzLmV2ZW50TGlzdGVuZXJzKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7KDAsZC52YWx1ZSkodC5ldmVudCl9fWNhdGNoKHQpe249e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e2QmJiFkLmRvbmUmJihpPWwucmV0dXJuKSYmaS5jYWxsKGwpfWZpbmFsbHl7aWYobil0aHJvdyBuLmVycm9yfX10cnl7Zm9yKHZhciBwPXIodGhpcy5saXN0ZW5lcnMpLHY9cC5uZXh0KCk7IXYuZG9uZTt2PXAubmV4dCgpKXsoMCx2LnZhbHVlKSh0LHQuZXZlbnQpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYoYT1wLnJldHVybikmJmEuY2FsbChwKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19dHJ5e2Zvcih2YXIgeT1yKHRoaXMuY29udGV4dExpc3RlbmVycyksZz15Lm5leHQoKTshZy5kb25lO2c9eS5uZXh0KCkpeygwLGcudmFsdWUpKHRoaXMuc3RhdGUuY29udGV4dCx0aGlzLnN0YXRlLmhpc3Rvcnk/dGhpcy5zdGF0ZS5oaXN0b3J5LmNvbnRleHQ6dm9pZCAwKX19Y2F0Y2godCl7cz17ZXJyb3I6dH19ZmluYWxseXt0cnl7ZyYmIWcuZG9uZSYmKGM9eS5yZXR1cm4pJiZjLmNhbGwoeSl9ZmluYWxseXtpZihzKXRocm93IHMuZXJyb3J9fXZhciBtPUgodC5jb25maWd1cmF0aW9ufHxbXSx0aGlzLm1hY2hpbmUpO2lmKHRoaXMuc3RhdGUuY29uZmlndXJhdGlvbiYmbSl7dmFyIFM9dC5jb25maWd1cmF0aW9uLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVyblwiZmluYWxcIj09PXQudHlwZSYmdC5wYXJlbnQ9PT1mLm1hY2hpbmV9KSksdz1TJiZTLmRvbmVEYXRhP3goUy5kb25lRGF0YSx0LmNvbnRleHQsZSk6dm9pZCAwO3RyeXtmb3IodmFyIGI9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLF89Yi5uZXh0KCk7IV8uZG9uZTtfPWIubmV4dCgpKXsoMCxfLnZhbHVlKShOdCh0aGlzLmlkLHcpKX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7XyYmIV8uZG9uZSYmKGg9Yi5yZXR1cm4pJiZoLmNhbGwoYil9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fXRoaXMuc3RvcCgpfX0sbi5wcm90b3R5cGUub25UcmFuc2l0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVycy5hZGQoZSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmUodGhpcy5zdGF0ZSx0aGlzLnN0YXRlLmV2ZW50KSx0aGlzfSxuLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG89dGhpcztpZighZSlyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fTt2YXIgYT1yO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/aT1lOihpPWUubmV4dC5iaW5kKGUpLGE9ZS5jb21wbGV0ZS5iaW5kKGUpKSx0aGlzLmxpc3RlbmVycy5hZGQoaSksdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLlJ1bm5pbmcmJmkodGhpcy5zdGF0ZSksYSYmdGhpcy5vbkRvbmUoYSkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7aSYmby5saXN0ZW5lcnMuZGVsZXRlKGkpLGEmJm8uZG9uZUxpc3RlbmVycy5kZWxldGUoYSl9fX0sbi5wcm90b3R5cGUub25FdmVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ldmVudExpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub25TZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbmRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uQ2hhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbnRleHRMaXN0ZW5lcnMuYWRkKHQpLHRoaXN9LG4ucHJvdG90eXBlLm9uU3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdG9wTGlzdGVuZXJzLmFkZCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbkRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZG9uZUxpc3RlbmVycy5hZGQodCksdGhpc30sbi5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxpc3RlbmVycy5kZWxldGUodCksdGhpcy5ldmVudExpc3RlbmVycy5kZWxldGUodCksdGhpcy5zZW5kTGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzLnN0b3BMaXN0ZW5lcnMuZGVsZXRlKHQpLHRoaXMuZG9uZUxpc3RlbmVycy5kZWxldGUodCksdGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh0KSx0aGlzfSxuLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbihlKXt2YXIgbj10aGlzO2lmKHRoaXMuc3RhdHVzPT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXJldHVybiB0aGlzOyR0KHRoaXMuc2Vzc2lvbklkLHRoaXMpLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5zdGF0dXM9dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nO3ZhciByPXZvaWQgMD09PWU/dGhpcy5pbml0aWFsU3RhdGU6anQodGhpcywoZnVuY3Rpb24oKXtyZXR1cm4hQSh0PWUpJiZcInZhbHVlXCJpbiB0JiZcImhpc3RvcnlcImluIHQ/bi5tYWNoaW5lLnJlc29sdmVTdGF0ZShlKTpuLm1hY2hpbmUucmVzb2x2ZVN0YXRlKGt0LmZyb20oZSxuLm1hY2hpbmUuY29udGV4dCkpO3ZhciB0fSkpO3JldHVybiB0aGlzLm9wdGlvbnMuZGV2VG9vbHMmJnRoaXMuYXR0YWNoRGV2KCksdGhpcy5zY2hlZHVsZXIuaW5pdGlhbGl6ZSgoZnVuY3Rpb24oKXtuLnVwZGF0ZShyLGh0KX0pKSx0aGlzfSxuLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7dmFyIGUsbixpLG8sYSxjLHUsaCxmLGwsZD10aGlzO3RyeXtmb3IodmFyIHA9cih0aGlzLmxpc3RlbmVycyksdj1wLm5leHQoKTshdi5kb25lO3Y9cC5uZXh0KCkpe3ZhciB5PXYudmFsdWU7dGhpcy5saXN0ZW5lcnMuZGVsZXRlKHkpfX1jYXRjaCh0KXtlPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt2JiYhdi5kb25lJiYobj1wLnJldHVybikmJm4uY2FsbChwKX1maW5hbGx5e2lmKGUpdGhyb3cgZS5lcnJvcn19dHJ5e2Zvcih2YXIgZz1yKHRoaXMuc3RvcExpc3RlbmVycyksbT1nLm5leHQoKTshbS5kb25lO209Zy5uZXh0KCkpeyh5PW0udmFsdWUpKCksdGhpcy5zdG9wTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7aT17ZXJyb3I6dH19ZmluYWxseXt0cnl7bSYmIW0uZG9uZSYmKG89Zy5yZXR1cm4pJiZvLmNhbGwoZyl9ZmluYWxseXtpZihpKXRocm93IGkuZXJyb3J9fXRyeXtmb3IodmFyIFM9cih0aGlzLmNvbnRleHRMaXN0ZW5lcnMpLHg9Uy5uZXh0KCk7IXguZG9uZTt4PVMubmV4dCgpKXt5PXgudmFsdWU7dGhpcy5jb250ZXh0TGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7YT17ZXJyb3I6dH19ZmluYWxseXt0cnl7eCYmIXguZG9uZSYmKGM9Uy5yZXR1cm4pJiZjLmNhbGwoUyl9ZmluYWxseXtpZihhKXRocm93IGEuZXJyb3J9fXRyeXtmb3IodmFyIHc9cih0aGlzLmRvbmVMaXN0ZW5lcnMpLGI9dy5uZXh0KCk7IWIuZG9uZTtiPXcubmV4dCgpKXt5PWIudmFsdWU7dGhpcy5kb25lTGlzdGVuZXJzLmRlbGV0ZSh5KX19Y2F0Y2godCl7dT17ZXJyb3I6dH19ZmluYWxseXt0cnl7YiYmIWIuZG9uZSYmKGg9dy5yZXR1cm4pJiZoLmNhbGwodyl9ZmluYWxseXtpZih1KXRocm93IHUuZXJyb3J9fWlmKCF0aGlzLmluaXRpYWxpemVkKXJldHVybiB0aGlzO3RoaXMuc3RhdGUuY29uZmlndXJhdGlvbi5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxuO3RyeXtmb3IodmFyIGk9cih0LmRlZmluaXRpb24uZXhpdCksbz1pLm5leHQoKTshby5kb25lO289aS5uZXh0KCkpe3ZhciBhPW8udmFsdWU7ZC5leGVjKGEsZC5zdGF0ZSl9fWNhdGNoKHQpe2U9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e28mJiFvLmRvbmUmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpfWZpbmFsbHl7aWYoZSl0aHJvdyBlLmVycm9yfX19KSksdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbih0KXtOKHQuc3RvcCkmJnQuc3RvcCgpfSkpO3RyeXtmb3IodmFyIF89cihzKHRoaXMuZGVsYXllZEV2ZW50c01hcCkpLEU9Xy5uZXh0KCk7IUUuZG9uZTtFPV8ubmV4dCgpKXt2YXIgVD1FLnZhbHVlO3RoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuZGVsYXllZEV2ZW50c01hcFtUXSl9fWNhdGNoKHQpe2Y9e2Vycm9yOnR9fWZpbmFsbHl7dHJ5e0UmJiFFLmRvbmUmJihsPV8ucmV0dXJuKSYmbC5jYWxsKF8pfWZpbmFsbHl7aWYoZil0aHJvdyBmLmVycm9yfX1yZXR1cm4gdGhpcy5zY2hlZHVsZXIuY2xlYXIoKSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RhdHVzPXQuSW50ZXJwcmV0ZXJTdGF0dXMuU3RvcHBlZCxIdCh0aGlzLnNlc3Npb25JZCksdGhpc30sbi5wcm90b3R5cGUuYmF0Y2g9ZnVuY3Rpb24obil7dmFyIGE9dGhpcztpZih0aGlzLnN0YXR1cz09PXQuSW50ZXJwcmV0ZXJTdGF0dXMuTm90U3RhcnRlZCYmdGhpcy5vcHRpb25zLmRlZmVyRXZlbnRzKTtlbHNlIGlmKHRoaXMuc3RhdHVzIT09dC5JbnRlcnByZXRlclN0YXR1cy5SdW5uaW5nKXRocm93IG5ldyBFcnJvcihcIlwiLmNvbmNhdChuLmxlbmd0aCwnIGV2ZW50KHMpIHdlcmUgc2VudCB0byB1bmluaXRpYWxpemVkIHNlcnZpY2UgXCInKS5jb25jYXQodGhpcy5tYWNoaW5lLmlkLCdcIi4gTWFrZSBzdXJlIC5zdGFydCgpIGlzIGNhbGxlZCBmb3IgdGhpcyBzZXJ2aWNlLCBvciBzZXQgeyBkZWZlckV2ZW50czogdHJ1ZSB9IGluIHRoZSBzZXJ2aWNlIG9wdGlvbnMuJykpO3RoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKChmdW5jdGlvbigpe3ZhciB0LHMsYz1hLnN0YXRlLHU9ITEsaD1bXSxmPWZ1bmN0aW9uKHQpe3ZhciBuPUwodCk7YS5mb3J3YXJkKG4pLGM9anQoYSwoZnVuY3Rpb24oKXtyZXR1cm4gYS5tYWNoaW5lLnRyYW5zaXRpb24oYyxuKX0pKSxoLnB1c2guYXBwbHkoaCxvKFtdLGkoYy5hY3Rpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHI9YyxpPShuPXQpLmV4ZWMsZShlKHt9LG4pLHtleGVjOnZvaWQgMCE9PWk/ZnVuY3Rpb24oKXtyZXR1cm4gaShyLmNvbnRleHQsci5ldmVudCx7YWN0aW9uOm4sc3RhdGU6cixfZXZlbnQ6ci5fZXZlbnR9KX06dm9pZCAwfSk7dmFyIG4scixpfSkpKSwhMSkpLHU9dXx8ISFjLmNoYW5nZWR9O3RyeXtmb3IodmFyIGw9cihuKSxkPWwubmV4dCgpOyFkLmRvbmU7ZD1sLm5leHQoKSl7ZihkLnZhbHVlKX19Y2F0Y2goZSl7dD17ZXJyb3I6ZX19ZmluYWxseXt0cnl7ZCYmIWQuZG9uZSYmKHM9bC5yZXR1cm4pJiZzLmNhbGwobCl9ZmluYWxseXtpZih0KXRocm93IHQuZXJyb3J9fWMuY2hhbmdlZD11LGMuYWN0aW9ucz1oLGEudXBkYXRlKGMsTChuW24ubGVuZ3RoLTFdKSl9KSl9LG4ucHJvdG90eXBlLnNlbmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZW5kLmJpbmQodGhpcyx0KX0sbi5wcm90b3R5cGUubmV4dFN0YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1MKHQpO2lmKDA9PT1uLm5hbWUuaW5kZXhPZihvdCkmJiF0aGlzLnN0YXRlLm5leHRFdmVudHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LmluZGV4T2Yob3QpfSkpKXRocm93IG4uZGF0YS5kYXRhO3JldHVybiBqdCh0aGlzLChmdW5jdGlvbigpe3JldHVybiBlLm1hY2hpbmUudHJhbnNpdGlvbihlLnN0YXRlLG4pfSkpfSxuLnByb3RvdHlwZS5mb3J3YXJkPWZ1bmN0aW9uKHQpe3ZhciBlLG47dHJ5e2Zvcih2YXIgaT1yKHRoaXMuZm9yd2FyZFRvKSxvPWkubmV4dCgpOyFvLmRvbmU7bz1pLm5leHQoKSl7dmFyIGE9by52YWx1ZSxzPXRoaXMuY2hpbGRyZW4uZ2V0KGEpO2lmKCFzKXRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb3J3YXJkIGV2ZW50ICdcIi5jb25jYXQodCxcIicgZnJvbSBpbnRlcnByZXRlciAnXCIpLmNvbmNhdCh0aGlzLmlkLFwiJyB0byBub25leGlzdGFudCBjaGlsZCAnXCIpLmNvbmNhdChhLFwiJy5cIikpO3Muc2VuZCh0KX19Y2F0Y2godCl7ZT17ZXJyb3I6dH19ZmluYWxseXt0cnl7byYmIW8uZG9uZSYmKG49aS5yZXR1cm4pJiZuLmNhbGwoaSl9ZmluYWxseXtpZihlKXRocm93IGUuZXJyb3J9fX0sbi5wcm90b3R5cGUuZGVmZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRlbGF5ZWRFdmVudHNNYXBbdC5pZF09dGhpcy5jbG9jay5zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QudG8/ZS5zZW5kVG8odC5fZXZlbnQsdC50byk6ZS5zZW5kKHQuX2V2ZW50KX0pLHQuZGVsYXkpfSxuLnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdKSxkZWxldGUgdGhpcy5kZWxheWVkRXZlbnRzTWFwW3RdfSxuLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKGUsbixyKXt2b2lkIDA9PT1yJiYocj10aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpb25zKTt2YXIgaT1uLmNvbnRleHQsbz1uLl9ldmVudCxhPWUuZXhlY3x8ZnQoZS50eXBlLHIpLHM9TihhKT9hOmE/YS5leGVjOmUuZXhlYztpZihzKXRyeXtyZXR1cm4gcyhpLG8uZGF0YSx7YWN0aW9uOmUsc3RhdGU6dGhpcy5zdGF0ZSxfZXZlbnQ6b30pfWNhdGNoKHQpe3Rocm93IHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5zZW5kKHt0eXBlOlwieHN0YXRlLmVycm9yXCIsZGF0YTp0fSksdH1zd2l0Y2goZS50eXBlKXtjYXNlIFk6dmFyIGM9ZTtpZihcIm51bWJlclwiPT10eXBlb2YgYy5kZWxheSlyZXR1cm4gdm9pZCB0aGlzLmRlZmVyKGMpO2MudG8/dGhpcy5zZW5kVG8oYy5fZXZlbnQsYy50byk6dGhpcy5zZW5kKGMuX2V2ZW50KTticmVhaztjYXNlIFo6dGhpcy5jYW5jZWwoZS5zZW5kSWQpO2JyZWFrO2Nhc2UgSzp2YXIgdT1lLmFjdGl2aXR5O2lmKCF0aGlzLnN0YXRlLmFjdGl2aXRpZXNbdS5pZHx8dS50eXBlXSlicmVhaztpZih1LnR5cGU9PT10LkFjdGlvblR5cGVzLkludm9rZSl7dmFyIGg9TSh1LnNyYyksZj10aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlcz90aGlzLm1hY2hpbmUub3B0aW9ucy5zZXJ2aWNlc1toLnR5cGVdOnZvaWQgMCxsPXUuaWQsZD11LmRhdGEscD1cImF1dG9Gb3J3YXJkXCJpbiB1P3UuYXV0b0ZvcndhcmQ6ISF1LmZvcndhcmQ7aWYoIWYpcmV0dXJuO3ZhciB2PWQ/eChkLGksbyk6dm9pZCAwO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBmKXJldHVybjt2YXIgeT1OKGYpP2YoaSxvLmRhdGEse2RhdGE6dixzcmM6aCxtZXRhOnUubWV0YX0pOmY7aWYoIXkpcmV0dXJuO3ZhciBnPXZvaWQgMDtrKHkpJiYoeT12P3kud2l0aENvbnRleHQodik6eSxnPXthdXRvRm9yd2FyZDpwfSksdGhpcy5zcGF3bih5LGwsZyl9ZWxzZSB0aGlzLnNwYXduQWN0aXZpdHkodSk7YnJlYWs7Y2FzZSBROnRoaXMuc3RvcENoaWxkKGUuYWN0aXZpdHkuaWQpO2JyZWFrO2Nhc2UgbnQ6dmFyIG09ZS5sYWJlbCxTPWUudmFsdWU7bT90aGlzLmxvZ2dlcihtLFMpOnRoaXMubG9nZ2VyKFMpfX0sbi5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5jaGlsZHJlbi5kZWxldGUodCksdGhpcy5mb3J3YXJkVG8uZGVsZXRlKHQpLG51bGw9PT0oZT10aGlzLnN0YXRlKXx8dm9pZCAwPT09ZXx8ZGVsZXRlIGUuY2hpbGRyZW5bdF19LG4ucHJvdG90eXBlLnN0b3BDaGlsZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNoaWxkcmVuLmdldCh0KTtlJiYodGhpcy5yZW1vdmVDaGlsZCh0KSxOKGUuc3RvcCkmJmUuc3RvcCgpKX0sbi5wcm90b3R5cGUuc3Bhd249ZnVuY3Rpb24odCxuLHIpe2lmKHcodCkpcmV0dXJuIHRoaXMuc3Bhd25Qcm9taXNlKFByb21pc2UucmVzb2x2ZSh0KSxuKTtpZihOKHQpKXJldHVybiB0aGlzLnNwYXduQ2FsbGJhY2sodCxuKTtpZihmdW5jdGlvbih0KXt0cnl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdC5zZW5kfWNhdGNoKHQpe3JldHVybiExfX0obz10KSYmXCJpZFwiaW4gbylyZXR1cm4gdGhpcy5zcGF3bkFjdG9yKHQsbik7aWYoZnVuY3Rpb24odCl7dHJ5e3JldHVyblwic3Vic2NyaWJlXCJpbiB0JiZOKHQuc3Vic2NyaWJlKX1jYXRjaCh0KXtyZXR1cm4hMX19KHQpKXJldHVybiB0aGlzLnNwYXduT2JzZXJ2YWJsZSh0LG4pO2lmKGsodCkpcmV0dXJuIHRoaXMuc3Bhd25NYWNoaW5lKHQsZShlKHt9LHIpLHtpZDpufSkpO2lmKG51bGwhPT0oaT10KSYmXCJvYmplY3RcIj09dHlwZW9mIGkmJlwidHJhbnNpdGlvblwiaW4gaSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS50cmFuc2l0aW9uKXJldHVybiB0aGlzLnNwYXduQmVoYXZpb3IodCxuKTt0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBzcGF3biBlbnRpdHkgXCInLmNvbmNhdChuLCdcIiBvZiB0eXBlIFwiJykuY29uY2F0KHR5cGVvZiB0LCdcIi4nKSk7dmFyIGksb30sbi5wcm90b3R5cGUuc3Bhd25NYWNoaW5lPWZ1bmN0aW9uKHQscil7dmFyIGk9dGhpczt2b2lkIDA9PT1yJiYocj17fSk7dmFyIG89bmV3IG4odCxlKGUoe30sdGhpcy5vcHRpb25zKSx7cGFyZW50OnRoaXMsaWQ6ci5pZHx8dC5pZH0pKSxhPWUoZSh7fSxZdCkscik7YS5zeW5jJiZvLm9uVHJhbnNpdGlvbigoZnVuY3Rpb24odCl7aS5zZW5kKHN0LHtzdGF0ZTp0LGlkOm8uaWR9KX0pKTt2YXIgcz1vO3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChvLmlkLHMpLGEuYXV0b0ZvcndhcmQmJnRoaXMuZm9yd2FyZFRvLmFkZChvLmlkKSxvLm9uRG9uZSgoZnVuY3Rpb24odCl7aS5yZW1vdmVDaGlsZChvLmlkKSxpLnNlbmQoTCh0LHtvcmlnaW46by5pZH0pKX0pKS5zdGFydCgpLHN9LG4ucHJvdG90eXBlLnNwYXduQmVoYXZpb3I9ZnVuY3Rpb24odCxlKXt2YXIgbj1RdCh0LHtpZDplLHBhcmVudDp0aGlzfSk7cmV0dXJuIHRoaXMuY2hpbGRyZW4uc2V0KGUsbiksbn0sbi5wcm90b3R5cGUuc3Bhd25Qcm9taXNlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scj10aGlzLGk9ITE7dC50aGVuKChmdW5jdGlvbih0KXtpfHwobj10LHIucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoTnQoZSx0KSx7b3JpZ2luOmV9KSkpfSksKGZ1bmN0aW9uKHQpe2lmKCFpKXtyLnJlbW92ZUNoaWxkKGUpO3ZhciBuPUF0KGUsdCk7dHJ5e3Iuc2VuZChMKG4se29yaWdpbjplfSkpfWNhdGNoKHQpe3IuZGV2VG9vbHMmJnIuZGV2VG9vbHMuc2VuZChuLHIuc3RhdGUpLHIubWFjaGluZS5zdHJpY3QmJnIuc3RvcCgpfX19KSk7dmFyIG89e2lkOmUsc2VuZDpmdW5jdGlvbigpe30sc3Vic2NyaWJlOmZ1bmN0aW9uKGUsbixyKXt2YXIgaT16KGUsbixyKSxvPSExO3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe298fChpLm5leHQodCksb3x8aS5jb21wbGV0ZSgpKX0pLChmdW5jdGlvbih0KXtvfHxpLmVycm9yKHQpfSkpLHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybiBvPSEwfX19LHN0b3A6ZnVuY3Rpb24oKXtpPSEwfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxvKSxvfSxuLnByb3RvdHlwZS5zcGF3bkNhbGxiYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPXRoaXMsbz0hMSxhPW5ldyBTZXQscz1uZXcgU2V0O3RyeXtyPXQoKGZ1bmN0aW9uKHQpe249dCxzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKHQpfSkpLG98fGkuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe2EuYWRkKHQpfSkpfWNhdGNoKHQpe3RoaXMuc2VuZChBdChlLHQpKX1pZih3KHIpKXJldHVybiB0aGlzLnNwYXduUHJvbWlzZShyLGUpO3ZhciBjPXtpZDplLHNlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9LHN1YnNjcmliZTpmdW5jdGlvbih0KXtyZXR1cm4gcy5hZGQodCkse3Vuc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cy5kZWxldGUodCl9fX0sc3RvcDpmdW5jdGlvbigpe289ITAsTihyKSYmcigpfSx0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57aWQ6ZX19LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59fTtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSxjKSxjfSxuLnByb3RvdHlwZS5zcGF3bk9ic2VydmFibGU9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXRoaXMsaT10LnN1YnNjcmliZSgoZnVuY3Rpb24odCl7bj10LHIuc2VuZChMKHQse29yaWdpbjplfSkpfSksKGZ1bmN0aW9uKHQpe3IucmVtb3ZlQ2hpbGQoZSksci5zZW5kKEwoQXQoZSx0KSx7b3JpZ2luOmV9KSl9KSwoZnVuY3Rpb24oKXtyLnJlbW92ZUNoaWxkKGUpLHIuc2VuZChMKE50KGUpLHtvcmlnaW46ZX0pKX0pKSxvPXtpZDplLHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbihlLG4scil7cmV0dXJuIHQuc3Vic2NyaWJlKGUsbixyKX0sc3RvcDpmdW5jdGlvbigpe3JldHVybiBpLnVuc3Vic2NyaWJlKCl9LGdldFNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG59LHRvSlNPTjpmdW5jdGlvbigpe3JldHVybntpZDplfX19O3JldHVybiB0aGlzLmNoaWxkcmVuLnNldChlLG8pLG99LG4ucHJvdG90eXBlLnNwYXduQWN0b3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5jaGlsZHJlbi5zZXQoZSx0KSx0fSxuLnByb3RvdHlwZS5zcGF3bkFjdGl2aXR5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFjaGluZS5vcHRpb25zJiZ0aGlzLm1hY2hpbmUub3B0aW9ucy5hY3Rpdml0aWVzP3RoaXMubWFjaGluZS5vcHRpb25zLmFjdGl2aXRpZXNbdC50eXBlXTp2b2lkIDA7aWYoZSl7dmFyIG49ZSh0aGlzLnN0YXRlLmNvbnRleHQsdCk7dGhpcy5zcGF3bkVmZmVjdCh0LmlkLG4pfX0sbi5wcm90b3R5cGUuc3Bhd25FZmZlY3Q9ZnVuY3Rpb24odCxlKXt0aGlzLmNoaWxkcmVuLnNldCh0LHtpZDp0LHNlbmQ6ZnVuY3Rpb24oKXt9LHN1YnNjcmliZTpmdW5jdGlvbigpe3JldHVybnt1bnN1YnNjcmliZTpmdW5jdGlvbigpe319fSxzdG9wOmV8fHZvaWQgMCxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe30sdG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue2lkOnR9fX0pfSxuLnByb3RvdHlwZS5hdHRhY2hEZXY9ZnVuY3Rpb24oKXt2YXIgdD1HdCgpO2lmKHRoaXMub3B0aW9ucy5kZXZUb29scyYmdCl7aWYodC5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fKXt2YXIgbj1cIm9iamVjdFwiPT10eXBlb2YgdGhpcy5vcHRpb25zLmRldlRvb2xzP3RoaXMub3B0aW9ucy5kZXZUb29sczp2b2lkIDA7dGhpcy5kZXZUb29scz10Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdChlKGUoe25hbWU6dGhpcy5pZCxhdXRvUGF1c2U6ITAsc3RhdGVTYW5pdGl6ZXI6ZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQudmFsdWUsY29udGV4dDp0LmNvbnRleHQsYWN0aW9uczp0LmFjdGlvbnN9fX0sbikse2ZlYXR1cmVzOmUoe2p1bXA6ITEsc2tpcDohMX0sbj9uLmZlYXR1cmVzOnZvaWQgMCl9KSx0aGlzLm1hY2hpbmUpLHRoaXMuZGV2VG9vbHMuaW5pdCh0aGlzLnN0YXRlKX1LdCh0aGlzKX19LG4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybntpZDp0aGlzLmlkfX0sbi5wcm90b3R5cGVbUF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZ2V0U25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT10LkludGVycHJldGVyU3RhdHVzLk5vdFN0YXJ0ZWQ/dGhpcy5pbml0aWFsU3RhdGU6dGhpcy5fc3RhdGV9LG4uZGVmYXVsdE9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJue2V4ZWN1dGU6ITAsZGVmZXJFdmVudHM6ITAsY2xvY2s6e3NldFRpbWVvdXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gc2V0VGltZW91dCh0LGUpfSxjbGVhclRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGNsZWFyVGltZW91dCh0KX19LGxvZ2dlcjp0LmNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksZGV2VG9vbHM6ITF9fShcInVuZGVmaW5lZFwiIT10eXBlb2Ygc2VsZj9zZWxmOmdsb2JhbCksbi5pbnRlcnByZXQ9dGUsbn0oKTtmdW5jdGlvbiB0ZSh0LGUpe3JldHVybiBuZXcgWnQodCxlKX12YXIgZWU9e3JhaXNlOnZ0LHNlbmQ6eXQsc2VuZFBhcmVudDpndCxzZW5kVXBkYXRlOm10LGxvZzpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10JiYodD1TdCkse3R5cGU6bnQsbGFiZWw6ZSxleHByOnR9fSxjYW5jZWw6eHQsc3RhcnQ6d3Qsc3RvcDpidCxhc3NpZ246X3QsYWZ0ZXI6RXQsZG9uZTpUdCxyZXNwb25kOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHl0KHQsZShlKHt9LG4pLHt0bzpmdW5jdGlvbih0LGUsbil7cmV0dXJuIG4uX2V2ZW50Lm9yaWdpbn19KSl9LGZvcndhcmRUbzpPdCxlc2NhbGF0ZTpmdW5jdGlvbihuLHIpe3JldHVybiBndCgoZnVuY3Rpb24odCxlLHIpe3JldHVybnt0eXBlOmF0LGRhdGE6TihuKT9uKHQsZSxyKTpufX0pLGUoZSh7fSxyKSx7dG86dC5TcGVjaWFsVGFyZ2V0cy5QYXJlbnR9KSl9LGNob29zZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLkNob29zZSxjb25kczplfX0scHVyZTpmdW5jdGlvbihlKXtyZXR1cm57dHlwZTp0LkFjdGlvblR5cGVzLlB1cmUsZ2V0OmV9fX07dC5JbnRlcnByZXRlcj1adCx0Lk1hY2hpbmU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB2b2lkIDA9PT1uJiYobj10LmNvbnRleHQpLG5ldyB6dCh0LGUsbil9LHQuU3RhdGU9a3QsdC5TdGF0ZU5vZGU9enQsdC5hY3Rpb25zPWVlLHQuYXNzaWduPV90LHQuY3JlYXRlTWFjaGluZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgenQodCxlKX0sdC5jcmVhdGVTY2hlbWE9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHQuZG9uZUludm9rZT1OdCx0LmZvcndhcmRUbz1PdCx0LmludGVycHJldD10ZSx0Lm1hcFN0YXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvO3RyeXtmb3IodmFyIGE9cihzKHQpKSx1PWEubmV4dCgpOyF1LmRvbmU7dT1hLm5leHQoKSl7dmFyIGg9dS52YWx1ZTtjKGgsZSkmJighb3x8ZS5sZW5ndGg+by5sZW5ndGgpJiYobz1oKX19Y2F0Y2godCl7bj17ZXJyb3I6dH19ZmluYWxseXt0cnl7dSYmIXUuZG9uZSYmKGk9YS5yZXR1cm4pJiZpLmNhbGwoYSl9ZmluYWxseXtpZihuKXRocm93IG4uZXJyb3J9fXJldHVybiB0W29dfSx0Lm1hdGNoU3RhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBvLGEscz1rdC5mcm9tKHQsdCBpbnN0YW5jZW9mIGt0P3QuY29udGV4dDp2b2lkIDApO3RyeXtmb3IodmFyIGM9cihlKSx1PWMubmV4dCgpOyF1LmRvbmU7dT1jLm5leHQoKSl7dmFyIGg9aSh1LnZhbHVlLDIpLGY9aFswXSxsPWhbMV07aWYocy5tYXRjaGVzKGYpKXJldHVybiBsKHMpfX1jYXRjaCh0KXtvPXtlcnJvcjp0fX1maW5hbGx5e3RyeXt1JiYhdS5kb25lJiYoYT1jLnJldHVybikmJmEuY2FsbChjKX1maW5hbGx5e2lmKG8pdGhyb3cgby5lcnJvcn19cmV0dXJuIG4ocyl9LHQubWF0Y2hlc1N0YXRlPWMsdC5zZW5kPXl0LHQuc2VuZFBhcmVudD1ndCx0LnNlbmRVcGRhdGU9bXQsdC5zcGF3bj1mdW5jdGlvbih0LG4pe3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQpP2UoZSh7fSxZdCkse25hbWU6dH0pOmUoZShlKHt9LFl0KSx7bmFtZTpDKCl9KSx0KX0obik7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP2Uuc3Bhd24odCxyLm5hbWUscik6VnQodCxyLm5hbWUpfShJdFtJdC5sZW5ndGgtMV0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pKTtcbiJdfQ== //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/OP15/script/defaultData.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, 'c41b05RVddEPK86siw92bnl', 'defaultData'); // OP15/script/defaultData.js "use strict"; exports.__esModule = true; exports.defaultData = void 0; var defaultData = { // "begin_audio": "http://staging-teach.cdn.ireadabc.com/b1e5378083adac9950839772c7b67f34.mp3", "begin_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", "playing_audio": "http://teach.cdn.ireadabc.com/549347d1be620d9d91b7420d45b3cb7a.mp3", "end_audio": "http://staging-teach.cdn.ireadabc.com/81e7a94e1420a4cbcaa583d4188ab145.mp3", "bgItem": { "url": "http://teach.cdn.ireadabc.com/adcccbd26e2cfa259920e24df01d4b92.png", "rect": { "x": 374.6, "y": 0, "width": 293.8, "height": 390 } }, "hotZoneItemArr": [{ "id": "1638090450402", "index": 0, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/c5c6cd890660a3c22fde393a3770458f.json", "name": "小汽车_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/cea107517406463474d907e306163226.json", "name": "小汽车_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/84bce64cd4259e604a458d08ddd75bec.png", "name": "小汽车_tex.png" }, "dragDot": { "x": 521.5, "y": 195 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090465133", "index": 1, "pic_url": "http://teach.cdn.ireadabc.com/70d02ee3788e373f707a45530cd2f9c0.png", "itemType": "pic", "fontScale": 0.81484375, "imgScale": 0.23579201934703747, "imgSizeW": 1246, "imgSizeH": 1654, "mapScale": 0.81484375, "dragDot": { "x": 521.5, "y": 195 }, "gIdx": "2", "rect": { "x": 0, "y": 1, "width": 293.8, "height": 390 } }, { "id": "1638090485031", "index": 2, "audio_url": "http://teach.cdn.ireadabc.com/e31c3b1914837a611d4d3bb1ceb00773.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/d2d7de9f8079f36e8354d16e4ca26476.json", "name": "房子_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/204ea18018a352a30fd233a46f9a0a1a.json", "name": "房子_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/cf8da0ab00a7d9f34bdf8f490c29dcbf.png", "name": "房子_tex.png" }, "dragDot": { "x": 521.5, "y": 195 }, "gIdx": "0", "labelText": "14", "posX": 578, "posY": 160.99791334496155, "rect": { "x": 124.9, "y": 108, "width": 170, "height": 106 } }, { "id": "1638090539787", "index": 3, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/ed2ac4931a9c00ff6c4298381722676e.json", "name": "牛_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/0e153093ee7265b6a843847543d6110b.json", "name": "牛_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/631661e13616eea6cde9f9e6610f5008.png", "name": "牛_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090562867", "index": 4, "audio_url": "http://teach.cdn.ireadabc.com/bf1924c502ca1a4ac928a31e7c8aa70e.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/bd3c2cc93b1593433a58d8482972ff66.json", "name": "苹果_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/1f54df317a8c86271e29d6db3ffb55ce.json", "name": "苹果_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/734ac06a7ef018b457e7ac7692789ffa.png", "name": "苹果_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "0", "labelText": "6", "posX": 429, "posY": 146, "rect": { "x": -0.1, "y": 70, "width": 122, "height": 152 } }, { "id": "1638090594247", "index": 5, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/1d4b251caf0c0b8245fb17cd8445672c.json", "name": "农夫_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/1fdd04cacb6d543cf05ce64e8124a6ff.json", "name": "农夫_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/8f582cb39eb349da08e06289b0ce6c16.png", "name": "农夫_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090663056", "index": 6, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/4503721901880d0b6c3ad6d4261e958b.json", "name": "小女孩_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/fc4fd0b2f672dff7c7b2148830164090.json", "name": "小女孩_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/4be41c15972caf99eef956ba48759c91.png", "name": "小女孩_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090685571", "index": 7, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/55951c794b414ab58cca023642819e37.json", "name": "母鸡_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/47b93323b1d1e1e6020704c537f46820.json", "name": "母鸡_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/dd66021ff860b02a559d59817c71e27f.png", "name": "母鸡_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090695652", "index": 8, "audio_url": "http://teach.cdn.ireadabc.com/323feb19d153069702ffd21097f18f79.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/cd7c7a756c0f79d28f419576e3b85b0c.json", "name": "鸭子_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/7613f30893a5f64773a77723c1d67f0d.json", "name": "鸭子_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/59b2293ef4eea9d64ff9821bc5d69a6d.png", "name": "鸭子_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "0", "labelText": "11", "posX": 564.4993151491155, "posY": 247.99735690361797, "rect": { "x": 127.9, "y": 216, "width": 124, "height": 64 } }, { "id": "1638090758159", "index": 9, "audio_url": "http://teach.cdn.ireadabc.com/b903b174f09107517b5d6f8934b73447.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/b9fa85c227daa6539f12cab5a5058052.json", "name": "鸡蛋_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/99aa8de7b69000ac6c5e0fb6a508b692.json", "name": "鸡蛋_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/09bd0a34a4508613fd7c167724e4a969.png", "name": "鸡蛋_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "0", "labelText": "7", "posX": 471.50036382703234, "posY": 291.99683256465954, "rect": { "x": 67.4, "y": 223, "width": 59, "height": 138 } }, { "id": "1638090812155", "index": 10, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/357fef8204228afb43d0ce73746228e5.json", "name": "鱼_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/f694e5442095a317fc7d8b1390e630c7.json", "name": "鱼_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/f566cca10fd83f62a465b144ac73d483.png", "name": "鱼_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }, { "id": "1638090824244", "index": 11, "audio_url": "http://teach.cdn.ireadabc.com/2656b72aec7f6def07713fbc99309168.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/20cbf3d186a197baaed38204dd017f51.json", "name": "猫_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/d7de5a32de3ee1ad660dc509ba8adf1d.json", "name": "猫_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/af86e967aab8632cd0b26d60a62f0675.png", "name": "猫_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "0", "labelText": "10", "posX": 408.50114498507236, "posY": 288.99689676943, "rect": { "x": 1.4, "y": 222, "width": 65, "height": 134 } }, { "id": "1638090897644", "index": 12, "audio_url": "http://teach.cdn.ireadabc.com/9bbf8ba2fa7f96ea5a95c27a384414a2.mp3", "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/d8506ebddb29c8d08b4b93376b45f5c9.json", "name": "鸟_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/9fad47c99025b7b229df52afb797ec5c.json", "name": "鸟_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/e86b136b9706768c5ca0dba3dc0aab21.png", "name": "鸟_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "0", "labelText": "9", "posX": 573, "posY": 74, "rect": { "x": 127.9, "y": 41, "width": 154, "height": 66 } }, { "id": "1638090948950", "index": 13, "itemType": "rect", "fontScale": 0.81484375, "imgScale": 1, "imgSizeW": 0, "imgSizeH": 0, "mapScale": 0.81484375, "skeJsonData": { "url": "http://teach.cdn.ireadabc.com/3d1d49e583d97cd5097d08102265b1c6.json", "name": "蚂蚁_ske.json" }, "texJsonData": { "url": "http://teach.cdn.ireadabc.com/9a3a5c871b288aebb1e6920f1e9709f8.json", "name": "蚂蚁_tex.json" }, "texPngData": { "url": "http://teach.cdn.ireadabc.com/1fad62f313b6ff72a642cb4b15aeaf04.png", "name": "蚂蚁_tex.png" }, "dragDot": { "x": 521.5, "y": 197.46116504854368 }, "gIdx": "1", "rect": { "x": 46.9, "y": 95, "width": 200, "height": 200 } }], "guide_audio": "http://staging-teach.cdn.ireadabc.com/d6c1d3b84a4774a0fc183a14abbb6c09.mp3", "wrong_audio1": "http://staging-teach.cdn.ireadabc.com/b77ef2a6cdcb6504520484a9b197b2fd.mp3", "wrong_audio2": "http://staging-teach.cdn.ireadabc.com/8dacb2445816e1f068ea116752c21173.mp3", "begin_audio1": "http://staging-teach.cdn.ireadabc.com/e45ad0823ae2c8e04246d76c7f57030d.mp3", "begin_audio2": "http://staging-teach.cdn.ireadabc.com/05232ad51f8d9e1af6dd1273147bc58f.mp3", "right_audio": "http://staging-teach.cdn.ireadabc.com/330eff8d5e8cc429965da82652207ff2.mp3", "wrong_audio": "http://staging-teach.cdn.ireadabc.com/1664170e569d974279bcec626be176d9.mp3", "begin_sep_time": 15 }; exports.defaultData = defaultData; cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC9kZWZhdWx0RGF0YS5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0RGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLElBQU1BLFdBQVcsR0FBRztBQUN2QjtBQUNBLGlCQUFlLDRFQUZRO0FBR3ZCLG1CQUFpQixvRUFITTtBQUl2QixlQUFhLDRFQUpVO0FBS3ZCLFlBQVU7QUFDTixXQUFPLG9FQUREO0FBRU4sWUFBUTtBQUNKLFdBQUssS0FERDtBQUVKLFdBQUssQ0FGRDtBQUdKLGVBQVMsS0FITDtBQUlKLGdCQUFVO0FBSk47QUFGRixHQUxhO0FBY3ZCLG9CQUFrQixDQUFDO0FBQ2YsVUFBTSxlQURTO0FBRWYsYUFBUyxDQUZNO0FBR2YsZ0JBQVksTUFIRztBQUlmLGlCQUFhLFVBSkU7QUFLZixnQkFBWSxDQUxHO0FBTWYsZ0JBQVksQ0FORztBQU9mLGdCQUFZLENBUEc7QUFRZixnQkFBWSxVQVJHO0FBU2YsbUJBQWU7QUFDWCxhQUFPLHFFQURJO0FBRVgsY0FBUTtBQUZHLEtBVEE7QUFhZixtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiQTtBQWlCZixrQkFBYztBQUNWLGFBQU8sb0VBREc7QUFFVixjQUFRO0FBRkUsS0FqQkM7QUFxQmYsZUFBVztBQUNQLFdBQUssS0FERTtBQUVQLFdBQUs7QUFGRSxLQXJCSTtBQXlCZixZQUFRLEdBekJPO0FBMEJmLFlBQVE7QUFDSixXQUFLLElBREQ7QUFFSixXQUFLLEVBRkQ7QUFHSixlQUFTLEdBSEw7QUFJSixnQkFBVTtBQUpOO0FBMUJPLEdBQUQsRUFnQ2Y7QUFDQyxVQUFNLGVBRFA7QUFFQyxhQUFTLENBRlY7QUFHQyxlQUFXLG9FQUhaO0FBSUMsZ0JBQVksS0FKYjtBQUtDLGlCQUFhLFVBTGQ7QUFNQyxnQkFBWSxtQkFOYjtBQU9DLGdCQUFZLElBUGI7QUFRQyxnQkFBWSxJQVJiO0FBU0MsZ0JBQVksVUFUYjtBQVVDLGVBQVc7QUFD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RkcsS0FUaEI7QUFhQyxtQkFBZTtBQUNYLGFBQU8scUVBREk7QUFFWCxjQUFRO0FBRkcsS0FiaEI7QUFpQkMsa0JBQWM7QUFDVixhQUFPLG9FQURHO0FBRVYsY0FBUTtBQUZFLEtBakJmO0FBcUJDLGVBQVc7QUFDUCxXQUFLLEtBREU7QUFFUCxXQUFLO0FBRkUsS0FyQlo7QUF5QkMsWUFBUSxHQXpCVDtBQTBCQyxZQUFRO0FBQ0osV0FBSyxJQUREO0FBRUosV0FBSyxFQUZEO0FBR0osZUFBUyxHQUhMO0FBSUosZ0JBQVU7QUFKTjtBQTFCVCxHQTdhZSxDQWRLO0FBNGR2QixpQkFBZSw0RUE1ZFE7QUE2ZHZCLGtCQUFnQiw0RUE3ZE87QUE4ZHZCLGtCQUFnQiw0RUE5ZE87QUErZHZCLGtCQUFnQiw0RUEvZE87QUFnZXZCLGtCQUFnQiw0RUFoZU87QUFpZXZCLGlCQUFlLDRFQWplUTtBQWtldkIsaUJBQWUsNEVBbGVRO0FBbWV2QixvQkFBa0I7QUFuZUssQ0FBcEIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBkZWZhdWx0RGF0YSA9IHtcbiAgICAvLyBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9iMWU1Mzc4MDgzYWRhYzk5NTA4Mzk3NzJjN2I2N2YzNC5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84MWU3YTk0ZTE0MjBhNGNiY2FhNTgzZDQxODhhYjE0NS5tcDNcIixcbiAgICBcInBsYXlpbmdfYXVkaW9cIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NDkzNDdkMWJlNjIwZDlkOTFiNzQyMGQ0NWIzY2I3YS5tcDNcIixcbiAgICBcImVuZF9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vODFlN2E5NGUxNDIwYTRjYmNhYTU4M2Q0MTg4YWIxNDUubXAzXCIsXG4gICAgXCJiZ0l0ZW1cIjoge1xuICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2FkY2NjYmQyNmUyY2ZhMjU5OTIwZTI0ZGYwMWQ0YjkyLnBuZ1wiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDM3NC42LFxuICAgICAgICAgICAgXCJ5XCI6IDAsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiaG90Wm9uZUl0ZW1BcnJcIjogW3tcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NTA0MDJcIixcbiAgICAgICAgXCJpbmRleFwiOiAwLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jNWM2Y2Q4OTA2NjBhM2MyMmZkZTM5M2EzNzcwNDU4Zi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vY2VhMTA3NTE3NDA2NDYzNDc0ZDkwN2UzMDYxNjMyMjYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5rG96L2mX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vODRiY2U2NGNkNDI1OWU2MDRhNDU4ZDA4ZGRkNzViZWMucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/msb3ovaZfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA0NjUxMzNcIixcbiAgICAgICAgXCJpbmRleFwiOiAxLFxuICAgICAgICBcInBpY191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MGQwMmVlMzc4OGUzNzNmNzA3YTQ1NTMwY2QyZjljMC5wbmdcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInBpY1wiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDAuMjM1NzkyMDE5MzQ3MDM3NDcsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMTI0NixcbiAgICAgICAgXCJpbWdTaXplSFwiOiAxNjU0LFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk1XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjJcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAwLFxuICAgICAgICAgICAgXCJ5XCI6IDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDI5My44LFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMzkwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwNDg1MDMxXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9lMzFjM2IxOTE0ODM3YTYxMWQ0ZDNiYjFjZWIwMDc3My5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDJkN2RlOWY4MDc5ZjM2ZTgzNTRkMTZlNGNhMjY0NzYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwNGVhMTgwMThhMzUyYTMwZmQyMzNhNDZmOWEwYTFhLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuaIv+WtkF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2NmOGRhMGFiMDBhN2Q5ZjM0YmRmOGY0OTBjMjlkY2JmLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5oi/5a2QX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5NVxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiMTRcIixcbiAgICAgICAgXCJwb3NYXCI6IDU3OCxcbiAgICAgICAgXCJwb3NZXCI6IDE2MC45OTc5MTMzNDQ5NjE1NSxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAxMjQuOSxcbiAgICAgICAgICAgIFwieVwiOiAxMDgsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE3MCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDEwNlxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDUzOTc4N1wiLFxuICAgICAgICBcImluZGV4XCI6IDMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2VkMmFjNDkzMWE5YzAwZmY2YzQyOTgzODE3MjI2NzZlLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wZTE1MzA5M2VlNzI2NWI2YTg0Mzg0NzU0M2Q2MTEwYi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLniZtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS82MzE2NjFlMTM2MTZlZWE2Y2RlOWY5ZTY2MTBmNTAwOC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueJm190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDU2Mjg2N1wiLFxuICAgICAgICBcImluZGV4XCI6IDQsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYmYxOTI0YzUwMmNhMWE0YWM5MjhhMzFlN2M4YWE3MGUubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2JkM2MyY2M5M2IxNTkzNDMzYTU4ZDg0ODI5NzJmZjY2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZjU0ZGYzMTdhOGM4NjI3MWUyOWQ2ZGIzZmZiNTVjZS5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLoi7nmnpxfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS83MzRhYzA2YTdlZjAxOGI0NTdlN2FjNzY5Mjc4OWZmYS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiLueaenF90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjZcIixcbiAgICAgICAgXCJwb3NYXCI6IDQyOSxcbiAgICAgICAgXCJwb3NZXCI6IDE0NixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiAtMC4xLFxuICAgICAgICAgICAgXCJ5XCI6IDcwLFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjIsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxNTJcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA1OTQyNDdcIixcbiAgICAgICAgXCJpbmRleFwiOiA1LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZDRiMjUxY2FmMGMwYjgyNDVmYjE3Y2Q4NDQ1NjcyYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMWZkZDA0Y2FjYjZkNTQzY2YwNWNlNjRlODEyNGE2ZmYuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5Yac5aSrX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vOGY1ODJjYjM5ZWIzNDlkYTA4ZTA2Mjg5YjBjZTZjMTYucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlhpzlpKtfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2NjMwNTZcIixcbiAgICAgICAgXCJpbmRleFwiOiA2LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS80NTAzNzIxOTAxODgwZDBiNmMzYWQ2ZDQyNjFlOTU4Yi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZmM0ZmQwYjJmNjcyZGZmN2M3YjIxNDg4MzAxNjQwOTAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5bCP5aWz5a2pX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNGJlNDFjMTU5NzJjYWY5OWVlZjk1NmJhNDg3NTljOTEucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLlsI/lpbPlralfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2ODU1NzFcIixcbiAgICAgICAgXCJpbmRleFwiOiA3LFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS81NTk1MWM3OTRiNDE0YWI1OGNjYTAyMzY0MjgxOWUzNy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNDdiOTMzMjNiMWQxZTFlNjAyMDcwNGM1MzdmNDY4MjAuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi5q+N6bihX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZGQ2NjAyMWZmODYwYjAyYTU1OWQ1OTgxN2M3MWUyN2YucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLmr43puKFfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjFcIixcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA0Ni45LFxuICAgICAgICAgICAgXCJ5XCI6IDk1LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAyMDAsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAyMDBcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA2OTU2NTJcIixcbiAgICAgICAgXCJpbmRleFwiOiA4LFxuICAgICAgICBcImF1ZGlvX3VybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMyM2ZlYjE5ZDE1MzA2OTcwMmZmZDIxMDk3ZjE4Zjc5Lm1wM1wiLFxuICAgICAgICBcIml0ZW1UeXBlXCI6IFwicmVjdFwiLFxuICAgICAgICBcImZvbnRTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcImltZ1NjYWxlXCI6IDEsXG4gICAgICAgIFwiaW1nU2l6ZVdcIjogMCxcbiAgICAgICAgXCJpbWdTaXplSFwiOiAwLFxuICAgICAgICBcIm1hcFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwic2tlSnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9jZDdjN2E3NTZjMGY3OWQyOGY0MTk1NzZlM2I4NWIwYy5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfc2tlLmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleEpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNzYxM2YzMDg5M2E1ZjY0NzczYTc3NzIzYzFkNjdmMGQuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bit5a2QX3RleC5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhQbmdEYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vNTliMjI5M2VmNGVlYTlkNjRmZjk4MjFiYzVkNjlhNmQucG5nXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuK3lrZBfdGV4LnBuZ1wiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJhZ0RvdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNTIxLjUsXG4gICAgICAgICAgICBcInlcIjogMTk3LjQ2MTE2NTA0ODU0MzY4XG4gICAgICAgIH0sXG4gICAgICAgIFwiZ0lkeFwiOiBcIjBcIixcbiAgICAgICAgXCJsYWJlbFRleHRcIjogXCIxMVwiLFxuICAgICAgICBcInBvc1hcIjogNTY0LjQ5OTMxNTE0OTExNTUsXG4gICAgICAgIFwicG9zWVwiOiAyNDcuOTk3MzU2OTAzNjE3OTcsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogMjE2LFxuICAgICAgICAgICAgXCJ3aWR0aFwiOiAxMjQsXG4gICAgICAgICAgICBcImhlaWdodFwiOiA2NFxuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBcImlkXCI6IFwiMTYzODA5MDc1ODE1OVwiLFxuICAgICAgICBcImluZGV4XCI6IDksXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vYjkwM2IxNzRmMDkxMDc1MTdiNWQ2Zjg5MzRiNzM0NDcubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I5ZmE4NWMyMjdkYWE2NTM5ZjEyY2FiNWE1MDU4MDUyLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85OWFhOGRlN2I2OTAwMGFjNmM1ZTBmYjZhNTA4YjY5Mi5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLpuKHom4tfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8wOWJkMGEzNGE0NTA4NjEzZmQ3YzE2NzcyNGU0YTk2OS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4oeibi190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjdcIixcbiAgICAgICAgXCJwb3NYXCI6IDQ3MS41MDAzNjM4MjcwMzIzNCxcbiAgICAgICAgXCJwb3NZXCI6IDI5MS45OTY4MzI1NjQ2NTk1NCxcbiAgICAgICAgXCJyZWN0XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA2Ny40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMyxcbiAgICAgICAgICAgIFwid2lkdGhcIjogNTksXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzhcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4MTIxNTVcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMCxcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMzU3ZmVmODIwNDIyOGFmYjQzZDBjZTczNzQ2MjI4ZTUuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y2OTRlNTQ0MjA5NWEzMTdmYzdkOGIxMzkwZTYzMGM3Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIumxvF90ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2Y1NjZjY2ExMGZkODNmNjJhNDY1YjE0NGFjNzNkNDgzLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bG8X3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIxXCIsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogNDYuOSxcbiAgICAgICAgICAgIFwieVwiOiA5NSxcbiAgICAgICAgICAgIFwid2lkdGhcIjogMjAwLFxuICAgICAgICAgICAgXCJoZWlnaHRcIjogMjAwXG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwODI0MjQ0XCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTEsXG4gICAgICAgIFwiYXVkaW9fdXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vMjY1NmI3MmFlYzdmNmRlZjA3NzEzZmJjOTkzMDkxNjgubXAzXCIsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzIwY2JmM2QxODZhMTk3YmFhZWQzODIwNGRkMDE3ZjUxLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq19za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9kN2RlNWEzMmRlM2VlMWFkNjYwZGM1MDliYThhZGYxZC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLnjKtfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS9hZjg2ZTk2N2FhYjg2MzJjZDBiMjZkNjBhNjJmMDY3NS5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIueMq190ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMFwiLFxuICAgICAgICBcImxhYmVsVGV4dFwiOiBcIjEwXCIsXG4gICAgICAgIFwicG9zWFwiOiA0MDguNTAxMTQ0OTg1MDcyMzYsXG4gICAgICAgIFwicG9zWVwiOiAyODguOTk2ODk2NzY5NDMsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMS40LFxuICAgICAgICAgICAgXCJ5XCI6IDIyMixcbiAgICAgICAgICAgIFwid2lkdGhcIjogNjUsXG4gICAgICAgICAgICBcImhlaWdodFwiOiAxMzRcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAgXCJpZFwiOiBcIjE2MzgwOTA4OTc2NDRcIixcbiAgICAgICAgXCJpbmRleFwiOiAxMixcbiAgICAgICAgXCJhdWRpb191cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YmJmOGJhMmZhN2Y5NmVhNWE5NWMyN2EzODQ0MTRhMi5tcDNcIixcbiAgICAgICAgXCJpdGVtVHlwZVwiOiBcInJlY3RcIixcbiAgICAgICAgXCJmb250U2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJpbWdTY2FsZVwiOiAxLFxuICAgICAgICBcImltZ1NpemVXXCI6IDAsXG4gICAgICAgIFwiaW1nU2l6ZUhcIjogMCxcbiAgICAgICAgXCJtYXBTY2FsZVwiOiAwLjgxNDg0Mzc1LFxuICAgICAgICBcInNrZUpzb25EYXRhXCI6IHtcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cDovL3RlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDg1MDZlYmRkYjI5YzhkMDhiNGI5MzM3NmI0NWY1YzkuanNvblwiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3NrZS5qc29uXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0ZXhKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzlmYWQ0N2M5OTAyNWI3YjIyOWRmNTJhZmI3OTdlYzVjLmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIum4n190ZXguanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4UG5nRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2U4NmIxMzZiOTcwNjc2OGM1Y2EwZGJhM2RjMGFhYjIxLnBuZ1wiLFxuICAgICAgICAgICAgXCJuYW1lXCI6IFwi6bifX3RleC5wbmdcIlxuICAgICAgICB9LFxuICAgICAgICBcImRyYWdEb3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDUyMS41LFxuICAgICAgICAgICAgXCJ5XCI6IDE5Ny40NjExNjUwNDg1NDM2OFxuICAgICAgICB9LFxuICAgICAgICBcImdJZHhcIjogXCIwXCIsXG4gICAgICAgIFwibGFiZWxUZXh0XCI6IFwiOVwiLFxuICAgICAgICBcInBvc1hcIjogNTczLFxuICAgICAgICBcInBvc1lcIjogNzQsXG4gICAgICAgIFwicmVjdFwiOiB7XG4gICAgICAgICAgICBcInhcIjogMTI3LjksXG4gICAgICAgICAgICBcInlcIjogNDEsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDE1NCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDY2XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIFwiaWRcIjogXCIxNjM4MDkwOTQ4OTUwXCIsXG4gICAgICAgIFwiaW5kZXhcIjogMTMsXG4gICAgICAgIFwiaXRlbVR5cGVcIjogXCJyZWN0XCIsXG4gICAgICAgIFwiZm9udFNjYWxlXCI6IDAuODE0ODQzNzUsXG4gICAgICAgIFwiaW1nU2NhbGVcIjogMSxcbiAgICAgICAgXCJpbWdTaXplV1wiOiAwLFxuICAgICAgICBcImltZ1NpemVIXCI6IDAsXG4gICAgICAgIFwibWFwU2NhbGVcIjogMC44MTQ4NDM3NSxcbiAgICAgICAgXCJza2VKc29uRGF0YVwiOiB7XG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHA6Ly90ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzNkMWQ0OWU1ODNkOTdjZDUwOTdkMDgxMDIyNjViMWM2Lmpzb25cIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV9za2UuanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidGV4SnNvbkRhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS85YTNhNWM4NzFiMjg4YWViYjFlNjkyMGYxZTk3MDlmOC5qc29uXCIsXG4gICAgICAgICAgICBcIm5hbWVcIjogXCLomoLomoFfdGV4Lmpzb25cIlxuICAgICAgICB9LFxuICAgICAgICBcInRleFBuZ0RhdGFcIjoge1xuICAgICAgICAgICAgXCJ1cmxcIjogXCJodHRwOi8vdGVhY2guY2RuLmlyZWFkYWJjLmNvbS8xZmFkNjJmMzEzYjZmZjcyYTY0MmNiNGIxNWFlYWYwNC5wbmdcIixcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIuiaguiagV90ZXgucG5nXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJkcmFnRG90XCI6IHtcbiAgICAgICAgICAgIFwieFwiOiA1MjEuNSxcbiAgICAgICAgICAgIFwieVwiOiAxOTcuNDYxMTY1MDQ4NTQzNjhcbiAgICAgICAgfSxcbiAgICAgICAgXCJnSWR4XCI6IFwiMVwiLFxuICAgICAgICBcInJlY3RcIjoge1xuICAgICAgICAgICAgXCJ4XCI6IDQ2LjksXG4gICAgICAgICAgICBcInlcIjogOTUsXG4gICAgICAgICAgICBcIndpZHRoXCI6IDIwMCxcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDIwMFxuICAgICAgICB9XG4gICAgfV0sXG4gICAgXCJndWlkZV9hdWRpb1wiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZDZjMWQzYjg0YTQ3NzRhMGZjMTgzYTE0YWJiYjZjMDkubXAzXCIsXG4gICAgXCJ3cm9uZ19hdWRpbzFcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tL2I3N2VmMmE2Y2RjYjY1MDQ1MjA0ODRhOWIxOTdiMmZkLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW8yXCI6IFwiaHR0cDovL3N0YWdpbmctdGVhY2guY2RuLmlyZWFkYWJjLmNvbS84ZGFjYjI0NDU4MTZlMWYwNjhlYTExNjc1MmMyMTE3My5tcDNcIixcbiAgICBcImJlZ2luX2F1ZGlvMVwiOiBcImh0dHA6Ly9zdGFnaW5nLXRlYWNoLmNkbi5pcmVhZGFiYy5jb20vZTQ1YWQwODIzYWUyYzhlMDQyNDZkNzZjN2Y1NzAzMGQubXAzXCIsXG4gICAgXCJiZWdpbl9hdWRpbzJcIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzA1MjMyYWQ1MWY4ZDllMWFmNmRkMTI3MzE0N2JjNThmLm1wM1wiLFxuICAgIFwicmlnaHRfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzMzMGVmZjhkNWU4Y2M0Mjk5NjVkYTgyNjUyMjA3ZmYyLm1wM1wiLFxuICAgIFwid3JvbmdfYXVkaW9cIjogXCJodHRwOi8vc3RhZ2luZy10ZWFjaC5jZG4uaXJlYWRhYmMuY29tLzE2NjQxNzBlNTY5ZDk3NDI3OWJjZWM2MjZiZTE3NmQ5Lm1wM1wiLFxuICAgIFwiYmVnaW5fc2VwX3RpbWVcIjogMTVcbn0iXX0= //------QC-SOURCE-SPLIT------ (function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/OP15/script/util.js'; var __require = nodeEnv ? function (request) { return cc.require(request); } : function (request) { return __quick_compile_project__.require(request, __filename); }; function __define (exports, require, module) { if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; cc._RF.push(module, 'ade7a9A1W1Ah7vGKIj+9VNT', 'util'); // OP15/script/util.js "use strict"; exports.__esModule = true; exports.getPosByAngle = getPosByAngle; exports.getAngleByPos = getAngleByPos; exports.exchangeNodePos = exchangeNodePos; exports.RandomInt = RandomInt; exports.randomSortByArr = randomSortByArr; exports.setSprNodeMaxLen = setSprNodeMaxLen; exports.localPosTolocalPos = localPosTolocalPos; exports.worldPosToLocalPos = worldPosToLocalPos; exports.getScaleRateBy2Node = getScaleRateBy2Node; exports.getDistance = getDistance; exports.playAudioByUrl = playAudioByUrl; exports.btnClickAnima = btnClickAnima; exports.getSpriteFrimeByUrl = getSpriteFrimeByUrl; exports.getSprNode = getSprNode; exports.getSprNodeByUrl = getSprNodeByUrl; exports.playAudio = playAudio; exports.asyncDelay = asyncDelay; exports.showFireworks = showFireworks; exports.asyncTweenTo = asyncTweenTo; exports.asyncTweenBy = asyncTweenBy; exports.showTrebleFirework = showTrebleFirework; exports.onHomeworkFinish = onHomeworkFinish; exports.loadDragonBones = loadDragonBones; exports.FireworkSettings = void 0; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function getPosByAngle(angle, len) { var radian = angle * Math.PI / 180; var x = Math.sin(radian) * len; var y = Math.cos(radian) * len; return { x: x, y: y }; } function getAngleByPos(px, py, mx, my) { var x = Math.abs(px - mx); var y = Math.abs(py - my); var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); var cos = y / z; var radina = Math.acos(cos); // 用反三角函数求弧度 var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度 if (mx > px && my > py) { // 鼠标在第四象限 angle = 180 - angle; } if (mx === px && my > py) { // 鼠标在y轴负方向上 angle = 180; } if (mx > px && my === py) { // 鼠标在x轴正方向上 angle = 90; } if (mx < px && my > py) { // 鼠标在第三象限 angle = 180 + angle; } if (mx < px && my === py) { // 鼠标在x轴负方向 angle = 270; } if (mx < px && my < py) { // 鼠标在第二象限 angle = 360 - angle; } // console.log('angle: ', angle); return angle; } function exchangeNodePos(baseNode, targetNode) { return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y))); } function RandomInt(a, b) { if (b === void 0) { b = 0; } var max = Math.max(a, b); var min = Math.min(a, b); return Math.floor(Math.random() * (max - min) + min); } function randomSortByArr(arr) { var newArr = []; var tmpArr = arr.concat(); while (tmpArr.length > 0) { var randomIndex = Math.floor(tmpArr.length * Math.random()); newArr.push(tmpArr[randomIndex]); tmpArr.splice(randomIndex, 1); } return newArr; } function setSprNodeMaxLen(sprNode, maxW, maxH) { var sx = maxW / sprNode.width; var sy = maxH / sprNode.height; var s = Math.min(sx, sy); sprNode.scale = Math.round(s * 1000) / 1000; } function localPosTolocalPos(baseNode, targetNode) { var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)); var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); return localPos; } function worldPosToLocalPos(worldPos, baseNode) { var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y)); return localPos; } function getScaleRateBy2Node(baseNode, targetNode, maxFlag) { if (maxFlag === void 0) { maxFlag = true; } var worldRect1 = targetNode.getBoundingBoxToWorld(); var worldRect2 = baseNode.getBoundingBoxToWorld(); var sx = worldRect1.width / worldRect2.width; var sy = worldRect1.height / worldRect2.height; if (maxFlag) { return Math.max(sx, sy); } else { return Math.min(sx, sy); } } function getDistance(start, end) { var pos = cc.v2(start.x - end.x, start.y - end.y); var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y); return dis; } function playAudioByUrl(audio_url, cb) { if (cb === void 0) { cb = null; } if (audio_url) { if (audio_url instanceof cc.AudioClip && audio_url.constructor.name == 'cc_AudioClip') { var audioId = cc.audioEngine.play(audio_url, false, 0.8); if (cb) { cc.audioEngine.setFinishCallback(audioId, function () { cb(); }); } } else { cc.assetManager.loadRemote(audio_url, function (err, audioClip) { var audioId = cc.audioEngine.play(audioClip, false, 0.8); if (cb) { cc.audioEngine.setFinishCallback(audioId, function () { cb(); }); } }); } } } function btnClickAnima(btn, time, rate) { if (time === void 0) { time = 0.15; } if (rate === void 0) { rate = 1.05; } btn.tmpScale = btn.scale; btn.on(cc.Node.EventType.TOUCH_START, function () { cc.tween(btn).to(time / 2, { scale: btn.scale * rate }).start(); }); btn.on(cc.Node.EventType.TOUCH_CANCEL, function () { cc.tween(btn).to(time / 2, { scale: btn.tmpScale }).start(); }); btn.on(cc.Node.EventType.TOUCH_END, function () { cc.tween(btn).to(time / 2, { scale: btn.tmpScale }).start(); }); } function getSpriteFrimeByUrl(url, cb) { cc.loader.load({ url: url }, function (err, img) { var spriteFrame = new cc.SpriteFrame(img); if (cb) { cb(spriteFrame); } }); } function getSprNode(resName) { var sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame; var node = new cc.Node(); node.addComponent(cc.Sprite).spriteFrame = sf; return node; } function getSprNodeByUrl(url, cb) { var node = new cc.Node(); var spr = node.addComponent(cc.Sprite); getSpriteFrimeByUrl(url, function (sf) { spr.spriteFrame = sf; if (cb) { cb(spr); } }); } function playAudio(audioClip, cb) { if (cb === void 0) { cb = null; } if (audioClip) { var audioId = cc.audioEngine.playEffect(audioClip, false, 0.8); if (cb) { cc.audioEngine.setFinishCallback(audioId, function () { cb(); }); } } } function asyncDelay(_x) { return _asyncDelay.apply(this, arguments); } function _asyncDelay() { _asyncDelay = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(time) { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", new Promise(function (resolve, reject) { try { setTimeout(function () { resolve(); }, time * 1000); } catch (e) { reject(e); } })); case 1: case "end": return _context.stop(); } } }, _callee); })); return _asyncDelay.apply(this, arguments); } var FireworkSettings = /*#__PURE__*/function () { // 父节点 // 火花节点的array // 发射点 // 发射方向 // 扩散范围 // 发射数量 // 缩放范围 function FireworkSettings(baseNode, nodeList, pos, side, range, number, scalseRange) { if (pos === void 0) { pos = cc.v2(0, 0); } if (side === void 0) { side = cc.v2(0, 100); } if (range === void 0) { range = 50; } if (number === void 0) { number = 100; } if (scalseRange === void 0) { scalseRange = 0; } this.baseNode = void 0; this.nodeList = void 0; this.pos = void 0; this.side = void 0; this.range = void 0; this.number = void 0; this.scalseRange = void 0; this.baseNode = baseNode; this.nodeList = nodeList; this.pos = pos; this.side = side; this.range = range; this.number = number; this.scalseRange = scalseRange; } FireworkSettings.copy = function copy(firework) { return new FireworkSettings(firework.baseNode, firework.nodeList, firework.pos, firework.side, firework.range, firework.number); }; return FireworkSettings; }(); exports.FireworkSettings = FireworkSettings; function showFireworks(_x2) { return _showFireworks.apply(this, arguments); } function _showFireworks() { _showFireworks = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(fireworkSettings) { var baseNode, nodeList, pos, side, range, number, scalseRange; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: baseNode = fireworkSettings.baseNode, nodeList = fireworkSettings.nodeList, pos = fireworkSettings.pos, side = fireworkSettings.side, range = fireworkSettings.range, number = fireworkSettings.number, scalseRange = fireworkSettings.scalseRange; new Array(number).fill(' ').forEach( /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_, i) { var rabbonNode, node, rate, angle; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: rabbonNode = new cc.Node(); rabbonNode.parent = baseNode; rabbonNode.x = pos.x; rabbonNode.y = pos.y; rabbonNode.angle = 60 * Math.random() - 30; node = cc.instantiate(nodeList[RandomInt(nodeList.length)]); node.parent = rabbonNode; node.active = true; node.x = 0; node.y = 0; node.angle = 0; node.scale = (Math.random() - 0.5) * scalseRange + 1; rate = Math.random(); angle = Math.PI * (Math.random() * 2 - 1); _context2.next = 16; return asyncTweenBy(rabbonNode, 0.3, { x: side.x * rate + Math.cos(angle) * range * rate, y: side.y * rate + Math.sin(angle) * range * rate }, { easing: 'quadIn' }); case 16: cc.tween(rabbonNode).by(8, { y: -2000 }).start(); cc.tween(rabbonNode).to(5, { scale: (Math.random() - 0.5) * scalseRange + 1 }).start(); rabbonFall(rabbonNode); _context2.next = 21; return asyncDelay(Math.random()); case 21: cc.tween(node).by(0.15, { x: -10, angle: -10 }).by(0.3, { x: 20, angle: 20 }).by(0.15, { x: -10, angle: -10 }).union().repeatForever().start(); cc.tween(rabbonNode).delay(5).to(0.3, { opacity: 0 }).call(function () { node.stopAllActions(); node.active = false; node.parent = null; node = null; }).start(); case 23: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x12, _x13) { return _ref2.apply(this, arguments); }; }()); case 2: case "end": return _context3.stop(); } } }, _callee3); })); return _showFireworks.apply(this, arguments); } function rabbonFall(_x3) { return _rabbonFall.apply(this, arguments); } function _rabbonFall() { _rabbonFall = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(node) { var time, offsetX; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: time = 1 + Math.random(); offsetX = RandomInt(-200, 200) * time; _context4.next = 4; return asyncTweenBy(node, time, { x: offsetX, angle: offsetX * 60 / 200 }); case 4: rabbonFall(node); case 5: case "end": return _context4.stop(); } } }, _callee4); })); return _rabbonFall.apply(this, arguments); } function asyncTweenTo(_x4, _x5, _x6, _x7) { return _asyncTweenTo.apply(this, arguments); } function _asyncTweenTo() { _asyncTweenTo = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(node, duration, obj, ease) { return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: if (ease === void 0) { ease = undefined; } return _context5.abrupt("return", new Promise(function (resolve, reject) { try { cc.tween(node).to(duration, obj, ease).call(function () { resolve(); }).start(); } catch (e) { reject(e); } })); case 2: case "end": return _context5.stop(); } } }, _callee5); })); return _asyncTweenTo.apply(this, arguments); } function asyncTweenBy(_x8, _x9, _x10, _x11) { return _asyncTweenBy.apply(this, arguments); } function _asyncTweenBy() { _asyncTweenBy = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(node, duration, obj, ease) { return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: if (ease === void 0) { ease = undefined; } return _context6.abrupt("return", new Promise(function (resolve, reject) { try { cc.tween(node).by(duration, obj, ease).call(function () { resolve(); }).start(); } catch (e) { reject(e); } })); case 2: case "end": return _context6.stop(); } } }, _callee6); })); return _asyncTweenBy.apply(this, arguments); } function showTrebleFirework(baseNode, rabbonList) { var middle = new FireworkSettings(baseNode, rabbonList); middle.pos = cc.v2(0, -400); middle.side = cc.v2(0, 1000); middle.range = 200; middle.number = 100; middle.scalseRange = 0.4; var left = FireworkSettings.copy(middle); left.pos = cc.v2(-600, -400); left.side = cc.v2(200, 1000); var right = FireworkSettings.copy(middle); right.pos = cc.v2(600, -400); right.side = cc.v2(-200, 1000); showFireworks(middle); showFireworks(left); showFireworks(right); } function onHomeworkFinish() { var middleLayer = cc.find('middleLayer'); if (middleLayer) { var middleLayerComponent = middleLayer.getComponent('middleLayer'); if (middleLayerComponent.role == 'student') { middleLayerComponent.onHomeworkFinish(function () {}); } } else { console.log('onHomeworkFinish'); } } function loadDragonBones(dragonDisplay, _ref) { var tex = _ref.tex, atlas = _ref.atlas, ske = _ref.ske; return new Promise(function (resolve, reject) { cc.loader.load({ url: tex, type: 'png' }, function (error, texture) { if (error) { reject(); return; } cc.loader.load({ url: atlas, type: 'txt' }, function (error, atlasJson) { if (error) { reject(); return; } cc.loader.load({ url: ske, type: 'txt' }, function (error, dragonBonesJson) { if (error) { reject(); return; } var atlasObj = new dragonBones.DragonBonesAtlasAsset(); atlasObj.uuid = atlas; atlasObj.atlasJson = atlasJson; atlasObj.texture = texture; var asset = new dragonBones.DragonBonesAsset(); asset.uuid = ske; asset.dragonBonesJson = dragonBonesJson; var armatureName = asset._dragonBonesJsonData.armature[0].name || 'default'; dragonDisplay.armatureName = armatureName; dragonDisplay.dragonAtlasAsset = atlasObj; dragonDisplay.dragonAsset = asset; resolve(asset._dragonBonesJsonData.armature[0].aabb); }); }); }); }); } cc._RF.pop(); } if (nodeEnv) { __define(__module.exports, __require, __module); } else { __quick_compile_project__.registerModuleFunc(__filename, function () { __define(__module.exports, __require, __module); }); } })(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9PUDE1L3NjcmlwdC91dGlsLmpzIl0sIm5hbWVzIjpbImdldFBvc0J5QW5nbGUiLCJhbmdsZSIsImxlbiIsInJhZGlhbiIsIk1hdGgiLCJQSSIsIngiLCJzaW4iLCJ5IiwiY29zIiwiZ2V0QW5nbGVCeVBvcyIsInB4IiwicHkiLCJteCIsIm15IiwiYWJzIiwieiIsInNxcnQiLCJwb3ciLCJyYWRpbmEiLCJhY29zIiwiZmxvb3IiLCJleGNoYW5nZU5vZGVQb3MiLCJiYXNlTm9kZSIsInRhcmdldE5vZGUiLCJjb252ZXJ0VG9Ob2RlU3BhY2VBUiIsIl9wYXJlbnQiLCJjb252ZXJ0VG9Xb3JsZFNwYWNlQVIiLCJjYyIsInYyIiwiUmFuZG9tSW50IiwiYSIsImIiLCJtYXgiLCJtaW4iLCJyYW5kb20iLCJyYW5kb21Tb3J0QnlBcnIiLCJhcnIiLCJuZXdBcnIiLCJ0bXBBcnIiLCJjb25jYXQiLCJsZW5ndGgiLCJyYW5kb21JbmRleCIsInB1c2giLCJzcGxpY2UiLCJzZXRTcHJOb2RlTWF4TGVuIiwic3ByTm9kZSIsIm1heFciLCJtYXhIIiwic3giLCJ3aWR0aCIsInN5IiwiaGVpZ2h0IiwicyIsInNjYWxlIiwicm91bmQiLCJsb2NhbFBvc1RvbG9jYWxQb3MiLCJ3b3JsZFBvcyIsInBhcmVudCIsImxvY2FsUG9zIiwid29ybGRQb3NUb0xvY2FsUG9zIiwiZ2V0U2NhbGVSYXRlQnkyTm9kZSIsIm1heEZsYWciLCJ3b3JsZFJlY3QxIiwiZ2V0Qm91bmRpbmdCb3hUb1dvcmxkIiwid29ybGRSZWN0MiIsImdldERpc3RhbmNlIiwic3RhcnQiLCJlbmQiLCJwb3MiLCJkaXMiLCJwbGF5QXVkaW9CeVVybCIsImF1ZGlvX3VybCIsImNiIiwiQXVkaW9DbGlwIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiYXVkaW9JZCIsImF1ZGlvRW5naW5lIiwicGxheSIsInNldEZpbmlzaENhbGxiYWNrIiwiYXNzZXRNYW5hZ2VyIiwibG9hZFJlbW90ZSIsImVyciIsImF1ZGlvQ2xpcCIsImJ0bkNsaWNrQW5pbWEiLCJidG4iLCJ0aW1lIiwicmF0ZSIsInRtcFNjYWxlIiwib24iLCJOb2RlIiwiRXZlbnRUeXBlIiwiVE9VQ0hfU1RBUlQiLCJ0d2VlbiIsInRvIiwiVE9VQ0hfQ0FOQ0VMIiwiVE9VQ0hfRU5EIiwiZ2V0U3ByaXRlRnJpbWVCeVVybCIsInVybCIsImxvYWRlciIsImxvYWQiLCJpbWciLCJzcHJpdGVGcmFtZSIsIlNwcml0ZUZyYW1lIiwiZ2V0U3ByTm9kZSIsInJlc05hbWUiLCJzZiIsImZpbmQiLCJnZXRDb21wb25lbnQiLCJTcHJpdGUiLCJub2RlIiwiYWRkQ29tcG9uZW50IiwiZ2V0U3ByTm9kZUJ5VXJsIiwic3ByIiwicGxheUF1ZGlvIiwicGxheUVmZmVjdCIsImFzeW5jRGVsYXkiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNldFRpbWVvdXQiLCJlIiwiRmlyZXdvcmtTZXR0aW5ncyIsIm5vZGVMaXN0Iiwic2lkZSIsInJhbmdlIiwibnVtYmVyIiwic2NhbHNlUmFuZ2UiLCJjb3B5IiwiZmlyZXdvcmsiLCJzaG93RmlyZXdvcmtzIiwiZmlyZXdvcmtTZXR0aW5ncyIsIkFycmF5IiwiZmlsbCIsImZvckVhY2giLCJfIiwiaSIsInJhYmJvbk5vZGUiLCJpbnN0YW50aWF0ZSIsImFjdGl2ZSIsImFzeW5jVHdlZW5CeSIsImVhc2luZyIsImJ5IiwicmFiYm9uRmFsbCIsInVuaW9uIiwicmVwZWF0Rm9yZXZlciIsImRlbGF5Iiwib3BhY2l0eSIsImNhbGwiLCJzdG9wQWxsQWN0aW9ucyIsIm9mZnNldFgiLCJhc3luY1R3ZWVuVG8iLCJkdXJhdGlvbiIsIm9iaiIsImVhc2UiLCJ1bmRlZmluZWQiLCJzaG93VHJlYmxlRmlyZXdvcmsiLCJyYWJib25MaXN0IiwibWlkZGxlIiwibGVmdCIsInJpZ2h0Iiwib25Ib21ld29ya0ZpbmlzaCIsIm1pZGRsZUxheWVyIiwibWlkZGxlTGF5ZXJDb21wb25lbnQiLCJyb2xlIiwiY29uc29sZSIsImxvZyIsImxvYWREcmFnb25Cb25lcyIsImRyYWdvbkRpc3BsYXkiLCJ0ZXgiLCJhdGxhcyIsInNrZSIsInR5cGUiLCJlcnJvciIsInRleHR1cmUiLCJhdGxhc0pzb24iLCJkcmFnb25Cb25lc0pzb24iLCJhdGxhc09iaiIsImRyYWdvbkJvbmVzIiwiRHJhZ29uQm9uZXNBdGxhc0Fzc2V0IiwidXVpZCIsImFzc2V0IiwiRHJhZ29uQm9uZXNBc3NldCIsImFybWF0dXJlTmFtZSIsIl9kcmFnb25Cb25lc0pzb25EYXRhIiwiYXJtYXR1cmUiLCJkcmFnb25BdGxhc0Fzc2V0IiwiZHJhZ29uQXNzZXQiLCJhYWJiIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVNBLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCQyxHQUE5QixFQUFtQztBQUV4QyxNQUFNQyxNQUFNLEdBQUdGLEtBQUssR0FBR0csSUFBSSxDQUFDQyxFQUFiLEdBQWtCLEdBQWpDO0FBQ0EsTUFBTUMsQ0FBQyxHQUFHRixJQUFJLENBQUNHLEdBQUwsQ0FBU0osTUFBVCxJQUFtQkQsR0FBN0I7QUFDQSxNQUFNTSxDQUFDLEdBQUdKLElBQUksQ0FBQ0ssR0FBTCxDQUFTTixNQUFULElBQW1CRCxHQUE3QjtBQUVBLFNBQU87QUFBRUksSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtFLElBQUFBLENBQUMsRUFBREE7QUFBTCxHQUFQO0FBRUQ7O0FBRU0sU0FBU0UsYUFBVCxDQUF1QkMsRUFBdkIsRUFBMkJDLEVBQTNCLEVBQStCQyxFQUEvQixFQUFtQ0MsRUFBbkMsRUFBdUM7QUFFNUMsTUFBTVIsQ0FBQyxHQUFHRixJQUFJLENBQUNXLEdBQUwsQ0FBU0osRUFBRSxHQUFHRSxFQUFkLENBQVY7QUFDQSxNQUFNTCxDQUFDLEdBQUdKLElBQUksQ0FBQ1csR0FBTCxDQUFTSCxFQUFFLEdBQUdFLEVBQWQsQ0FBVjtBQUVBLE1BQU1FLENBQUMsR0FBR1osSUFBSSxDQUFDYSxJQUFMLENBQVViLElBQUks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LFFBQVEsQ0FBQ0YsU0FBVCxHQUFxQkEsU0FBckI7QUFDQUUsVUFBQUEsUUFBUSxDQUFDSCxPQUFULEdBQW1CQSxPQUFuQjtBQUVBLGNBQU1PLEtBQUssR0FBRyxJQUFJSCxXQUFXLENBQUNJLGdCQUFoQixFQUFkO0FBQ0FELFVBQUFBLEtBQUssQ0FBQ0QsSUFBTixHQUFhVCxHQUFiO0FBQ0FVLFVBQUFBLEtBQUssQ0FBQ0wsZUFBTixHQUF3QkEsZUFBeEI7QUFFQSxjQUFNTyxZQUFZLEdBQUdGLEtBQUssQ0FBQ0csb0JBQU4sQ0FBMkJDLFFBQTNCLENBQW9DLENBQXBDLEVBQXVDOUcsSUFBdkMsSUFBK0MsU0FBcEU7QUFDQTZGLFVBQUFBLGFBQWEsQ0FBQ2UsWUFBZCxHQUE2QkEsWUFBN0I7QUFFQWYsVUFBQUEsYUFBYSxDQUFDa0IsZ0JBQWQsR0FBaUNULFFBQWpDO0FBQ0FULFVBQUFBLGFBQWEsQ0FBQ21CLFdBQWQsR0FBNEJOLEtBQTVCO0FBQ0EvRCxVQUFBQSxPQUFPLENBQUMrRCxLQUFLLENBQUNHLG9CQUFOLENBQTJCQyxRQUEzQixDQUFvQyxDQUFwQyxFQUF1Q0csSUFBeEMsQ0FBUDtBQUNELFNBcEJEO0FBcUJILE9BMUJEO0FBMkJELEtBaENEO0FBaUNELEdBbENNLENBQVA7QUFvQ0QiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRQb3NCeUFuZ2xlKGFuZ2xlLCBsZW4pIHtcblxuICBjb25zdCByYWRpYW4gPSBhbmdsZSAqIE1hdGguUEkgLyAxODA7XG4gIGNvbnN0IHggPSBNYXRoLnNpbihyYWRpYW4pICogbGVuO1xuICBjb25zdCB5ID0gTWF0aC5jb3MocmFkaWFuKSAqIGxlbjtcblxuICByZXR1cm4geyB4LCB5IH07XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuZ2xlQnlQb3MocHgsIHB5LCBteCwgbXkpIHtcblxuICBjb25zdCB4ID0gTWF0aC5hYnMocHggLSBteCk7XG4gIGNvbnN0IHkgPSBNYXRoLmFicyhweSAtIG15KTtcblxuICBjb25zdCB6ID0gTWF0aC5zcXJ0KE1hdGgucG93KHgsIDIpICsgTWF0aC5wb3coeSwgMikpO1xuICBjb25zdCBjb3MgPSB5IC8gejtcbiAgY29uc3QgcmFkaW5hID0gTWF0aC5hY29zKGNvcyk7IC8vIOeUqOWPjeS4ieinkuWHveaVsOaxguW8p+W6plxuICBsZXQgYW5nbGUgPSBNYXRoLmZsb29yKDE4MCAvIChNYXRoLlBJIC8gcmFkaW5hKSAqIDEwMCkgLyAxMDA7IC8vIOWwhuW8p+W6pui9rOaNouaIkOinkuW6plxuXG4gIGlmIChteCA+IHB4ICYmIG15ID4gcHkpIHsvLyDpvKDmoIflnKjnrKzlm5vosaHpmZBcbiAgICBhbmdsZSA9IDE4MCAtIGFuZ2xlO1xuICB9XG4gIGlmIChteCA9PT0gcHggJiYgbXkgPiBweSkgey8vIOm8oOagh+WcqHnovbTotJ/mlrnlkJHkuIpcbiAgICBhbmdsZSA9IDE4MDtcbiAgfVxuICBpZiAobXggPiBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L205q2j5pa55ZCR5LiKXG4gICAgYW5nbGUgPSA5MDtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA+IHB5KSB7Ly8g6byg5qCH5Zyo56ys5LiJ6LGh6ZmQXG4gICAgYW5nbGUgPSAxODAgKyBhbmdsZTtcbiAgfVxuICBpZiAobXggPCBweCAmJiBteSA9PT0gcHkpIHsvLyDpvKDmoIflnKh46L206LSf5pa55ZCRXG4gICAgYW5nbGUgPSAyNzA7XG4gIH1cbiAgaWYgKG14IDwgcHggJiYgbXkgPCBweSkgey8vIOm8oOagh+WcqOesrOS6jOixoemZkFxuICAgIGFuZ2xlID0gMzYwIC0gYW5nbGU7XG4gIH1cblxuICAvLyBjb25zb2xlLmxvZygnYW5nbGU6ICcsIGFuZ2xlKTtcbiAgcmV0dXJuIGFuZ2xlO1xuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGNoYW5nZU5vZGVQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcbiAgcmV0dXJuIGJhc2VOb2RlLmNvbnZlcnRUb05vZGVTcGFjZUFSKHRhcmdldE5vZGUuX3BhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSYW5kb21JbnQoYSwgYiA9IDApIHtcbiAgbGV0IG1heCA9IE1hdGgubWF4KGEsIGIpO1xuICBsZXQgbWluID0gTWF0aC5taW4oYSwgYik7XG4gIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21Tb3J0QnlBcnIoYXJyKSB7XG4gIGNvbnN0IG5ld0FyciA9IFtdO1xuICBjb25zdCB0bXBBcnIgPSBhcnIuY29uY2F0KCk7XG4gIHdoaWxlICh0bXBBcnIubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcih0bXBBcnIubGVuZ3RoICogTWF0aC5yYW5kb20oKSk7XG4gICAgbmV3QXJyLnB1c2godG1wQXJyW3JhbmRvbUluZGV4XSk7XG4gICAgdG1wQXJyLnNwbGljZShyYW5kb21JbmRleCwgMSk7XG4gIH1cbiAgcmV0dXJuIG5ld0Fycjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNwck5vZGVNYXhMZW4oc3ByTm9kZSwgbWF4VywgbWF4SCkge1xuICBjb25zdCBzeCA9IG1heFcgLyBzcHJOb2RlLndpZHRoO1xuICBjb25zdCBzeSA9IG1heEggLyBzcHJOb2RlLmhlaWdodDtcbiAgY29uc3QgcyA9IE1hdGgubWluKHN4LCBzeSk7XG4gIHNwck5vZGUuc2NhbGUgPSBNYXRoLnJvdW5kKHMgKiAxMDAwKSAvIDEwMDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFBvc1RvbG9jYWxQb3MoYmFzZU5vZGUsIHRhcmdldE5vZGUpIHtcblx0Y29uc3Qgd29ybGRQb3MgPSB0YXJnZXROb2RlLnBhcmVudC5jb252ZXJ0VG9Xb3JsZFNwYWNlQVIoY2MudjIodGFyZ2V0Tm9kZS54LCB0YXJnZXROb2RlLnkpKTtcblx0Y29uc3QgbG9jYWxQb3MgPSBiYXNlTm9kZS5wYXJlbnQuY29udmVydFRvTm9kZVNwYWNlQVIoY2MudjIod29ybGRQb3MueCwgd29ybGRQb3MueSkpO1xuXHRyZXR1cm4gbG9jYWxQb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JsZFBvc1RvTG9jYWxQb3Mod29ybGRQb3MsIGJhc2VOb2RlKSB7XG5cdGNvbnN0IGxvY2FsUG9zID0gYmFzZU5vZGUucGFyZW50LmNvbnZlcnRUb05vZGVTcGFjZUFSKGNjLnYyKHdvcmxkUG9zLngsIHdvcmxkUG9zLnkpKTtcblx0cmV0dXJuIGxvY2FsUG9zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVSYXRlQnkyTm9kZShiYXNlTm9kZSwgdGFyZ2V0Tm9kZSwgbWF4RmxhZyA9IHRydWUpIHtcblx0Y29uc3Qgd29ybGRSZWN0MSA9IHRhcmdldE5vZGUuZ2V0Qm91bmRpbmdCb3hUb1dvcmxkKCk7XG5cdGNvbnN0IHdvcmxkUmVjdDIgPSBiYXNlTm9kZS5nZXRCb3VuZGluZ0JveFRvV29ybGQoKTtcblxuXHRjb25zdCBzeCA9IHdvcmxkUmVjdDEud2lkdGggLyB3b3JsZFJlY3QyLndpZHRoO1xuXHRjb25zdCBzeSA9IHdvcmxkUmVjdDEuaGVpZ2h0IC8gd29ybGRSZWN0Mi5oZWlnaHQ7XG5cdGlmIChtYXhGbGFnKSB7XG5cdFx0cmV0dXJuIE1hdGgubWF4KHN4LCBzeSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIE1hdGgubWluKHN4LCBzeSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlIChzdGFydCwgZW5kKXtcbiAgICB2YXIgcG9zID0gY2MudjIoc3RhcnQueCAtIGVuZC54LCBzdGFydC55IC0gZW5kLnkpO1xuICAgIHZhciBkaXMgPSBNYXRoLnNxcnQocG9zLngqcG9zLnggKyBwb3MueSpwb3MueSk7XG4gICAgcmV0dXJuIGRpcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBsYXlBdWRpb0J5VXJsKGF1ZGlvX3VybCwgY2I9bnVsbCkge1xuXHRpZiAoYXVkaW9fdXJsKSB7XG4gICAgaWYgKChhdWRpb191cmwgaW5zdGFuY2VvZiBjYy5BdWRpb0NsaXApICYmYXVkaW9fdXJsLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ2NjX0F1ZGlvQ2xpcCcpIHtcbiAgICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5KGF1ZGlvX3VybCwgZmFsc2UsIDAuOCk7XG4gICAgICBpZiAoY2IpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soYXVkaW9JZCwgKCkgPT4ge1xuICAgICAgICAgIGNiKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZShhdWRpb191cmwsIChlcnIsIGF1ZGlvQ2xpcCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0lkID0gY2MuYXVkaW9FbmdpbmUucGxheShhdWRpb0NsaXAsIGZhbHNlLCAwLjgpO1xuICAgICAgICBpZiAoY2IpIHtcbiAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTsgICAgfVxuXHRcdFxuXHR9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGJ0bkNsaWNrQW5pbWEoYnRuLCB0aW1lPTAuMTUsIHJhdGU9MS4wNSkge1xuICBidG4udG1wU2NhbGUgPSBidG4uc2NhbGU7XG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgKCkgPT4ge1xuICAgIGNjLnR3ZWVuKGJ0bilcbiAgICAgIC50byh0aW1lIC8gMiwge3NjYWxlOiBidG4uc2NhbGUgKiByYXRlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9DQU5DRUwsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG4gIGJ0bi5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9FTkQsICgpID0+IHtcbiAgICBjYy50d2VlbihidG4pXG4gICAgICAudG8odGltZSAvIDIsIHtzY2FsZTogYnRuLnRtcFNjYWxlfSlcbiAgICAgIC5zdGFydCgpXG4gIH0pXG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwcml0ZUZyaW1lQnlVcmwodXJsLCBjYikge1xuICBjYy5sb2FkZXIubG9hZCh7IHVybCB9LCAoZXJyLCBpbWcpID0+IHtcbiAgICBjb25zdCBzcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZShpbWcpXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHJpdGVGcmFtZSk7XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3ByTm9kZShyZXNOYW1lKSB7XG4gIGNvbnN0IHNmID0gY2MuZmluZCgnQ2FudmFzL3Jlcy9pbWcvJyArIHJlc05hbWUpLmdldENvbXBvbmVudChjYy5TcHJpdGUpLnNwcml0ZUZyYW1lO1xuICBjb25zdCBub2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgbm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IHNmO1xuICByZXR1cm4gbm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwck5vZGVCeVVybCh1cmwsIGNiKSB7XG4gIGNvbnN0IG5vZGUgPSBuZXcgY2MuTm9kZSgpO1xuICBjb25zdCBzcHIgPSBub2RlLmFkZENvbXBvbmVudChjYy5TcHJpdGUpO1xuICBnZXRTcHJpdGVGcmltZUJ5VXJsKHVybCwgKHNmKSA9PiB7XG4gICAgc3ByLnNwcml0ZUZyYW1lID0gc2Y7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihzcHIpO1xuICAgIH1cbiAgfSlcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5QXVkaW8oYXVkaW9DbGlwLCBjYiA9IG51bGwpIHtcbiAgaWYgKGF1ZGlvQ2xpcCkge1xuICAgIGNvbnN0IGF1ZGlvSWQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvQ2xpcCwgZmFsc2UsIDAuOCk7XG4gICAgaWYgKGNiKSB7XG4gICAgICBjYy5hdWRpb0VuZ2luZS5zZXRGaW5pc2hDYWxsYmFjayhhdWRpb0lkLCAoKSA9PiB7XG4gICAgICAgIGNiKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRGVsYXkodGltZSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgdGltZSAqIDEwMDApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjbGFzcyBGaXJld29ya1NldHRpbmdzIHtcbiAgYmFzZU5vZGU7IC8vIOeItuiKgueCuVxuICBub2RlTGlzdDsgLy8g54Gr6Iqx6IqC54K555qEYXJyYXlcbiAgcG9zOyAvLyDlj5HlsITngrlcbiAgc2lkZTsgLy8g5Y+R5bCE5pa55ZCRXG4gIHJhbmdlOyAvLyDmianmlaPojIPlm7RcbiAgbnVtYmVyOyAvLyDlj5HlsITmlbDph49cbiAgc2NhbHNlUmFuZ2U7IC8vIOe8qeaUvuiMg+WbtFxuICBjb25zdHJ1Y3RvcihiYXNlTm9kZSwgbm9kZUxpc3QsXG4gICAgcG9zID0gY2MudjIoMCwgMCksXG4gICAgc2lkZSA9IGNjLnYyKDAsIDEwMCksXG4gICAgcmFuZ2UgPSA1MCxcbiAgICBudW1iZXIgPSAxMDAsXG4gICAgc2NhbHNlUmFuZ2UgPSAwXG4gICkge1xuICAgIHRoaXMuYmFzZU5vZGUgPSBiYXNlTm9kZTtcbiAgICB0aGlzLm5vZGVMaXN0ID0gbm9kZUxpc3Q7XG4gICAgdGhpcy5wb3MgPSBwb3M7XG4gICAgdGhpcy5zaWRlID0gc2lkZTtcbiAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5zY2Fsc2VSYW5nZSA9IHNjYWxzZVJhbmdlO1xuICB9XG5cbiAgc3RhdGljIGNvcHkoZmlyZXdvcmspIHtcbiAgICByZXR1cm4gbmV3IEZpcmV3b3JrU2V0dGluZ3MoXG4gICAgICBmaXJld29yay5iYXNlTm9kZSxcbiAgICAgIGZpcmV3b3JrLm5vZGVMaXN0LFxuICAgICAgZmlyZXdvcmsucG9zLFxuICAgICAgZmlyZXdvcmsuc2lkZSxcbiAgICAgIGZpcmV3b3JrLnJhbmdlLFxuICAgICAgZmlyZXdvcmsubnVtYmVyLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dGaXJld29ya3MoZmlyZXdvcmtTZXR0aW5ncykge1xuICBjb25zdCB7IGJhc2VOb2RlLCBub2RlTGlzdCwgcG9zLCBzaWRlLCByYW5nZSwgbnVtYmVyLCBzY2Fsc2VSYW5nZSB9ID0gZmlyZXdvcmtTZXR0aW5ncztcbiAgbmV3IEFycmF5KG51bWJlcikuZmlsbCgnICcpLmZvckVhY2goYXN5bmMgKF8sIGkpID0+IHtcblxuICAgIGxldCByYWJib25Ob2RlID0gbmV3IGNjLk5vZGUoKTtcbiAgICByYWJib25Ob2RlLnBhcmVudCA9IGJhc2VOb2RlO1xuICAgIHJhYmJvbk5vZGUueCA9IHBvcy54O1xuICAgIHJhYmJvbk5vZGUueSA9IHBvcy55O1xuICAgIHJhYmJvbk5vZGUuYW5nbGUgPSA2MCAqIE1hdGgucmFuZG9tKCkgLSAzMDtcblxuICAgIGxldCBub2RlID0gY2MuaW5zdGFudGlhdGUobm9kZUxpc3RbUmFuZG9tSW50KG5vZGVMaXN0Lmxlbmd0aCldKTtcbiAgICBub2RlLnBhcmVudCA9IHJhYmJvbk5vZGU7XG4gICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xuICAgIG5vZGUueCA9IDA7XG4gICAgbm9kZS55ID0gMDtcbiAgICBub2RlLmFuZ2xlID0gMDtcbiAgICBub2RlLnNjYWxlID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogc2NhbHNlUmFuZ2UgKyAxO1xuXG4gICAgY29uc3QgcmF0ZSA9IE1hdGgucmFuZG9tKCk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLlBJICogKE1hdGgucmFuZG9tKCkgKiAyIC0gMSk7XG5cbiAgICBhd2FpdCBhc3luY1R3ZWVuQnkocmFiYm9uTm9kZSwgMC4zLCB7XG4gICAgICB4OiBzaWRlLnggKiByYXRlICsgTWF0aC5jb3MoYW5nbGUpICogcmFuZ2UgKiByYXRlLFxuICAgICAgeTogc2lkZS55ICogcmF0ZSArIE1hdGguc2luKGFuZ2xlKSAqIHJhbmdlICogcmF0ZVxuICAgIH0sIHtcbiAgICAgIGVhc2luZzogJ3F1YWRJbidcbiAgICB9KTtcblxuICAgIGNjLnR3ZWVuKHJhYmJvbk5vZGUpXG4gICAgICAuYnkoOCwgeyB5OiAtMjAwMCB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICBjYy50d2VlbihyYWJib25Ob2RlKVxuICAgICAgLnRvKDUsIHsgc2NhbGU6IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIHNjYWxzZVJhbmdlICsgMSB9KVxuICAgICAgLnN0YXJ0KCk7XG5cbiAgICByYWJib25GYWxsKHJhYmJvbk5vZGUpO1xuXG4gICAgYXdhaXQgYXN5bmNEZWxheShNYXRoLnJhbmRvbSgpKTtcbiAgICBjYy50d2Vlbihub2RlKVxuICAgICAgLmJ5KDAuMTUsIHsgeDogLTEwLCBhbmdsZTogLTEwIH0pXG4gICAgICAuYnkoMC4zLCB7IHg6IDIwLCBhbmdsZTogMjAgfSlcbiAgICAgIC5ieSgwLjE1LCB7IHg6IC0xMCwgYW5nbGU6IC0xMCB9KVxuICAgICAgLnVuaW9uKClcbiAgICAgIC5yZXBlYXRGb3JldmVyKClcbiAgICAgIC5zdGFydCgpO1xuXG4gICAgY2MudHdlZW4ocmFiYm9uTm9kZSlcbiAgICAgIC5kZWxheSg1KVxuICAgICAgLnRvKDAuMywgeyBvcGFjaXR5OiAwIH0pXG4gICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgIG5vZGUuc3RvcEFsbEFjdGlvbnMoKTtcbiAgICAgICAgbm9kZS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgbm9kZS5wYXJlbnQgPSBudWxsO1xuICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgIH0pXG4gICAgICAuc3RhcnQoKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJhYmJvbkZhbGwobm9kZSkge1xuICBjb25zdCB0aW1lID0gMSArIE1hdGgucmFuZG9tKCk7XG4gIGNvbnN0IG9mZnNldFggPSBSYW5kb21JbnQoLTIwMCwgMjAwKSAqIHRpbWU7XG4gIGF3YWl0IGFzeW5jVHdlZW5CeShub2RlLCB0aW1lLCB7IHg6IG9mZnNldFgsIGFuZ2xlOiBvZmZzZXRYICogNjAgLyAyMDAgfSk7XG4gIHJhYmJvbkZhbGwobm9kZSk7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5Ubyhub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC50byhkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jVHdlZW5CeShub2RlLCBkdXJhdGlvbiwgb2JqLCBlYXNlID0gdW5kZWZpbmVkKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNjLnR3ZWVuKG5vZGUpXG4gICAgICAgIC5ieShkdXJhdGlvbiwgb2JqLCBlYXNlKVxuICAgICAgICAuY2FsbCgoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuc3RhcnQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dUcmVibGVGaXJld29yayhiYXNlTm9kZSwgcmFiYm9uTGlzdCkge1xuICBjb25zdCBtaWRkbGUgPSBuZXcgRmlyZXdvcmtTZXR0aW5ncyhiYXNlTm9kZSwgcmFiYm9uTGlzdCk7XG4gIG1pZGRsZS5wb3MgPSBjYy52MigwLCAtNDAwKTtcbiAgbWlkZGxlLnNpZGUgPSBjYy52MigwLCAxMDAwKTtcbiAgbWlkZGxlLnJhbmdlID0gMjAwO1xuICBtaWRkbGUubnVtYmVyID0gMTAwO1xuICBtaWRkbGUuc2NhbHNlUmFuZ2UgPSAwLjQ7XG5cbiAgY29uc3QgbGVmdCA9IEZpcmV3b3JrU2V0dGluZ3MuY29weShtaWRkbGUpO1xuICBsZWZ0LnBvcyA9IGNjLnYyKC02MDAsIC00MDApO1xuICBsZWZ0LnNpZGUgPSBjYy52MigyMDAsIDEwMDApO1xuXG4gIGNvbnN0IHJpZ2h0ID0gRmlyZXdvcmtTZXR0aW5ncy5jb3B5KG1pZGRsZSk7XG4gIHJpZ2h0LnBvcyA9IGNjLnYyKDYwMCwgLTQwMCk7XG4gIHJpZ2h0LnNpZGUgPSBjYy52MigtMjAwLCAxMDAwKTtcblxuICBzaG93RmlyZXdvcmtzKG1pZGRsZSk7XG4gIHNob3dGaXJld29ya3MobGVmdCk7XG4gIHNob3dGaXJld29ya3MocmlnaHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb25Ib21ld29ya0ZpbmlzaCgpIHtcbiAgY29uc3QgbWlkZGxlTGF5ZXIgPSBjYy5maW5kKCdtaWRkbGVMYXllcicpO1xuICBpZiAobWlkZGxlTGF5ZXIpIHtcbiAgICBjb25zdCBtaWRkbGVMYXllckNvbXBvbmVudCA9IG1pZGRsZUxheWVyLmdldENvbXBvbmVudCgnbWlkZGxlTGF5ZXInKTtcbiAgICBpZiAobWlkZGxlTGF5ZXJDb21wb25lbnQucm9sZSA9PSAnc3R1ZGVudCcpIHtcbiAgICAgIG1pZGRsZUxheWVyQ29tcG9uZW50Lm9uSG9tZXdvcmtGaW5pc2goKCkgPT4geyB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ29uSG9tZXdvcmtGaW5pc2gnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWdvbkJvbmVzKGRyYWdvbkRpc3BsYXkse3RleCwgYXRsYXMsIHNrZX0pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogdGV4LCB0eXBlOiAncG5nJyB9LCAoZXJyb3IsIHRleHR1cmUpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2MubG9hZGVyLmxvYWQoeyB1cmw6IGF0bGFzLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGF0bGFzSnNvbikgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgICBjYy5sb2FkZXIubG9hZCh7IHVybDogc2tlLCB0eXBlOiAndHh0JyB9LCAoZXJyb3IsIGRyYWdvbkJvbmVzSnNvbikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhdGxhc09iaiA9IG5ldyBkcmFnb25Cb25lcy5EcmFnb25Cb25lc0F0bGFzQXNzZXQoKVxuICAgICAgICAgICAgYXRsYXNPYmoudXVpZCA9IGF0bGFzXG4gICAgICAgICAgICBhdGxhc09iai5hdGxhc0pzb24gPSBhdGxhc0pzb25cbiAgICAgICAgICAgIGF0bGFzT2JqLnRleHR1cmUgPSB0ZXh0dXJlXG4gIFxuICAgICAgICAgICAgY29uc3QgYXNzZXQgPSBuZXcgZHJhZ29uQm9uZXMuRHJhZ29uQm9uZXNBc3NldCgpXG4gICAgICAgICAgICBhc3NldC51dWlkID0gc2tlXG4gICAgICAgICAgICBhc3NldC5kcmFnb25Cb25lc0pzb24gPSBkcmFnb25Cb25lc0pzb247XG5cbiAgICAgICAgICAgIGNvbnN0IGFybWF0dXJlTmFtZSA9IGFzc2V0Ll9kcmFnb25Cb25lc0pzb25EYXRhLmFybWF0dXJlWzBdLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5hcm1hdHVyZU5hbWUgPSBhcm1hdHVyZU5hbWU7XG4gIFxuICAgICAgICAgICAgZHJhZ29uRGlzcGxheS5kcmFnb25BdGxhc0Fzc2V0ID0gYXRsYXNPYmpcbiAgICAgICAgICAgIGRyYWdvbkRpc3BsYXkuZHJhZ29uQXNzZXQgPSBhc3NldDtcbiAgICAgICAgICAgIHJlc29sdmUoYXNzZXQuX2RyYWdvbkJvbmVzSnNvbkRhdGEuYXJtYXR1cmVbMF0uYWFiYik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIFxufSJdfQ== //------QC-SOURCE-SPLIT------