Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

93 rindas
244 KiB

  1. (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["polyfills"],{
  2. /***/ "./node_modules/next/dist/client/polyfills.js":
  3. /*!****************************************************!*\
  4. !*** ./node_modules/next/dist/client/polyfills.js ***!
  5. \****************************************************/
  6. /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
  7. "use strict";
  8. /* module decorator */ module = __webpack_require__.nmd(module);
  9. __webpack_require__(/*! next/dist/build/polyfills/polyfill-nomodule */ "./node_modules/next/dist/build/polyfills/polyfill-nomodule.js");
  10. ;
  11. var _a, _b;
  12. // Legacy CSS implementations will `eval` browser code in a Node.js context
  13. // to extract CSS. For backwards compatibility, we need to check we're in a
  14. // browser context before continuing.
  15. if (typeof self !== 'undefined' &&
  16. // AMP / No-JS mode does not inject these helpers:
  17. '$RefreshHelpers$' in self) {
  18. var currentExports = module.__proto__.exports;
  19. var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;
  20. // This cannot happen in MainTemplate because the exports mismatch between
  21. // templating and execution.
  22. self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);
  23. // A module can be accepted automatically based on its exports, e.g. when
  24. // it is a Refresh Boundary.
  25. if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {
  26. // Save the previous exports on update so we can compare the boundary
  27. // signatures.
  28. module.hot.dispose(function (data) {
  29. data.prevExports = currentExports;
  30. });
  31. // Unconditionally accept an update to this module, we'll check if it's
  32. // still a Refresh Boundary later.
  33. module.hot.accept();
  34. // This field is set when the previous version of this module was a
  35. // Refresh Boundary, letting us know we need to check for invalidation or
  36. // enqueue an update.
  37. if (prevExports !== null) {
  38. // A boundary can become ineligible if its exports are incompatible
  39. // with the previous exports.
  40. //
  41. // For example, if you add/remove/change exports, we'll want to
  42. // re-execute the importing modules, and force those components to
  43. // re-render. Similarly, if you convert a class component to a
  44. // function, we want to invalidate the boundary.
  45. if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {
  46. module.hot.invalidate();
  47. }
  48. else {
  49. self.$RefreshHelpers$.scheduleUpdate();
  50. }
  51. }
  52. }
  53. else {
  54. // Since we just executed the code for the module, it's possible that the
  55. // new exports made it ineligible for being a boundary.
  56. // We only care about the case when we were _previously_ a boundary,
  57. // because we already accepted this update (accidental side effect).
  58. var isNoLongerABoundary = prevExports !== null;
  59. if (isNoLongerABoundary) {
  60. module.hot.invalidate();
  61. }
  62. }
  63. }
  64. /***/ }),
  65. /***/ "./node_modules/next/dist/build/polyfills/polyfill-nomodule.js":
  66. /*!*********************************************************************!*\
  67. !*** ./node_modules/next/dist/build/polyfills/polyfill-nomodule.js ***!
  68. \*********************************************************************/
  69. /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
  70. !function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof __webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r=function(t){return t&&t.Math==Math&&t},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")(),o=function(t){try{return!!t()}catch(t){return!0}},i=!o(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}),a={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,s={f:u&&!a.call({1:2},1)?function(t){var e=u(this,t);return!!e&&e.enumerable}:a},c=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},f={}.toString,l=function(t){return f.call(t).slice(8,-1)},h="".split,p=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==l(t)?h.call(t,""):Object(t)}:Object,d=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},v=function(t){return p(d(t))},g=function(t){return"object"==typeof t?null!==t:"function"==typeof t},y=function(t,e){if(!g(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!g(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},m={}.hasOwnProperty,b=function(t,e){return m.call(t,e)},w=n.document,S=g(w)&&g(w.createElement),E=function(t){return S?w.createElement(t):{}},x=!i&&!o(function(){return 7!=Object.defineProperty(E("div"),"a",{get:function(){return 7}}).a}),A=Object.getOwnPropertyDescriptor,O={f:i?A:function(t,e){if(t=v(t),e=y(e,!0),x)try{return A(t,e)}catch(t){}if(b(t,e))return c(!s.f.call(t,e),t[e])}},R=function(t){if(!g(t))throw TypeError(String(t)+" is not an object");return t},j=Object.defineProperty,P={f:i?j:function(t,e,r){if(R(t),e=y(e,!0),R(r),x)try{return j(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},I=i?function(t,e,r){return P.f(t,e,c(1,r))}:function(t,e,r){return t[e]=r,t},T=function(t,e){try{I(n,t,e)}catch(r){n[t]=e}return e},k="__core-js_shared__",L=n[k]||T(k,{}),U=Function.toString;"function"!=typeof L.inspectSource&&(L.inspectSource=function(t){return U.call(t)});var M,_,N,C=L.inspectSource,F=n.WeakMap,B="function"==typeof F&&/native code/.test(C(F)),D=!1,q=e(function(t){(t.exports=function(t,e){return L[t]||(L[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})}),z=0,W=Math.random(),K=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++z+W).toString(36)},G=q("keys"),$=function(t){return G[t]||(G[t]=K(t))},V={};if(B){var H=new(0,n.WeakMap),X=H.get,Y=H.has,J=H.set;M=function(t,e){return J.call(H,t,e),e},_=function(t){return X.call(H,t)||{}},N=function(t){return Y.call(H,t)}}else{var Q=$("state");V[Q]=!0,M=function(t,e){return I(t,Q,e),e},_=function(t){return b(t,Q)?t[Q]:{}},N=function(t){return b(t,Q)}}var Z,tt={set:M,get:_,has:N,enforce:function(t){return N(t)?_(t):M(t,{})},getterFor:function(t){return function(e){var r;if(!g(e)||(r=_(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},et=e(function(t){var e=tt.get,r=tt.enforce,o=String(String).split("String");(t.exports=function(t,e,i,a){var u=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,c=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||b(i,"name")||I(i,"name",e),r(i).source=o.join("string"==typeof e?e:"")),t!==n?(u?!c&&t[e]&&(s=!0):delete t[e],s?t[e]=i:I(t,e,i)):s?t[e]=i:T(e,i)})(Function.prototype,"toString",function(){return"function"==typeof this&&e(this).source||C(this)})}),rt=n,nt=function(t){return"function"==typeof t?t:void 0},ot=function(t,e){return arguments.length<2?nt(rt[t])||nt(n[t]):rt[t]&&rt[t][e]||n[t]&&n[t][e]},it=Math.ceil,at=Math.floor,ut=function(t){return isNaN(t=+t)?0:(t>0?at:it)(t)},st=Math.min,ct=function(t){return t>0?st(ut(t),9007199254740991):0},ft=Math.max,lt=Math.min,ht=function(t,e){var r=ut(t);return r<0?ft(r+e,0):lt(r,e)},pt=function(t){return function(e,r,n){var o,i=v(e),a=ct(i.length),u=ht(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},dt={includes:pt(!0),indexOf:pt(!1)},vt=dt.indexOf,gt=function(t,e){var r,n=v(t),o=0,i=[];for(r in n)!b(V,r)&&b(n,r)&&i.push(r);for(;e.length>o;)b(n,r=e[o++])&&(~vt(i,r)||i.push(r));return i},yt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mt=yt.concat("length","prototype"),bt={f:Object.getOwnPropertyNames||function(t){return gt(t,mt)}},wt={f:Object.getOwnPropertySymbols},St=ot("Reflect","ownKeys")||function(t){var e=bt.f(R(t)),r=wt.f;return r?e.concat(r(t)):e},Et=function(t,e){for(var r=St(e),n=P.f,o=O.f,i=0;i<r.length;i++){var a=r[i];b(t,a)||n(t,a,o(e,a))}},xt=/#|\.prototype\./,At=function(t,e){var r=Rt[Ot(t)];return r==Pt||r!=jt&&("function"==typeof e?o(e):!!e)},Ot=At.normalize=function(t){return String(t).replace(xt,".").toLowerCase()},Rt=At.data={},jt=At.NATIVE="N",Pt=At.POLYFILL="P",It=At,Tt=O.f,kt=function(t,e){var r,o,i,a,u,s=t.target,c=t.global,f=t.stat;if(r=c?n:f?n[s]||T(s,{}):(n[s]||{}).prototype)for(o in e){if(a=e[o],i=t.noTargetGet?(u=Tt(r,o))&&u.value:r[o],!It(c?o:s+(f?".":"#")+o,t.forced)&&void 0!==i){if(typeof a==typeof i)continue;Et(a,i)}(t.sham||i&&i.sham)&&I(a,"sham",!0),et(r,o,a,t)}},Lt=function(t){return Object(d(t))},Ut=Math.min,Mt=[].copyWithin||function(t,e){var r=Lt(this),n=ct(r.length),o=ht(t,n),i=ht(e,n),a=arguments.length>2?arguments[2]:void 0,u=Ut((void 0===a?n:ht(a,n))-i,n-o),s=1;for(i<o&&o<i+u&&(s=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:delete r[o],o+=s,i+=s;return r},_t=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())}),Nt=_t&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ct=q("wks"),Ft=n.Symbol,Bt=Nt?Ft:Ft&&Ft.withoutSetter||K,Dt=function(t){return b(Ct,t)||(Ct[t]=_t&&b(Ft,t)?Ft[t]:Bt("Symbol."+t)),Ct[t]},qt=Object.keys||function(t){return gt(t,yt)},zt=i?Object.defineProperties:function(t,e){R(t);for(var r,n=qt(e),o=n.length,i=0;o>i;)P.f(t,r=n[i++],e[r]);return t},Wt=ot("document","documentElement"),Kt=$("IE_PROTO"),Gt=function(){},$t=function(t){return"<script>"+t+"<\/script>"},Vt=function(){try{Z=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;Vt=Z?function(t){t.write($t("")),t.close();var e=t.parentWindow.Object;return t=null,e}(Z):((e=E("iframe")).style.display="none",Wt.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write($t("document.F=Object")),t.close(),t.F);for(var r=yt.length;r--;)delete Vt.prototype[yt[r]];return Vt()};V[Kt]=!0;var Ht=Object.create||function(t,e){var r;return null!==t?(Gt.prototype=R(t),r=new Gt,Gt.prototype=null,r[Kt]=t):r=Vt(),void 0===e?r:zt(r,e)},Xt=Dt("unscopables"),Yt=Array.prototype;null==Yt[Xt]&&P.f(Yt,Xt,{configurable:!0,value:Ht(null)});var Jt=function(t){Yt[Xt][t]=!0};kt({target:"Array",proto:!0},{copyWithin:Mt}),Jt("copyWithin");var Qt=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},Zt=function(t,e,r){if(Qt(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},te=Function.call,ee=function(t,e,r){return Zt(te,n[t].prototype[e],r)};ee("Array","copyWithin"),kt({target:"Array",proto:!0},{fill:function(t){for(var e=Lt(this),r=ct(e.length),n=arguments.length,o=ht(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:ht(i,r);a>o;)e[o++]=t;return e}}),Jt("fill"),ee("Array","fill");var re=Array.isArray||function(t){return"Array"==l(t)},ne=Dt("species"),oe=function(t,e){var r;return re(t)&&("function"!=typeof(r=t.constructor)||r!==Array&&!re(r.prototype)?g(r)&&null===(r=r[ne])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)},ie=[].push,ae=function(t){var e=1==t,r=2==t,n=3==t,o=4==t,i=6==t,a=5==t||i;return function(u,s,c,f){for(var l,h,d=Lt(u),v=p(d),g=Zt(s,c,3),y=ct(v.length),m=0,b=f||oe,w=e?b(u,y):r?b(u,0):void 0;y>m;m++)if((a||m in v)&&(h=g(l=v[m],m,d),t))if(e)w[m]=h;else if(h)switch(t){case 3:return!0;case 5:return l;case 6:return m;case 2:ie.call(w,l)}else if(o)return!1;return i?-1:n||o?o:w}},ue={forEach:ae(0),map:ae(1),filter:ae(2),some:ae(3),every:ae(4),find:ae(5),findIndex:ae(6)},se=Object.defineProperty,ce={},fe=function(t){throw t},le=function(t,e){if(b(ce,t))return ce[t];e||(e={});var r=[][t],n=!!b(e,"ACCESSORS")&&e.ACCESSORS,a=b(e,0)?e[0]:fe,u=b(e,1)?e[1]:void 0;return ce[t]=!!r&&!o(function(){if(n&&!i)return!0;var t={length:-1};n?se(t,1,{enumerable:!0,get:fe}):t[1]=1,r.call(t,a,u)})},he=ue.find,pe="find",de=!0,ve=le(pe);pe in[]&&Array(1).find(function(){de=!1}),kt({target:"Array",proto:!0,forced:de||!ve},{find:function(t){return he(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(pe),ee("Array","find");var ge=ue.findIndex,ye="findIndex",me=!0,be=le(ye);ye in[]&&Array(1).findIndex(function(){me=!1}),kt({target:"Array",proto:!0,forced:me||!be},{findIndex:function(t){return ge(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(ye),ee("Array","findIndex");var we=function t(e,r,n,o,i,a,u,s){for(var c,f=i,l=0,h=!!u&&Zt(u,s,3);l<o;){if(l in n){if(c=h?h(n[l],l,r):n[l],a>0&&re(c))f=t(e,r,c,ct(c.length),f,a-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=c}f++}l++}return f};kt({target:"Array",proto:!0},{flatMap:function(t){var e,r=Lt(this),n=ct(r.length);return Qt(t),(e=oe(r,0)).length=we(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Jt("flatMap"),ee("Array","flatMap"),kt({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=Lt(this),r=ct(e.length),n=oe(e,0);return n.length=we(n,e,e,r,0,void 0===t?1:ut(t)),n}}),Jt("flat"),ee("Array","flat");var Se,Ee,xe,Ae=function(t){return function(e,r){var n,o,i=String(d(e)),a=ut(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=i.charCodeAt(a))<55296||n>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):n:t?i.slice(a,a+2):o-56320+(n-55296<<10)+65536}},Oe={codeAt:Ae(!1),charAt:Ae(!0)},Re=!o(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),je=$("IE_PROTO"),Pe=Object.prototype,Ie=Re?Object.getPrototypeOf:function(t){return t=Lt(t),b(t,je)?t[je]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?Pe:null},Te=Dt("iterator"),ke=!1;[].keys&&("next"in(xe=[].keys())?(Ee=Ie(Ie(xe)))!==Object.prototype&&(Se=Ee):ke=!0),null==Se&&(Se={}),b(Se,Te)||I(Se,Te,function(){return this});var Le={IteratorPrototype:Se,BUGGY_SAFARI_ITERATORS:ke},Ue=P.f,Me=Dt("toStringTag"),_e=function(t,e,r){t&&!b(t=r?t:t.prototype,Me)&&Ue(t,Me,{configurable:!0,value:e})},Ne={},Ce=Le.IteratorPrototype,Fe=function(){return this},Be=function(t,e,r){var n=e+" Iterator";return t.prototype=Ht(Ce,{next:c(1,r)}),_e(t,n,!1),Ne[n]=Fe,t},De=function(t){if(!g(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t},qe=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return R(r),De(n),e?t.call(r,n):r.__proto__=n,r}}():void 0),ze=Le.IteratorPrototype,We=Le.BUGGY_SAFARI_ITERATORS,Ke=Dt("iterator"),Ge="keys",$e="values",Ve="entries",He=function(){return this},Xe=function(t,e,r,n,o,i,a){Be(r,e,n);var u,s,c,f=function(t){if(t===o&&v)return v;if(!We&&t in p)return p[t];switch(t){case Ge:case $e:case Ve:return function(){return new r(this,t)}}return function(){return new r(this)}},l=e+" Iterator",h=!1,p=t.prototype,d=p[Ke]||p["@@iterator"]||o&&p[o],v=!We&&d||f(o),g="Array"==e&&p.entries||d;if(g&&(u=Ie(g.call(new t)),ze!==Object.prototype&&u.next&&(Ie(u)!==ze&&(qe?qe(u,ze):"function"!=typeof u[Ke]&&I(u,Ke,He)),_e(u,l,!0))),o==$e&&d&&d.name!==$e&&(h=!0,v=function(){return d.call(this)}),p[Ke]!==v&&I(p,Ke,v),Ne[e]=v,o)if(s={values:f($e),keys:i?v:f(Ge),entries:f(Ve)},a)for(c in s)(We||h||!(c in p))&&et(p,c,s[c]);else kt({target:e,proto:!0,forced:We||h},s);return s},Ye=Oe.charAt,Je="String Iterator",Qe=tt.set,Ze=tt.getterFor(Je);Xe(String,"String",function(t){Qe(this,{type:Je,string:String(t),index:0})},function(){var t,e=Ze(this),r=e.string,n=e.index;return n>=r.length?{value:void 0,done:!0}:(t=Ye(r,n),e.index+=t.length,{value:t,done:!1})});var tr=function(t,e,r,n){try{return n?e(R(r)[0],r[1]):e(r)}catch(e){var o=t.return;throw void 0!==o&&R(o.call(t)),e}},er=Dt("iterator"),rr=Array.prototype,nr=function(t){return void 0!==t&&(Ne.Array===t||rr[er]===t)},or=function(t,e,r){var n=y(e);n in t?P.f(t,n,c(0,r)):t[n]=r},ir={};ir[Dt("toStringTag")]="z";var ar="[object z]"===String(ir),ur=Dt("toStringTag"),sr="Arguments"==l(function(){return arguments}()),cr=ar?l:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),ur))?r:sr?l(e):"Object"==(n=l(e))&&"function"==typeof e.callee?"Arguments":n},fr=Dt("iterator"),lr=function(t){if(null!=t)return t[fr]||t["@@iterator"]||Ne[cr(t)]},hr=function(t){var e,r,n,o,i,a,u=Lt(t),s="function"==typeof this?this:Array,c=arguments.length,f=c>1?arguments[1]:void 0,l=void 0!==f,h=lr(u),p=0;if(l&&(f=Zt(f,c>2?arguments[2]:void 0,2)),null==h||s==Array&&nr(h))for(r=new s(e=ct(u.length));e>p;p++)a=l?f(u[p],p):u[p],or(r,p,a);else for(i=(o=h.call(u)).next,r=new s;!(n=i.call(o)).done;p++)a=l?tr(o,f,[n.value,p],!0):n.value,or(r,p,a);return r.length=p,r},pr=Dt("iterator"),dr=!1;try{var vr=0,gr={next:function(){return{done:!!vr++}},return:function(){dr=!0}};gr[pr]=function(){return this},Array.from(gr,function(){throw 2})}catch(t){}var yr=function(t,e){if(!e&&!dr)return!1;var r=!1;try{var n={};n[pr]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},mr=!yr(function(t){Array.from(t)});kt({target:"Array",stat:!0,forced:mr},{from:hr});var br=dt.includes,wr=le("indexOf",{ACCESSORS:!0,1:0});kt({target:"Array",proto:!0,forced:!wr},{includes:function(t){return br(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt("includes"),ee("Array","includes");var Sr="Array Iterator",Er=tt.set,xr=tt.getterFor(Sr),Ar=Xe(Array,"Array",function(t,e){Er(this,{type:Sr,target:v(t),index:0,kind:e})},function(){var t=xr(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}},"values");Ne.Arguments=Ne.Array,Jt("keys"),Jt("values"),Jt("entries"),ee("Array","values");var Or=o(function(){function t(){}return!(Array.of.call(t)instanceof t)});kt({target:"Array",stat:!0,forced:Or},{of:function(){for(var t=0,e=arguments.length,r=new("function"==typeof this?this:Array)(e);e>t;)or(r,t,arguments[t++]);return r.length=e,r}});var Rr=Dt("hasInstance"),jr=Function.prototype;Rr in jr||P.f(jr,Rr,{value:function(t){if("function"!=typeof this||!g(t))return!1;if(!g(this.prototype))return t instanceof this;for(;t=Ie(t);)if(this.prototype===t)return!0;return!1}}),Dt("hasInstance");var Pr=Function.prototype,Ir=Pr.toString,Tr=/^\s*function ([^ (]*)/,kr="name";i&&!(kr in Pr)&&(0,P.f)(Pr,kr,{configurable:!0,get:function(){try{return Ir.call(this).match(Tr)[1]}catch(t){return""}}});var Lr=!o(function(){return Object.isExtensible(Object.preventExtensions({}))}),Ur=e(function(t){var e=P.f,r=K("meta"),n=0,o=Object.isExtensible||function(){return!0},i=function(t){e(t,r,{value:{objectID:"O"+ ++n,weakData:{}}})},a=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!g(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!b(t,r)){if(!o(t))return"F";if(!e)return"E";i(t)}return t[r].objectID},getWeakData:function(t,e){if(!b(t,r)){if(!o(t))return!0;if(!e)return!1;i(t)}return t[r].weakData},onFreeze:function(t){return Lr&&a.REQUIRED&&o(t)&&!b(t,r)&&i(t),t}};V[r]=!0}),Mr=e(function(t){var e=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,r,n,o,i){var a,u,s,c,f,l,h,p=Zt(r,n,o?2:1);if(i)a=t;else{if("function"!=typeof(u=lr(t)))throw TypeError("Target is not iterable");if(nr(u)){for(s=0,c=ct(t.length);c>s;s++)if((f=o?p(R(h=t[s])[0],h[1]):p(t[s]))&&f instanceof e)return f;return new e(!1)}a=u.call(t)}for(l=a.next;!(h=l.call(a)).done;)if("object"==typeof(f=tr(a,p,h.value,o))&&f&&f instanceof e)return f;return new e(!1)}).stop=function(t){return new e(!0,t)}}),_r=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t},Nr=function(t,e,r){var n,o;return qe&&"function"==typeof(n=e.constructor)&&n!==r&&g(o=n.prototype)&&o!==r.prototype&&qe(t,o),t},Cr=function(t,e,r){var i=-1!==t.indexOf("Map"),a=-1!==t.indexOf("Weak"),u=i?"set":"add",s=n[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=c[t];et(c,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return a&&!g(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:function(t,r){return e.call(this,0===t?0:t,r),this})};if(It(t,"function"!=typeof s||!(a||c.forEach&&!o(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,i,u),Ur.REQUIRED=!0;else if(It(t,!0)){var p=new f,d=p[u](a?{}:-0,1)!=p,v=o(function(){p.has(1)}),y=yr(function(t){new s(t)}),m=!a&&o(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});y||((f=e(function(e,r){_r(e,f,t);var n=Nr(new s,e,f);return null!=r&&Mr(r,n[u],n,i),n})).prototype=c,c.constructor=f),(v||m)&&(h("delete"),h("has"),i&&h("get")),(m||d)&&h(u),a&&c.clear&&delete c.clear}return l[t]=f,kt({global:!0,forced:f!=s},l),_e(f,t),a||r.setStrong(f,t,i),f},Fr=function(t,e,r){for(var n in e)et(t,n,e[n],r);return t},Br=Dt("species"),Dr=function(t){var e=ot(t);i&&e&&!e[Br]&&(0,P.f)(e,Br,{configurable:!0,get:function(){return this}})},qr=P.f,zr=Ur.fastKey,Wr=tt.set,Kr=tt.getterFor,Gr={getConstructor:function(t,e,r,n){var o=t(function(t,a){_r(t,o,e),Wr(t,{type:e,index:Ht(null),first:void 0,last:void 0,size:0}),i||(t.size=0),null!=a&&Mr(a,t[n],t,r)}),a=Kr(e),u=function(t,e,r){var n,o,u=a(t),c=s(t,e);return c?c.value=r:(u.last=c={index:o=zr(e,!0),key:e,value:r,previous:n=u.last,next:void 0,removed:!1},u.first||(u.first=c),n&&(n.next=c),i?u.size++:t.size++,"F"!==o&&(u.index[o]=c)),t},s=function(t,e){var r,n=a(t),o=zr(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==e)return r};return Fr(o.prototype,{clear:function(){for(var t=a(this),e=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete e[r.index],r=r.next;t.first=t.last=void 0,i?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=s(e,t);if(n){var o=n.next,u=n.previous;delete r.index[n.index],n.removed=!0,u&&(u.next=o),o&&(o.previous=u),r.first==n&&(r.first=o),r.last==n&&(r.last=u),i?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!s(this,t)}}),Fr(o.prototype,r?{get:function(t){var e=s(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),i&&qr(o.prototype,"size",{get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=Kr(e),i=Kr(n);Xe(t,e,function(t,e){Wr(this,{type:n,target:t,state:o(t),kind:e,last:void 0})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?"keys"==e?{value:r.key,done:!1}:"values"==e?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})},r?"entries":"values",!r,!0),Dr(e)}},$r=Cr("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr);ar||et(Object.prototype,"toString",ar?{}.toString:function(){return"[object "+cr(this)+"]"},{unsafe:!0});var Vr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Hr=Dt("iterator"),Xr=Dt("toStringTag"),Yr=Ar.values;for(var Jr in Vr){var Qr=n[Jr],Zr=Qr&&Qr.prototype;if(Zr){if(Zr[Hr]!==Yr)try{I(Zr,Hr,Yr)}catch(t){Zr[Hr]=Yr}if(Zr[Xr]||I(Zr,Xr,Jr),Vr[Jr])for(var tn in Ar)if(Zr[tn]!==Ar[tn])try{I(Zr,tn,Ar[tn])}catch(t){Zr[tn]=Ar[tn]}}}var en=function(t){var e,r,n,o,i=arguments.length,a=i>1?arguments[1]:void 0;return Qt(this),(e=void 0!==a)&&Qt(a),null==t?new this:(r=[],e?(n=0,o=Zt(a,i>2?arguments[2]:void 0,2),Mr(t,function(t){r.push(o(t,n++))})):Mr(t,r.push,r),new this(r))};kt({target:"Map",stat:!0},{from:en});var rn=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)};kt({target:"Map",stat:!0},{of:rn});var nn=function(){for(var t,e=R(this),r=Qt(e.delete),n=!0,o=0,i=arguments.length;o<i;o++)t=r.call(e,arguments[o]),n=n&&t;return!!n};kt({target:"Map",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var on=function(t){var e=lr(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return R(e.call(t))},an=function(t){return Map.prototype.entries.call(t)};kt({target:"Map",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t,r){if(!n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}});var un=Dt("species"),sn=function(t,e){var r,n=R(t).constructor;return void 0===n||null==(r=R(n)[un])?e:Qt(r)};kt({target:"Map",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(r)},void 0,!0,!0).result}}),kt({target:"Map",proto:!0,real:!0,forced:D},{findKey:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop(t)},void 0,!0,!0).result}}),kt({target:"Map",stat:!0},{groupBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.has),o=Qt(r.get),i=Qt(r.set);return Mr(t,function(t){var a=e(t);n.call(r,a)?o.call(r,a).push(t):i.call(r,a,[t])}),r}}),kt({target:"Map",proto:!0,real:!0,forced:D},{includes:function(t){return Mr(an(R(this)),function(e,r){if((n=r)===(o=t)||n!=n&&o!=o)return Mr.stop();var n,o},void 0,!0,!0).stopped}}),kt({target:"Map",stat:!0},{keyBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.set);return Mr(t,function(t){n.call(r,e(t),t)}),r}}),kt({target:"Map",proto:!0,real:!0,forced:D},{keyOf:function(t){return Mr(an(R(this)),function(e,r){if(r===t)return Mr.stop(e)},void 0,!0,!0).result}}),kt({target:"Map",proto:!0,real:!0,forced:D},{mapKeys:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,n(r,t,e),r)},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{mapValues:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Map"))),i=Qt(o.set);return Mr(r,function(t,r){i.call(o,t,n(r,t,e))},void 0,!0,!0),o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{merge:function(t){for(var e=R(this),r=Qt(e.set),n=0;n<arguments.length;)Mr(arguments[n++],r,e,!0);return e}}),kt({target:"Map",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=an(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r,i){n?(n=!1,o=i):o=t(o,i,r,e)},void 0,!0,!0),n)throw TypeError("Reduce of empty map with no initial value");return o}}),kt({target:"Map",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t,r){if(n(r,t,e))return Mr.stop()},void 0,!0,!0).stopped}}),kt({target:"Map",proto:!0,real:!0,forced:D},{update:function(t,e){var r=R(this),n=arguments.length;Qt(e);var o=r.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?r.get(t):Qt(n>2?arguments[2]:void 0)(t,r);return r.set(t,e(i,t,r)),r}});var cn=function(t,e){var r,n=R(this),o=arguments.length>2?arguments[2]:void 0;if("function"!=typeof e&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(r=n.get(t),"function"==typeof e&&(r=e(r),n.set(t,r))):"function"==typeof o&&(r=o(),n.set(t,r)),r};kt({target:"Map",proto:!0,real:!0,forced:D},{upsert:cn}),kt({target:"Map",proto:!0,real:!0,forced:D},{updateOrInsert:cn});var fn="\t\n\v\f\r                 \u2028\u2029\ufeff",ln="["+fn+"]",hn=RegExp("^"+ln+ln+"*"),pn=RegExp(ln+ln+"*$"),dn=function(t){return function(e){var r=String(d(e));return 1&t&&(r=r.replace(hn,"")),2&t&&(r=r.replace(pn,"")),r}},vn={start:dn(1),end:dn(2),trim:dn(3)},gn=bt.f,yn=O.f,mn=P.f,bn=vn.trim,wn="Number",Sn=n.Number,En=Sn.prototype,xn=l(Ht(En))==wn,An=function(t){var e,r,n,o,i,a,u,s,c=y(t,!1);if("string"==typeof c&&c.length>2)if(43===(e=(c=bn(c)).charCodeAt(0))||45===e){if(88===(r=c.charCodeAt(2))||120===r)return NaN}else if(48===e){switch(c.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=c.slice(2)).length,u=0;u<a;u++)if((s=i.charCodeAt(u))<48||s>o)return NaN;return parseInt(i,n)}return+c};if(It(wn,!Sn(" 0o1")||!Sn("0b1")||Sn("+0x1"))){for(var On,Rn=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof Rn&&(xn?o(function(){En.valueOf.call(r)}):l(r)!=wn)?Nr(new Sn(An(e)),r,Rn):An(e)},jn=i?gn(Sn):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),Pn=0;jn.length>Pn;Pn++)b(Sn,On=jn[Pn])&&!b(Rn,On)&&mn(Rn,On,yn(Sn,On));Rn.prototype=En,En.constructor=Rn,et(n,wn,Rn)}kt({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)});var In=n.isFinite;kt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&In(t)}});var Tn=Math.floor,kn=function(t){return!g(t)&&isFinite(t)&&Tn(t)===t};kt({target:"Number",stat:!0},{isInteger:kn}),kt({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Ln=Math.abs;kt({target:"Number",stat:!0},{isSafeInteger:function(t){return kn(t)&&Ln(t)<=9007199254740991}}),kt({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),kt({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991});var Un=vn.trim,Mn=n.parseFloat,_n=1/Mn(fn+"-0")!=-Infinity?function(t){var e=Un(String(t)),r=Mn(e);return 0===r&&"-"==e.charAt(0)?-0:r}:Mn;kt({target:"Number",stat:!0,forced:Number.parseFloat!=_n},{parseFloat:_n});var Nn=vn.trim,Cn=n.parseInt,Fn=/^[+-]?0[Xx]/,Bn=8!==Cn(fn+"08")||22!==Cn(fn+"0x16")?function(t,e){var r=Nn(String(t));return Cn(r,e>>>0||(Fn.test(r)?16:10))}:Cn;kt({target:"Number",stat:!0,forced:Number.parseInt!=Bn},{parseInt:Bn});var Dn=s.f,qn=function(t){return function(e){for(var r,n=v(e),o=qt(n),a=o.length,u=0,s=[];a>u;)r=o[u++],i&&!Dn.call(n,r)||s.push(t?[r,n[r]]:n[r]);return s}},zn={entries:qn(!0),values:qn(!1)},Wn=zn.entries;kt({target:"Object",stat:!0},{entries:function(t){return Wn(t)}}),kt({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=v(t),o=O.f,i=St(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&or(a,e,r);return a}});var Kn=o(function(){qt(1)});kt({target:"Object",stat:!0,forced:Kn},{keys:function(t){return qt(Lt(t))}});var Gn=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};kt({target:"Object",stat:!0},{is:Gn});var $n=zn.values;kt({target:"Object",stat:!0},{values:function(t){return $n(t)}});var Vn=ot("Reflect","apply"),Hn=Function.apply,Xn=!o(function(){Vn(function(){})});kt({target:"Reflect",stat:!0,forced:Xn},{apply:function(t,e,r){return Qt(t),R(r),Vn?Vn(t,e,r):Hn.call(t,e,r)}});var Yn=[].slice,Jn={},Qn=function(t,e,r){if(!(e in Jn)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";Jn[e]=Function("C,a","return new C("+n.join(",")+")")}return Jn[e](t,r)},Zn=Function.bind||function(t){var e=Qt(this),r=Yn.call(arguments,1),n=function(){var o=r.concat(Yn.call(arguments));return this instanceof n?Qn(e,o.length,o):e.apply(t,o)};return g(e.prototype)&&(n.prototype=e.prototype),n},to=ot("Reflect","construct"),eo=o(function(){function t(){}return!(to(function(){},[],t)instanceof t)}),ro=!o(function(){to(function(){})}),no=eo||ro;kt({target:"Reflect",stat:!0,forced:no,sham:no},{construct:function(t,e){Qt(t),R(e);var r=arguments.length<3?t:Qt(arguments[2]);if(ro&&!eo)return to(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(Zn.apply(t,n))}var o=r.prototype,i=Ht(g(o)?o:Object.prototype),a=Function.apply.call(t,i,e);return g(a)?a:i}});var oo=o(function(){Reflect.defineProperty(P.f({},1,{value:1}),1,{value:2})});kt({target:"Reflect",stat:!0,forced:oo,sham:!i},{defineProperty:function(t,e,r){R(t);var n=y(e,!0);R(r);try{return P.f(t,n,r),!0}catch(t){return!1}}});var io=O.f;kt({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var r=io(R(t),e);return!(r&&!r.configurable)&&delete t[e]}}),kt({target:"Reflect",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return R(e)===i?e[r]:(n=O.f(e,r))?b(n,"value")?n.value:void 0===n.get?void 0:n.get.call(i):g(o=Ie(e))?t(o,r,i):void 0}}),kt({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return O.f(R(t),e)}}),kt({target:"Reflect",stat:!0,sham:!Re},{getPrototypeOf:function(t){return Ie(R(t))}}),kt({target:"Reflect",stat:!0},{has:function(t,e){return e in t}});var ao=Object.isExtensible;kt({target:"Reflect",stat:!0},{isExtensible:function(t){return R(t),!ao||ao(t)}}),kt({target:"Reflect",stat:!0},{ownKeys:St}),kt({target:"Reflect",stat:!0,sham:!Lr},{preventExtensions:function(t){R(t);try{var e=ot("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}});var uo=o(function(){var t=P.f({},"a",{configurable:!0});return!1!==Reflect.set(Ie(t),"a",1,t)});kt({target:"Reflect",stat:!0,forced:uo},{set:function t(e,r,n){var o,i,a=arguments.length<4?e:arguments[3],u=O.f(R(e),r);if(!u){if(g(i=Ie(e)))return t(i,r,n,a);u=c(0)}if(b(u,"value")){if(!1===u.writable||!g(a))return!1;if(o=O.f(a,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,P.f(a,r,o)}else P.f(a,r,c(0,n));return!0}return void 0!==u.set&&(u.set.call(a,n),!0)}}),qe&&kt({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){R(t),De(e);try{return qe(t,e),!0}catch(t){return!1}}});var so=Ur.getWeakData,co=tt.set,fo=tt.getterFor,lo=ue.find,ho=ue.findIndex,po=0,vo=function(t){return t.frozen||(t.frozen=new go)},go=function(){this.entries=[]},yo=function(t,e){return lo(t.entries,function(t){return t[0]===e})};go.prototype={get:function(t){var e=yo(this,t);if(e)return e[1]},has:function(t){return!!yo(this,t)},set:function(t,e){var r=yo(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=ho(this.entries,function(e){return e[0]===t});return~e&&this.entries.splice(e,1),!!~e}};var mo={getConstructor:function(t,e,r,n){var o=t(function(t,i){_r(t,o,e),co(t,{type:e,id:po++,frozen:void 0}),null!=i&&Mr(i,t[n],t,r)}),i=fo(e),a=function(t,e,r){var n=i(t),o=so(R(e),!0);return!0===o?vo(n).set(e,r):o[n.id]=r,t};return Fr(o.prototype,{delete:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).delete(t):r&&b(r,e.id)&&delete r[e.id]},has:function(t){var e=i(this);if(!g(t))return!1;var r=so(t);return!0===r?vo(e).has(t):r&&b(r,e.id)}}),Fr(o.prototype,r?{get:function(t){var e=i(this);if(g(t)){var r=so(t);return!0===r?vo(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},bo=e(function(t){var e,r=tt.enforce,o=!n.ActiveXObject&&"ActiveXObject"in n,i=Object.isExtensible,a=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},u=t.exports=Cr("WeakMap",a,mo);if(B&&o){e=mo.getConstructor(a,"WeakMap",!0),Ur.REQUIRED=!0;var s=u.prototype,c=s.delete,f=s.has,l=s.get,h=s.set;Fr(s,{delete:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),c.call(this,t)||n.frozen.delete(t)}return c.call(this,t)},has:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)||n.frozen.has(t)}return f.call(this,t)},get:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)?l.call(this,t):n.frozen.get(t)}return l.call(this,t)},set:function(t,n){if(g(t)&&!i(t)){var o=r(this);o.frozen||(o.frozen=new e),f.call(this,t)?h.call(this,t,n):o.frozen.set(t,n)}else h.call(this,t,n);return this}})}}),wo=q("metadata"),So=wo.store||(wo.store=new bo),Eo=function(t,e,r){var n=So.get(t);if(!n){if(!r)return;So.set(t,n=new $r)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new $r)}return o},xo={store:So,getMap:Eo,has:function(t,e,r){var n=Eo(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=Eo(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){Eo(r,n,!0).set(t,e)},keys:function(t,e){var r=Eo(t,e,!1),n=[];return r&&r.forEach(function(t,e){n.push(e)}),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}},Ao=xo.toKey,Oo=xo.set;kt({target:"Reflect",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Ao(arguments[3]);Oo(t,e,R(r),n)}});var Ro=xo.toKey,jo=xo.getMap,Po=xo.store;kt({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:Ro(arguments[2]),n=jo(R(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=Po.get(e);return o.delete(r),!!o.size||Po.delete(e)}});var Io=xo.has,To=xo.get,ko=xo.toKey,Lo=function t(e,r,n){if(Io(e,r,n))return To(e,r,n);var o=Ie(r);return null!==o?t(e,o,n):void 0};kt({target:"Reflect",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:ko(arguments[2]);return Lo(t,R(e),r)}});var Uo=Cr("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Gr),Mo=xo.keys,_o=xo.toKey,No=function t(e,r){var n=Mo(e,r),o=Ie(e);if(null===o)return n;var i,a,u=t(o,r);return u.length?n.length?(i=new Uo(n.concat(u)),Mr(i,(a=[]).push,a),a):u:n};kt({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:_o(arguments[1]);return No(R(t),e)}});var Co=xo.get,Fo=xo.toKey;kt({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Fo(arguments[2]);return Co(t,R(e),r)}});var Bo=xo.keys,Do=xo.toKey;kt({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:Do(arguments[1]);return Bo(R(t),e)}});var qo=xo.has,zo=xo.toKey,Wo=function t(e,r,n){if(qo(e,r,n))return!0;var o=Ie(r);return null!==o&&t(e,o,n)};kt({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:zo(arguments[2]);return Wo(t,R(e),r)}});var Ko=xo.has,Go=xo.toKey;kt({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:Go(arguments[2]);return Ko(t,R(e),r)}});var $o=xo.toKey,Vo=xo.set;kt({target:"Reflect",stat:!0},{metadata:function(t,e){return function(r,n){Vo(t,e,R(r),$o(n))}}});var Ho=Dt("match"),Xo=function(t){var e;return g(t)&&(void 0!==(e=t[Ho])?!!e:"RegExp"==l(t))},Yo=function(){var t=R(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function Jo(t,e){return RegExp(t,e)}var Qo={UNSUPPORTED_Y:o(function(){var t=Jo("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),BROKEN_CARET:o(function(){var t=Jo("^r","gy");return t.lastIndex=2,null!=t.exec("str")})},Zo=P.f,ti=bt.f,ei=tt.set,ri=Dt("match"),ni=n.RegExp,oi=ni.prototype,ii=/a/g,ai=/a/g,ui=new ni(ii)!==ii,si=Qo.UNSUPPORTED_Y;if(i&&It("RegExp",!ui||si||o(function(){return ai[ri]=!1,ni(ii)!=ii||ni(ai)==ai||"/a/i"!=ni(ii,"i")}))){for(var ci=function(t,e){var r,n=this instanceof ci,o=Xo(t),i=void 0===e;if(!n&&o&&t.constructor===ci&&i)return t;ui?o&&!i&&(t=t.source):t instanceof ci&&(i&&(e=Yo.call(t)),t=t.source),si&&(r=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=Nr(ui?new ni(t,e):ni(t,e),n?this:oi,ci);return si&&r&&ei(a,{sticky:r}),a},fi=function(t){t in ci||Zo(ci,t,{configurable:!0,get:function(){return ni[t]},set:function(e){ni[t]=e}})},li=ti(ni),hi=0;li.length>hi;)fi(li[hi++]);oi.constructor=ci,ci.prototype=oi,et(n,"RegExp",ci)}Dr("RegExp");var pi="toString",di=RegExp.prototype,vi=di.toString;(o(function(){return"/a/b"!=vi.call({source:"a",flags:"b"})})||vi.name!=pi)&&et(RegExp.prototype,pi,function(){var t=R(this),e=String(t.source),r=t.flags;return"/"+e+"/"+String(void 0===r&&t instanceof RegExp&&!("flags"in di)?Yo.call(t):r)},{unsafe:!0});var gi=RegExp.prototype.exec,yi=String.prototype.replace,mi=gi,bi=function(){var t=/a/,e=/b*/g;return gi.call(t,"a"),gi.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),wi=Qo.UNSUPPORTED_Y||Qo.BROKEN_CARET,Si=void 0!==/()??/.exec("")[1];(bi||Si||wi)&&(mi=function(t){var e,r,n,o,i=this,a=wi&&i.sticky,u=Yo.call(i),s=i.source,c=0,f=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),f=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(s="(?: "+s+")",f=" "+f,c++),r=new RegExp("^(?:"+s+")",u)),Si&&(r=new RegExp("^"+s+"$(?!\\s)",u)),bi&&(e=i.lastIndex),n=gi.call(a?r:i,f),a?n?(n.input=n.input.slice(c),n[0]=n[0].slice(c),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:bi&&n&&(i.lastIndex=i.global?n.index+n[0].length:e),Si&&n&&n.length>1&&yi.call(n[0],r,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)}),n});var Ei=mi;kt({target:"RegExp",proto:!0,forced:/./.exec!==Ei},{exec:Ei}),i&&("g"!=/./g.flags||Qo.UNSUPPORTED_Y)&&P.f(RegExp.prototype,"flags",{configurable:!0,get:Yo});var xi=tt.get,Ai=RegExp.prototype;i&&Qo.UNSUPPORTED_Y&&(0,P.f)(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==Ai){if(this instanceof RegExp)return!!xi(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}});var Oi,Ri,ji=(Oi=!1,(Ri=/[ac]/).exec=function(){return Oi=!0,/./.exec.apply(this,arguments)},!0===Ri.test("abc")&&Oi),Pi=/./.test;kt({target:"RegExp",proto:!0,forced:!ji},{test:function(t){if("function"!=typeof this.exec)return Pi.call(this,t);var e=this.exec(t);if(null!==e&&!g(e))throw new Error("RegExp exec method returned something other than an Object or null");return!!e}});var Ii=Dt("species"),Ti=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),ki="$0"==="a".replace(/./,"$0"),Li=Dt("replace"),Ui=!!/./[Li]&&""===/./[Li]("a","$0"),Mi=!o(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),_i=function(t,e,r,n){var i=Dt(t),a=!o(function(){var e={};return e[i]=function(){return 7},7!=""[t](e)}),u=a&&!o(function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[Ii]=function(){return r},r.flags="",r[i]=/./[i]),r.exec=function(){return e=!0,null},r[i](""),!e});if(!a||!u||"replace"===t&&(!Ti||!ki||Ui)||"split"===t&&!Mi){var s=/./[i],c=r(i,""[t],function(t,e,r,n,o){return e.exec===Ei?a&&!o?{done:!0,value:s.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}},{REPLACE_KEEPS_$0:ki,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Ui}),f=c[1];et(String.prototype,t,c[0]),et(RegExp.prototype,i,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)})}n&&I(RegExp.prototype[i],"sham",!0)},Ni=Oe.charAt,Ci=function(t,e,r){return e+(r?Ni(t,e).length:1)},Fi=function(t,e){var r=t.exec;if("function"==typeof r){var n=r.call(t,e);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==l(t))throw TypeError("RegExp#exec called on incompatible receiver");return Ei.call(t,e)};_i("match",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this);if(!o.global)return Fi(o,i);var a=o.unicode;o.lastIndex=0;for(var u,s=[],c=0;null!==(u=Fi(o,i));){var f=String(u[0]);s[c]=f,""===f&&(o.lastIndex=Ci(i,ct(o.lastIndex),a)),c++}return 0===c?null:s}]});var Bi=Math.max,Di=Math.min,qi=Math.floor,zi=/\$([$&'`]|\d\d?|<[^>]*>)/g,Wi=/\$([$&'`]|\d\d?)/g;_i("replace",2,function(t,e,r,n){var o=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=n.REPLACE_KEEPS_$0,a=o?"$":"$0";return[function(r,n){var o=d(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):e.call(String(o),r,n)},function(t,n){if(!o&&i||"string"==typeof n&&-1===n.indexOf(a)){var s=r(e,t,this,n);if(s.done)return s.value}var c=R(t),f=String(this),l="function"==typeof n;l||(n=String(n));var h=c.global;if(h){var p=c.unicode;c.lastIndex=0}for(var d=[];;){var v=Fi(c,f);if(null===v)break;if(d.push(v),!h)break;""===String(v[0])&&(c.lastIndex=Ci(f,ct(c.lastIndex),p))}for(var g,y="",m=0,b=0;b<d.length;b++){v=d[b];for(var w=String(v[0]),S=Bi(Di(ut(v.index),f.length),0),E=[],x=1;x<v.length;x++)E.push(void 0===(g=v[x])?g:String(g));var A=v.groups;if(l){var O=[w].concat(E,S,f);void 0!==A&&O.push(A);var j=String(n.apply(void 0,O))}else j=u(w,f,S,E,A,n);S>=m&&(y+=f.slice(m,S)+j,m=S+w.length)}return y+f.slice(m)}];function u(t,r,n,o,i,a){var u=n+t.length,s=o.length,c=Wi;return void 0!==i&&(i=Lt(i),c=zi),e.call(a,c,function(e,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":c=i[a.slice(1,-1)];break;default:var f=+a;if(0===f)return e;if(f>s){var l=qi(f/10);return 0===l?e:l<=s?void 0===o[l-1]?a.charAt(1):o[l-1]+a.charAt(1):e}c=o[f-1]}return void 0===c?"":c})}}),_i("search",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=R(t),i=String(this),a=o.lastIndex;Gn(a,0)||(o.lastIndex=0);var u=Fi(o,i);return Gn(o.lastIndex,a)||(o.lastIndex=a),null===u?-1:u.index}]});var Ki=[].push,Gi=Math.min,$i=4294967295,Vi=!o(function(){return!RegExp($i,"y")});_i("split",2,function(t,e,r){var n;return n="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,r){var n=String(d(this)),o=void 0===r?$i:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!Xo(t))return e.call(n,t,o);for(var i,a,u,s=[],c=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(i=Ei.call(f,n))&&!((a=f.lastIndex)>c&&(s.push(n.slice(c,i.index)),i.length>1&&i.index<n.length&&Ki.apply(s,i.slice(1)),u=i[0].length,c=a,s.length>=o));)f.lastIndex===i.index&&f.lastIndex++;return c===n.length?!u&&f.test("")||s.push(""):s.push(n.slice(c)),s.length>o?s.slice(0,o):s}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var o=d(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,r):n.call(String(o),e,r)},function(t,o){var i=r(n,t,this,o,n!==e);if(i.done)return i.value;var a=R(t),u=String(this),s=sn(a,RegExp),c=a.unicode,f=new s(Vi?a:"^(?:"+a.source+")",(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(Vi?"y":"g")),l=void 0===o?$i:o>>>0;if(0===l)return[];if(0===u.length)return null===Fi(f,u)?[u]:[];for(var h=0,p=0,d=[];p<u.length;){f.lastIndex=Vi?p:0;var v,g=Fi(f,Vi?u:u.slice(p));if(null===g||(v=Gi(ct(f.lastIndex+(Vi?0:p)),u.length))===h)p=Ci(u,p,c);else{if(d.push(u.slice(h,p)),d.length===l)return d;for(var y=1;y<=g.length-1;y++)if(d.push(g[y]),d.length===l)return d;p=h=v}}return d.push(u.slice(h)),d}]},!Vi),kt({target:"Set",stat:!0},{from:en}),kt({target:"Set",stat:!0},{of:rn});var Hi=function(){for(var t=R(this),e=Qt(t.add),r=0,n=arguments.length;r<n;r++)e.call(t,arguments[r]);return t};kt({target:"Set",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:"Set",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}});var Xi=function(t){return Set.prototype.values.call(t)};kt({target:"Set",proto:!0,real:!0,forced:D},{every:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Mr(r,function(t){if(!n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{difference:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e),n=Qt(r.delete);return Mr(t,function(t){n.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{filter:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Set"))),i=Qt(o.add);return Mr(r,function(t){n(t,t,e)&&i.call(o,t)},void 0,!1,!0),o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{find:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop(t)},void 0,!1,!0).result}}),kt({target:"Set",proto:!0,real:!0,forced:D},{intersection:function(t){var e=R(this),r=new(sn(e,ot("Set"))),n=Qt(e.has),o=Qt(r.add);return Mr(t,function(t){n.call(e,t)&&o.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isDisjointFrom:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!0===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isSubsetOf:function(t){var e=on(this),r=R(t),n=r.has;return"function"!=typeof n&&(r=new(ot("Set"))(t),n=Qt(r.has)),!Mr(e,function(t){if(!1===n.call(r,t))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{isSupersetOf:function(t){var e=R(this),r=Qt(e.has);return!Mr(t,function(t){if(!1===r.call(e,t))return Mr.stop()}).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{join:function(t){var e=R(this),r=Xi(e),n=void 0===t?",":String(t),o=[];return Mr(r,o.push,o,!1,!0),o.join(n)}}),kt({target:"Set",proto:!0,real:!0,forced:D},{map:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(sn(e,ot("Set"))),i=Qt(o.add);return Mr(r,function(t){i.call(o,n(t,t,e))},void 0,!1,!0),o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{reduce:function(t){var e=R(this),r=Xi(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Mr(r,function(r){n?(n=!1,o=r):o=t(o,r,r,e)},void 0,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return o}}),kt({target:"Set",proto:!0,real:!0,forced:D},{some:function(t){var e=R(this),r=Xi(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Mr(r,function(t){if(n(t,t,e))return Mr.stop()},void 0,!1,!0).stopped}}),kt({target:"Set",proto:!0,real:!0,forced:D},{symmetricDifference:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e),n=Qt(r.delete),o=Qt(r.add);return Mr(t,function(t){n.call(r,t)||o.call(r,t)}),r}}),kt({target:"Set",proto:!0,real:!0,forced:D},{union:function(t){var e=R(this),r=new(sn(e,ot("Set")))(e);return Mr(t,Qt(r.add),r),r}});var Yi,Ji,Qi=ot("navigator","userAgent")||"",Zi=n.process,ta=Zi&&Zi.versions,ea=ta&&ta.v8;ea?Ji=(Yi=ea.split("."))[0]+Yi[1]:Qi&&(!(Yi=Qi.match(/Edge\/(\d+)/))||Yi[1]>=74)&&(Yi=Qi.match(/Chrome\/(\d+)/))&&(Ji=Yi[1]);var ra=Ji&&+Ji,na=Dt("species"),oa=Dt("isConcatSpreadable"),ia=9007199254740991,aa="Maximum allowed index exceeded",ua=ra>=51||!o(function(){var t=[];return t[oa]=!1,t.concat()[0]!==t}),sa=ra>=51||!o(function(){var t=[];return(t.constructor={})[na]=function(){return{foo:1}},1!==t.concat(Boolean).foo}),ca=function(t){if(!g(t))return!1;var e=t[oa];return void 0!==e?!!e:re(t)};kt({target:"Array",proto:!0,forced:!ua||!sa},{concat:function(t){var e,r,n,o,i,a=Lt(this),u=oe(a,0),s=0;for(e=-1,n=arguments.length;e<n;e++)if(ca(i=-1===e?a:arguments[e])){if(s+(o=ct(i.length))>ia)throw TypeError(aa);for(r=0;r<o;r++,s++)r in i&&or(u,s,i[r])}else{if(s>=ia)throw TypeError(aa);or(u,s++,i)}return u.length=s,u}});var fa=bt.f,la={}.toString,ha="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],pa={f:function(t){return ha&&"[object Window]"==la.call(t)?function(t){try{return fa(t)}catch(t){return ha.slice()}}(t):fa(v(t))}},da={f:Dt},va=P.f,ga=function(t){var e=rt.Symbol||(rt.Symbol={});b(e,t)||va(e,t,{value:da.f(t)})},ya=ue.forEach,ma=$("hidden"),ba="Symbol",wa=Dt("toPrimitive"),Sa=tt.set,Ea=tt.getterFor(ba),xa=Object.prototype,Aa=n.Symbol,Oa=ot("JSON","stringify"),Ra=O.f,ja=P.f,Pa=pa.f,Ia=s.f,Ta=q("symbols"),ka=q("op-symbols"),La=q("string-to-symbol-registry"),Ua=q("symbol-to-string-registry"),Ma=q("wks"),_a=n.QObject,Na=!_a||!_a.prototype||!_a.prototype.findChild,Ca=i&&o(function(){return 7!=Ht(ja({},"a",{get:function(){return ja(this,"a",{value:7}).a}})).a})?function(t,e,r){var n=Ra(xa,e);n&&delete xa[e],ja(t,e,r),n&&t!==xa&&ja(xa,e,n)}:ja,Fa=function(t,e){var r=Ta[t]=Ht(Aa.prototype);return Sa(r,{type:ba,tag:t,description:e}),i||(r.description=e),r},Ba=Nt?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Aa},Da=function(t,e,r){t===xa&&Da(ka,e,r),R(t);var n=y(e,!0);return R(r),b(Ta,n)?(r.enumerable?(b(t,ma)&&t[ma][n]&&(t[ma][n]=!1),r=Ht(r,{enumerable:c(0,!1)})):(b(t,ma)||ja(t,ma,c(1,{})),t[ma][n]=!0),Ca(t,n,r)):ja(t,n,r)},qa=function(t,e){R(t);var r=v(e),n=qt(r).concat(Ga(r));return ya(n,function(e){i&&!za.call(r,e)||Da(t,e,r[e])}),t},za=function(t){var e=y(t,!0),r=Ia.call(this,e);return!(this===xa&&b(Ta,e)&&!b(ka,e))&&(!(r||!b(this,e)||!b(Ta,e)||b(this,ma)&&this[ma][e])||r)},Wa=function(t,e){var r=v(t),n=y(e,!0);if(r!==xa||!b(Ta,n)||b(ka,n)){var o=Ra(r,n);return!o||!b(Ta,n)||b(r,ma)&&r[ma][n]||(o.enumerable=!0),o}},Ka=function(t){var e=Pa(v(t)),r=[];return ya(e,function(t){b(Ta,t)||b(V,t)||r.push(t)}),r},Ga=function(t){var e=t===xa,r=Pa(e?ka:v(t)),n=[];return ya(r,function(t){!b(Ta,t)||e&&!b(xa,t)||n.push(Ta[t])}),n};if(_t||(et((Aa=function(){if(this instanceof Aa)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=K(t),r=function t(r){this===xa&&t.call(ka,r),b(this,ma)&&b(this[ma],e)&&(this[ma][e]=!1),Ca(this,e,c(1,r))};return i&&Na&&Ca(xa,e,{configurable:!0,set:r}),Fa(e,t)}).prototype,"toString",function(){return Ea(this).tag}),et(Aa,"withoutSetter",function(t){return Fa(K(t),t)}),s.f=za,P.f=Da,O.f=Wa,bt.f=pa.f=Ka,wt.f=Ga,da.f=function(t){return Fa(Dt(t),t)},i&&(ja(Aa.prototype,"description",{configurable:!0,get:function(){return Ea(this).description}}),et(xa,"propertyIsEnumerable",za,{unsafe:!0}))),kt({global:!0,wrap:!0,forced:!_t,sham:!_t},{Symbol:Aa}),ya(qt(Ma),function(t){ga(t)}),kt({target:ba,stat:!0,forced:!_t},{for:function(t){var e=String(t);if(b(La,e))return La[e];var r=Aa(e);return La[e]=r,Ua[r]=e,r},keyFor:function(t){if(!Ba(t))throw TypeError(t+" is not a symbol");if(b(Ua,t))return Ua[t]},useSetter:function(){Na=!0},useSimple:function(){Na=!1}}),kt({target:"Object",stat:!0,forced:!_t,sham:!i},{create:function(t,e){return void 0===e?Ht(t):qa(Ht(t),e)},defineProperty:Da,defineProperties:qa,getOwnPropertyDescriptor:Wa}),kt({target:"Object",stat:!0,forced:!_t},{getOwnPropertyNames:Ka,getOwnPropertySymbols:Ga}),kt({target:"Object",stat:!0,forced:o(function(){wt.f(1)})},{getOwnPropertySymbols:function(t){return wt.f(Lt(t))}}),Oa){var $a=!_t||o(function(){var t=Aa();return"[null]"!=Oa([t])||"{}"!=Oa({a:t})||"{}"!=Oa(Object(t))});kt({target:"JSON",stat:!0,forced:$a},{stringify:function(t,e,r){for(var n,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=e,(g(e)||void 0!==t)&&!Ba(t))return re(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!Ba(e))return e}),o[1]=e,Oa.apply(null,o)}})}Aa.prototype[wa]||I(Aa.prototype,wa,Aa.prototype.valueOf),_e(Aa,ba),V[ma]=!0,ga("asyncIterator");var Va=P.f,Ha=n.Symbol;if(i&&"function"==typeof Ha&&(!("description"in Ha.prototype)||void 0!==Ha().description)){var Xa={},Ya=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof Ya?new Ha(t):void 0===t?Ha():Ha(t);return""===t&&(Xa[e]=!0),e};Et(Ya,Ha);var Ja=Ya.prototype=Ha.prototype;Ja.constructor=Ya;var Qa=Ja.toString,Za="Symbol(test)"==String(Ha("test")),tu=/^Symbol\((.*)\)[^)]+$/;Va(Ja,"description",{configurable:!0,get:function(){var t=g(this)?this.valueOf():this,e=Qa.call(t);if(b(Xa,t))return"";var r=Za?e.slice(7,-1):e.replace(tu,"$1");return""===r?void 0:r}}),kt({global:!0,forced:!0},{Symbol:Ya})}ga("hasInstance"),ga("isConcatSpreadable"),ga("iterator"),ga("match"),ga("matchAll"),ga("replace"),ga("search"),ga("species"),ga("split"),ga("toPrimitive"),ga("toStringTag"),ga("unscopables"),_e(Math,"Math",!0),_e(n.JSON,"JSON",!0),ga("asyncDispose"),ga("dispose"),ga("observable"),ga("patternMatch"),ga("replaceAll"),da.f("asyncIterator");var eu=Oe.codeAt;kt({target:"String",proto:!0},{codePointAt:function(t){return eu(this,t)}}),ee("String","codePointAt");var ru,nu=function(t){if(Xo(t))throw TypeError("The method doesn't accept regular expressions");return t},ou=Dt("match"),iu=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[ou]=!1,"/./"[t](e)}catch(t){}}return!1},au=O.f,uu="".endsWith,su=Math.min,cu=iu("endsWith"),fu=!(cu||(ru=au(String.prototype,"endsWith"),!ru||ru.writable));kt({target:"String",proto:!0,forced:!fu&&!cu},{endsWith:function(t){var e=String(d(this));nu(t);var r=arguments.length>1?arguments[1]:void 0,n=ct(e.length),o=void 0===r?n:su(ct(r),n),i=String(t);return uu?uu.call(e,i,o):e.slice(o-i.length,o)===i}}),ee("String","endsWith");var lu=String.fromCharCode,hu=String.fromCodePoint;kt({target:"String",stat:!0,forced:!!hu&&1!=hu.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],ht(e,1114111)!==e)throw RangeError(e+" is not a valid code point");r.push(e<65536?lu(e):lu(55296+((e-=65536)>>10),e%1024+56320))}return r.join("")}}),kt({target:"String",proto:!0,forced:!iu("includes")},{includes:function(t){return!!~String(d(this)).indexOf(nu(t),arguments.length>1?arguments[1]:void 0)}}),ee("String","includes");var pu="".repeat||function(t){var e=String(d(this)),r="",n=ut(t);if(n<0||Infinity==n)throw RangeError("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},du=Math.ceil,vu=function(t){return function(e,r,n){var o,i,a=String(d(e)),u=a.length,s=void 0===n?" ":String(n),c=ct(r);return c<=u||""==s?a:((i=pu.call(s,du((o=c-u)/s.length))).length>o&&(i=i.slice(0,o)),t?a+i:i+a)}},gu={start:vu(!1),end:vu(!0)},yu=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(Qi),mu=gu.start;kt({target:"String",proto:!0,forced:yu},{padStart:function(t){return mu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padStart");var bu=gu.end;kt({target:"String",proto:!0,forced:yu},{padEnd:function(t){return bu(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padEnd"),kt({target:"String",stat:!0},{raw:function(t){for(var e=v(t.raw),r=ct(e.length),n=arguments.length,o=[],i=0;r>i;)o.push(String(e[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}}),kt({target:"String",proto:!0},{repeat:pu}),ee("String","repeat");var wu=O.f,Su="".startsWith,Eu=Math.min,xu=iu("startsWith"),Au=!xu&&!!function(){var t=wu(String.prototype,"startsWith");return t&&!t.writable}();kt({target:"String",proto:!0,forced:!Au&&!xu},{startsWith:function(t){var e=String(d(this));nu(t);var r=ct(Eu(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return Su?Su.call(e,n,r):e.slice(r,r+n.length)===n}}),ee("String","startsWith");var Ou=function(t){return o(function(){return!!fn[t]()||"​…᠎"!="​…᠎"[t]()||fn[t].name!==t})},Ru=vn.start,ju=Ou("trimStart"),Pu=ju?function(){return Ru(this)}:"".trimStart;kt({target:"String",proto:!0,forced:ju},{trimStart:Pu,trimLeft:Pu}),ee("String","trimLeft");var Iu=vn.end,Tu=Ou("trimEnd"),ku=Tu?function(){return Iu(this)}:"".trimEnd;kt({target:"String",proto:!0,forced:Tu},{trimEnd:ku,trimRight:ku}),ee("String","trimRight");var Lu=Dt("iterator"),Uu=!o(function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,r="";return t.pathname="c%20d",e.forEach(function(t,n){e.delete("b"),r+=n+t}),!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Lu]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}),Mu=Object.assign,_u=Object.defineProperty,Nu=!Mu||o(function(){if(i&&1!==Mu({b:1},Mu(_u({},"a",{enumerable:!0,get:function(){_u(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},r=Symbol(),n="abcdefghijklmnopqrst";return t[r]=7,n.split("").forEach(function(t){e[t]=t}),7!=Mu({},t)[r]||qt(Mu({},e)).join("")!=n})?function(t,e){for(var r=Lt(t),n=arguments.length,o=1,a=wt.f,u=s.f;n>o;)for(var c,f=p(arguments[o++]),l=a?qt(f).concat(a(f)):qt(f),h=l.length,d=0;h>d;)c=l[d++],i&&!u.call(f,c)||(r[c]=f[c]);return r}:Mu,Cu=2147483647,Fu=/[^\0-\u007E]/,Bu=/[.\u3002\uFF0E\uFF61]/g,Du="Overflow: input needs wider integers to process",qu=Math.floor,zu=String.fromCharCode,Wu=function(t){return t+22+75*(t<26)},Ku=function(t,e,r){var n=0;for(t=r?qu(t/700):t>>1,t+=qu(t/e);t>455;n+=36)t=qu(t/35);return qu(n+36*t/(t+38))},Gu=function(t){var e,r,n=[],o=(t=function(t){for(var e=[],r=0,n=t.length;r<n;){var o=t.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var i=t.charCodeAt(r++);56320==(64512&i)?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),r--)}else e.push(o)}return e}(t)).length,i=128,a=0,u=72;for(e=0;e<t.length;e++)(r=t[e])<128&&n.push(zu(r));var s=n.length,c=s;for(s&&n.push("-");c<o;){var f=Cu;for(e=0;e<t.length;e++)(r=t[e])>=i&&r<f&&(f=r);var l=c+1;if(f-i>qu((Cu-a)/l))throw RangeError(Du);for(a+=(f-i)*l,i=f,e=0;e<t.length;e++){if((r=t[e])<i&&++a>Cu)throw RangeError(Du);if(r==i){for(var h=a,p=36;;p+=36){var d=p<=u?1:p>=u+26?26:p-u;if(h<d)break;var v=h-d,g=36-d;n.push(zu(Wu(d+v%g))),h=qu(v/g)}n.push(zu(Wu(h))),u=Ku(a,l,c==s),a=0,++c}}++a,++i}return n.join("")},$u=ot("fetch"),Vu=ot("Headers"),Hu=Dt("iterator"),Xu="URLSearchParams",Yu="URLSearchParamsIterator",Ju=tt.set,Qu=tt.getterFor(Xu),Zu=tt.getterFor(Yu),ts=/\+/g,es=Array(4),rs=function(t){return es[t-1]||(es[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},ns=function(t){try{return decodeURIComponent(t)}catch(e){return t}},os=function(t){var e=t.replace(ts," "),r=4;try{return decodeURIComponent(e)}catch(t){for(;r;)e=e.replace(rs(r--),ns);return e}},is=/[!'()~]|%20/g,as={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},us=function(t){return as[t]},ss=function(t){return encodeURIComponent(t).replace(is,us)},cs=function(t,e){if(e)for(var r,n,o=e.split("&"),i=0;i<o.length;)(r=o[i++]).length&&(n=r.split("="),t.push({key:os(n.shift()),value:os(n.join("="))}))},fs=function(t){this.entries.length=0,cs(this.entries,t)},ls=function(t,e){if(t<e)throw TypeError("Not enough arguments")},hs=Be(function(t,e){Ju(this,{type:Yu,iterator:on(Qu(t).entries),kind:e})},"Iterator",function(){var t=Zu(this),e=t.kind,r=t.iterator.next(),n=r.value;return r.done||(r.value="keys"===e?n.key:"values"===e?n.value:[n.key,n.value]),r}),ps=function(){_r(this,ps,Xu);var t,e,r,n,o,i,a,u,s,c=arguments.length>0?arguments[0]:void 0,f=this,l=[];if(Ju(f,{type:Xu,entries:l,updateURL:function(){},updateSearchParams:fs}),void 0!==c)if(g(c))if("function"==typeof(t=lr(c)))for(r=(e=t.call(c)).next;!(n=r.call(e)).done;){if((a=(i=(o=on(R(n.value))).next).call(o)).done||(u=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");l.push({key:a.value+"",value:u.value+""})}else for(s in c)b(c,s)&&l.push({key:s,value:c[s]+""});else cs(l,"string"==typeof c?"?"===c.charAt(0)?c.slice(1):c:c+"")},ds=ps.prototype;Fr(ds,{append:function(t,e){ls(arguments.length,2);var r=Qu(this);r.entries.push({key:t+"",value:e+""}),r.updateURL()},delete:function(t){ls(arguments.length,1);for(var e=Qu(this),r=e.entries,n=t+"",o=0;o<r.length;)r[o].key===n?r.splice(o,1):o++;e.updateURL()},get:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=0;n<e.length;n++)if(e[n].key===r)return e[n].value;return null},getAll:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=[],o=0;o<e.length;o++)e[o].key===r&&n.push(e[o].value);return n},has:function(t){ls(arguments.length,1);for(var e=Qu(this).entries,r=t+"",n=0;n<e.length;)if(e[n++].key===r)return!0;return!1},set:function(t,e){ls(arguments.length,1);for(var r,n=Qu(this),o=n.entries,i=!1,a=t+"",u=e+"",s=0;s<o.length;s++)(r=o[s]).key===a&&(i?o.splice(s--,1):(i=!0,r.value=u));i||o.push({key:a,value:u}),n.updateURL()},sort:function(){var t,e,r,n=Qu(this),o=n.entries,i=o.slice();for(o.length=0,r=0;r<i.length;r++){for(t=i[r],e=0;e<r;e++)if(o[e].key>t.key){o.splice(e,0,t);break}e===r&&o.push(t)}n.updateURL()},forEach:function(t){for(var e,r=Qu(this).entries,n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=0;o<r.length;)n((e=r[o++]).value,e.key,this)},keys:function(){return new hs(this,"keys")},values:function(){return new hs(this,"values")},entries:function(){return new hs(this,"entries")}},{enumerable:!0}),et(ds,Hu,ds.entries),et(ds,"toString",function(){for(var t,e=Qu(this).entries,r=[],n=0;n<e.length;)t=e[n++],r.push(ss(t.key)+"="+ss(t.value));return r.join("&")},{enumerable:!0}),_e(ps,Xu),kt({global:!0,forced:!Uu},{URLSearchParams:ps}),Uu||"function"!=typeof $u||"function"!=typeof Vu||kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,r,n,o=[t];return arguments.length>1&&(g(e=arguments[1])&&cr(r=e.body)===Xu&&((n=e.headers?new Vu(e.headers):new Vu).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=Ht(e,{body:c(0,String(r)),headers:c(0,n)})),o.push(e)),$u.apply(this,o)}});var vs,gs={URLSearchParams:ps,getState:Qu},ys=Oe.codeAt,ms=n.URL,bs=gs.URLSearchParams,ws=gs.getState,Ss=tt.set,Es=tt.getterFor("URL"),xs=Math.floor,As=Math.pow,Os="Invalid scheme",Rs="Invalid host",js="Invalid port",Ps=/[A-Za-z]/,Is=/[\d+-.A-Za-z]/,Ts=/\d/,ks=/^(0x|0X)/,Ls=/^[0-7]+$/,Us=/^\d+$/,Ms=/^[\dA-Fa-f]+$/,_s=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,Ns=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,Cs=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,Fs=/[\u0009\u000A\u000D]/g,Bs=function(t,e){var r,n,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return Rs;if(!(r=qs(e.slice(1,-1))))return Rs;t.host=r}else if(Xs(t)){if(e=function(t){var e,r,n=[],o=t.toLowerCase().replace(Bu,".").split(".");for(e=0;e<o.length;e++)n.push(Fu.test(r=o[e])?"xn--"+Gu(r):r);return n.join(".")}(e),_s.test(e))return Rs;if(null===(r=Ds(e)))return Rs;t.host=r}else{if(Ns.test(e))return Rs;for(r="",n=hr(e),o=0;o<n.length;o++)r+=Vs(n[o],Ws);t.host=r}},Ds=function(t){var e,r,n,o,i,a,u,s=t.split(".");if(s.length&&""==s[s.length-1]&&s.pop(),(e=s.length)>4)return t;for(r=[],n=0;n<e;n++){if(""==(o=s[n]))return t;if(i=10,o.length>1&&"0"==o.charAt(0)&&(i=ks.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?Us:8==i?Ls:Ms).test(o))return t;a=parseInt(o,i)}r.push(a)}for(n=0;n<e;n++)if(a=r[n],n==e-1){if(a>=As(256,5-e))return null}else if(a>255)return null;for(u=r.pop(),n=0;n<r.length;n++)u+=r[n]*As(256,3-n);return u},qs=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return t.charAt(l)};if(":"==h()){if(":"!=t.charAt(1))return;l+=2,f=++c}for(;h();){if(8==c)return;if(":"!=h()){for(e=r=0;r<4&&Ms.test(h());)e=16*e+parseInt(h(),16),l++,r++;if("."==h()){if(0==r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."==h()&&n<4))return;l++}if(!Ts.test(h()))return;for(;Ts.test(h());){if(i=parseInt(h(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!=n||c++}if(4!=n)return;break}if(":"==h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!=c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!=c)return;return s},zs=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)e.unshift(t%256),t=xs(t/256);return e.join(".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r&&(e=n,r=o),e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=t[r].toString(16),r<7&&(e+=":")));return"["+e+"]"}return t},Ws={},Ks=Nu({},Ws,{" ":1,'"':1,"<":1,">":1,"`":1}),Gs=Nu({},Ks,{"#":1,"?":1,"{":1,"}":1}),$s=Nu({},Gs,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Vs=function(t,e){var r=ys(t,0);return r>32&&r<127&&!b(e,t)?t:encodeURIComponent(t)},Hs={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Xs=function(t){return b(Hs,t.scheme)},Ys=function(t){return""!=t.username||""!=t.password},Js=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},Qs=function(t,e){var r;return 2==t.length&&Ps.test(t.charAt(0))&&(":"==(r=t.charAt(1))||!e&&"|"==r)},Zs=function(t){var e;return t.length>1&&Qs(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},tc=function(t){var e=t.path,r=e.length;!r||"file"==t.scheme&&1==r&&Qs(e[0],!0)||e.pop()},ec=function(t){return"."===t||"%2e"===t.toLowerCase()},rc={},nc={},oc={},ic={},ac={},uc={},sc={},cc={},fc={},lc={},hc={},pc={},dc={},vc={},gc={},yc={},mc={},bc={},wc={},Sc={},Ec={},xc=function(t,e,r,n){var o,i,a,u,s,c=r||rc,f=0,l="",h=!1,p=!1,d=!1;for(r||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(Cs,"")),e=e.replace(Fs,""),o=hr(e);f<=o.length;){switch(i=o[f],c){case rc:if(!i||!Ps.test(i)){if(r)return Os;c=oc;continue}l+=i.toLowerCase(),c=nc;break;case nc:if(i&&(Is.test(i)||"+"==i||"-"==i||"."==i))l+=i.toLowerCase();else{if(":"!=i){if(r)return Os;l="",c=oc,f=0;continue}if(r&&(Xs(t)!=b(Hs,l)||"file"==l&&(Ys(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=l,r)return void(Xs(t)&&Hs[t.scheme]==t.port&&(t.port=null));l="","file"==t.scheme?c=vc:Xs(t)&&n&&n.scheme==t.scheme?c=ic:Xs(t)?c=cc:"/"==o[f+1]?(c=ac,f++):(t.cannotBeABaseURL=!0,t.path.push(""),c=wc)}break;case oc:if(!n||n.cannotBeABaseURL&&"#"!=i)return Os;if(n.cannotBeABaseURL&&"#"==i){t.scheme=n.scheme,t.path=n.path.slice(),t.query=n.query,t.fragment="",t.cannotBeABaseURL=!0,c=Ec;break}c="file"==n.scheme?vc:uc;continue;case ic:if("/"!=i||"/"!=o[f+1]){c=uc;continue}c=fc,f++;break;case ac:if("/"==i){c=lc;break}c=bc;continue;case uc:if(t.scheme=n.scheme,i==vs)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query;else if("/"==i||"\\"==i&&Xs(t))c=sc;else if("?"==i)t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query="",c=Sc;else{if("#"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.path.pop(),c=bc;continue}t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=Ec}break;case sc:if(!Xs(t)||"/"!=i&&"\\"!=i){if("/"!=i){t.username=n.username,t.password=n.password,t.host=n.host,t.port=n.port,c=bc;continue}c=lc}else c=fc;break;case cc:if(c=fc,"/"!=i||"/"!=l.charAt(f+1))continue;f++;break;case fc:if("/"!=i&&"\\"!=i){c=lc;continue}break;case lc:if("@"==i){h&&(l="%40"+l),h=!0,a=hr(l);for(var v=0;v<a.length;v++){var g=a[v];if(":"!=g||d){var y=Vs(g,$s);d?t.password+=y:t.username+=y}else d=!0}l=""}else if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)){if(h&&""==l)return"Invalid authority";f-=hr(l).length+1,l="",c=hc}else l+=i;break;case hc:case pc:if(r&&"file"==t.scheme){c=yc;continue}if(":"!=i||p){if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)){if(Xs(t)&&""==l)return Rs;if(r&&""==l&&(Ys(t)||null!==t.port))return;if(u=Bs(t,l))return u;if(l="",c=mc,r)return;continue}"["==i?p=!0:"]"==i&&(p=!1),l+=i}else{if(""==l)return Rs;if(u=Bs(t,l))return u;if(l="",c=dc,r==pc)return}break;case dc:if(!Ts.test(i)){if(i==vs||"/"==i||"?"==i||"#"==i||"\\"==i&&Xs(t)||r){if(""!=l){var m=parseInt(l,10);if(m>65535)return js;t.port=Xs(t)&&m===Hs[t.scheme]?null:m,l=""}if(r)return;c=mc;continue}return js}l+=i;break;case vc:if(t.scheme="file","/"==i||"\\"==i)c=gc;else{if(!n||"file"!=n.scheme){c=bc;continue}if(i==vs)t.host=n.host,t.path=n.path.slice(),t.query=n.query;else if("?"==i)t.host=n.host,t.path=n.path.slice(),t.query="",c=Sc;else{if("#"!=i){Zs(o.slice(f).join(""))||(t.host=n.host,t.path=n.path.slice(),tc(t)),c=bc;continue}t.host=n.host,t.path=n.path.slice(),t.query=n.query,t.fragment="",c=Ec}}break;case gc:if("/"==i||"\\"==i){c=yc;break}n&&"file"==n.scheme&&!Zs(o.slice(f).join(""))&&(Qs(n.path[0],!0)?t.path.push(n.path[0]):t.host=n.host),c=bc;continue;case yc:if(i==vs||"/"==i||"\\"==i||"?"==i||"#"==i){if(!r&&Qs(l))c=bc;else if(""==l){if(t.host="",r)return;c=mc}else{if(u=Bs(t,l))return u;if("localhost"==t.host&&(t.host=""),r)return;l="",c=mc}continue}l+=i;break;case mc:if(Xs(t)){if(c=bc,"/"!=i&&"\\"!=i)continue}else if(r||"?"!=i)if(r||"#"!=i){if(i!=vs&&(c=bc,"/"!=i))continue}else t.fragment="",c=Ec;else t.query="",c=Sc;break;case bc:if(i==vs||"/"==i||"\\"==i&&Xs(t)||!r&&("?"==i||"#"==i)){if(".."===(s=(s=l).toLowerCase())||"%2e."===s||".%2e"===s||"%2e%2e"===s?(tc(t),"/"==i||"\\"==i&&Xs(t)||t.path.push("")):ec(l)?"/"==i||"\\"==i&&Xs(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&Qs(l)&&(t.host&&(t.host=""),l=l.charAt(0)+":"),t.path.push(l)),l="","file"==t.scheme&&(i==vs||"?"==i||"#"==i))for(;t.path.length>1&&""===t.path[0];)t.path.shift();"?"==i?(t.query="",c=Sc):"#"==i&&(t.fragment="",c=Ec)}else l+=Vs(i,Gs);break;case wc:"?"==i?(t.query="",c=Sc):"#"==i?(t.fragment="",c=Ec):i!=vs&&(t.path[0]+=Vs(i,Ws));break;case Sc:r||"#"!=i?i!=vs&&("'"==i&&Xs(t)?t.query+="%27":t.query+="#"==i?"%23":Vs(i,Ws)):(t.fragment="",c=Ec);break;case Ec:i!=vs&&(t.fragment+=Vs(i,Ks))}f++}},Ac=function(t){var e,r,n=_r(this,Ac,"URL"),o=arguments.length>1?arguments[1]:void 0,a=String(t),u=Ss(n,{type:"URL"});if(void 0!==o)if(o instanceof Ac)e=Es(o);else if(r=xc(e={},String(o)))throw TypeError(r);if(r=xc(u,a,null,e))throw TypeError(r);var s=u.searchParams=new bs,c=ws(s);c.updateSearchParams(u.query),c.updateURL=function(){u.query=String(s)||null},i||(n.href=Rc.call(n),n.origin=jc.call(n),n.protocol=Pc.call(n),n.username=Ic.call(n),n.password=Tc.call(n),n.host=kc.call(n),n.hostname=Lc.call(n),n.port=Uc.call(n),n.pathname=Mc.call(n),n.search=_c.call(n),n.searchParams=Nc.call(n),n.hash=Cc.call(n))},Oc=Ac.prototype,Rc=function(){var t=Es(this),e=t.scheme,r=t.username,n=t.password,o=t.host,i=t.port,a=t.path,u=t.query,s=t.fragment,c=e+":";return null!==o?(c+="//",Ys(t)&&(c+=r+(n?":"+n:"")+"@"),c+=zs(o),null!==i&&(c+=":"+i)):"file"==e&&(c+="//"),c+=t.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==u&&(c+="?"+u),null!==s&&(c+="#"+s),c},jc=function(){var t=Es(this),e=t.scheme,r=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(t){return"null"}return"file"!=e&&Xs(t)?e+"://"+zs(t.host)+(null!==r?":"+r:""):"null"},Pc=function(){return Es(this).scheme+":"},Ic=function(){return Es(this).username},Tc=function(){return Es(this).password},kc=function(){var t=Es(this),e=t.host,r=t.port;return null===e?"":null===r?zs(e):zs(e)+":"+r},Lc=function(){var t=Es(this).host;return null===t?"":zs(t)},Uc=function(){var t=Es(this).port;return null===t?"":String(t)},Mc=function(){var t=Es(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},_c=function(){var t=Es(this).query;return t?"?"+t:""},Nc=function(){return Es(this).searchParams},Cc=function(){var t=Es(this).fragment;return t?"#"+t:""},Fc=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&zt(Oc,{href:Fc(Rc,function(t){var e=Es(this),r=String(t),n=xc(e,r);if(n)throw TypeError(n);ws(e.searchParams).updateSearchParams(e.query)}),origin:Fc(jc),protocol:Fc(Pc,function(t){var e=Es(this);xc(e,String(t)+":",rc)}),username:Fc(Ic,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.username="";for(var n=0;n<r.length;n++)e.username+=Vs(r[n],$s)}}),password:Fc(Tc,function(t){var e=Es(this),r=hr(String(t));if(!Js(e)){e.password="";for(var n=0;n<r.length;n++)e.password+=Vs(r[n],$s)}}),host:Fc(kc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),hc)}),hostname:Fc(Lc,function(t){var e=Es(this);e.cannotBeABaseURL||xc(e,String(t),pc)}),port:Fc(Uc,function(t){var e=Es(this);Js(e)||(""==(t=String(t))?e.port=null:xc(e,t,dc))}),pathname:Fc(Mc,function(t){var e=Es(this);e.cannotBeABaseURL||(e.path=[],xc(e,t+"",mc))}),search:Fc(_c,function(t){var e=Es(this);""==(t=String(t))?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",xc(e,t,Sc)),ws(e.searchParams).updateSearchParams(e.query)}),searchParams:Fc(Nc),hash:Fc(Cc,function(t){var e=Es(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",xc(e,t,Ec)):e.fragment=null})}),et(Oc,"toJSON",function(){return Rc.call(this)},{enumerable:!0}),et(Oc,"toString",function(){return Rc.call(this)},{enumerable:!0}),ms){var Bc=ms.createObjectURL,Dc=ms.revokeObjectURL;Bc&&et(Ac,"createObjectURL",function(t){return Bc.apply(ms,arguments)}),Dc&&et(Ac,"revokeObjectURL",function(t){return Dc.apply(ms,arguments)})}_e(Ac,"URL"),kt({global:!0,forced:!Uu,sham:!i},{URL:Ac}),kt({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}}),kt({target:"WeakMap",stat:!0},{from:en}),kt({target:"WeakMap",stat:!0},{of:rn}),kt({target:"WeakMap",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:"WeakMap",proto:!0,real:!0,forced:D},{upsert:cn}),Cr("WeakSet",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},mo),kt({target:"WeakSet",proto:!0,real:!0,forced:D},{addAll:function(){return Hi.apply(this,arguments)}}),kt({target:"WeakSet",proto:!0,real:!0,forced:D},{deleteAll:function(){return nn.apply(this,arguments)}}),kt({target:"WeakSet",stat:!0},{from:en}),kt({target:"WeakSet",stat:!0},{of:rn});var qc,zc,Wc,Kc=n.Promise,Gc=/(iphone|ipod|ipad).*applewebkit/i.test(Qi),$c=n.location,Vc=n.setImmediate,Hc=n.clearImmediate,Xc=n.process,Yc=n.MessageChannel,Jc=n.Dispatch,Qc=0,Zc={},tf=function(t){if(Zc.hasOwnProperty(t)){var e=Zc[t];delete Zc[t],e()}},ef=function(t){return function(){tf(t)}},rf=function(t){tf(t.data)},nf=function(t){n.postMessage(t+"",$c.protocol+"//"+$c.host)};Vc&&Hc||(Vc=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return Zc[++Qc]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},qc(Qc),Qc},Hc=function(t){delete Zc[t]},"process"==l(Xc)?qc=function(t){Xc.nextTick(ef(t))}:Jc&&Jc.now?qc=function(t){Jc.now(ef(t))}:Yc&&!Gc?(Wc=(zc=new Yc).port2,zc.port1.onmessage=rf,qc=Zt(Wc.postMessage,Wc,1)):!n.addEventListener||"function"!=typeof postMessage||n.importScripts||o(nf)||"file:"===$c.protocol?qc="onreadystatechange"in E("script")?function(t){Wt.appendChild(E("script")).onreadystatechange=function(){Wt.removeChild(this),tf(t)}}:function(t){setTimeout(ef(t),0)}:(qc=nf,n.addEventListener("message",rf,!1)));var of,af,uf,sf,cf,ff,lf,hf,pf={set:Vc,clear:Hc},df=O.f,vf=pf.set,gf=n.MutationObserver||n.WebKitMutationObserver,yf=n.process,mf=n.Promise,bf="process"==l(yf),wf=df(n,"queueMicrotask"),Sf=wf&&wf.value;Sf||(of=function(){var t,e;for(bf&&(t=yf.domain)&&t.exit();af;){e=af.fn,af=af.next;try{e()}catch(t){throw af?sf():uf=void 0,t}}uf=void 0,t&&t.enter()},bf?sf=function(){yf.nextTick(of)}:gf&&!Gc?(cf=!0,ff=document.createTextNode(""),new gf(of).observe(ff,{characterData:!0}),sf=function(){ff.data=cf=!cf}):mf&&mf.resolve?(lf=mf.resolve(void 0),hf=lf.then,sf=function(){hf.call(lf,of)}):sf=function(){vf.call(n,of)});var Ef,xf,Af,Of,Rf=Sf||function(t){var e={fn:t,next:void 0};uf&&(uf.next=e),af||(af=e,sf()),uf=e},jf=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n}),this.resolve=Qt(e),this.reject=Qt(r)},Pf={f:function(t){return new jf(t)}},If=function(t,e){if(R(t),g(e)&&e.constructor===t)return e;var r=Pf.f(t);return(0,r.resolve)(e),r.promise},Tf=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},kf=pf.set,Lf=Dt("species"),Uf="Promise",Mf=tt.get,_f=tt.set,Nf=tt.getterFor(Uf),Cf=Kc,Ff=n.TypeError,Bf=n.document,Df=n.process,qf=ot("fetch"),zf=Pf.f,Wf=zf,Kf="process"==l(Df),Gf=!!(Bf&&Bf.createEvent&&n.dispatchEvent),$f="unhandledrejection",Vf=It(Uf,function(){if(C(Cf)===String(Cf)){if(66===ra)return!0;if(!Kf&&"function"!=typeof PromiseRejectionEvent)return!0}if(ra>=51&&/native code/.test(Cf))return!1;var t=Cf.resolve(1),e=function(t){t(function(){},function(){})};return(t.constructor={})[Lf]=e,!(t.then(function(){})instanceof e)}),Hf=Vf||!yr(function(t){Cf.all(t).catch(function(){})}),Xf=function(t){var e;return!(!g(t)||"function"!=typeof(e=t.then))&&e},Yf=function(t,e,r){if(!e.notified){e.notified=!0;var n=e.reactions;Rf(function(){for(var o=e.value,i=1==e.state,a=0;n.length>a;){var u,s,c,f=n[a++],l=i?f.ok:f.fail,h=f.resolve,p=f.reject,d=f.domain;try{l?(i||(2===e.rejection&&tl(t,e),e.rejection=1),!0===l?u=o:(d&&d.enter(),u=l(o),d&&(d.exit(),c=!0)),u===f.promise?p(Ff("Promise-chain cycle")):(s=Xf(u))?s.call(u,h,p):h(u)):p(o)}catch(t){d&&!c&&d.exit(),p(t)}}e.reactions=[],e.notified=!1,r&&!e.rejection&&Qf(t,e)})}},Jf=function(t,e,r){var o,i;Gf?((o=Bf.createEvent("Event")).promise=e,o.reason=r,o.initEvent(t,!1,!0),n.dispatchEvent(o)):o={promise:e,reason:r},(i=n["on"+t])?i(o):t===$f&&function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}("Unhandled promise rejection",r)},Qf=function(t,e){kf.call(n,function(){var r,n=e.value;if(Zf(e)&&(r=Tf(function(){Kf?Df.emit("unhandledRejection",n,t):Jf($f,t,n)}),e.rejection=Kf||Zf(e)?2:1,r.error))throw r.value})},Zf=function(t){return 1!==t.rejection&&!t.parent},tl=function(t,e){kf.call(n,function(){Kf?Df.emit("rejectionHandled",t):Jf("rejectionhandled",t,e.value)})},el=function(t,e,r,n){return function(o){t(e,r,o,n)}},rl=function(t,e,r,n){e.done||(e.done=!0,n&&(e=n),e.value=r,e.state=2,Yf(t,e,!0))},nl=function t(e,r,n,o){if(!r.done){r.done=!0,o&&(r=o);try{if(e===n)throw Ff("Promise can't be resolved itself");var i=Xf(n);i?Rf(function(){var o={done:!1};try{i.call(n,el(t,e,o,r),el(rl,e,o,r))}catch(t){rl(e,o,t,r)}}):(r.value=n,r.state=1,Yf(e,r,!1))}catch(t){rl(e,{done:!1},t,r)}}};Vf&&(Cf=function(t){_r(this,Cf,Uf),Qt(t),Ef.call(this);var e=Mf(this);try{t(el(nl,this,e),el(rl,this,e))}catch(t){rl(this,e,t)}},(Ef=function(t){_f(this,{type:Uf,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Fr(Cf.prototype,{then:function(t,e){var r=Nf(this),n=zf(sn(this,Cf));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=Kf?Df.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Yf(this,r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),xf=function(){var t=new Ef,e=Mf(t);this.promise=t,this.resolve=el(nl,t,e),this.reject=el(rl,t,e)},Pf.f=zf=function(t){return t===Cf||t===Af?new xf(t):Wf(t)},"function"==typeof Kc&&(Of=Kc.prototype.then,et(Kc.prototype,"then",function(t,e){var r=this;return new Cf(function(t,e){Of.call(r,t,e)}).then(t,e)},{unsafe:!0}),"function"==typeof qf&&kt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return If(Cf,qf.apply(n,arguments))}}))),kt({global:!0,wrap:!0,forced:Vf},{Promise:Cf}),_e(Cf,Uf,!1),Dr(Uf),Af=ot(Uf),kt({target:Uf,stat:!0,forced:Vf},{reject:function(t){var e=zf(this);return e.reject.call(void 0,t),e.promise}}),kt({target:Uf,stat:!0,forced:Vf},{resolve:function(t){return If(this,t)}}),kt({target:Uf,stat:!0,forced:Hf},{all:function(t){var e=this,r=zf(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1;Mr(t,function(t){var s=a++,c=!1;i.push(void 0),u++,r.call(e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise},race:function(t){var e=this,r=zf(e),n=r.reject,o=Tf(function(){var o=Qt(e.resolve);Mr(t,function(t){o.call(e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),kt({target:"Promise",stat:!0},{allSettled:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),o=[],i=0,a=1;Mr(t,function(t){var u=i++,s=!1;o.push(void 0),a++,r.call(e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var ol=!!Kc&&o(function(){Kc.prototype.finally.call({then:function(){}},function(){})});kt({target:"Promise",proto:!0,real:!0,forced:ol},{finally:function(t){var e=sn(this,ot("Promise")),r="function"==typeof t;return this.then(r?function(r){return If(e,t()).then(function(){return r})}:t,r?function(r){return If(e,t()).then(function(){throw r})}:t)}}),"function"!=typeof Kc||Kc.prototype.finally||et(Kc.prototype,"finally",ot("Promise").prototype.finally);var il=tt.set,al=tt.getterFor("AggregateError"),ul=function(t,e){var r=this;if(!(r instanceof ul))return new ul(t,e);qe&&(r=qe(new Error(e),Ie(r)));var n=[];return Mr(t,n.push,n),i?il(r,{errors:n,type:"AggregateError"}):r.errors=n,void 0!==e&&I(r,"message",String(e)),r};ul.prototype=Ht(Error.prototype,{constructor:c(5,ul),message:c(5,""),name:c(5,"AggregateError")}),i&&P.f(ul.prototype,"errors",{get:function(){return al(this).errors},configurable:!0}),kt({global:!0},{AggregateError:ul}),kt({target:"Promise",stat:!0},{try:function(t){var e=Pf.f(this),r=Tf(t);return(r.error?e.reject:e.resolve)(r.value),e.promise}});var sl="No one promise resolved";kt({target:"Promise",stat:!0},{any:function(t){var e=this,r=Pf.f(e),n=r.resolve,o=r.reject,i=Tf(function(){var r=Qt(e.resolve),i=[],a=0,u=1,s=!1;Mr(t,function(t){var c=a++,f=!1;i.push(void 0),u++,r.call(e,t).then(function(t){f||s||(s=!0,n(t))},function(t){f||s||(f=!0,i[c]=t,--u||o(new(ot("AggregateError"))(i,sl)))})}),--u||o(new(ot("AggregateError"))(i,sl))});return i.error&&o(i.value),r.promise}}),ee("Promise","finally");var cl="URLSearchParams"in self,fl="Symbol"in self&&"iterator"in Symbol,ll="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),hl="FormData"in self,pl="ArrayBuffer"in self;if(pl)var dl=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],vl=ArrayBuffer.isView||function(t){return t&&dl.indexOf(Object.prototype.toString.call(t))>-1};function gl(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function yl(t){return"string"!=typeof t&&(t=String(t)),t}function ml(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return fl&&(e[Symbol.iterator]=function(){return e}),e}function bl(t){this.map={},t instanceof bl?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function wl(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function Sl(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function El(t){var e=new FileReader,r=Sl(e);return e.readAsArrayBuffer(t),r}function xl(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function Al(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:ll&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:hl&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:cl&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():pl&&ll&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=xl(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):pl&&(ArrayBuffer.prototype.isPrototypeOf(t)||vl(t))?this._bodyArrayBuffer=xl(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):cl&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},ll&&(this.blob=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?wl(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(El)}),this.text=function(){var t=wl(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=Sl(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},hl&&(this.formData=function(){return this.text().then(jl)}),this.json=function(){return this.text().then(JSON.parse)},this}bl.prototype.append=function(t,e){t=gl(t),e=yl(e);var r=this.map[t];this.map[t]=r?r+", "+e:e},bl.prototype.delete=function(t){delete this.map[gl(t)]},bl.prototype.get=function(t){return t=gl(t),this.has(t)?this.map[t]:null},bl.prototype.has=function(t){return this.map.hasOwnProperty(gl(t))},bl.prototype.set=function(t,e){this.map[gl(t)]=yl(e)},bl.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},bl.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),ml(t)},bl.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),ml(t)},bl.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),ml(t)},fl&&(bl.prototype[Symbol.iterator]=bl.prototype.entries);var Ol=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function Rl(t,e){var r,n,o=(e=e||{}).body;if(t instanceof Rl){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new bl(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,o||null==t._bodyInit||(o=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new bl(e.headers)),this.method=(n=(r=e.method||this.method||"GET").toUpperCase(),Ol.indexOf(n)>-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(o)}function jl(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function Pl(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new bl(e.headers),this.url=e.url||"",this._initBody(t)}Rl.prototype.clone=function(){return new Rl(this,{body:this._bodyInit})},Al.call(Rl.prototype),Al.call(Pl.prototype),Pl.prototype.clone=function(){return new Pl(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new bl(this.headers),url:this.url})},Pl.error=function(){var t=new Pl(null,{status:0,statusText:""});return t.type="error",t};var Il=[301,302,303,307,308];Pl.redirect=function(t,e){if(-1===Il.indexOf(e))throw new RangeError("Invalid status code");return new Pl(null,{status:e,headers:{location:t}})};var Tl=self.DOMException;try{new Tl}catch(t){(Tl=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),Tl.prototype.constructor=Tl}function kl(t,e){return new Promise(function(r,n){var o=new Rl(t,e);if(o.signal&&o.signal.aborted)return n(new Tl("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new bl,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new Pl("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new Tl("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&ll&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}kl.polyfill=!0,self.fetch||(self.fetch=kl,self.Headers=bl,self.Request=Rl,self.Response=Pl);var Ll=Object.getOwnPropertySymbols,Ul=Object.prototype.hasOwnProperty,Ml=Object.prototype.propertyIsEnumerable;function _l(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var Nl=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=_l(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))Ul.call(r,a)&&(o[a]=r[a]);if(Ll){n=Ll(r);for(var u=0;u<n.length;u++)Ml.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=Nl}();
  71. /***/ })
  72. },
  73. /******/ function(__webpack_require__) { // webpackRuntimeModules
  74. /******/ // runtime can't be in strict mode because a global variable is assign and maybe created.
  75. /******/
  76. /******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
  77. /******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/polyfills.js"));
  78. /******/ _N_E = __webpack_exports__;
  79. /******/ }
  80. ]);
  81. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uL2NsaWVudC9wb2x5ZmlsbHMuanMiLCJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL3BvbHlmaWxsLW5vbW9kdWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQSxZQUFZLHNHQUFzRyxxQkFBTSxDQUFDLHFCQUFNLGtDQUFrQyxjQUFjLE9BQU8sWUFBWSxnQ0FBZ0Msa0JBQWtCLDBCQUEwQixxTEFBcUwsSUFBSSxZQUFZLFNBQVMsVUFBVSxpQkFBaUIsa0NBQWtDLElBQUksZUFBZSxVQUFVLEtBQUssTUFBTSwyREFBMkQsY0FBYyxJQUFJLGdCQUFnQixnQkFBZ0Isd0JBQXdCLEdBQUcsaUJBQWlCLE9BQU8sK0RBQStELEtBQUssd0JBQXdCLDZCQUE2QiwyQkFBMkIsMkNBQTJDLGNBQWMsNENBQTRDLHNCQUFzQixzREFBc0QsU0FBUyxlQUFlLGVBQWUsZUFBZSx1REFBdUQsaUJBQWlCLGtCQUFrQixRQUFRLGlFQUFpRSw2REFBNkQsa0VBQWtFLDJEQUEyRCxLQUFLLGdDQUFnQyxtQkFBbUIsdURBQXVELCtCQUErQixxQkFBcUIsOENBQThDLGVBQWUsVUFBVSxJQUFJLHVDQUF1QyxvQkFBb0IsMEJBQTBCLGNBQWMsVUFBVSx5Q0FBeUMsZUFBZSx3REFBd0QsU0FBUyw0QkFBNEIsc0JBQXNCLDZCQUE2QixnQkFBZ0IsVUFBVSxtRUFBbUUscUNBQXFDLHFCQUFxQix1QkFBdUIsaUJBQWlCLGdCQUFnQixpQkFBaUIsSUFBSSxTQUFTLFNBQVMsT0FBTyxTQUFTLHNDQUFzQyxzQkFBc0IsaUVBQWlFLGlCQUFpQixFQUFFLDhHQUE4Ryx5QkFBeUIsa0NBQWtDLEVBQUUsdUJBQXVCLCtFQUErRSxFQUFFLG9DQUFvQyxrRUFB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bUJBQW1CLCtDQUErQyxNQUFNLG1GQUFtRix1REFBdUQsSUFBSSxpQkFBaUIsUUFBUSxrT0FBa08sOEJBQThCLG9CQUFvQixvQkFBb0IsRUFBRSwyRUFBMkUsOEJBQThCLHdGQUF3RixFQUFFLHFCQUFxQixtQkFBbUIsdUJBQXVCLEVBQUUseUJBQXlCLDZCQUE2QiwwQkFBMEIsa0VBQWtFLG9CQUFvQixrQkFBa0IsWUFBWSxHQUFHLHlCQUF5QixJQUFJLE9BQU8sU0FBUyxrQkFBa0IsMkJBQTJCLGVBQWUsbUJBQW1CLHVFQUF1RSxpQkFBaUIsaUNBQWlDLGtCQUFrQix1RUFBdUUseUJBQXlCLGFBQWEsVUFBVSxvQkFBb0IsV0FBVywySkFBMkosc0NBQXNDLE1BQU0seUJBQXlCLGVBQWUsTUFBTSwySEFBMkgsc0JBQXNCLDJDQUEyQyx3QkFBd0IsMkNBQTJDLHNCQUFzQixrQ0FBa0MseU1BQXlNLHdCQUF3QixrRkFBa0YsMERBQTBELGdEQUFnRCxFQUFFLDRGQUE0RixnSEFBZ0gsZUFBZSx3RkFBd0YsaUJBQWlCLGtCQUFrQixJQUFJLDJCQUEyQix3QkFBd0IsNkRBQTZELFlBQVksS0FBSyxLQUFLLG9DQUFvQyxnRUFBZ0UsWUFBWSxvQkFBb0IsU0FBUywyREFBMkQsT0FBTyx1REFBdUQsY0FBYyxTQUFTLFVBQVUsK0JBQStCLHdCQUF3QixtQkFBbUIsS0FBSyw4REFBOEQsT0FBTyxRQUFRLFlBQVksV0FBVyx3Q0FBd0MsVUFBVSxpQkFBaUIiLCJmaWxlIjoic3RhdGljL2NodW5rcy9wb2x5ZmlsbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvcG9seWZpbGwtbm9tb2R1bGUnXG4iLCIhZnVuY3Rpb24oKXt2YXIgdD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gZSh0KXt2YXIgZT17ZXhwb3J0czp7fX07cmV0dXJuIHQoZSxlLmV4cG9ydHMpLGUuZXhwb3J0c312YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxuPXIoXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fHIoXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0KXx8RnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpLG89ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX0saT0hbyhmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSxhPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixzPXtmOnUmJiFhLmNhbGwoezE6Mn0sMSk/ZnVuY3Rpb24odCl7dmFyIGU9dSh0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTphfSxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fSxmPXt9LnRvU3RyaW5nLGw9ZnVuY3Rpb24odCl7cmV0dXJuIGYuY2FsbCh0KS5zbGljZSg4LC0xKX0saD1cIlwiLnNwbGl0LHA9byhmdW5jdGlvbigpe3JldHVybiFPYmplY3QoXCJ6XCIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSk/ZnVuY3Rpb24odCl7cmV0dXJuXCJTdHJpbmdcIj09bCh0KT9oLmNhbGwodCxcIlwiKTpPYmplY3QodCl9Ok9iamVjdCxkPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gXCIrdCk7cmV0dXJuIHR9LHY9ZnVuY3Rpb24odCl7cmV0dXJuIHAoZCh0KSl9LGc9ZnVuY3Rpb24odCl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIHQ/bnVsbCE9PXQ6XCJmdW5jdGlvblwiPT10eXBlb2YgdH0seT1mdW5jdGlvbih0LGUpe2lmKCFnKHQpKXJldHVybiB0O3ZhciByLG47aWYoZSYmXCJmdW5jdGlvblwiPT10eXBlb2Yocj10LnRvU3RyaW5nKSYmIWcobj1yLmNhbGwodCkpKXJldHVybiBuO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mKHI9dC52YWx1ZU9mKSYmIWcobj1yLmNhbGwodCkpKXJldHVybiBuO2lmKCFlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZihyPXQudG9TdHJpbmcpJiYhZyhuPXIuY2FsbCh0KSkpcmV0dXJuIG47dGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpfSxtPXt9Lmhhc093blByb3BlcnR5LGI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbS5jYWxsKHQsZSl9LHc9bi5kb2N1bWVudCxTPWcodykmJmcody5jcmVhdGVFbGVtZW50KSxFPWZ1bmN0aW9uKHQpe3JldHVybiBTP3cuY3JlYXRlRWxlbWVudCh0KTp7fX0seD0haSYmIW8oZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KEUoXCJkaXZcIiksXCJhXCIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSxBPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsTz17ZjppP0E6ZnVuY3Rpb24odCxlKXtpZih0PXYodCksZT15KGUsITApLHgpdHJ5e3JldHVybiBBKHQsZSl9Y2F0Y2godCl7fWlmKGIodCxlKSlyZXR1cm4gYyghcy5mLmNhbGwodCxlKSx0W2VdKX19LFI9ZnVuY3Rpb24odCl7aWYoIWcodCkpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KStcIiBpcyBub3QgYW4gb2JqZWN0XCIpO3JldHVybiB0fSxqPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxQPXtmOmk/ajpmdW5jdGlvbih0LGUscil7aWYoUih0KSxlPXkoZSwhMCksUihyKSx4KXRyeXtyZXR1cm4gaih0LGUscil9Y2F0Y2godCl7fWlmKFwiZ2V0XCJpbiByfHxcInNldFwiaW4gcil0aHJvdyBUeXBlRXJyb3IoXCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZFwiKTtyZXR1cm5cInZhbHVlXCJpbiByJiYodFtlXT1yLnZhbHVlKSx0fX0sST1pP2Z1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUC5mKHQsZSxjKDEscikpfTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRbZV09cix0fSxUPWZ1bmN0aW9uKHQsZSl7dHJ5e0kobix0LGUpfWNhdGNoKHIpe25bdF09ZX1yZXR1cm4gZX0saz1cIl9fY29yZS1qc19zaGFyZWRfX1wiLEw9bltrXXx8VChrLHt9KSxVPUZ1bmN0aW9uLnRvU3RyaW5nO1wiZnVuY3Rpb25cIiE9dHlwZW9mIEwuaW5zcGVjdFNvdXJjZSYmKEwuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gVS5jYWxsKHQpfSk7dmFyIE0sXyxOLEM9TC5pbnNwZWN0U291cmNlLEY9bi5XZWFrTWFwLEI9XCJmdW5jdGlvblwiPT10eXBlb2YgRiYmL25hdGl2ZSBjb2RlLy50ZXN0KEMoRikpLEQ9ITEscT1lKGZ1bmN0aW9uKHQpeyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTFt0XXx8KExbdF09dm9pZCAwIT09ZT9lOnt9KX0pKFwidmVyc2lvbnNcIixbXSkucHVzaCh7dmVyc2lvbjpcIjMuNi41XCIsbW9kZTpcImdsb2JhbFwiLGNvcHlyaWdodDpcIsKpIDIwMjAgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSlcIn0pfSksej0wLFc9TWF0aC5yYW5kb20oKSxLPWZ1bmN0aW9uKHQpe3JldHVyblwiU3ltYm9sKFwiK1N0cmluZyh2b2lkIDA9PT10P1wiXCI6dCkrXCIpX1wiKygrK3orVykudG9TdHJpbmcoMzYpfSxHPXEoXCJrZXlzXCIpLCQ9ZnVuY3Rpb24odCl7cmV0dXJuIEdbdF18fChHW3RdPUsodCkpfSxWPXt9O2lmKEIpe3ZhciBIPW5ldygwLG4uV2Vha01hcCksWD1ILmdldCxZPUguaGFzLEo9SC5zZXQ7TT1mdW5jdGlvbih0LGUpe3JldHVybiBKLmNhbGwoSCx0LGUpLGV9LF89ZnVuY3Rpb24odCl7cmV0dXJuIFguY2FsbChILHQpfHx7fX0sTj1mdW5jdGlvbih0KXtyZXR1cm4gWS5jYWxsKEgsdCl9fWVsc2V7dmFyIFE9JChcInN0YXRlXCIpO1ZbUV09ITAsTT1mdW5jdGlvbih0LGUpe3JldHVybiBJKHQsUSxlKSxlfSxfPWZ1bmN0aW9uKHQpe3JldHVybiBiKHQsUSk/dFtRXTp7fX0sTj1mdW5jdGlvbih0KXtyZXR1cm4gYih0LFEpfX12YXIgWix0dD17c2V0Ok0sZ2V0Ol8saGFzOk4sZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gTih0KT9fKHQpOk0odCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI7aWYoIWcoZSl8fChyPV8oZSkpLnR5cGUhPT10KXRocm93IFR5cGVFcnJvcihcIkluY29tcGF0aWJsZSByZWNlaXZlciwgXCIrdCtcIiByZXF1aXJlZFwiKTtyZXR1cm4gcn19fSxldD1lKGZ1bmN0aW9uKHQpe3ZhciBlPXR0LmdldCxyPXR0LmVuZm9yY2Usbz1TdHJpbmcoU3RyaW5nKS5zcGxpdChcIlN0cmluZ1wiKTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxpLGEpe3ZhciB1PSEhYSYmISFhLnVuc2FmZSxzPSEhYSYmISFhLmVudW1lcmFibGUsYz0hIWEmJiEhYS5ub1RhcmdldEdldDtcImZ1bmN0aW9uXCI9PXR5cGVvZiBpJiYoXCJzdHJpbmdcIiE9dHlwZW9mIGV8fGIoaSxcIm5hbWVcIil8fEkoaSxcIm5hbWVcIixlKSxyKGkpLnNvdXJjZT1vLmpvaW4oXCJzdHJpbmdcIj09dHlwZW9mIGU/ZTpcIlwiKSksdCE9PW4/KHU/IWMmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09aTpJKHQsZSxpKSk6cz90W2VdPWk6VChlLGkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMmJmUodGhpcykuc291cmNlfHxDKHRoaXMpfSl9KSxydD1uLG50PWZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDp2b2lkIDB9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9udChydFt0XSl8fG50KG5bdF0pOnJ0W3RdJiZydFt0XVtlXXx8blt0XSYmblt0XVtlXX0saXQ9TWF0aC5jZWlsLGF0PU1hdGguZmxvb3IsdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGlzTmFOKHQ9K3QpPzA6KHQ+MD9hdDppdCkodCl9LHN0PU1hdGgubWluLGN0PWZ1bmN0aW9uKHQpe3JldHVybiB0PjA/c3QodXQodCksOTAwNzE5OTI1NDc0MDk5MSk6MH0sZnQ9TWF0aC5tYXgsbHQ9TWF0aC5taW4saHQ9ZnVuY3Rpb24odCxlKXt2YXIgcj11dCh0KTtyZXR1cm4gcjwwP2Z0KHIrZSwwKTpsdChyLGUpfSxwdD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3ZhciBvLGk9dihlKSxhPWN0KGkubGVuZ3RoKSx1PWh0KG4sYSk7aWYodCYmciE9cil7Zm9yKDthPnU7KWlmKChvPWlbdSsrXSkhPW8pcmV0dXJuITB9ZWxzZSBmb3IoO2E+dTt1KyspaWYoKHR8fHUgaW4gaSkmJmlbdV09PT1yKXJldHVybiB0fHx1fHwwO3JldHVybiF0JiYtMX19LGR0PXtpbmNsdWRlczpwdCghMCksaW5kZXhPZjpwdCghMSl9LHZ0PWR0LmluZGV4T2YsZ3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXYodCksbz0wLGk9W107Zm9yKHIgaW4gbikhYihWLHIpJiZiKG4scikmJmkucHVzaChyKTtmb3IoO2UubGVuZ3RoPm87KWIobixyPWVbbysrXSkmJih+dnQoaSxyKXx8aS5wdXNoKHIpKTtyZXR1cm4gaX0seXQ9W1wiY29uc3RydWN0b3JcIixcImhhc093blByb3BlcnR5XCIsXCJpc1Byb3RvdHlwZU9mXCIsXCJwcm9wZXJ0eUlzRW51bWVyYWJsZVwiLFwidG9Mb2NhbGVTdHJpbmdcIixcInRvU3RyaW5nXCIsXCJ2YWx1ZU9mXCJdLG10PXl0LmNvbmNhdChcImxlbmd0aFwiLFwicHJvdG90eXBlXCIpLGJ0PXtmOk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gZ3QodCxtdCl9fSx3dD17ZjpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxTdD1vdChcIlJlZmxlY3RcIixcIm93bktleXNcIil8fGZ1bmN0aW9uKHQpe3ZhciBlPWJ0LmYoUih0KSkscj13dC5mO3JldHVybiByP2UuY29uY2F0KHIodCkpOmV9LEV0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVN0KGUpLG49UC5mLG89Ty5mLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9cltpXTtiKHQsYSl8fG4odCxhLG8oZSxhKSl9fSx4dD0vI3xcXC5wcm90b3R5cGVcXC4vLEF0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9UnRbT3QodCldO3JldHVybiByPT1QdHx8ciE9anQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP28oZSk6ISFlKX0sT3Q9QXQubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZSh4dCxcIi5cIikudG9Mb3dlckNhc2UoKX0sUnQ9QXQuZGF0YT17fSxqdD1BdC5OQVRJVkU9XCJOXCIsUHQ9QXQuUE9MWUZJTEw9XCJQXCIsSXQ9QXQsVHQ9Ty5mLGt0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxpLGEsdSxzPXQudGFyZ2V0LGM9dC5nbG9iYWwsZj10LnN0YXQ7aWYocj1jP246Zj9uW3NdfHxUKHMse30pOihuW3NdfHx7fSkucHJvdG90eXBlKWZvcihvIGluIGUpe2lmKGE9ZVtvXSxpPXQubm9UYXJnZXRHZXQ/KHU9VHQocixvKSkmJnUudmFsdWU6cltvXSwhSXQoYz9vOnMrKGY/XCIuXCI6XCIjXCIpK28sdC5mb3JjZWQpJiZ2b2lkIDAhPT1pKXtpZih0eXBlb2YgYT09dHlwZW9mIGkpY29udGludWU7RXQoYSxpKX0odC5zaGFtfHxpJiZpLnNoYW0pJiZJKGEsXCJzaGFtXCIsITApLGV0KHIsbyxhLHQpfX0sTHQ9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChkKHQpKX0sVXQ9TWF0aC5taW4sTXQ9W10uY29weVdpdGhpbnx8ZnVuY3Rpb24odCxlKXt2YXIgcj1MdCh0aGlzKSxuPWN0KHIubGVuZ3RoKSxvPWh0KHQsbiksaT1odChlLG4pLGE9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsdT1VdCgodm9pZCAwPT09YT9uOmh0KGEsbikpLWksbi1vKSxzPTE7Zm9yKGk8byYmbzxpK3UmJihzPS0xLGkrPXUtMSxvKz11LTEpO3UtLSA+MDspaSBpbiByP3Jbb109cltpXTpkZWxldGUgcltvXSxvKz1zLGkrPXM7cmV0dXJuIHJ9LF90PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIW8oZnVuY3Rpb24oKXtyZXR1cm4hU3RyaW5nKFN5bWJvbCgpKX0pLE50PV90JiYhU3ltYm9sLnNoYW0mJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IsQ3Q9cShcIndrc1wiKSxGdD1uLlN5bWJvbCxCdD1OdD9GdDpGdCYmRnQud2l0aG91dFNldHRlcnx8SyxEdD1mdW5jdGlvbih0KXtyZXR1cm4gYihDdCx0KXx8KEN0W3RdPV90JiZiKEZ0LHQpP0Z0W3RdOkJ0KFwiU3ltYm9sLlwiK3QpKSxDdFt0XX0scXQ9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiBndCh0LHl0KX0senQ9aT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe1IodCk7Zm9yKHZhciByLG49cXQoZSksbz1uLmxlbmd0aCxpPTA7bz5pOylQLmYodCxyPW5baSsrXSxlW3JdKTtyZXR1cm4gdH0sV3Q9b3QoXCJkb2N1bWVudFwiLFwiZG9jdW1lbnRFbGVtZW50XCIpLEt0PSQoXCJJRV9QUk9UT1wiKSxHdD1mdW5jdGlvbigpe30sJHQ9ZnVuY3Rpb24odCl7cmV0dXJuXCI8c2NyaXB0PlwiK3QrXCI8XFwvc2NyaXB0PlwifSxWdD1mdW5jdGlvbigpe3RyeXtaPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoXCJodG1sZmlsZVwiKX1jYXRjaCh0KXt9dmFyIHQsZTtWdD1aP2Z1bmN0aW9uKHQpe3Qud3JpdGUoJHQoXCJcIikpLHQuY2xvc2UoKTt2YXIgZT10LnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHQ9bnVsbCxlfShaKTooKGU9RShcImlmcmFtZVwiKSkuc3R5bGUuZGlzcGxheT1cIm5vbmVcIixXdC5hcHBlbmRDaGlsZChlKSxlLnNyYz1TdHJpbmcoXCJqYXZhc2NyaXB0OlwiKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKCR0KFwiZG9jdW1lbnQuRj1PYmplY3RcIikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgcj15dC5sZW5ndGg7ci0tOylkZWxldGUgVnQucHJvdG90eXBlW3l0W3JdXTtyZXR1cm4gVnQoKX07VltLdF09ITA7dmFyIEh0PU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIG51bGwhPT10PyhHdC5wcm90b3R5cGU9Uih0KSxyPW5ldyBHdCxHdC5wcm90b3R5cGU9bnVsbCxyW0t0XT10KTpyPVZ0KCksdm9pZCAwPT09ZT9yOnp0KHIsZSl9LFh0PUR0KFwidW5zY29wYWJsZXNcIiksWXQ9QXJyYXkucHJvdG90eXBlO251bGw9PVl0W1h0XSYmUC5mKFl0LFh0LHtjb25maWd1cmFibGU6ITAsdmFsdWU6SHQobnVsbCl9KTt2YXIgSnQ9ZnVuY3Rpb24odCl7WXRbWHRdW3RdPSEwfTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2NvcHlXaXRoaW46TXR9KSxKdChcImNvcHlXaXRoaW5cIik7dmFyIFF0PWZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KStcIiBpcyBub3QgYSBmdW5jdGlvblwiKTtyZXR1cm4gdH0sWnQ9ZnVuY3Rpb24odCxlLHIpe2lmKFF0KHQpLHZvaWQgMD09PWUpcmV0dXJuIHQ7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jYWxsKGUpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0LmNhbGwoZSxyKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiB0LmNhbGwoZSxyLG4pfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHIsbixvKXtyZXR1cm4gdC5jYWxsKGUscixuLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fSx0ZT1GdW5jdGlvbi5jYWxsLGVlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gWnQodGUsblt0XS5wcm90b3R5cGVbZV0scil9O2VlKFwiQXJyYXlcIixcImNvcHlXaXRoaW5cIiksa3Qoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmaWxsOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1MdCh0aGlzKSxyPWN0KGUubGVuZ3RoKSxuPWFyZ3VtZW50cy5sZW5ndGgsbz1odChuPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxyKSxpPW4+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGE9dm9pZCAwPT09aT9yOmh0KGkscik7YT5vOyllW28rK109dDtyZXR1cm4gZX19KSxKdChcImZpbGxcIiksZWUoXCJBcnJheVwiLFwiZmlsbFwiKTt2YXIgcmU9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJBcnJheVwiPT1sKHQpfSxuZT1EdChcInNwZWNpZXNcIiksb2U9ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gcmUodCkmJihcImZ1bmN0aW9uXCIhPXR5cGVvZihyPXQuY29uc3RydWN0b3IpfHxyIT09QXJyYXkmJiFyZShyLnByb3RvdHlwZSk/ZyhyKSYmbnVsbD09PShyPXJbbmVdKSYmKHI9dm9pZCAwKTpyPXZvaWQgMCksbmV3KHZvaWQgMD09PXI/QXJyYXk6cikoMD09PWU/MDplKX0saWU9W10ucHVzaCxhZT1mdW5jdGlvbih0KXt2YXIgZT0xPT10LHI9Mj09dCxuPTM9PXQsbz00PT10LGk9Nj09dCxhPTU9PXR8fGk7cmV0dXJuIGZ1bmN0aW9uKHUscyxjLGYpe2Zvcih2YXIgbCxoLGQ9THQodSksdj1wKGQpLGc9WnQocyxjLDMpLHk9Y3Qodi5sZW5ndGgpLG09MCxiPWZ8fG9lLHc9ZT9iKHUseSk6cj9iKHUsMCk6dm9pZCAwO3k+bTttKyspaWYoKGF8fG0gaW4gdikmJihoPWcobD12W21dLG0sZCksdCkpaWYoZSl3W21dPWg7ZWxzZSBpZihoKXN3aXRjaCh0KXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBsO2Nhc2UgNjpyZXR1cm4gbTtjYXNlIDI6aWUuY2FsbCh3LGwpfWVsc2UgaWYobylyZXR1cm4hMTtyZXR1cm4gaT8tMTpufHxvP286d319LHVlPXtmb3JFYWNoOmFlKDApLG1hcDphZSgxKSxmaWx0ZXI6YWUoMiksc29tZTphZSgzKSxldmVyeTphZSg0KSxmaW5kOmFlKDUpLGZpbmRJbmRleDphZSg2KX0sc2U9T2JqZWN0LmRlZmluZVByb3BlcnR5LGNlPXt9LGZlPWZ1bmN0aW9uKHQpe3Rocm93IHR9LGxlPWZ1bmN0aW9uKHQsZSl7aWYoYihjZSx0KSlyZXR1cm4gY2VbdF07ZXx8KGU9e30pO3ZhciByPVtdW3RdLG49ISFiKGUsXCJBQ0NFU1NPUlNcIikmJmUuQUNDRVNTT1JTLGE9YihlLDApP2VbMF06ZmUsdT1iKGUsMSk/ZVsxXTp2b2lkIDA7cmV0dXJuIGNlW3RdPSEhciYmIW8oZnVuY3Rpb24oKXtpZihuJiYhaSlyZXR1cm4hMDt2YXIgdD17bGVuZ3RoOi0xfTtuP3NlKHQsMSx7ZW51bWVyYWJsZTohMCxnZXQ6ZmV9KTp0WzFdPTEsci5jYWxsKHQsYSx1KX0pfSxoZT11ZS5maW5kLHBlPVwiZmluZFwiLGRlPSEwLHZlPWxlKHBlKTtwZSBpbltdJiZBcnJheSgxKS5maW5kKGZ1bmN0aW9uKCl7ZGU9ITF9KSxrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6ZGV8fCF2ZX0se2ZpbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGhlKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksSnQocGUpLGVlKFwiQXJyYXlcIixcImZpbmRcIik7dmFyIGdlPXVlLmZpbmRJbmRleCx5ZT1cImZpbmRJbmRleFwiLG1lPSEwLGJlPWxlKHllKTt5ZSBpbltdJiZBcnJheSgxKS5maW5kSW5kZXgoZnVuY3Rpb24oKXttZT0hMX0pLGt0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwLGZvcmNlZDptZXx8IWJlfSx7ZmluZEluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiBnZSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEp0KHllKSxlZShcIkFycmF5XCIsXCJmaW5kSW5kZXhcIik7dmFyIHdlPWZ1bmN0aW9uIHQoZSxyLG4sbyxpLGEsdSxzKXtmb3IodmFyIGMsZj1pLGw9MCxoPSEhdSYmWnQodSxzLDMpO2w8bzspe2lmKGwgaW4gbil7aWYoYz1oP2gobltsXSxsLHIpOm5bbF0sYT4wJiZyZShjKSlmPXQoZSxyLGMsY3QoYy5sZW5ndGgpLGYsYS0xKS0xO2Vsc2V7aWYoZj49OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyBUeXBlRXJyb3IoXCJFeGNlZWQgdGhlIGFjY2VwdGFibGUgYXJyYXkgbGVuZ3RoXCIpO2VbZl09Y31mKyt9bCsrfXJldHVybiBmfTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2ZsYXRNYXA6ZnVuY3Rpb24odCl7dmFyIGUscj1MdCh0aGlzKSxuPWN0KHIubGVuZ3RoKTtyZXR1cm4gUXQodCksKGU9b2UociwwKSkubGVuZ3RoPXdlKGUscixyLG4sMCwxLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLGV9fSksSnQoXCJmbGF0TWFwXCIpLGVlKFwiQXJyYXlcIixcImZsYXRNYXBcIiksa3Qoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmbGF0OmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLGU9THQodGhpcykscj1jdChlLmxlbmd0aCksbj1vZShlLDApO3JldHVybiBuLmxlbmd0aD13ZShuLGUsZSxyLDAsdm9pZCAwPT09dD8xOnV0KHQpKSxufX0pLEp0KFwiZmxhdFwiKSxlZShcIkFycmF5XCIsXCJmbGF0XCIpO3ZhciBTZSxFZSx4ZSxBZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbixvLGk9U3RyaW5nKGQoZSkpLGE9dXQociksdT1pLmxlbmd0aDtyZXR1cm4gYTwwfHxhPj11P3Q/XCJcIjp2b2lkIDA6KG49aS5jaGFyQ29kZUF0KGEpKTw1NTI5Nnx8bj41NjMxOXx8YSsxPT09dXx8KG89aS5jaGFyQ29kZUF0KGErMSkpPDU2MzIwfHxvPjU3MzQzP3Q/aS5jaGFyQXQoYSk6bjp0P2kuc2xpY2UoYSxhKzIpOm8tNTYzMjArKG4tNTUyOTY8PDEwKSs2NTUzNn19LE9lPXtjb2RlQXQ6QWUoITEpLGNoYXJBdDpBZSghMCl9LFJlPSFvKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gdC5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbCxPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IHQpIT09dC5wcm90b3R5cGV9KSxqZT0kKFwiSUVfUFJPVE9cIiksUGU9T2JqZWN0LnByb3RvdHlwZSxJZT1SZT9PYmplY3QuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9THQodCksYih0LGplKT90W2plXTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNvbnN0cnVjdG9yJiZ0IGluc3RhbmNlb2YgdC5jb25zdHJ1Y3Rvcj90LmNvbnN0cnVjdG9yLnByb3RvdHlwZTp0IGluc3RhbmNlb2YgT2JqZWN0P1BlOm51bGx9LFRlPUR0KFwiaXRlcmF0b3JcIiksa2U9ITE7W10ua2V5cyYmKFwibmV4dFwiaW4oeGU9W10ua2V5cygpKT8oRWU9SWUoSWUoeGUpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoU2U9RWUpOmtlPSEwKSxudWxsPT1TZSYmKFNlPXt9KSxiKFNlLFRlKXx8SShTZSxUZSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSk7dmFyIExlPXtJdGVyYXRvclByb3RvdHlwZTpTZSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOmtlfSxVZT1QLmYsTWU9RHQoXCJ0b1N0cmluZ1RhZ1wiKSxfZT1mdW5jdGlvbih0LGUscil7dCYmIWIodD1yP3Q6dC5wcm90b3R5cGUsTWUpJiZVZSh0LE1lLHtjb25maWd1cmFibGU6ITAsdmFsdWU6ZX0pfSxOZT17fSxDZT1MZS5JdGVyYXRvclByb3RvdHlwZSxGZT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxCZT1mdW5jdGlvbih0LGUscil7dmFyIG49ZStcIiBJdGVyYXRvclwiO3JldHVybiB0LnByb3RvdHlwZT1IdChDZSx7bmV4dDpjKDEscil9KSxfZSh0LG4sITEpLE5lW25dPUZlLHR9LERlPWZ1bmN0aW9uKHQpe2lmKCFnKHQpJiZudWxsIT09dCl0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBzZXQgXCIrU3RyaW5nKHQpK1wiIGFzIGEgcHJvdG90eXBlXCIpO3JldHVybiB0fSxxZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fChcIl9fcHJvdG9fX1wiaW57fT9mdW5jdGlvbigpe3ZhciB0LGU9ITEscj17fTt0cnl7KHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLFwiX19wcm90b19fXCIpLnNldCkuY2FsbChyLFtdKSxlPXIgaW5zdGFuY2VvZiBBcnJheX1jYXRjaCh0KXt9cmV0dXJuIGZ1bmN0aW9uKHIsbil7cmV0dXJuIFIociksRGUobiksZT90LmNhbGwocixuKTpyLl9fcHJvdG9fXz1uLHJ9fSgpOnZvaWQgMCksemU9TGUuSXRlcmF0b3JQcm90b3R5cGUsV2U9TGUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUyxLZT1EdChcIml0ZXJhdG9yXCIpLEdlPVwia2V5c1wiLCRlPVwidmFsdWVzXCIsVmU9XCJlbnRyaWVzXCIsSGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sWGU9ZnVuY3Rpb24odCxlLHIsbixvLGksYSl7QmUocixlLG4pO3ZhciB1LHMsYyxmPWZ1bmN0aW9uKHQpe2lmKHQ9PT1vJiZ2KXJldHVybiB2O2lmKCFXZSYmdCBpbiBwKXJldHVybiBwW3RdO3N3aXRjaCh0KXtjYXNlIEdlOmNhc2UgJGU6Y2FzZSBWZTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcyx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKHRoaXMpfX0sbD1lK1wiIEl0ZXJhdG9yXCIsaD0hMSxwPXQucHJvdG90eXBlLGQ9cFtLZV18fHBbXCJAQGl0ZXJhdG9yXCJdfHxvJiZwW29dLHY9IVdlJiZkfHxmKG8pLGc9XCJBcnJheVwiPT1lJiZwLmVudHJpZXN8fGQ7aWYoZyYmKHU9SWUoZy5jYWxsKG5ldyB0KSksemUhPT1PYmplY3QucHJvdG90eXBlJiZ1Lm5leHQmJihJZSh1KSE9PXplJiYocWU/cWUodSx6ZSk6XCJmdW5jdGlvblwiIT10eXBlb2YgdVtLZV0mJkkodSxLZSxIZSkpLF9lKHUsbCwhMCkpKSxvPT0kZSYmZCYmZC5uYW1lIT09JGUmJihoPSEwLHY9ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSkscFtLZV0hPT12JiZJKHAsS2UsdiksTmVbZV09dixvKWlmKHM9e3ZhbHVlczpmKCRlKSxrZXlzOmk/djpmKEdlKSxlbnRyaWVzOmYoVmUpfSxhKWZvcihjIGluIHMpKFdlfHxofHwhKGMgaW4gcCkpJiZldChwLGMsc1tjXSk7ZWxzZSBrdCh7dGFyZ2V0OmUscHJvdG86ITAsZm9yY2VkOldlfHxofSxzKTtyZXR1cm4gc30sWWU9T2UuY2hhckF0LEplPVwiU3RyaW5nIEl0ZXJhdG9yXCIsUWU9dHQuc2V0LFplPXR0LmdldHRlckZvcihKZSk7WGUoU3RyaW5nLFwiU3RyaW5nXCIsZnVuY3Rpb24odCl7UWUodGhpcyx7dHlwZTpKZSxzdHJpbmc6U3RyaW5nKHQpLGluZGV4OjB9KX0sZnVuY3Rpb24oKXt2YXIgdCxlPVplKHRoaXMpLHI9ZS5zdHJpbmcsbj1lLmluZGV4O3JldHVybiBuPj1yLmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Oih0PVllKHIsbiksZS5pbmRleCs9dC5sZW5ndGgse3ZhbHVlOnQsZG9uZTohMX0pfSk7dmFyIHRyPWZ1bmN0aW9uKHQsZSxyLG4pe3RyeXtyZXR1cm4gbj9lKFIocilbMF0sclsxXSk6ZShyKX1jYXRjaChlKXt2YXIgbz10LnJldHVybjt0aHJvdyB2b2lkIDAhPT1vJiZSKG8uY2FsbCh0KSksZX19LGVyPUR0KFwiaXRlcmF0b3JcIikscnI9QXJyYXkucHJvdG90eXBlLG5yPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoTmUuQXJyYXk9PT10fHxycltlcl09PT10KX0sb3I9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXkoZSk7biBpbiB0P1AuZih0LG4sYygwLHIpKTp0W25dPXJ9LGlyPXt9O2lyW0R0KFwidG9TdHJpbmdUYWdcIildPVwielwiO3ZhciBhcj1cIltvYmplY3Qgel1cIj09PVN0cmluZyhpciksdXI9RHQoXCJ0b1N0cmluZ1RhZ1wiKSxzcj1cIkFyZ3VtZW50c1wiPT1sKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSksY3I9YXI/bDpmdW5jdGlvbih0KXt2YXIgZSxyLG47cmV0dXJuIHZvaWQgMD09PXQ/XCJVbmRlZmluZWRcIjpudWxsPT09dD9cIk51bGxcIjpcInN0cmluZ1wiPT10eXBlb2Yocj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPU9iamVjdCh0KSx1cikpP3I6c3I/bChlKTpcIk9iamVjdFwiPT0obj1sKGUpKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5jYWxsZWU/XCJBcmd1bWVudHNcIjpufSxmcj1EdChcIml0ZXJhdG9yXCIpLGxyPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpcmV0dXJuIHRbZnJdfHx0W1wiQEBpdGVyYXRvclwiXXx8TmVbY3IodCldfSxocj1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpLGEsdT1MdCh0KSxzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxjPWFyZ3VtZW50cy5sZW5ndGgsZj1jPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxsPXZvaWQgMCE9PWYsaD1scih1KSxwPTA7aWYobCYmKGY9WnQoZixjPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09aHx8cz09QXJyYXkmJm5yKGgpKWZvcihyPW5ldyBzKGU9Y3QodS5sZW5ndGgpKTtlPnA7cCsrKWE9bD9mKHVbcF0scCk6dVtwXSxvcihyLHAsYSk7ZWxzZSBmb3IoaT0obz1oLmNhbGwodSkpLm5leHQscj1uZXcgczshKG49aS5jYWxsKG8pKS5kb25lO3ArKylhPWw/dHIobyxmLFtuLnZhbHVlLHBdLCEwKTpuLnZhbHVlLG9yKHIscCxhKTtyZXR1cm4gci5sZW5ndGg9cCxyfSxwcj1EdChcIml0ZXJhdG9yXCIpLGRyPSExO3RyeXt2YXIgdnI9MCxncj17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhdnIrK319LHJldHVybjpmdW5jdGlvbigpe2RyPSEwfX07Z3JbcHJdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oZ3IsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2godCl7fXZhciB5cj1mdW5jdGlvbih0LGUpe2lmKCFlJiYhZHIpcmV0dXJuITE7dmFyIHI9ITE7dHJ5e3ZhciBuPXt9O25bcHJdPWZ1bmN0aW9uKCl7cmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTpyPSEwfX19fSx0KG4pfWNhdGNoKHQpe31yZXR1cm4gcn0sbXI9IXlyKGZ1bmN0aW9uKHQpe0FycmF5LmZyb20odCl9KTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixzdGF0OiEwLGZvcmNlZDptcn0se2Zyb206aHJ9KTt2YXIgYnI9ZHQuaW5jbHVkZXMsd3I9bGUoXCJpbmRleE9mXCIse0FDQ0VTU09SUzohMCwxOjB9KTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IXdyfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksSnQoXCJpbmNsdWRlc1wiKSxlZShcIkFycmF5XCIsXCJpbmNsdWRlc1wiKTt2YXIgU3I9XCJBcnJheSBJdGVyYXRvclwiLEVyPXR0LnNldCx4cj10dC5nZXR0ZXJGb3IoU3IpLEFyPVhlKEFycmF5LFwiQXJyYXlcIixmdW5jdGlvbih0LGUpe0VyKHRoaXMse3R5cGU6U3IsdGFyZ2V0OnYodCksaW5kZXg6MCxraW5kOmV9KX0sZnVuY3Rpb24oKXt2YXIgdD14cih0aGlzKSxlPXQudGFyZ2V0LHI9dC5raW5kLG49dC5pbmRleCsrO3JldHVybiFlfHxuPj1lLmxlbmd0aD8odC50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAsZG9uZTohMH0pOlwia2V5c1wiPT1yP3t2YWx1ZTpuLGRvbmU6ITF9OlwidmFsdWVzXCI9PXI/e3ZhbHVlOmVbbl0sZG9uZTohMX06e3ZhbHVlOltuLGVbbl1dLGRvbmU6ITF9fSxcInZhbHVlc1wiKTtOZS5Bcmd1bWVudHM9TmUuQXJyYXksSnQoXCJrZXlzXCIpLEp0KFwidmFsdWVzXCIpLEp0KFwiZW50cmllc1wiKSxlZShcIkFycmF5XCIsXCJ2YWx1ZXNcIik7dmFyIE9yPW8oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiEoQXJyYXkub2YuY2FsbCh0KWluc3RhbmNlb2YgdCl9KTtrdCh7dGFyZ2V0OlwiQXJyYXlcIixzdGF0OiEwLGZvcmNlZDpPcn0se29mOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3KFwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSkoZSk7ZT50OylvcihyLHQsYXJndW1lbnRzW3QrK10pO3JldHVybiByLmxlbmd0aD1lLHJ9fSk7dmFyIFJyPUR0KFwiaGFzSW5zdGFuY2VcIiksanI9RnVuY3Rpb24ucHJvdG90eXBlO1JyIGluIGpyfHxQLmYoanIsUnIse3ZhbHVlOmZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHRoaXN8fCFnKHQpKXJldHVybiExO2lmKCFnKHRoaXMucHJvdG90eXBlKSlyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM7Zm9yKDt0PUllKHQpOylpZih0aGlzLnByb3RvdHlwZT09PXQpcmV0dXJuITA7cmV0dXJuITF9fSksRHQoXCJoYXNJbnN0YW5jZVwiKTt2YXIgUHI9RnVuY3Rpb24ucHJvdG90eXBlLElyPVByLnRvU3RyaW5nLFRyPS9eXFxzKmZ1bmN0aW9uIChbXiAoXSopLyxrcj1cIm5hbWVcIjtpJiYhKGtyIGluIFByKSYmKDAsUC5mKShQcixrcix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3RyeXtyZXR1cm4gSXIuY2FsbCh0aGlzKS5tYXRjaChUcilbMV19Y2F0Y2godCl7cmV0dXJuXCJcIn19fSk7dmFyIExyPSFvKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5pc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KSxVcj1lKGZ1bmN0aW9uKHQpe3ZhciBlPVAuZixyPUsoXCJtZXRhXCIpLG49MCxvPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LGk9ZnVuY3Rpb24odCl7ZSh0LHIse3ZhbHVlOntvYmplY3RJRDpcIk9cIisgKytuLHdlYWtEYXRhOnt9fX0pfSxhPXQuZXhwb3J0cz17UkVRVUlSRUQ6ITEsZmFzdEtleTpmdW5jdGlvbih0LGUpe2lmKCFnKHQpKXJldHVyblwic3ltYm9sXCI9PXR5cGVvZiB0P3Q6KFwic3RyaW5nXCI9PXR5cGVvZiB0P1wiU1wiOlwiUFwiKSt0O2lmKCFiKHQscikpe2lmKCFvKHQpKXJldHVyblwiRlwiO2lmKCFlKXJldHVyblwiRVwiO2kodCl9cmV0dXJuIHRbcl0ub2JqZWN0SUR9LGdldFdlYWtEYXRhOmZ1bmN0aW9uKHQsZSl7aWYoIWIodCxyKSl7aWYoIW8odCkpcmV0dXJuITA7aWYoIWUpcmV0dXJuITE7aSh0KX1yZXR1cm4gdFtyXS53ZWFrRGF0YX0sb25GcmVlemU6ZnVuY3Rpb24odCl7cmV0dXJuIExyJiZhLlJFUVVJUkVEJiZvKHQpJiYhYih0LHIpJiZpKHQpLHR9fTtWW3JdPSEwfSksTXI9ZShmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9Oyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxyLG4sbyxpKXt2YXIgYSx1LHMsYyxmLGwsaCxwPVp0KHIsbixvPzI6MSk7aWYoaSlhPXQ7ZWxzZXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZih1PWxyKHQpKSl0aHJvdyBUeXBlRXJyb3IoXCJUYXJnZXQgaXMgbm90IGl0ZXJhYmxlXCIpO2lmKG5yKHUpKXtmb3Iocz0wLGM9Y3QodC5sZW5ndGgpO2M+cztzKyspaWYoKGY9bz9wKFIoaD10W3NdKVswXSxoWzFdKTpwKHRbc10pKSYmZiBpbnN0YW5jZW9mIGUpcmV0dXJuIGY7cmV0dXJuIG5ldyBlKCExKX1hPXUuY2FsbCh0KX1mb3IobD1hLm5leHQ7IShoPWwuY2FsbChhKSkuZG9uZTspaWYoXCJvYmplY3RcIj09dHlwZW9mKGY9dHIoYSxwLGgudmFsdWUsbykpJiZmJiZmIGluc3RhbmNlb2YgZSlyZXR1cm4gZjtyZXR1cm4gbmV3IGUoITEpfSkuc3RvcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoITAsdCl9fSksX3I9ZnVuY3Rpb24odCxlLHIpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcihcIkluY29ycmVjdCBcIisocj9yK1wiIFwiOlwiXCIpK1wiaW52b2NhdGlvblwiKTtyZXR1cm4gdH0sTnI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLG87cmV0dXJuIHFlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZihuPWUuY29uc3RydWN0b3IpJiZuIT09ciYmZyhvPW4ucHJvdG90eXBlKSYmbyE9PXIucHJvdG90eXBlJiZxZSh0LG8pLHR9LENyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT0tMSE9PXQuaW5kZXhPZihcIk1hcFwiKSxhPS0xIT09dC5pbmRleE9mKFwiV2Vha1wiKSx1PWk/XCJzZXRcIjpcImFkZFwiLHM9blt0XSxjPXMmJnMucHJvdG90eXBlLGY9cyxsPXt9LGg9ZnVuY3Rpb24odCl7dmFyIGU9Y1t0XTtldChjLHQsXCJhZGRcIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0KSx0aGlzfTpcImRlbGV0ZVwiPT10P2Z1bmN0aW9uKHQpe3JldHVybiEoYSYmIWcodCkpJiZlLmNhbGwodGhpcywwPT09dD8wOnQpfTpcImdldFwiPT10P2Z1bmN0aW9uKHQpe3JldHVybiBhJiYhZyh0KT92b2lkIDA6ZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06XCJoYXNcIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGEmJiFnKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06ZnVuY3Rpb24odCxyKXtyZXR1cm4gZS5jYWxsKHRoaXMsMD09PXQ/MDp0LHIpLHRoaXN9KX07aWYoSXQodCxcImZ1bmN0aW9uXCIhPXR5cGVvZiBzfHwhKGF8fGMuZm9yRWFjaCYmIW8oZnVuY3Rpb24oKXsobmV3IHMpLmVudHJpZXMoKS5uZXh0KCl9KSkpKWY9ci5nZXRDb25zdHJ1Y3RvcihlLHQsaSx1KSxVci5SRVFVSVJFRD0hMDtlbHNlIGlmKEl0KHQsITApKXt2YXIgcD1uZXcgZixkPXBbdV0oYT97fTotMCwxKSE9cCx2PW8oZnVuY3Rpb24oKXtwLmhhcygxKX0pLHk9eXIoZnVuY3Rpb24odCl7bmV3IHModCl9KSxtPSFhJiZvKGZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBzLGU9NTtlLS07KXRbdV0oZSxlKTtyZXR1cm4hdC5oYXMoLTApfSk7eXx8KChmPWUoZnVuY3Rpb24oZSxyKXtfcihlLGYsdCk7dmFyIG49TnIobmV3IHMsZSxmKTtyZXR1cm4gbnVsbCE9ciYmTXIocixuW3VdLG4saSksbn0pKS5wcm90b3R5cGU9YyxjLmNvbnN0cnVjdG9yPWYpLCh2fHxtKSYmKGgoXCJkZWxldGVcIiksaChcImhhc1wiKSxpJiZoKFwiZ2V0XCIpKSwobXx8ZCkmJmgodSksYSYmYy5jbGVhciYmZGVsZXRlIGMuY2xlYXJ9cmV0dXJuIGxbdF09ZixrdCh7Z2xvYmFsOiEwLGZvcmNlZDpmIT1zfSxsKSxfZShmLHQpLGF8fHIuc2V0U3Ryb25nKGYsdCxpKSxmfSxGcj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIGUpZXQodCxuLGVbbl0scik7cmV0dXJuIHR9LEJyPUR0KFwic3BlY2llc1wiKSxEcj1mdW5jdGlvbih0KXt2YXIgZT1vdCh0KTtpJiZlJiYhZVtCcl0mJigwLFAuZikoZSxCcix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxxcj1QLmYsenI9VXIuZmFzdEtleSxXcj10dC5zZXQsS3I9dHQuZ2V0dGVyRm9yLEdyPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbih0LGUscixuKXt2YXIgbz10KGZ1bmN0aW9uKHQsYSl7X3IodCxvLGUpLFdyKHQse3R5cGU6ZSxpbmRleDpIdChudWxsKSxmaXJzdDp2b2lkIDAsbGFzdDp2b2lkIDAsc2l6ZTowfSksaXx8KHQuc2l6ZT0wKSxudWxsIT1hJiZNcihhLHRbbl0sdCxyKX0pLGE9S3IoZSksdT1mdW5jdGlvbih0LGUscil7dmFyIG4sbyx1PWEodCksYz1zKHQsZSk7cmV0dXJuIGM/Yy52YWx1ZT1yOih1Lmxhc3Q9Yz17aW5kZXg6bz16cihlLCEwKSxrZXk6ZSx2YWx1ZTpyLHByZXZpb3VzOm49dS5sYXN0LG5leHQ6dm9pZCAwLHJlbW92ZWQ6ITF9LHUuZmlyc3R8fCh1LmZpcnN0PWMpLG4mJihuLm5leHQ9YyksaT91LnNpemUrKzp0LnNpemUrKyxcIkZcIiE9PW8mJih1LmluZGV4W29dPWMpKSx0fSxzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1hKHQpLG89enIoZSk7aWYoXCJGXCIhPT1vKXJldHVybiBuLmluZGV4W29dO2ZvcihyPW4uZmlyc3Q7cjtyPXIubmV4dClpZihyLmtleT09ZSlyZXR1cm4gcn07cmV0dXJuIEZyKG8ucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdD1hKHRoaXMpLGU9dC5pbmRleCxyPXQuZmlyc3Q7cjspci5yZW1vdmVkPSEwLHIucHJldmlvdXMmJihyLnByZXZpb3VzPXIucHJldmlvdXMubmV4dD12b2lkIDApLGRlbGV0ZSBlW3IuaW5kZXhdLHI9ci5uZXh0O3QuZmlyc3Q9dC5sYXN0PXZvaWQgMCxpP3Quc2l6ZT0wOnRoaXMuc2l6ZT0wfSxkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWEoZSksbj1zKGUsdCk7aWYobil7dmFyIG89bi5uZXh0LHU9bi5wcmV2aW91cztkZWxldGUgci5pbmRleFtuLmluZGV4XSxuLnJlbW92ZWQ9ITAsdSYmKHUubmV4dD1vKSxvJiYoby5wcmV2aW91cz11KSxyLmZpcnN0PT1uJiYoci5maXJzdD1vKSxyLmxhc3Q9PW4mJihyLmxhc3Q9dSksaT9yLnNpemUtLTplLnNpemUtLX1yZXR1cm4hIW59LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9YSh0aGlzKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7ZT1lP2UubmV4dDpyLmZpcnN0Oylmb3IobihlLnZhbHVlLGUua2V5LHRoaXMpO2UmJmUucmVtb3ZlZDspZT1lLnByZXZpb3VzfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISFzKHRoaXMsdCl9fSksRnIoby5wcm90b3R5cGUscj97Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXModGhpcyx0KTtyZXR1cm4gZSYmZS52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHUodGhpcywwPT09dD8wOnQsZSl9fTp7YWRkOmZ1bmN0aW9uKHQpe3JldHVybiB1KHRoaXMsdD0wPT09dD8wOnQsdCl9fSksaSYmcXIoby5wcm90b3R5cGUsXCJzaXplXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBhKHRoaXMpLnNpemV9fSksb30sc2V0U3Ryb25nOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lK1wiIEl0ZXJhdG9yXCIsbz1LcihlKSxpPUtyKG4pO1hlKHQsZSxmdW5jdGlvbih0LGUpe1dyKHRoaXMse3R5cGU6bix0YXJnZXQ6dCxzdGF0ZTpvKHQpLGtpbmQ6ZSxsYXN0OnZvaWQgMH0pfSxmdW5jdGlvbigpe2Zvcih2YXIgdD1pKHRoaXMpLGU9dC5raW5kLHI9dC5sYXN0O3ImJnIucmVtb3ZlZDspcj1yLnByZXZpb3VzO3JldHVybiB0LnRhcmdldCYmKHQubGFzdD1yPXI/ci5uZXh0OnQuc3RhdGUuZmlyc3QpP1wia2V5c1wiPT1lP3t2YWx1ZTpyLmtleSxkb25lOiExfTpcInZhbHVlc1wiPT1lP3t2YWx1ZTpyLnZhbHVlLGRvbmU6ITF9Ont2YWx1ZTpbci5rZXksci52YWx1ZV0sZG9uZTohMX06KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KX0scj9cImVudHJpZXNcIjpcInZhbHVlc1wiLCFyLCEwKSxEcihlKX19LCRyPUNyKFwiTWFwXCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sR3IpO2FyfHxldChPYmplY3QucHJvdG90eXBlLFwidG9TdHJpbmdcIixhcj97fS50b1N0cmluZzpmdW5jdGlvbigpe3JldHVyblwiW29iamVjdCBcIitjcih0aGlzKStcIl1cIn0se3Vuc2FmZTohMH0pO3ZhciBWcj17Q1NTUnVsZUxpc3Q6MCxDU1NTdHlsZURlY2xhcmF0aW9uOjAsQ1NTVmFsdWVMaXN0OjAsQ2xpZW50UmVjdExpc3Q6MCxET01SZWN0TGlzdDowLERPTVN0cmluZ0xpc3Q6MCxET01Ub2tlbkxpc3Q6MSxEYXRhVHJhbnNmZXJJdGVtTGlzdDowLEZpbGVMaXN0OjAsSFRNTEFsbENvbGxlY3Rpb246MCxIVE1MQ29sbGVjdGlvbjowLEhUTUxGb3JtRWxlbWVudDowLEhUTUxTZWxlY3RFbGVtZW50OjAsTWVkaWFMaXN0OjAsTWltZVR5cGVBcnJheTowLE5hbWVkTm9kZU1hcDowLE5vZGVMaXN0OjEsUGFpbnRSZXF1ZXN0TGlzdDowLFBsdWdpbjowLFBsdWdpbkFycmF5OjAsU1ZHTGVuZ3RoTGlzdDowLFNWR051bWJlckxpc3Q6MCxTVkdQYXRoU2VnTGlzdDowLFNWR1BvaW50TGlzdDowLFNWR1N0cmluZ0xpc3Q6MCxTVkdUcmFuc2Zvcm1MaXN0OjAsU291cmNlQnVmZmVyTGlzdDowLFN0eWxlU2hlZXRMaXN0OjAsVGV4dFRyYWNrQ3VlTGlzdDowLFRleHRUcmFja0xpc3Q6MCxUb3VjaExpc3Q6MH0sSHI9RHQoXCJpdGVyYXRvclwiKSxYcj1EdChcInRvU3RyaW5nVGFnXCIpLFlyPUFyLnZhbHVlcztmb3IodmFyIEpyIGluIFZyKXt2YXIgUXI9bltKcl0sWnI9UXImJlFyLnByb3RvdHlwZTtpZihacil7aWYoWnJbSHJdIT09WXIpdHJ5e0koWnIsSHIsWXIpfWNhdGNoKHQpe1pyW0hyXT1Zcn1pZihacltYcl18fEkoWnIsWHIsSnIpLFZyW0pyXSlmb3IodmFyIHRuIGluIEFyKWlmKFpyW3RuXSE9PUFyW3RuXSl0cnl7SShacix0bixBclt0bl0pfWNhdGNoKHQpe1pyW3RuXT1Bclt0bl19fX12YXIgZW49ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saT1hcmd1bWVudHMubGVuZ3RoLGE9aT4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuIFF0KHRoaXMpLChlPXZvaWQgMCE9PWEpJiZRdChhKSxudWxsPT10P25ldyB0aGlzOihyPVtdLGU/KG49MCxvPVp0KGEsaT4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMiksTXIodCxmdW5jdGlvbih0KXtyLnB1c2gobyh0LG4rKykpfSkpOk1yKHQsci5wdXNoLHIpLG5ldyB0aGlzKHIpKX07a3Qoe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITB9LHtmcm9tOmVufSk7dmFyIHJuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCk7dC0tOyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gbmV3IHRoaXMoZSl9O2t0KHt0YXJnZXQ6XCJNYXBcIixzdGF0OiEwfSx7b2Y6cm59KTt2YXIgbm49ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1SKHRoaXMpLHI9UXQoZS5kZWxldGUpLG49ITAsbz0wLGk9YXJndW1lbnRzLmxlbmd0aDtvPGk7bysrKXQ9ci5jYWxsKGUsYXJndW1lbnRzW29dKSxuPW4mJnQ7cmV0dXJuISFufTtrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2RlbGV0ZUFsbDpmdW5jdGlvbigpe3JldHVybiBubi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSk7dmFyIG9uPWZ1bmN0aW9uKHQpe3ZhciBlPWxyKHQpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KStcIiBpcyBub3QgaXRlcmFibGVcIik7cmV0dXJuIFIoZS5jYWxsKHQpKX0sYW49ZnVuY3Rpb24odCl7cmV0dXJuIE1hcC5wcm90b3R5cGUuZW50cmllcy5jYWxsKHQpfTtrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIU1yKHIsZnVuY3Rpb24odCxyKXtpZighbihyLHQsZSkpcmV0dXJuIE1yLnN0b3AoKX0sdm9pZCAwLCEwLCEwKS5zdG9wcGVkfX0pO3ZhciB1bj1EdChcInNwZWNpZXNcIiksc249ZnVuY3Rpb24odCxlKXt2YXIgcixuPVIodCkuY29uc3RydWN0b3I7cmV0dXJuIHZvaWQgMD09PW58fG51bGw9PShyPVIobilbdW5dKT9lOlF0KHIpfTtrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpLG89bmV3KHNuKGUsb3QoXCJNYXBcIikpKSxpPVF0KG8uc2V0KTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe24ocix0LGUpJiZpLmNhbGwobyx0LHIpfSx2b2lkIDAsITAsITApLG99fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCxyKXtpZihuKHIsdCxlKSlyZXR1cm4gTXIuc3RvcChyKX0sdm9pZCAwLCEwLCEwKS5yZXN1bHR9fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtmaW5kS2V5OmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCxyKXtpZihuKHIsdCxlKSlyZXR1cm4gTXIuc3RvcCh0KX0sdm9pZCAwLCEwLCEwKS5yZXN1bHR9fSksa3Qoe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITB9LHtncm91cEJ5OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHRoaXM7UXQoZSk7dmFyIG49UXQoci5oYXMpLG89UXQoci5nZXQpLGk9UXQoci5zZXQpO3JldHVybiBNcih0LGZ1bmN0aW9uKHQpe3ZhciBhPWUodCk7bi5jYWxsKHIsYSk/by5jYWxsKHIsYSkucHVzaCh0KTppLmNhbGwocixhLFt0XSl9KSxyfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuIE1yKGFuKFIodGhpcykpLGZ1bmN0aW9uKGUscil7aWYoKG49cik9PT0obz10KXx8biE9biYmbyE9bylyZXR1cm4gTXIuc3RvcCgpO3ZhciBuLG99LHZvaWQgMCwhMCwhMCkuc3RvcHBlZH19KSxrdCh7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMH0se2tleUJ5OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHRoaXM7UXQoZSk7dmFyIG49UXQoci5zZXQpO3JldHVybiBNcih0LGZ1bmN0aW9uKHQpe24uY2FsbChyLGUodCksdCl9KSxyfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7a2V5T2Y6ZnVuY3Rpb24odCl7cmV0dXJuIE1yKGFuKFIodGhpcykpLGZ1bmN0aW9uKGUscil7aWYocj09PXQpcmV0dXJuIE1yLnN0b3AoZSl9LHZvaWQgMCwhMCwhMCkucmVzdWx0fX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7bWFwS2V5czpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpLG89bmV3KHNuKGUsb3QoXCJNYXBcIikpKSxpPVF0KG8uc2V0KTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe2kuY2FsbChvLG4ocix0LGUpLHIpfSx2b2lkIDAsITAsITApLG99fSksa3Qoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHttYXBWYWx1ZXM6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPW5ldyhzbihlLG90KFwiTWFwXCIpKSksaT1RdChvLnNldCk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCxyKXtpLmNhbGwobyx0LG4ocix0LGUpKX0sdm9pZCAwLCEwLCEwKSxvfX0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7bWVyZ2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVIodGhpcykscj1RdChlLnNldCksbj0wO248YXJndW1lbnRzLmxlbmd0aDspTXIoYXJndW1lbnRzW24rK10scixlLCEwKTtyZXR1cm4gZX19KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3JlZHVjZTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9YW4oZSksbj1hcmd1bWVudHMubGVuZ3RoPDIsbz1uP3ZvaWQgMDphcmd1bWVudHNbMV07aWYoUXQodCksTXIocixmdW5jdGlvbihyLGkpe24/KG49ITEsbz1pKTpvPXQobyxpLHIsZSl9LHZvaWQgMCwhMCwhMCksbil0aHJvdyBUeXBlRXJyb3IoXCJSZWR1Y2Ugb2YgZW1wdHkgbWFwIHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtyZXR1cm4gb319KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3NvbWU6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gTXIocixmdW5jdGlvbih0LHIpe2lmKG4ocix0LGUpKXJldHVybiBNci5zdG9wKCl9LHZvaWQgMCwhMCwhMCkuc3RvcHBlZH19KSxrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3VwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciByPVIodGhpcyksbj1hcmd1bWVudHMubGVuZ3RoO1F0KGUpO3ZhciBvPXIuaGFzKHQpO2lmKCFvJiZuPDMpdGhyb3cgVHlwZUVycm9yKFwiVXBkYXRpbmcgYWJzZW50IHZhbHVlXCIpO3ZhciBpPW8/ci5nZXQodCk6UXQobj4yP2FyZ3VtZW50c1syXTp2b2lkIDApKHQscik7cmV0dXJuIHIuc2V0KHQsZShpLHQscikpLHJ9fSk7dmFyIGNuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1SKHRoaXMpLG89YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbyl0aHJvdyBUeXBlRXJyb3IoXCJBdCBsZWFzdCBvbmUgY2FsbGJhY2sgcmVxdWlyZWRcIik7cmV0dXJuIG4uaGFzKHQpPyhyPW4uZ2V0KHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihyPWUociksbi5zZXQodCxyKSkpOlwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihyPW8oKSxuLnNldCh0LHIpKSxyfTtrdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3Vwc2VydDpjbn0pLGt0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7dXBkYXRlT3JJbnNlcnQ6Y259KTt2YXIgZm49XCJcXHRcXG5cXHZcXGZcXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcXHUyMDI4XFx1MjAyOVxcdWZlZmZcIixsbj1cIltcIitmbitcIl1cIixobj1SZWdFeHAoXCJeXCIrbG4rbG4rXCIqXCIpLHBuPVJlZ0V4cChsbitsbitcIiokXCIpLGRuPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1TdHJpbmcoZChlKSk7cmV0dXJuIDEmdCYmKHI9ci5yZXBsYWNlKGhuLFwiXCIpKSwyJnQmJihyPXIucmVwbGFjZShwbixcIlwiKSkscn19LHZuPXtzdGFydDpkbigxKSxlbmQ6ZG4oMiksdHJpbTpkbigzKX0sZ249YnQuZix5bj1PLmYsbW49UC5mLGJuPXZuLnRyaW0sd249XCJOdW1iZXJcIixTbj1uLk51bWJlcixFbj1Tbi5wcm90b3R5cGUseG49bChIdChFbikpPT13bixBbj1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpLGEsdSxzLGM9eSh0LCExKTtpZihcInN0cmluZ1wiPT10eXBlb2YgYyYmYy5sZW5ndGg+MilpZig0Mz09PShlPShjPWJuKGMpKS5jaGFyQ29kZUF0KDApKXx8NDU9PT1lKXtpZig4OD09PShyPWMuY2hhckNvZGVBdCgyKSl8fDEyMD09PXIpcmV0dXJuIE5hTn1lbHNlIGlmKDQ4PT09ZSl7c3dpdGNoKGMuY2hhckNvZGVBdCgxKSl7Y2FzZSA2NjpjYXNlIDk4Om49MixvPTQ5O2JyZWFrO2Nhc2UgNzk6Y2FzZSAxMTE6bj04LG89NTU7YnJlYWs7ZGVmYXVsdDpyZXR1cm4rY31mb3IoYT0oaT1jLnNsaWNlKDIpKS5sZW5ndGgsdT0wO3U8YTt1KyspaWYoKHM9aS5jaGFyQ29kZUF0KHUpKTw0OHx8cz5vKXJldHVybiBOYU47cmV0dXJuIHBhcnNlSW50KGksbil9cmV0dXJuK2N9O2lmKEl0KHduLCFTbihcIiAwbzFcIil8fCFTbihcIjBiMVwiKXx8U24oXCIrMHgxXCIpKSl7Zm9yKHZhciBPbixSbj1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPDE/MDp0LHI9dGhpcztyZXR1cm4gciBpbnN0YW5jZW9mIFJuJiYoeG4/byhmdW5jdGlvbigpe0VuLnZhbHVlT2YuY2FsbChyKX0pOmwocikhPXduKT9OcihuZXcgU24oQW4oZSkpLHIsUm4pOkFuKGUpfSxqbj1pP2duKFNuKTpcIk1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyXCIuc3BsaXQoXCIsXCIpLFBuPTA7am4ubGVuZ3RoPlBuO1BuKyspYihTbixPbj1qbltQbl0pJiYhYihSbixPbikmJm1uKFJuLE9uLHluKFNuLE9uKSk7Um4ucHJvdG90eXBlPUVuLEVuLmNvbnN0cnVjdG9yPVJuLGV0KG4sd24sUm4pfWt0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7RVBTSUxPTjpNYXRoLnBvdygyLC01Mil9KTt2YXIgSW49bi5pc0Zpbml0ZTtrdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzRmluaXRlOk51bWJlci5pc0Zpbml0ZXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHQmJkluKHQpfX0pO3ZhciBUbj1NYXRoLmZsb29yLGtuPWZ1bmN0aW9uKHQpe3JldHVybiFnKHQpJiZpc0Zpbml0ZSh0KSYmVG4odCk9PT10fTtrdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzSW50ZWdlcjprbn0pLGt0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7aXNOYU46ZnVuY3Rpb24odCl7cmV0dXJuIHQhPXR9fSk7dmFyIExuPU1hdGguYWJzO2t0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7aXNTYWZlSW50ZWdlcjpmdW5jdGlvbih0KXtyZXR1cm4ga24odCkmJkxuKHQpPD05MDA3MTk5MjU0NzQwOTkxfX0pLGt0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSksa3Qoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSk7dmFyIFVuPXZuLnRyaW0sTW49bi5wYXJzZUZsb2F0LF9uPTEvTW4oZm4rXCItMFwiKSE9LUluZmluaXR5P2Z1bmN0aW9uKHQpe3ZhciBlPVVuKFN0cmluZyh0KSkscj1NbihlKTtyZXR1cm4gMD09PXImJlwiLVwiPT1lLmNoYXJBdCgwKT8tMDpyfTpNbjtrdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxmb3JjZWQ6TnVtYmVyLnBhcnNlRmxvYXQhPV9ufSx7cGFyc2VGbG9hdDpfbn0pO3ZhciBObj12bi50cmltLENuPW4ucGFyc2VJbnQsRm49L15bKy1dPzBbWHhdLyxCbj04IT09Q24oZm4rXCIwOFwiKXx8MjIhPT1DbihmbitcIjB4MTZcIik/ZnVuY3Rpb24odCxlKXt2YXIgcj1ObihTdHJpbmcodCkpO3JldHVybiBDbihyLGU+Pj4wfHwoRm4udGVzdChyKT8xNjoxMCkpfTpDbjtrdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMCxmb3JjZWQ6TnVtYmVyLnBhcnNlSW50IT1Cbn0se3BhcnNlSW50OkJufSk7dmFyIERuPXMuZixxbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciByLG49dihlKSxvPXF0KG4pLGE9by5sZW5ndGgsdT0wLHM9W107YT51OylyPW9bdSsrXSxpJiYhRG4uY2FsbChuLHIpfHxzLnB1c2godD9bcixuW3JdXTpuW3JdKTtyZXR1cm4gc319LHpuPXtlbnRyaWVzOnFuKCEwKSx2YWx1ZXM6cW4oITEpfSxXbj16bi5lbnRyaWVzO2t0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwfSx7ZW50cmllczpmdW5jdGlvbih0KXtyZXR1cm4gV24odCl9fSksa3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsc2hhbTohaX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbj12KHQpLG89Ty5mLGk9U3QobiksYT17fSx1PTA7aS5sZW5ndGg+dTspdm9pZCAwIT09KHI9byhuLGU9aVt1KytdKSkmJm9yKGEsZSxyKTtyZXR1cm4gYX19KTt2YXIgS249byhmdW5jdGlvbigpe3F0KDEpfSk7a3Qoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOktufSx7a2V5czpmdW5jdGlvbih0KXtyZXR1cm4gcXQoTHQodCkpfX0pO3ZhciBHbj1PYmplY3QuaXN8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lPzAhPT10fHwxL3Q9PTEvZTp0IT10JiZlIT1lfTtrdCh7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMH0se2lzOkdufSk7dmFyICRuPXpuLnZhbHVlcztrdCh7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gJG4odCl9fSk7dmFyIFZuPW90KFwiUmVmbGVjdFwiLFwiYXBwbHlcIiksSG49RnVuY3Rpb24uYXBwbHksWG49IW8oZnVuY3Rpb24oKXtWbihmdW5jdGlvbigpe30pfSk7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLGZvcmNlZDpYbn0se2FwcGx5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUXQodCksUihyKSxWbj9Wbih0LGUscik6SG4uY2FsbCh0LGUscil9fSk7dmFyIFluPVtdLnNsaWNlLEpuPXt9LFFuPWZ1bmN0aW9uKHQsZSxyKXtpZighKGUgaW4gSm4pKXtmb3IodmFyIG49W10sbz0wO288ZTtvKyspbltvXT1cImFbXCIrbytcIl1cIjtKbltlXT1GdW5jdGlvbihcIkMsYVwiLFwicmV0dXJuIG5ldyBDKFwiK24uam9pbihcIixcIikrXCIpXCIpfXJldHVybiBKbltlXSh0LHIpfSxabj1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1RdCh0aGlzKSxyPVluLmNhbGwoYXJndW1lbnRzLDEpLG49ZnVuY3Rpb24oKXt2YXIgbz1yLmNvbmNhdChZbi5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbj9RbihlLG8ubGVuZ3RoLG8pOmUuYXBwbHkodCxvKX07cmV0dXJuIGcoZS5wcm90b3R5cGUpJiYobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUpLG59LHRvPW90KFwiUmVmbGVjdFwiLFwiY29uc3RydWN0XCIpLGVvPW8oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiEodG8oZnVuY3Rpb24oKXt9LFtdLHQpaW5zdGFuY2VvZiB0KX0pLHJvPSFvKGZ1bmN0aW9uKCl7dG8oZnVuY3Rpb24oKXt9KX0pLG5vPWVvfHxybztrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOm5vLHNoYW06bm99LHtjb25zdHJ1Y3Q6ZnVuY3Rpb24odCxlKXtRdCh0KSxSKGUpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz90OlF0KGFyZ3VtZW50c1syXSk7aWYocm8mJiFlbylyZXR1cm4gdG8odCxlLHIpO2lmKHQ9PXIpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgdDtjYXNlIDE6cmV0dXJuIG5ldyB0KGVbMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IHQoZVswXSxlWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10pfXZhciBuPVtudWxsXTtyZXR1cm4gbi5wdXNoLmFwcGx5KG4sZSksbmV3KFpuLmFwcGx5KHQsbikpfXZhciBvPXIucHJvdG90eXBlLGk9SHQoZyhvKT9vOk9iamVjdC5wcm90b3R5cGUpLGE9RnVuY3Rpb24uYXBwbHkuY2FsbCh0LGksZSk7cmV0dXJuIGcoYSk/YTppfX0pO3ZhciBvbz1vKGZ1bmN0aW9uKCl7UmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShQLmYoe30sMSx7dmFsdWU6MX0pLDEse3ZhbHVlOjJ9KX0pO2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxmb3JjZWQ6b28sc2hhbTohaX0se2RlZmluZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSxyKXtSKHQpO3ZhciBuPXkoZSwhMCk7UihyKTt0cnl7cmV0dXJuIFAuZih0LG4sciksITB9Y2F0Y2godCl7cmV0dXJuITF9fX0pO3ZhciBpbz1PLmY7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7ZGVsZXRlUHJvcGVydHk6ZnVuY3Rpb24odCxlKXt2YXIgcj1pbyhSKHQpLGUpO3JldHVybiEociYmIXIuY29uZmlndXJhYmxlKSYmZGVsZXRlIHRbZV19fSksa3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0OmZ1bmN0aW9uIHQoZSxyKXt2YXIgbixvLGk9YXJndW1lbnRzLmxlbmd0aDwzP2U6YXJndW1lbnRzWzJdO3JldHVybiBSKGUpPT09aT9lW3JdOihuPU8uZihlLHIpKT9iKG4sXCJ2YWx1ZVwiKT9uLnZhbHVlOnZvaWQgMD09PW4uZ2V0P3ZvaWQgMDpuLmdldC5jYWxsKGkpOmcobz1JZShlKSk/dChvLHIsaSk6dm9pZCAwfX0pLGt0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE8uZihSKHQpLGUpfX0pLGt0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFSZX0se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBJZShSKHQpKX19KSxrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbiB0fX0pO3ZhciBhbz1PYmplY3QuaXNFeHRlbnNpYmxlO2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2lzRXh0ZW5zaWJsZTpmdW5jdGlvbih0KXtyZXR1cm4gUih0KSwhYW98fGFvKHQpfX0pLGt0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se293bktleXM6U3R9KSxrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsc2hhbTohTHJ9LHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbih0KXtSKHQpO3RyeXt2YXIgZT1vdChcIk9iamVjdFwiLFwicHJldmVudEV4dGVuc2lvbnNcIik7cmV0dXJuIGUmJmUodCksITB9Y2F0Y2godCl7cmV0dXJuITF9fX0pO3ZhciB1bz1vKGZ1bmN0aW9uKCl7dmFyIHQ9UC5mKHt9LFwiYVwiLHtjb25maWd1cmFibGU6ITB9KTtyZXR1cm4hMSE9PVJlZmxlY3Quc2V0KEllKHQpLFwiYVwiLDEsdCl9KTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOnVvfSx7c2V0OmZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBvLGksYT1hcmd1bWVudHMubGVuZ3RoPDQ/ZTphcmd1bWVudHNbM10sdT1PLmYoUihlKSxyKTtpZighdSl7aWYoZyhpPUllKGUpKSlyZXR1cm4gdChpLHIsbixhKTt1PWMoMCl9aWYoYih1LFwidmFsdWVcIikpe2lmKCExPT09dS53cml0YWJsZXx8IWcoYSkpcmV0dXJuITE7aWYobz1PLmYoYSxyKSl7aWYoby5nZXR8fG8uc2V0fHwhMT09PW8ud3JpdGFibGUpcmV0dXJuITE7by52YWx1ZT1uLFAuZihhLHIsbyl9ZWxzZSBQLmYoYSxyLGMoMCxuKSk7cmV0dXJuITB9cmV0dXJuIHZvaWQgMCE9PXUuc2V0JiYodS5zZXQuY2FsbChhLG4pLCEwKX19KSxxZSYma3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7c2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCxlKXtSKHQpLERlKGUpO3RyeXtyZXR1cm4gcWUodCxlKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSk7dmFyIHNvPVVyLmdldFdlYWtEYXRhLGNvPXR0LnNldCxmbz10dC5nZXR0ZXJGb3IsbG89dWUuZmluZCxobz11ZS5maW5kSW5kZXgscG89MCx2bz1mdW5jdGlvbih0KXtyZXR1cm4gdC5mcm96ZW58fCh0LmZyb3plbj1uZXcgZ28pfSxnbz1mdW5jdGlvbigpe3RoaXMuZW50cmllcz1bXX0seW89ZnVuY3Rpb24odCxlKXtyZXR1cm4gbG8odC5lbnRyaWVzLGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPT09ZX0pfTtnby5wcm90b3R5cGU9e2dldDpmdW5jdGlvbih0KXt2YXIgZT15byh0aGlzLHQpO2lmKGUpcmV0dXJuIGVbMV19LGhhczpmdW5jdGlvbih0KXtyZXR1cm4hIXlvKHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LGUpe3ZhciByPXlvKHRoaXMsdCk7cj9yWzFdPWU6dGhpcy5lbnRyaWVzLnB1c2goW3QsZV0pfSxkZWxldGU6ZnVuY3Rpb24odCl7dmFyIGU9aG8odGhpcy5lbnRyaWVzLGZ1bmN0aW9uKGUpe3JldHVybiBlWzBdPT09dH0pO3JldHVybn5lJiZ0aGlzLmVudHJpZXMuc3BsaWNlKGUsMSksISF+ZX19O3ZhciBtbz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89dChmdW5jdGlvbih0LGkpe19yKHQsbyxlKSxjbyh0LHt0eXBlOmUsaWQ6cG8rKyxmcm96ZW46dm9pZCAwfSksbnVsbCE9aSYmTXIoaSx0W25dLHQscil9KSxpPWZvKGUpLGE9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWkodCksbz1zbyhSKGUpLCEwKTtyZXR1cm4hMD09PW8/dm8obikuc2V0KGUscik6b1tuLmlkXT1yLHR9O3JldHVybiBGcihvLnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyk7aWYoIWcodCkpcmV0dXJuITE7dmFyIHI9c28odCk7cmV0dXJuITA9PT1yP3ZvKGUpLmRlbGV0ZSh0KTpyJiZiKHIsZS5pZCkmJmRlbGV0ZSByW2UuaWRdfSxoYXM6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKTtpZighZyh0KSlyZXR1cm4hMTt2YXIgcj1zbyh0KTtyZXR1cm4hMD09PXI/dm8oZSkuaGFzKHQpOnImJmIocixlLmlkKX19KSxGcihvLnByb3RvdHlwZSxyP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9aSh0aGlzKTtpZihnKHQpKXt2YXIgcj1zbyh0KTtyZXR1cm4hMD09PXI/dm8oZSkuZ2V0KHQpOnI/cltlLmlkXTp2b2lkIDB9fSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYSh0aGlzLHQsZSl9fTp7YWRkOmZ1bmN0aW9uKHQpe3JldHVybiBhKHRoaXMsdCwhMCl9fSksb319LGJvPWUoZnVuY3Rpb24odCl7dmFyIGUscj10dC5lbmZvcmNlLG89IW4uQWN0aXZlWE9iamVjdCYmXCJBY3RpdmVYT2JqZWN0XCJpbiBuLGk9T2JqZWN0LmlzRXh0ZW5zaWJsZSxhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHU9dC5leHBvcnRzPUNyKFwiV2Vha01hcFwiLGEsbW8pO2lmKEImJm8pe2U9bW8uZ2V0Q29uc3RydWN0b3IoYSxcIldlYWtNYXBcIiwhMCksVXIuUkVRVUlSRUQ9ITA7dmFyIHM9dS5wcm90b3R5cGUsYz1zLmRlbGV0ZSxmPXMuaGFzLGw9cy5nZXQsaD1zLnNldDtGcihzLHtkZWxldGU6ZnVuY3Rpb24odCl7aWYoZyh0KSYmIWkodCkpe3ZhciBuPXIodGhpcyk7cmV0dXJuIG4uZnJvemVufHwobi5mcm96ZW49bmV3IGUpLGMuY2FsbCh0aGlzLHQpfHxuLmZyb3plbi5kZWxldGUodCl9cmV0dXJuIGMuY2FsbCh0aGlzLHQpfSxoYXM6ZnVuY3Rpb24odCl7aWYoZyh0KSYmIWkodCkpe3ZhciBuPXIodGhpcyk7cmV0dXJuIG4uZnJvemVufHwobi5mcm96ZW49bmV3IGUpLGYuY2FsbCh0aGlzLHQpfHxuLmZyb3plbi5oYXModCl9cmV0dXJuIGYuY2FsbCh0aGlzLHQpfSxnZXQ6ZnVuY3Rpb24odCl7aWYoZyh0KSYmIWkodCkpe3ZhciBuPXIodGhpcyk7cmV0dXJuIG4uZnJvemVufHwobi5mcm96ZW49bmV3IGUpLGYuY2FsbCh0aGlzLHQpP2wuY2FsbCh0aGlzLHQpOm4uZnJvemVuLmdldCh0KX1yZXR1cm4gbC5jYWxsKHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LG4pe2lmKGcodCkmJiFpKHQpKXt2YXIgbz1yKHRoaXMpO28uZnJvemVufHwoby5mcm96ZW49bmV3IGUpLGYuY2FsbCh0aGlzLHQpP2guY2FsbCh0aGlzLHQsbik6by5mcm96ZW4uc2V0KHQsbil9ZWxzZSBoLmNhbGwodGhpcyx0LG4pO3JldHVybiB0aGlzfX0pfX0pLHdvPXEoXCJtZXRhZGF0YVwiKSxTbz13by5zdG9yZXx8KHdvLnN0b3JlPW5ldyBibyksRW89ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVNvLmdldCh0KTtpZighbil7aWYoIXIpcmV0dXJuO1NvLnNldCh0LG49bmV3ICRyKX12YXIgbz1uLmdldChlKTtpZighbyl7aWYoIXIpcmV0dXJuO24uc2V0KGUsbz1uZXcgJHIpfXJldHVybiBvfSx4bz17c3RvcmU6U28sZ2V0TWFwOkVvLGhhczpmdW5jdGlvbih0LGUscil7dmFyIG49RW8oZSxyLCExKTtyZXR1cm4gdm9pZCAwIT09biYmbi5oYXModCl9LGdldDpmdW5jdGlvbih0LGUscil7dmFyIG49RW8oZSxyLCExKTtyZXR1cm4gdm9pZCAwPT09bj92b2lkIDA6bi5nZXQodCl9LHNldDpmdW5jdGlvbih0LGUscixuKXtFbyhyLG4sITApLnNldCh0LGUpfSxrZXlzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9RW8odCxlLCExKSxuPVtdO3JldHVybiByJiZyLmZvckVhY2goZnVuY3Rpb24odCxlKXtuLnB1c2goZSl9KSxufSx0b0tleTpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dHx8XCJzeW1ib2xcIj09dHlwZW9mIHQ/dDpTdHJpbmcodCl9fSxBbz14by50b0tleSxPbz14by5zZXQ7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg8ND92b2lkIDA6QW8oYXJndW1lbnRzWzNdKTtPbyh0LGUsUihyKSxuKX19KTt2YXIgUm89eG8udG9LZXksam89eG8uZ2V0TWFwLFBvPXhvLnN0b3JlO2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2RlbGV0ZU1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpSbyhhcmd1bWVudHNbMl0pLG49am8oUihlKSxyLCExKTtpZih2b2lkIDA9PT1ufHwhbi5kZWxldGUodCkpcmV0dXJuITE7aWYobi5zaXplKXJldHVybiEwO3ZhciBvPVBvLmdldChlKTtyZXR1cm4gby5kZWxldGUociksISFvLnNpemV8fFBvLmRlbGV0ZShlKX19KTt2YXIgSW89eG8uaGFzLFRvPXhvLmdldCxrbz14by50b0tleSxMbz1mdW5jdGlvbiB0KGUscixuKXtpZihJbyhlLHIsbikpcmV0dXJuIFRvKGUscixuKTt2YXIgbz1JZShyKTtyZXR1cm4gbnVsbCE9PW8/dChlLG8sbik6dm9pZCAwfTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtnZXRNZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6a28oYXJndW1lbnRzWzJdKTtyZXR1cm4gTG8odCxSKGUpLHIpfX0pO3ZhciBVbz1DcihcIlNldFwiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEdyKSxNbz14by5rZXlzLF9vPXhvLnRvS2V5LE5vPWZ1bmN0aW9uIHQoZSxyKXt2YXIgbj1NbyhlLHIpLG89SWUoZSk7aWYobnVsbD09PW8pcmV0dXJuIG47dmFyIGksYSx1PXQobyxyKTtyZXR1cm4gdS5sZW5ndGg/bi5sZW5ndGg/KGk9bmV3IFVvKG4uY29uY2F0KHUpKSxNcihpLChhPVtdKS5wdXNoLGEpLGEpOnU6bn07a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0TWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6X28oYXJndW1lbnRzWzFdKTtyZXR1cm4gTm8oUih0KSxlKX19KTt2YXIgQ289eG8uZ2V0LEZvPXhvLnRvS2V5O2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpGbyhhcmd1bWVudHNbMl0pO3JldHVybiBDbyh0LFIoZSkscil9fSk7dmFyIEJvPXhvLmtleXMsRG89eG8udG9LZXk7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6RG8oYXJndW1lbnRzWzFdKTtyZXR1cm4gQm8oUih0KSxlKX19KTt2YXIgcW89eG8uaGFzLHpvPXhvLnRvS2V5LFdvPWZ1bmN0aW9uIHQoZSxyLG4pe2lmKHFvKGUscixuKSlyZXR1cm4hMDt2YXIgbz1JZShyKTtyZXR1cm4gbnVsbCE9PW8mJnQoZSxvLG4pfTtrdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXNNZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6em8oYXJndW1lbnRzWzJdKTtyZXR1cm4gV28odCxSKGUpLHIpfX0pO3ZhciBLbz14by5oYXMsR289eG8udG9LZXk7a3Qoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7aGFzT3duTWV0YWRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOkdvKGFyZ3VtZW50c1syXSk7cmV0dXJuIEtvKHQsUihlKSxyKX19KTt2YXIgJG89eG8udG9LZXksVm89eG8uc2V0O2t0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se21ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7Vm8odCxlLFIociksJG8obikpfX19KTt2YXIgSG89RHQoXCJtYXRjaFwiKSxYbz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gZyh0KSYmKHZvaWQgMCE9PShlPXRbSG9dKT8hIWU6XCJSZWdFeHBcIj09bCh0KSl9LFlvPWZ1bmN0aW9uKCl7dmFyIHQ9Uih0aGlzKSxlPVwiXCI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9XCJnXCIpLHQuaWdub3JlQ2FzZSYmKGUrPVwiaVwiKSx0Lm11bHRpbGluZSYmKGUrPVwibVwiKSx0LmRvdEFsbCYmKGUrPVwic1wiKSx0LnVuaWNvZGUmJihlKz1cInVcIiksdC5zdGlja3kmJihlKz1cInlcIiksZX07ZnVuY3Rpb24gSm8odCxlKXtyZXR1cm4gUmVnRXhwKHQsZSl9dmFyIFFvPXtVTlNVUFBPUlRFRF9ZOm8oZnVuY3Rpb24oKXt2YXIgdD1KbyhcImFcIixcInlcIik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9dC5leGVjKFwiYWJjZFwiKX0pLEJST0tFTl9DQVJFVDpvKGZ1bmN0aW9uKCl7dmFyIHQ9Sm8oXCJeclwiLFwiZ3lcIik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9dC5leGVjKFwic3RyXCIpfSl9LFpvPVAuZix0aT1idC5mLGVpPXR0LnNldCxyaT1EdChcIm1hdGNoXCIpLG5pPW4uUmVnRXhwLG9pPW5pLnByb3RvdHlwZSxpaT0vYS9nLGFpPS9hL2csdWk9bmV3IG5pKGlpKSE9PWlpLHNpPVFvLlVOU1VQUE9SVEVEX1k7aWYoaSYmSXQoXCJSZWdFeHBcIiwhdWl8fHNpfHxvKGZ1bmN0aW9uKCl7cmV0dXJuIGFpW3JpXT0hMSxuaShpaSkhPWlpfHxuaShhaSk9PWFpfHxcIi9hL2lcIiE9bmkoaWksXCJpXCIpfSkpKXtmb3IodmFyIGNpPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10aGlzIGluc3RhbmNlb2YgY2ksbz1Ybyh0KSxpPXZvaWQgMD09PWU7aWYoIW4mJm8mJnQuY29uc3RydWN0b3I9PT1jaSYmaSlyZXR1cm4gdDt1aT9vJiYhaSYmKHQ9dC5zb3VyY2UpOnQgaW5zdGFuY2VvZiBjaSYmKGkmJihlPVlvLmNhbGwodCkpLHQ9dC5zb3VyY2UpLHNpJiYocj0hIWUmJmUuaW5kZXhPZihcInlcIik+LTEpJiYoZT1lLnJlcGxhY2UoL3kvZyxcIlwiKSk7dmFyIGE9TnIodWk/bmV3IG5pKHQsZSk6bmkodCxlKSxuP3RoaXM6b2ksY2kpO3JldHVybiBzaSYmciYmZWkoYSx7c3RpY2t5OnJ9KSxhfSxmaT1mdW5jdGlvbih0KXt0IGluIGNpfHxabyhjaSx0LHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5pW3RdfSxzZXQ6ZnVuY3Rpb24oZSl7bmlbdF09ZX19KX0sbGk9dGkobmkpLGhpPTA7bGkubGVuZ3RoPmhpOylmaShsaVtoaSsrXSk7b2kuY29uc3RydWN0b3I9Y2ksY2kucHJvdG90eXBlPW9pLGV0KG4sXCJSZWdFeHBcIixjaSl9RHIoXCJSZWdFeHBcIik7dmFyIHBpPVwidG9TdHJpbmdcIixkaT1SZWdFeHAucHJvdG90eXBlLHZpPWRpLnRvU3RyaW5nOyhvKGZ1bmN0aW9uKCl7cmV0dXJuXCIvYS9iXCIhPXZpLmNhbGwoe3NvdXJjZTpcImFcIixmbGFnczpcImJcIn0pfSl8fHZpLm5hbWUhPXBpKSYmZXQoUmVnRXhwLnByb3RvdHlwZSxwaSxmdW5jdGlvbigpe3ZhciB0PVIodGhpcyksZT1TdHJpbmcodC5zb3VyY2UpLHI9dC5mbGFncztyZXR1cm5cIi9cIitlK1wiL1wiK1N0cmluZyh2b2lkIDA9PT1yJiZ0IGluc3RhbmNlb2YgUmVnRXhwJiYhKFwiZmxhZ3NcImluIGRpKT9Zby5jYWxsKHQpOnIpfSx7dW5zYWZlOiEwfSk7dmFyIGdpPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyx5aT1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UsbWk9Z2ksYmk9ZnVuY3Rpb24oKXt2YXIgdD0vYS8sZT0vYiovZztyZXR1cm4gZ2kuY2FsbCh0LFwiYVwiKSxnaS5jYWxsKGUsXCJhXCIpLDAhPT10Lmxhc3RJbmRleHx8MCE9PWUubGFzdEluZGV4fSgpLHdpPVFvLlVOU1VQUE9SVEVEX1l8fFFvLkJST0tFTl9DQVJFVCxTaT12b2lkIDAhPT0vKCk/Py8uZXhlYyhcIlwiKVsxXTsoYml8fFNpfHx3aSkmJihtaT1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpPXRoaXMsYT13aSYmaS5zdGlja3ksdT1Zby5jYWxsKGkpLHM9aS5zb3VyY2UsYz0wLGY9dDtyZXR1cm4gYSYmKC0xPT09KHU9dS5yZXBsYWNlKFwieVwiLFwiXCIpKS5pbmRleE9mKFwiZ1wiKSYmKHUrPVwiZ1wiKSxmPVN0cmluZyh0KS5zbGljZShpLmxhc3RJbmRleCksaS5sYXN0SW5kZXg+MCYmKCFpLm11bHRpbGluZXx8aS5tdWx0aWxpbmUmJlwiXFxuXCIhPT10W2kubGFzdEluZGV4LTFdKSYmKHM9XCIoPzogXCIrcytcIilcIixmPVwiIFwiK2YsYysrKSxyPW5ldyBSZWdFeHAoXCJeKD86XCIrcytcIilcIix1KSksU2kmJihyPW5ldyBSZWdFeHAoXCJeXCIrcytcIiQoPyFcXFxccylcIix1KSksYmkmJihlPWkubGFzdEluZGV4KSxuPWdpLmNhbGwoYT9yOmksZiksYT9uPyhuLmlucHV0PW4uaW5wdXQuc2xpY2UoYyksblswXT1uWzBdLnNsaWNlKGMpLG4uaW5kZXg9aS5sYXN0SW5kZXgsaS5sYXN0SW5kZXgrPW5bMF0ubGVuZ3RoKTppLmxhc3RJbmRleD0wOmJpJiZuJiYoaS5sYXN0SW5kZXg9aS5nbG9iYWw/bi5pbmRleCtuWzBdLmxlbmd0aDplKSxTaSYmbiYmbi5sZW5ndGg+MSYmeWkuY2FsbChuWzBdLHIsZnVuY3Rpb24oKXtmb3Iobz0xO288YXJndW1lbnRzLmxlbmd0aC0yO28rKyl2b2lkIDA9PT1hcmd1bWVudHNbb10mJihuW29dPXZvaWQgMCl9KSxufSk7dmFyIEVpPW1pO2t0KHt0YXJnZXQ6XCJSZWdFeHBcIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1FaX0se2V4ZWM6RWl9KSxpJiYoXCJnXCIhPS8uL2cuZmxhZ3N8fFFvLlVOU1VQUE9SVEVEX1kpJiZQLmYoUmVnRXhwLnByb3RvdHlwZSxcImZsYWdzXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6WW99KTt2YXIgeGk9dHQuZ2V0LEFpPVJlZ0V4cC5wcm90b3R5cGU7aSYmUW8uVU5TVVBQT1JURURfWSYmKDAsUC5mKShSZWdFeHAucHJvdG90eXBlLFwic3RpY2t5XCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZih0aGlzIT09QWkpe2lmKHRoaXMgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuISF4aSh0aGlzKS5zdGlja3k7dGhyb3cgVHlwZUVycm9yKFwiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBSZWdFeHAgcmVxdWlyZWRcIil9fX0pO3ZhciBPaSxSaSxqaT0oT2k9ITEsKFJpPS9bYWNdLykuZXhlYz1mdW5jdGlvbigpe3JldHVybiBPaT0hMCwvLi8uZXhlYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCEwPT09UmkudGVzdChcImFiY1wiKSYmT2kpLFBpPS8uLy50ZXN0O2t0KHt0YXJnZXQ6XCJSZWdFeHBcIixwcm90bzohMCxmb3JjZWQ6IWppfSx7dGVzdDpmdW5jdGlvbih0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0aGlzLmV4ZWMpcmV0dXJuIFBpLmNhbGwodGhpcyx0KTt2YXIgZT10aGlzLmV4ZWModCk7aWYobnVsbCE9PWUmJiFnKGUpKXRocm93IG5ldyBFcnJvcihcIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbFwiKTtyZXR1cm4hIWV9fSk7dmFyIElpPUR0KFwic3BlY2llc1wiKSxUaT0hbyhmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOlwiN1wifSx0fSxcIjdcIiE9PVwiXCIucmVwbGFjZSh0LFwiJDxhPlwiKX0pLGtpPVwiJDBcIj09PVwiYVwiLnJlcGxhY2UoLy4vLFwiJDBcIiksTGk9RHQoXCJyZXBsYWNlXCIpLFVpPSEhLy4vW0xpXSYmXCJcIj09PS8uL1tMaV0oXCJhXCIsXCIkMFwiKSxNaT0hbyhmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciByPVwiYWJcIi5zcGxpdCh0KTtyZXR1cm4gMiE9PXIubGVuZ3RofHxcImFcIiE9PXJbMF18fFwiYlwiIT09clsxXX0pLF9pPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPUR0KHQpLGE9IW8oZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZVtpXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT1cIlwiW3RdKGUpfSksdT1hJiYhbyhmdW5jdGlvbigpe3ZhciBlPSExLHI9L2EvO3JldHVyblwic3BsaXRcIj09PXQmJigocj17fSkuY29uc3RydWN0b3I9e30sci5jb25zdHJ1Y3RvcltJaV09ZnVuY3Rpb24oKXtyZXR1cm4gcn0sci5mbGFncz1cIlwiLHJbaV09Ly4vW2ldKSxyLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSxyW2ldKFwiXCIpLCFlfSk7aWYoIWF8fCF1fHxcInJlcGxhY2VcIj09PXQmJighVGl8fCFraXx8VWkpfHxcInNwbGl0XCI9PT10JiYhTWkpe3ZhciBzPS8uL1tpXSxjPXIoaSxcIlwiW3RdLGZ1bmN0aW9uKHQsZSxyLG4sbyl7cmV0dXJuIGUuZXhlYz09PUVpP2EmJiFvP3tkb25lOiEwLHZhbHVlOnMuY2FsbChlLHIsbil9Ontkb25lOiEwLHZhbHVlOnQuY2FsbChyLGUsbil9Ontkb25lOiExfX0se1JFUExBQ0VfS0VFUFNfJDA6a2ksUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkU6VWl9KSxmPWNbMV07ZXQoU3RyaW5nLnByb3RvdHlwZSx0LGNbMF0pLGV0KFJlZ0V4cC5wcm90b3R5cGUsaSwyPT1lP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIGYuY2FsbCh0LHRoaXMsZSl9OmZ1bmN0aW9uKHQpe3JldHVybiBmLmNhbGwodCx0aGlzKX0pfW4mJkkoUmVnRXhwLnByb3RvdHlwZVtpXSxcInNoYW1cIiwhMCl9LE5pPU9lLmNoYXJBdCxDaT1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUrKHI/TmkodCxlKS5sZW5ndGg6MSl9LEZpPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5leGVjO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpe3ZhciBuPXIuY2FsbCh0LGUpO2lmKFwib2JqZWN0XCIhPXR5cGVvZiBuKXRocm93IFR5cGVFcnJvcihcIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbFwiKTtyZXR1cm4gbn1pZihcIlJlZ0V4cFwiIT09bCh0KSl0aHJvdyBUeXBlRXJyb3IoXCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyXCIpO3JldHVybiBFaS5jYWxsKHQsZSl9O19pKFwibWF0Y2hcIiwxLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIHI9ZCh0aGlzKSxuPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PW4/bi5jYWxsKGUscik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcocikpfSxmdW5jdGlvbih0KXt2YXIgbj1yKGUsdCx0aGlzKTtpZihuLmRvbmUpcmV0dXJuIG4udmFsdWU7dmFyIG89Uih0KSxpPVN0cmluZyh0aGlzKTtpZighby5nbG9iYWwpcmV0dXJuIEZpKG8saSk7dmFyIGE9by51bmljb2RlO28ubGFzdEluZGV4PTA7Zm9yKHZhciB1LHM9W10sYz0wO251bGwhPT0odT1GaShvLGkpKTspe3ZhciBmPVN0cmluZyh1WzBdKTtzW2NdPWYsXCJcIj09PWYmJihvLmxhc3RJbmRleD1DaShpLGN0KG8ubGFzdEluZGV4KSxhKSksYysrfXJldHVybiAwPT09Yz9udWxsOnN9XX0pO3ZhciBCaT1NYXRoLm1heCxEaT1NYXRoLm1pbixxaT1NYXRoLmZsb29yLHppPS9cXCQoWyQmJ2BdfFxcZFxcZD98PFtePl0qPikvZyxXaT0vXFwkKFskJidgXXxcXGRcXGQ/KS9nO19pKFwicmVwbGFjZVwiLDIsZnVuY3Rpb24odCxlLHIsbil7dmFyIG89bi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxpPW4uUkVQTEFDRV9LRUVQU18kMCxhPW8/XCIkXCI6XCIkMFwiO3JldHVybltmdW5jdGlvbihyLG4pe3ZhciBvPWQodGhpcyksaT1udWxsPT1yP3ZvaWQgMDpyW3RdO3JldHVybiB2b2lkIDAhPT1pP2kuY2FsbChyLG8sbik6ZS5jYWxsKFN0cmluZyhvKSxyLG4pfSxmdW5jdGlvbih0LG4pe2lmKCFvJiZpfHxcInN0cmluZ1wiPT10eXBlb2YgbiYmLTE9PT1uLmluZGV4T2YoYSkpe3ZhciBzPXIoZSx0LHRoaXMsbik7aWYocy5kb25lKXJldHVybiBzLnZhbHVlfXZhciBjPVIodCksZj1TdHJpbmcodGhpcyksbD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuO2x8fChuPVN0cmluZyhuKSk7dmFyIGg9Yy5nbG9iYWw7aWYoaCl7dmFyIHA9Yy51bmljb2RlO2MubGFzdEluZGV4PTB9Zm9yKHZhciBkPVtdOzspe3ZhciB2PUZpKGMsZik7aWYobnVsbD09PXYpYnJlYWs7aWYoZC5wdXNoKHYpLCFoKWJyZWFrO1wiXCI9PT1TdHJpbmcodlswXSkmJihjLmxhc3RJbmRleD1DaShmLGN0KGMubGFzdEluZGV4KSxwKSl9Zm9yKHZhciBnLHk9XCJcIixtPTAsYj0wO2I8ZC5sZW5ndGg7YisrKXt2PWRbYl07Zm9yKHZhciB3PVN0cmluZyh2WzBdKSxTPUJpKERpKHV0KHYuaW5kZXgpLGYubGVuZ3RoKSwwKSxFPVtdLHg9MTt4PHYubGVuZ3RoO3grKylFLnB1c2godm9pZCAwPT09KGc9dlt4XSk/ZzpTdHJpbmcoZykpO3ZhciBBPXYuZ3JvdXBzO2lmKGwpe3ZhciBPPVt3XS5jb25jYXQoRSxTLGYpO3ZvaWQgMCE9PUEmJk8ucHVzaChBKTt2YXIgaj1TdHJpbmcobi5hcHBseSh2b2lkIDAsTykpfWVsc2Ugaj11KHcsZixTLEUsQSxuKTtTPj1tJiYoeSs9Zi5zbGljZShtLFMpK2osbT1TK3cubGVuZ3RoKX1yZXR1cm4geStmLnNsaWNlKG0pfV07ZnVuY3Rpb24gdSh0LHIsbixvLGksYSl7dmFyIHU9bit0Lmxlbmd0aCxzPW8ubGVuZ3RoLGM9V2k7cmV0dXJuIHZvaWQgMCE9PWkmJihpPUx0KGkpLGM9emkpLGUuY2FsbChhLGMsZnVuY3Rpb24oZSxhKXt2YXIgYztzd2l0Y2goYS5jaGFyQXQoMCkpe2Nhc2VcIiRcIjpyZXR1cm5cIiRcIjtjYXNlXCImXCI6cmV0dXJuIHQ7Y2FzZVwiYFwiOnJldHVybiByLnNsaWNlKDAsbik7Y2FzZVwiJ1wiOnJldHVybiByLnNsaWNlKHUpO2Nhc2VcIjxcIjpjPWlbYS5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgZj0rYTtpZigwPT09ZilyZXR1cm4gZTtpZihmPnMpe3ZhciBsPXFpKGYvMTApO3JldHVybiAwPT09bD9lOmw8PXM/dm9pZCAwPT09b1tsLTFdP2EuY2hhckF0KDEpOm9bbC0xXSthLmNoYXJBdCgxKTplfWM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1jP1wiXCI6Y30pfX0pLF9pKFwic2VhcmNoXCIsMSxmdW5jdGlvbih0LGUscil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciByPWQodGhpcyksbj1udWxsPT1lP3ZvaWQgMDplW3RdO3JldHVybiB2b2lkIDAhPT1uP24uY2FsbChlLHIpOm5ldyBSZWdFeHAoZSlbdF0oU3RyaW5nKHIpKX0sZnVuY3Rpb24odCl7dmFyIG49cihlLHQsdGhpcyk7aWYobi5kb25lKXJldHVybiBuLnZhbHVlO3ZhciBvPVIodCksaT1TdHJpbmcodGhpcyksYT1vLmxhc3RJbmRleDtHbihhLDApfHwoby5sYXN0SW5kZXg9MCk7dmFyIHU9RmkobyxpKTtyZXR1cm4gR24oby5sYXN0SW5kZXgsYSl8fChvLmxhc3RJbmRleD1hKSxudWxsPT09dT8tMTp1LmluZGV4fV19KTt2YXIgS2k9W10ucHVzaCxHaT1NYXRoLm1pbiwkaT00Mjk0OTY3Mjk1LFZpPSFvKGZ1bmN0aW9uKCl7cmV0dXJuIVJlZ0V4cCgkaSxcInlcIil9KTtfaShcInNwbGl0XCIsMixmdW5jdGlvbih0LGUscil7dmFyIG47cmV0dXJuIG49XCJjXCI9PVwiYWJiY1wiLnNwbGl0KC8oYikqLylbMV18fDQhPVwidGVzdFwiLnNwbGl0KC8oPzopLywtMSkubGVuZ3RofHwyIT1cImFiXCIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPVwiLlwiLnNwbGl0KC8oLj8pKC4/KS8pLmxlbmd0aHx8XCIuXCIuc3BsaXQoLygpKCkvKS5sZW5ndGg+MXx8XCJcIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24odCxyKXt2YXIgbj1TdHJpbmcoZCh0aGlzKSksbz12b2lkIDA9PT1yPyRpOnI+Pj4wO2lmKDA9PT1vKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW25dO2lmKCFYbyh0KSlyZXR1cm4gZS5jYWxsKG4sdCxvKTtmb3IodmFyIGksYSx1LHM9W10sYz0wLGY9bmV3IFJlZ0V4cCh0LnNvdXJjZSwodC5pZ25vcmVDYXNlP1wiaVwiOlwiXCIpKyh0Lm11bHRpbGluZT9cIm1cIjpcIlwiKSsodC51bmljb2RlP1widVwiOlwiXCIpKyh0LnN0aWNreT9cInlcIjpcIlwiKStcImdcIik7KGk9RWkuY2FsbChmLG4pKSYmISgoYT1mLmxhc3RJbmRleCk+YyYmKHMucHVzaChuLnNsaWNlKGMsaS5pbmRleCkpLGkubGVuZ3RoPjEmJmkuaW5kZXg8bi5sZW5ndGgmJktpLmFwcGx5KHMsaS5zbGljZSgxKSksdT1pWzBdLmxlbmd0aCxjPWEscy5sZW5ndGg+PW8pKTspZi5sYXN0SW5kZXg9PT1pLmluZGV4JiZmLmxhc3RJbmRleCsrO3JldHVybiBjPT09bi5sZW5ndGg/IXUmJmYudGVzdChcIlwiKXx8cy5wdXNoKFwiXCIpOnMucHVzaChuLnNsaWNlKGMpKSxzLmxlbmd0aD5vP3Muc2xpY2UoMCxvKTpzfTpcIjBcIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKHQscil7cmV0dXJuIHZvaWQgMD09PXQmJjA9PT1yP1tdOmUuY2FsbCh0aGlzLHQscil9OmUsW2Z1bmN0aW9uKGUscil7dmFyIG89ZCh0aGlzKSxpPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKGUsbyxyKTpuLmNhbGwoU3RyaW5nKG8pLGUscil9LGZ1bmN0aW9uKHQsbyl7dmFyIGk9cihuLHQsdGhpcyxvLG4hPT1lKTtpZihpLmRvbmUpcmV0dXJuIGkudmFsdWU7dmFyIGE9Uih0KSx1PVN0cmluZyh0aGlzKSxzPXNuKGEsUmVnRXhwKSxjPWEudW5pY29kZSxmPW5ldyBzKFZpP2E6XCJeKD86XCIrYS5zb3VyY2UrXCIpXCIsKGEuaWdub3JlQ2FzZT9cImlcIjpcIlwiKSsoYS5tdWx0aWxpbmU/XCJtXCI6XCJcIikrKGEudW5pY29kZT9cInVcIjpcIlwiKSsoVmk/XCJ5XCI6XCJnXCIpKSxsPXZvaWQgMD09PW8/JGk6bz4+PjA7aWYoMD09PWwpcmV0dXJuW107aWYoMD09PXUubGVuZ3RoKXJldHVybiBudWxsPT09RmkoZix1KT9bdV06W107Zm9yKHZhciBoPTAscD0wLGQ9W107cDx1Lmxlbmd0aDspe2YubGFzdEluZGV4PVZpP3A6MDt2YXIgdixnPUZpKGYsVmk/dTp1LnNsaWNlKHApKTtpZihudWxsPT09Z3x8KHY9R2koY3QoZi5sYXN0SW5kZXgrKFZpPzA6cCkpLHUubGVuZ3RoKSk9PT1oKXA9Q2kodSxwLGMpO2Vsc2V7aWYoZC5wdXNoKHUuc2xpY2UoaCxwKSksZC5sZW5ndGg9PT1sKXJldHVybiBkO2Zvcih2YXIgeT0xO3k8PWcubGVuZ3RoLTE7eSsrKWlmKGQucHVzaChnW3ldKSxkLmxlbmd0aD09PWwpcmV0dXJuIGQ7cD1oPXZ9fXJldHVybiBkLnB1c2godS5zbGljZShoKSksZH1dfSwhVmkpLGt0KHt0YXJnZXQ6XCJTZXRcIixzdGF0OiEwfSx7ZnJvbTplbn0pLGt0KHt0YXJnZXQ6XCJTZXRcIixzdGF0OiEwfSx7b2Y6cm59KTt2YXIgSGk9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9Uih0aGlzKSxlPVF0KHQuYWRkKSxyPTAsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspZS5jYWxsKHQsYXJndW1lbnRzW3JdKTtyZXR1cm4gdH07a3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHthZGRBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gSGkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIG5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTt2YXIgWGk9ZnVuY3Rpb24odCl7cmV0dXJuIFNldC5wcm90b3R5cGUudmFsdWVzLmNhbGwodCl9O2t0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZXZlcnk6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4hTXIocixmdW5jdGlvbih0KXtpZighbih0LHQsZSkpcmV0dXJuIE1yLnN0b3AoKX0sdm9pZCAwLCExLCEwKS5zdG9wcGVkfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZGlmZmVyZW5jZTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9bmV3KHNuKGUsb3QoXCJTZXRcIikpKShlKSxuPVF0KHIuZGVsZXRlKTtyZXR1cm4gTXIodCxmdW5jdGlvbih0KXtuLmNhbGwocix0KX0pLHJ9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtmaWx0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPW5ldyhzbihlLG90KFwiU2V0XCIpKSksaT1RdChvLmFkZCk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCl7bih0LHQsZSkmJmkuY2FsbChvLHQpfSx2b2lkIDAsITEsITApLG99fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1YaShlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIE1yKHIsZnVuY3Rpb24odCl7aWYobih0LHQsZSkpcmV0dXJuIE1yLnN0b3AodCl9LHZvaWQgMCwhMSwhMCkucmVzdWx0fX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7aW50ZXJzZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1uZXcoc24oZSxvdChcIlNldFwiKSkpLG49UXQoZS5oYXMpLG89UXQoci5hZGQpO3JldHVybiBNcih0LGZ1bmN0aW9uKHQpe24uY2FsbChlLHQpJiZvLmNhbGwocix0KX0pLHJ9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtpc0Rpc2pvaW50RnJvbTpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9UXQoZS5oYXMpO3JldHVybiFNcih0LGZ1bmN0aW9uKHQpe2lmKCEwPT09ci5jYWxsKGUsdCkpcmV0dXJuIE1yLnN0b3AoKX0pLnN0b3BwZWR9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtpc1N1YnNldE9mOmZ1bmN0aW9uKHQpe3ZhciBlPW9uKHRoaXMpLHI9Uih0KSxuPXIuaGFzO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIG4mJihyPW5ldyhvdChcIlNldFwiKSkodCksbj1RdChyLmhhcykpLCFNcihlLGZ1bmN0aW9uKHQpe2lmKCExPT09bi5jYWxsKHIsdCkpcmV0dXJuIE1yLnN0b3AoKX0sdm9pZCAwLCExLCEwKS5zdG9wcGVkfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7aXNTdXBlcnNldE9mOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1RdChlLmhhcyk7cmV0dXJuIU1yKHQsZnVuY3Rpb24odCl7aWYoITE9PT1yLmNhbGwoZSx0KSlyZXR1cm4gTXIuc3RvcCgpfSkuc3RvcHBlZH19KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se2pvaW46ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49dm9pZCAwPT09dD9cIixcIjpTdHJpbmcodCksbz1bXTtyZXR1cm4gTXIocixvLnB1c2gsbywhMSwhMCksby5qb2luKG4pfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7bWFwOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1YaShlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz1uZXcoc24oZSxvdChcIlNldFwiKSkpLGk9UXQoby5hZGQpO3JldHVybiBNcihyLGZ1bmN0aW9uKHQpe2kuY2FsbChvLG4odCx0LGUpKX0sdm9pZCAwLCExLCEwKSxvfX0pLGt0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1YaShlKSxuPWFyZ3VtZW50cy5sZW5ndGg8MixvPW4/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihRdCh0KSxNcihyLGZ1bmN0aW9uKHIpe24/KG49ITEsbz1yKTpvPXQobyxyLHIsZSl9LHZvaWQgMCwhMSwhMCksbil0aHJvdyBUeXBlRXJyb3IoXCJSZWR1Y2Ugb2YgZW1wdHkgc2V0IHdpdGggbm8gaW5pdGlhbCB2YWx1ZVwiKTtyZXR1cm4gb319KSxrdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6RH0se3NvbWU6ZnVuY3Rpb24odCl7dmFyIGU9Uih0aGlzKSxyPVhpKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gTXIocixmdW5jdGlvbih0KXtpZihuKHQsdCxlKSlyZXR1cm4gTXIuc3RvcCgpfSx2b2lkIDAsITEsITApLnN0b3BwZWR9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtzeW1tZXRyaWNEaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3ZhciBlPVIodGhpcykscj1uZXcoc24oZSxvdChcIlNldFwiKSkpKGUpLG49UXQoci5kZWxldGUpLG89UXQoci5hZGQpO3JldHVybiBNcih0LGZ1bmN0aW9uKHQpe24uY2FsbChyLHQpfHxvLmNhbGwocix0KX0pLHJ9fSksa3Qoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHt1bmlvbjpmdW5jdGlvbih0KXt2YXIgZT1SKHRoaXMpLHI9bmV3KHNuKGUsb3QoXCJTZXRcIikpKShlKTtyZXR1cm4gTXIodCxRdChyLmFkZCkscikscn19KTt2YXIgWWksSmksUWk9b3QoXCJuYXZpZ2F0b3JcIixcInVzZXJBZ2VudFwiKXx8XCJcIixaaT1uLnByb2Nlc3MsdGE9WmkmJlppLnZlcnNpb25zLGVhPXRhJiZ0YS52ODtlYT9KaT0oWWk9ZWEuc3BsaXQoXCIuXCIpKVswXStZaVsxXTpRaSYmKCEoWWk9UWkubWF0Y2goL0VkZ2VcXC8oXFxkKykvKSl8fFlpWzFdPj03NCkmJihZaT1RaS5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLykpJiYoSmk9WWlbMV0pO3ZhciByYT1KaSYmK0ppLG5hPUR0KFwic3BlY2llc1wiKSxvYT1EdChcImlzQ29uY2F0U3ByZWFkYWJsZVwiKSxpYT05MDA3MTk5MjU0NzQwOTkxLGFhPVwiTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkXCIsdWE9cmE+PTUxfHwhbyhmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0W29hXT0hMSx0LmNvbmNhdCgpWzBdIT09dH0pLHNhPXJhPj01MXx8IW8oZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4odC5jb25zdHJ1Y3Rvcj17fSlbbmFdPWZ1bmN0aW9uKCl7cmV0dXJue2ZvbzoxfX0sMSE9PXQuY29uY2F0KEJvb2xlYW4pLmZvb30pLGNhPWZ1bmN0aW9uKHQpe2lmKCFnKHQpKXJldHVybiExO3ZhciBlPXRbb2FdO3JldHVybiB2b2lkIDAhPT1lPyEhZTpyZSh0KX07a3Qoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITAsZm9yY2VkOiF1YXx8IXNhfSx7Y29uY2F0OmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYT1MdCh0aGlzKSx1PW9lKGEsMCkscz0wO2ZvcihlPS0xLG49YXJndW1lbnRzLmxlbmd0aDtlPG47ZSsrKWlmKGNhKGk9LTE9PT1lP2E6YXJndW1lbnRzW2VdKSl7aWYocysobz1jdChpLmxlbmd0aCkpPmlhKXRocm93IFR5cGVFcnJvcihhYSk7Zm9yKHI9MDtyPG87cisrLHMrKylyIGluIGkmJm9yKHUscyxpW3JdKX1lbHNle2lmKHM+PWlhKXRocm93IFR5cGVFcnJvcihhYSk7b3IodSxzKyssaSl9cmV0dXJuIHUubGVuZ3RoPXMsdX19KTt2YXIgZmE9YnQuZixsYT17fS50b1N0cmluZyxoYT1cIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W10scGE9e2Y6ZnVuY3Rpb24odCl7cmV0dXJuIGhhJiZcIltvYmplY3QgV2luZG93XVwiPT1sYS5jYWxsKHQpP2Z1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZmEodCl9Y2F0Y2godCl7cmV0dXJuIGhhLnNsaWNlKCl9fSh0KTpmYSh2KHQpKX19LGRhPXtmOkR0fSx2YT1QLmYsZ2E9ZnVuY3Rpb24odCl7dmFyIGU9cnQuU3ltYm9sfHwocnQuU3ltYm9sPXt9KTtiKGUsdCl8fHZhKGUsdCx7dmFsdWU6ZGEuZih0KX0pfSx5YT11ZS5mb3JFYWNoLG1hPSQoXCJoaWRkZW5cIiksYmE9XCJTeW1ib2xcIix3YT1EdChcInRvUHJpbWl0aXZlXCIpLFNhPXR0LnNldCxFYT10dC5nZXR0ZXJGb3IoYmEpLHhhPU9iamVjdC5wcm90b3R5cGUsQWE9bi5TeW1ib2wsT2E9b3QoXCJKU09OXCIsXCJzdHJpbmdpZnlcIiksUmE9Ty5mLGphPVAuZixQYT1wYS5mLElhPXMuZixUYT1xKFwic3ltYm9sc1wiKSxrYT1xKFwib3Atc3ltYm9sc1wiKSxMYT1xKFwic3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeVwiKSxVYT1xKFwic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeVwiKSxNYT1xKFwid2tzXCIpLF9hPW4uUU9iamVjdCxOYT0hX2F8fCFfYS5wcm90b3R5cGV8fCFfYS5wcm90b3R5cGUuZmluZENoaWxkLENhPWkmJm8oZnVuY3Rpb24oKXtyZXR1cm4gNyE9SHQoamEoe30sXCJhXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBqYSh0aGlzLFwiYVwiLHt2YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj1SYSh4YSxlKTtuJiZkZWxldGUgeGFbZV0samEodCxlLHIpLG4mJnQhPT14YSYmamEoeGEsZSxuKX06amEsRmE9ZnVuY3Rpb24odCxlKXt2YXIgcj1UYVt0XT1IdChBYS5wcm90b3R5cGUpO3JldHVybiBTYShyLHt0eXBlOmJhLHRhZzp0LGRlc2NyaXB0aW9uOmV9KSxpfHwoci5kZXNjcmlwdGlvbj1lKSxyfSxCYT1OdD9mdW5jdGlvbih0KXtyZXR1cm5cInN5bWJvbFwiPT10eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdCh0KWluc3RhbmNlb2YgQWF9LERhPWZ1bmN0aW9uKHQsZSxyKXt0PT09eGEmJkRhKGthLGUsciksUih0KTt2YXIgbj15KGUsITApO3JldHVybiBSKHIpLGIoVGEsbik/KHIuZW51bWVyYWJsZT8oYih0LG1hKSYmdFttYV1bbl0mJih0W21hXVtuXT0hMSkscj1IdChyLHtlbnVtZXJhYmxlOmMoMCwhMSl9KSk6KGIodCxtYSl8fGphKHQsbWEsYygxLHt9KSksdFttYV1bbl09ITApLENhKHQsbixyKSk6amEodCxuLHIpfSxxYT1mdW5jdGlvbih0LGUpe1IodCk7dmFyIHI9dihlKSxuPXF0KHIpLmNvbmNhdChHYShyKSk7cmV0dXJuIHlhKG4sZnVuY3Rpb24oZSl7aSYmIXphLmNhbGwocixlKXx8RGEodCxlLHJbZV0pfSksdH0semE9ZnVuY3Rpb24odCl7dmFyIGU9eSh0LCEwKSxyPUlhLmNhbGwodGhpcyxlKTtyZXR1cm4hKHRoaXM9PT14YSYmYihUYSxlKSYmIWIoa2EsZSkpJiYoIShyfHwhYih0aGlzLGUpfHwhYihUYSxlKXx8Yih0aGlzLG1hKSYmdGhpc1ttYV1bZV0pfHxyKX0sV2E9ZnVuY3Rpb24odCxlKXt2YXIgcj12KHQpLG49eShlLCEwKTtpZihyIT09eGF8fCFiKFRhLG4pfHxiKGthLG4pKXt2YXIgbz1SYShyLG4pO3JldHVybiFvfHwhYihUYSxuKXx8YihyLG1hKSYmclttYV1bbl18fChvLmVudW1lcmFibGU9ITApLG99fSxLYT1mdW5jdGlvbih0KXt2YXIgZT1QYSh2KHQpKSxyPVtdO3JldHVybiB5YShlLGZ1bmN0aW9uKHQpe2IoVGEsdCl8fGIoVix0KXx8ci5wdXNoKHQpfSkscn0sR2E9ZnVuY3Rpb24odCl7dmFyIGU9dD09PXhhLHI9UGEoZT9rYTp2KHQpKSxuPVtdO3JldHVybiB5YShyLGZ1bmN0aW9uKHQpeyFiKFRhLHQpfHxlJiYhYih4YSx0KXx8bi5wdXNoKFRhW3RdKX0pLG59O2lmKF90fHwoZXQoKEFhPWZ1bmN0aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIEFhKXRocm93IFR5cGVFcnJvcihcIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvclwiKTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/U3RyaW5nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9Syh0KSxyPWZ1bmN0aW9uIHQocil7dGhpcz09PXhhJiZ0LmNhbGwoa2EsciksYih0aGlzLG1hKSYmYih0aGlzW21hXSxlKSYmKHRoaXNbbWFdW2VdPSExKSxDYSh0aGlzLGUsYygxLHIpKX07cmV0dXJuIGkmJk5hJiZDYSh4YSxlLHtjb25maWd1cmFibGU6ITAsc2V0OnJ9KSxGYShlLHQpfSkucHJvdG90eXBlLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe3JldHVybiBFYSh0aGlzKS50YWd9KSxldChBYSxcIndpdGhvdXRTZXR0ZXJcIixmdW5jdGlvbih0KXtyZXR1cm4gRmEoSyh0KSx0KX0pLHMuZj16YSxQLmY9RGEsTy5mPVdhLGJ0LmY9cGEuZj1LYSx3dC5mPUdhLGRhLmY9ZnVuY3Rpb24odCl7cmV0dXJuIEZhKER0KHQpLHQpfSxpJiYoamEoQWEucHJvdG90eXBlLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBFYSh0aGlzKS5kZXNjcmlwdGlvbn19KSxldCh4YSxcInByb3BlcnR5SXNFbnVtZXJhYmxlXCIsemEse3Vuc2FmZTohMH0pKSksa3Qoe2dsb2JhbDohMCx3cmFwOiEwLGZvcmNlZDohX3Qsc2hhbTohX3R9LHtTeW1ib2w6QWF9KSx5YShxdChNYSksZnVuY3Rpb24odCl7Z2EodCl9KSxrdCh7dGFyZ2V0OmJhLHN0YXQ6ITAsZm9yY2VkOiFfdH0se2ZvcjpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCk7aWYoYihMYSxlKSlyZXR1cm4gTGFbZV07dmFyIHI9QWEoZSk7cmV0dXJuIExhW2VdPXIsVWFbcl09ZSxyfSxrZXlGb3I6ZnVuY3Rpb24odCl7aWYoIUJhKHQpKXRocm93IFR5cGVFcnJvcih0K1wiIGlzIG5vdCBhIHN5bWJvbFwiKTtpZihiKFVhLHQpKXJldHVybiBVYVt0XX0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7TmE9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe05hPSExfX0pLGt0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDohX3Qsc2hhbTohaX0se2NyZWF0ZTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lP0h0KHQpOnFhKEh0KHQpLGUpfSxkZWZpbmVQcm9wZXJ0eTpEYSxkZWZpbmVQcm9wZXJ0aWVzOnFhLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpXYX0pLGt0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDohX3R9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOkthLGdldE93blByb3BlcnR5U3ltYm9sczpHYX0pLGt0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDpvKGZ1bmN0aW9uKCl7d3QuZigxKX0pfSx7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKHQpe3JldHVybiB3dC5mKEx0KHQpKX19KSxPYSl7dmFyICRhPSFfdHx8byhmdW5jdGlvbigpe3ZhciB0PUFhKCk7cmV0dXJuXCJbbnVsbF1cIiE9T2EoW3RdKXx8XCJ7fVwiIT1PYSh7YTp0fSl8fFwie31cIiE9T2EoT2JqZWN0KHQpKX0pO2t0KHt0YXJnZXQ6XCJKU09OXCIsc3RhdDohMCxmb3JjZWQ6JGF9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixvPVt0XSxpPTE7YXJndW1lbnRzLmxlbmd0aD5pOylvLnB1c2goYXJndW1lbnRzW2krK10pO2lmKG49ZSwoZyhlKXx8dm9pZCAwIT09dCkmJiFCYSh0KSlyZXR1cm4gcmUoZSl8fChlPWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmKGU9bi5jYWxsKHRoaXMsdCxlKSksIUJhKGUpKXJldHVybiBlfSksb1sxXT1lLE9hLmFwcGx5KG51bGwsbyl9fSl9QWEucHJvdG90eXBlW3dhXXx8SShBYS5wcm90b3R5cGUsd2EsQWEucHJvdG90eXBlLnZhbHVlT2YpLF9lKEFhLGJhKSxWW21hXT0hMCxnYShcImFzeW5jSXRlcmF0b3JcIik7dmFyIFZhPVAuZixIYT1uLlN5bWJvbDtpZihpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBIYSYmKCEoXCJkZXNjcmlwdGlvblwiaW4gSGEucHJvdG90eXBlKXx8dm9pZCAwIT09SGEoKS5kZXNjcmlwdGlvbikpe3ZhciBYYT17fSxZYT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpTdHJpbmcoYXJndW1lbnRzWzBdKSxlPXRoaXMgaW5zdGFuY2VvZiBZYT9uZXcgSGEodCk6dm9pZCAwPT09dD9IYSgpOkhhKHQpO3JldHVyblwiXCI9PT10JiYoWGFbZV09ITApLGV9O0V0KFlhLEhhKTt2YXIgSmE9WWEucHJvdG90eXBlPUhhLnByb3RvdHlwZTtKYS5jb25zdHJ1Y3Rvcj1ZYTt2YXIgUWE9SmEudG9TdHJpbmcsWmE9XCJTeW1ib2wodGVzdClcIj09U3RyaW5nKEhhKFwidGVzdFwiKSksdHU9L15TeW1ib2xcXCgoLiopXFwpW14pXSskLztWYShKYSxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1nKHRoaXMpP3RoaXMudmFsdWVPZigpOnRoaXMsZT1RYS5jYWxsKHQpO2lmKGIoWGEsdCkpcmV0dXJuXCJcIjt2YXIgcj1aYT9lLnNsaWNlKDcsLTEpOmUucmVwbGFjZSh0dSxcIiQxXCIpO3JldHVyblwiXCI9PT1yP3ZvaWQgMDpyfX0pLGt0KHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOllhfSl9Z2EoXCJoYXNJbnN0YW5jZVwiKSxnYShcImlzQ29uY2F0U3ByZWFkYWJsZVwiKSxnYShcIml0ZXJhdG9yXCIpLGdhKFwibWF0Y2hcIiksZ2EoXCJtYXRjaEFsbFwiKSxnYShcInJlcGxhY2VcIiksZ2EoXCJzZWFyY2hcIiksZ2EoXCJzcGVjaWVzXCIpLGdhKFwic3BsaXRcIiksZ2EoXCJ0b1ByaW1pdGl2ZVwiKSxnYShcInRvU3RyaW5nVGFnXCIpLGdhKFwidW5zY29wYWJsZXNcIiksX2UoTWF0aCxcIk1hdGhcIiwhMCksX2Uobi5KU09OLFwiSlNPTlwiLCEwKSxnYShcImFzeW5jRGlzcG9zZVwiKSxnYShcImRpc3Bvc2VcIiksZ2EoXCJvYnNlcnZhYmxlXCIpLGdhKFwicGF0dGVybk1hdGNoXCIpLGdhKFwicmVwbGFjZUFsbFwiKSxkYS5mKFwiYXN5bmNJdGVyYXRvclwiKTt2YXIgZXU9T2UuY29kZUF0O2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMH0se2NvZGVQb2ludEF0OmZ1bmN0aW9uKHQpe3JldHVybiBldSh0aGlzLHQpfX0pLGVlKFwiU3RyaW5nXCIsXCJjb2RlUG9pbnRBdFwiKTt2YXIgcnUsbnU9ZnVuY3Rpb24odCl7aWYoWG8odCkpdGhyb3cgVHlwZUVycm9yKFwiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zXCIpO3JldHVybiB0fSxvdT1EdChcIm1hdGNoXCIpLGl1PWZ1bmN0aW9uKHQpe3ZhciBlPS8uLzt0cnl7XCIvLi9cIlt0XShlKX1jYXRjaChyKXt0cnl7cmV0dXJuIGVbb3VdPSExLFwiLy4vXCJbdF0oZSl9Y2F0Y2godCl7fX1yZXR1cm4hMX0sYXU9Ty5mLHV1PVwiXCIuZW5kc1dpdGgsc3U9TWF0aC5taW4sY3U9aXUoXCJlbmRzV2l0aFwiKSxmdT0hKGN1fHwocnU9YXUoU3RyaW5nLnByb3RvdHlwZSxcImVuZHNXaXRoXCIpLCFydXx8cnUud3JpdGFibGUpKTtrdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiFmdSYmIWN1fSx7ZW5kc1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGQodGhpcykpO251KHQpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG49Y3QoZS5sZW5ndGgpLG89dm9pZCAwPT09cj9uOnN1KGN0KHIpLG4pLGk9U3RyaW5nKHQpO3JldHVybiB1dT91dS5jYWxsKGUsaSxvKTplLnNsaWNlKG8taS5sZW5ndGgsbyk9PT1pfX0pLGVlKFwiU3RyaW5nXCIsXCJlbmRzV2l0aFwiKTt2YXIgbHU9U3RyaW5nLmZyb21DaGFyQ29kZSxodT1TdHJpbmcuZnJvbUNvZGVQb2ludDtrdCh7dGFyZ2V0OlwiU3RyaW5nXCIsc3RhdDohMCxmb3JjZWQ6ISFodSYmMSE9aHUubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPWFyZ3VtZW50cy5sZW5ndGgsbz0wO24+bzspe2lmKGU9K2FyZ3VtZW50c1tvKytdLGh0KGUsMTExNDExMSkhPT1lKXRocm93IFJhbmdlRXJyb3IoZStcIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50XCIpO3IucHVzaChlPDY1NTM2P2x1KGUpOmx1KDU1Mjk2KygoZS09NjU1MzYpPj4xMCksZSUxMDI0KzU2MzIwKSl9cmV0dXJuIHIuam9pbihcIlwiKX19KSxrdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiFpdShcImluY2x1ZGVzXCIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuISF+U3RyaW5nKGQodGhpcykpLmluZGV4T2YobnUodCksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGVlKFwiU3RyaW5nXCIsXCJpbmNsdWRlc1wiKTt2YXIgcHU9XCJcIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhkKHRoaXMpKSxyPVwiXCIsbj11dCh0KTtpZihuPDB8fEluZmluaXR5PT1uKXRocm93IFJhbmdlRXJyb3IoXCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnNcIik7Zm9yKDtuPjA7KG4+Pj49MSkmJihlKz1lKSkxJm4mJihyKz1lKTtyZXR1cm4gcn0sZHU9TWF0aC5jZWlsLHZ1PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIG8saSxhPVN0cmluZyhkKGUpKSx1PWEubGVuZ3RoLHM9dm9pZCAwPT09bj9cIiBcIjpTdHJpbmcobiksYz1jdChyKTtyZXR1cm4gYzw9dXx8XCJcIj09cz9hOigoaT1wdS5jYWxsKHMsZHUoKG89Yy11KS9zLmxlbmd0aCkpKS5sZW5ndGg+byYmKGk9aS5zbGljZSgwLG8pKSx0P2EraTppK2EpfX0sZ3U9e3N0YXJ0OnZ1KCExKSxlbmQ6dnUoITApfSx5dT0vVmVyc2lvblxcLzEwXFwuXFxkKyhcXC5cXGQrKT8oIE1vYmlsZVxcL1xcdyspPyBTYWZhcmlcXC8vLnRlc3QoUWkpLG11PWd1LnN0YXJ0O2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6eXV9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gbXUodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxlZShcIlN0cmluZ1wiLFwicGFkU3RhcnRcIik7dmFyIGJ1PWd1LmVuZDtrdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOnl1fSx7cGFkRW5kOmZ1bmN0aW9uKHQpe3JldHVybiBidSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGVlKFwiU3RyaW5nXCIsXCJwYWRFbmRcIiksa3Qoe3RhcmdldDpcIlN0cmluZ1wiLHN0YXQ6ITB9LHtyYXc6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXYodC5yYXcpLHI9Y3QoZS5sZW5ndGgpLG49YXJndW1lbnRzLmxlbmd0aCxvPVtdLGk9MDtyPmk7KW8ucHVzaChTdHJpbmcoZVtpKytdKSksaTxuJiZvLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tpXSkpO3JldHVybiBvLmpvaW4oXCJcIil9fSksa3Qoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwfSx7cmVwZWF0OnB1fSksZWUoXCJTdHJpbmdcIixcInJlcGVhdFwiKTt2YXIgd3U9Ty5mLFN1PVwiXCIuc3RhcnRzV2l0aCxFdT1NYXRoLm1pbix4dT1pdShcInN0YXJ0c1dpdGhcIiksQXU9IXh1JiYhIWZ1bmN0aW9uKCl7dmFyIHQ9d3UoU3RyaW5nLnByb3RvdHlwZSxcInN0YXJ0c1dpdGhcIik7cmV0dXJuIHQmJiF0LndyaXRhYmxlfSgpO2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6IUF1JiYheHV9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhkKHRoaXMpKTtudSh0KTt2YXIgcj1jdChFdShhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlLmxlbmd0aCkpLG49U3RyaW5nKHQpO3JldHVybiBTdT9TdS5jYWxsKGUsbixyKTplLnNsaWNlKHIscituLmxlbmd0aCk9PT1ufX0pLGVlKFwiU3RyaW5nXCIsXCJzdGFydHNXaXRoXCIpO3ZhciBPdT1mdW5jdGlvbih0KXtyZXR1cm4gbyhmdW5jdGlvbigpe3JldHVybiEhZm5bdF0oKXx8XCLigIvCheGgjlwiIT1cIuKAi8KF4aCOXCJbdF0oKXx8Zm5bdF0ubmFtZSE9PXR9KX0sUnU9dm4uc3RhcnQsanU9T3UoXCJ0cmltU3RhcnRcIiksUHU9anU/ZnVuY3Rpb24oKXtyZXR1cm4gUnUodGhpcyl9OlwiXCIudHJpbVN0YXJ0O2t0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6anV9LHt0cmltU3RhcnQ6UHUsdHJpbUxlZnQ6UHV9KSxlZShcIlN0cmluZ1wiLFwidHJpbUxlZnRcIik7dmFyIEl1PXZuLmVuZCxUdT1PdShcInRyaW1FbmRcIiksa3U9VHU/ZnVuY3Rpb24oKXtyZXR1cm4gSXUodGhpcyl9OlwiXCIudHJpbUVuZDtrdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOlR1fSx7dHJpbUVuZDprdSx0cmltUmlnaHQ6a3V9KSxlZShcIlN0cmluZ1wiLFwidHJpbVJpZ2h0XCIpO3ZhciBMdT1EdChcIml0ZXJhdG9yXCIpLFV1PSFvKGZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFVSTChcImI/YT0xJmI9MiZjPTNcIixcImh0dHA6Ly9hXCIpLGU9dC5zZWFyY2hQYXJhbXMscj1cIlwiO3JldHVybiB0LnBhdGhuYW1lPVwiYyUyMGRcIixlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlLmRlbGV0ZShcImJcIikscis9bit0fSksIWUuc29ydHx8XCJodHRwOi8vYS9jJTIwZD9hPTEmYz0zXCIhPT10LmhyZWZ8fFwiM1wiIT09ZS5nZXQoXCJjXCIpfHxcImE9MVwiIT09U3RyaW5nKG5ldyBVUkxTZWFyY2hQYXJhbXMoXCI/YT0xXCIpKXx8IWVbTHVdfHxcImFcIiE9PW5ldyBVUkwoXCJodHRwczovL2FAYlwiKS51c2VybmFtZXx8XCJiXCIhPT1uZXcgVVJMU2VhcmNoUGFyYW1zKG5ldyBVUkxTZWFyY2hQYXJhbXMoXCJhPWJcIikpLmdldChcImFcIil8fFwieG4tLWUxYXliY1wiIT09bmV3IFVSTChcImh0dHA6Ly/RgtC10YHRglwiKS5ob3N0fHxcIiMlRDAlQjFcIiE9PW5ldyBVUkwoXCJodHRwOi8vYSPQsVwiKS5oYXNofHxcImExYzNcIiE9PXJ8fFwieFwiIT09bmV3IFVSTChcImh0dHA6Ly94XCIsdm9pZCAwKS5ob3N0fSksTXU9T2JqZWN0LmFzc2lnbixfdT1PYmplY3QuZGVmaW5lUHJvcGVydHksTnU9IU11fHxvKGZ1bmN0aW9uKCl7aWYoaSYmMSE9PU11KHtiOjF9LE11KF91KHt9LFwiYVwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe191KHRoaXMsXCJiXCIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LHI9U3ltYm9sKCksbj1cImFiY2RlZmdoaWprbG1ub3BxcnN0XCI7cmV0dXJuIHRbcl09NyxuLnNwbGl0KFwiXCIpLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT10fSksNyE9TXUoe30sdClbcl18fHF0KE11KHt9LGUpKS5qb2luKFwiXCIpIT1ufSk/ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9THQodCksbj1hcmd1bWVudHMubGVuZ3RoLG89MSxhPXd0LmYsdT1zLmY7bj5vOylmb3IodmFyIGMsZj1wKGFyZ3VtZW50c1tvKytdKSxsPWE/cXQoZikuY29uY2F0KGEoZikpOnF0KGYpLGg9bC5sZW5ndGgsZD0wO2g+ZDspYz1sW2QrK10saSYmIXUuY2FsbChmLGMpfHwocltjXT1mW2NdKTtyZXR1cm4gcn06TXUsQ3U9MjE0NzQ4MzY0NyxGdT0vW15cXDAtXFx1MDA3RV0vLEJ1PS9bLlxcdTMwMDJcXHVGRjBFXFx1RkY2MV0vZyxEdT1cIk92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzXCIscXU9TWF0aC5mbG9vcix6dT1TdHJpbmcuZnJvbUNoYXJDb2RlLFd1PWZ1bmN0aW9uKHQpe3JldHVybiB0KzIyKzc1Kih0PDI2KX0sS3U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTA7Zm9yKHQ9cj9xdSh0LzcwMCk6dD4+MSx0Kz1xdSh0L2UpO3Q+NDU1O24rPTM2KXQ9cXUodC8zNSk7cmV0dXJuIHF1KG4rMzYqdC8odCszOCkpfSxHdT1mdW5jdGlvbih0KXt2YXIgZSxyLG49W10sbz0odD1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7cjxuOyl7dmFyIG89dC5jaGFyQ29kZUF0KHIrKyk7aWYobz49NTUyOTYmJm88PTU2MzE5JiZyPG4pe3ZhciBpPXQuY2hhckNvZGVBdChyKyspOzU2MzIwPT0oNjQ1MTImaSk/ZS5wdXNoKCgoMTAyMyZvKTw8MTApKygxMDIzJmkpKzY1NTM2KTooZS5wdXNoKG8pLHItLSl9ZWxzZSBlLnB1c2gobyl9cmV0dXJuIGV9KHQpKS5sZW5ndGgsaT0xMjgsYT0wLHU9NzI7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKykocj10W2VdKTwxMjgmJm4ucHVzaCh6dShyKSk7dmFyIHM9bi5sZW5ndGgsYz1zO2ZvcihzJiZuLnB1c2goXCItXCIpO2M8bzspe3ZhciBmPUN1O2ZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspKHI9dFtlXSk+PWkmJnI8ZiYmKGY9cik7dmFyIGw9YysxO2lmKGYtaT5xdSgoQ3UtYSkvbCkpdGhyb3cgUmFuZ2VFcnJvcihEdSk7Zm9yKGErPShmLWkpKmwsaT1mLGU9MDtlPHQubGVuZ3RoO2UrKyl7aWYoKHI9dFtlXSk8aSYmKythPkN1KXRocm93IFJhbmdlRXJyb3IoRHUpO2lmKHI9PWkpe2Zvcih2YXIgaD1hLHA9MzY7O3ArPTM2KXt2YXIgZD1wPD11PzE6cD49dSsyNj8yNjpwLXU7aWYoaDxkKWJyZWFrO3ZhciB2PWgtZCxnPTM2LWQ7bi5wdXNoKHp1KFd1KGQrdiVnKSkpLGg9cXUodi9nKX1uLnB1c2goenUoV3UoaCkpKSx1PUt1KGEsbCxjPT1zKSxhPTAsKytjfX0rK2EsKytpfXJldHVybiBuLmpvaW4oXCJcIil9LCR1PW90KFwiZmV0Y2hcIiksVnU9b3QoXCJIZWFkZXJzXCIpLEh1PUR0KFwiaXRlcmF0b3JcIiksWHU9XCJVUkxTZWFyY2hQYXJhbXNcIixZdT1cIlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yXCIsSnU9dHQuc2V0LFF1PXR0LmdldHRlckZvcihYdSksWnU9dHQuZ2V0dGVyRm9yKFl1KSx0cz0vXFwrL2csZXM9QXJyYXkoNCkscnM9ZnVuY3Rpb24odCl7cmV0dXJuIGVzW3QtMV18fChlc1t0LTFdPVJlZ0V4cChcIigoPzolW1xcXFxkYS1mXXsyfSl7XCIrdCtcIn0pXCIsXCJnaVwiKSl9LG5zPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWNhdGNoKGUpe3JldHVybiB0fX0sb3M9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKHRzLFwiIFwiKSxyPTQ7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7Zm9yKDtyOyllPWUucmVwbGFjZShycyhyLS0pLG5zKTtyZXR1cm4gZX19LGlzPS9bIScoKX5dfCUyMC9nLGFzPXtcIiFcIjpcIiUyMVwiLFwiJ1wiOlwiJTI3XCIsXCIoXCI6XCIlMjhcIixcIilcIjpcIiUyOVwiLFwiflwiOlwiJTdFXCIsXCIlMjBcIjpcIitcIn0sdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFzW3RdfSxzcz1mdW5jdGlvbih0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoaXMsdXMpfSxjcz1mdW5jdGlvbih0LGUpe2lmKGUpZm9yKHZhciByLG4sbz1lLnNwbGl0KFwiJlwiKSxpPTA7aTxvLmxlbmd0aDspKHI9b1tpKytdKS5sZW5ndGgmJihuPXIuc3BsaXQoXCI9XCIpLHQucHVzaCh7a2V5Om9zKG4uc2hpZnQoKSksdmFsdWU6b3Mobi5qb2luKFwiPVwiKSl9KSl9LGZzPWZ1bmN0aW9uKHQpe3RoaXMuZW50cmllcy5sZW5ndGg9MCxjcyh0aGlzLmVudHJpZXMsdCl9LGxzPWZ1bmN0aW9uKHQsZSl7aWYodDxlKXRocm93IFR5cGVFcnJvcihcIk5vdCBlbm91Z2ggYXJndW1lbnRzXCIpfSxocz1CZShmdW5jdGlvbih0LGUpe0p1KHRoaXMse3R5cGU6WXUsaXRlcmF0b3I6b24oUXUodCkuZW50cmllcyksa2luZDplfSl9LFwiSXRlcmF0b3JcIixmdW5jdGlvbigpe3ZhciB0PVp1KHRoaXMpLGU9dC5raW5kLHI9dC5pdGVyYXRvci5uZXh0KCksbj1yLnZhbHVlO3JldHVybiByLmRvbmV8fChyLnZhbHVlPVwia2V5c1wiPT09ZT9uLmtleTpcInZhbHVlc1wiPT09ZT9uLnZhbHVlOltuLmtleSxuLnZhbHVlXSkscn0pLHBzPWZ1bmN0aW9uKCl7X3IodGhpcyxwcyxYdSk7dmFyIHQsZSxyLG4sbyxpLGEsdSxzLGM9YXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDAsZj10aGlzLGw9W107aWYoSnUoZix7dHlwZTpYdSxlbnRyaWVzOmwsdXBkYXRlVVJMOmZ1bmN0aW9uKCl7fSx1cGRhdGVTZWFyY2hQYXJhbXM6ZnN9KSx2b2lkIDAhPT1jKWlmKGcoYykpaWYoXCJmdW5jdGlvblwiPT10eXBlb2YodD1scihjKSkpZm9yKHI9KGU9dC5jYWxsKGMpKS5uZXh0OyEobj1yLmNhbGwoZSkpLmRvbmU7KXtpZigoYT0oaT0obz1vbihSKG4udmFsdWUpKSkubmV4dCkuY2FsbChvKSkuZG9uZXx8KHU9aS5jYWxsKG8pKS5kb25lfHwhaS5jYWxsKG8pLmRvbmUpdGhyb3cgVHlwZUVycm9yKFwiRXhwZWN0ZWQgc2VxdWVuY2Ugd2l0aCBsZW5ndGggMlwiKTtsLnB1c2goe2tleTphLnZhbHVlK1wiXCIsdmFsdWU6dS52YWx1ZStcIlwifSl9ZWxzZSBmb3IocyBpbiBjKWIoYyxzKSYmbC5wdXNoKHtrZXk6cyx2YWx1ZTpjW3NdK1wiXCJ9KTtlbHNlIGNzKGwsXCJzdHJpbmdcIj09dHlwZW9mIGM/XCI/XCI9PT1jLmNoYXJBdCgwKT9jLnNsaWNlKDEpOmM6YytcIlwiKX0sZHM9cHMucHJvdG90eXBlO0ZyKGRzLHthcHBlbmQ6ZnVuY3Rpb24odCxlKXtscyhhcmd1bWVudHMubGVuZ3RoLDIpO3ZhciByPVF1KHRoaXMpO3IuZW50cmllcy5wdXNoKHtrZXk6dCtcIlwiLHZhbHVlOmUrXCJcIn0pLHIudXBkYXRlVVJMKCl9LGRlbGV0ZTpmdW5jdGlvbih0KXtscyhhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgZT1RdSh0aGlzKSxyPWUuZW50cmllcyxuPXQrXCJcIixvPTA7bzxyLmxlbmd0aDspcltvXS5rZXk9PT1uP3Iuc3BsaWNlKG8sMSk6bysrO2UudXBkYXRlVVJMKCl9LGdldDpmdW5jdGlvbih0KXtscyhhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgZT1RdSh0aGlzKS5lbnRyaWVzLHI9dCtcIlwiLG49MDtuPGUubGVuZ3RoO24rKylpZihlW25dLmtleT09PXIpcmV0dXJuIGVbbl0udmFsdWU7cmV0dXJuIG51bGx9LGdldEFsbDpmdW5jdGlvbih0KXtscyhhcmd1bWVudHMubGVuZ3RoLDEpO2Zvcih2YXIgZT1RdSh0aGlzKS5lbnRyaWVzLHI9dCtcIlwiLG49W10sbz0wO288ZS5sZW5ndGg7bysrKWVbb10ua2V5PT09ciYmbi5wdXNoKGVbb10udmFsdWUpO3JldHVybiBufSxoYXM6ZnVuY3Rpb24odCl7bHMoYXJndW1lbnRzLmxlbmd0aCwxKTtmb3IodmFyIGU9UXUodGhpcykuZW50cmllcyxyPXQrXCJcIixuPTA7bjxlLmxlbmd0aDspaWYoZVtuKytdLmtleT09PXIpcmV0dXJuITA7cmV0dXJuITF9LHNldDpmdW5jdGlvbih0LGUpe2xzKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciByLG49UXUodGhpcyksbz1uLmVudHJpZXMsaT0hMSxhPXQrXCJcIix1PWUrXCJcIixzPTA7czxvLmxlbmd0aDtzKyspKHI9b1tzXSkua2V5PT09YSYmKGk/by5zcGxpY2Uocy0tLDEpOihpPSEwLHIudmFsdWU9dSkpO2l8fG8ucHVzaCh7a2V5OmEsdmFsdWU6dX0pLG4udXBkYXRlVVJMKCl9LHNvcnQ6ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj1RdSh0aGlzKSxvPW4uZW50cmllcyxpPW8uc2xpY2UoKTtmb3Ioby5sZW5ndGg9MCxyPTA7cjxpLmxlbmd0aDtyKyspe2Zvcih0PWlbcl0sZT0wO2U8cjtlKyspaWYob1tlXS5rZXk+dC5rZXkpe28uc3BsaWNlKGUsMCx0KTticmVha31lPT09ciYmby5wdXNoKHQpfW4udXBkYXRlVVJMKCl9LGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9UXUodGhpcykuZW50cmllcyxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz0wO288ci5sZW5ndGg7KW4oKGU9cltvKytdKS52YWx1ZSxlLmtleSx0aGlzKX0sa2V5czpmdW5jdGlvbigpe3JldHVybiBuZXcgaHModGhpcyxcImtleXNcIil9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuZXcgaHModGhpcyxcInZhbHVlc1wiKX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBuZXcgaHModGhpcyxcImVudHJpZXNcIil9fSx7ZW51bWVyYWJsZTohMH0pLGV0KGRzLEh1LGRzLmVudHJpZXMpLGV0KGRzLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe2Zvcih2YXIgdCxlPVF1KHRoaXMpLmVudHJpZXMscj1bXSxuPTA7bjxlLmxlbmd0aDspdD1lW24rK10sci5wdXNoKHNzKHQua2V5KStcIj1cIitzcyh0LnZhbHVlKSk7cmV0dXJuIHIuam9pbihcIiZcIil9LHtlbnVtZXJhYmxlOiEwfSksX2UocHMsWHUpLGt0KHtnbG9iYWw6ITAsZm9yY2VkOiFVdX0se1VSTFNlYXJjaFBhcmFtczpwc30pLFV1fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiAkdXx8XCJmdW5jdGlvblwiIT10eXBlb2YgVnV8fGt0KHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXt2YXIgZSxyLG4sbz1bdF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MSYmKGcoZT1hcmd1bWVudHNbMV0pJiZjcihyPWUuYm9keSk9PT1YdSYmKChuPWUuaGVhZGVycz9uZXcgVnUoZS5oZWFkZXJzKTpuZXcgVnUpLmhhcyhcImNvbnRlbnQtdHlwZVwiKXx8bi5zZXQoXCJjb250ZW50LXR5cGVcIixcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04XCIpLGU9SHQoZSx7Ym9keTpjKDAsU3RyaW5nKHIpKSxoZWFkZXJzOmMoMCxuKX0pKSxvLnB1c2goZSkpLCR1LmFwcGx5KHRoaXMsbyl9fSk7dmFyIHZzLGdzPXtVUkxTZWFyY2hQYXJhbXM6cHMsZ2V0U3RhdGU6UXV9LHlzPU9lLmNvZGVBdCxtcz1uLlVSTCxicz1ncy5VUkxTZWFyY2hQYXJhbXMsd3M9Z3MuZ2V0U3RhdGUsU3M9dHQuc2V0LEVzPXR0LmdldHRlckZvcihcIlVSTFwiKSx4cz1NYXRoLmZsb29yLEFzPU1hdGgucG93LE9zPVwiSW52YWxpZCBzY2hlbWVcIixScz1cIkludmFsaWQgaG9zdFwiLGpzPVwiSW52YWxpZCBwb3J0XCIsUHM9L1tBLVphLXpdLyxJcz0vW1xcZCstLkEtWmEtel0vLFRzPS9cXGQvLGtzPS9eKDB4fDBYKS8sTHM9L15bMC03XSskLyxVcz0vXlxcZCskLyxNcz0vXltcXGRBLUZhLWZdKyQvLF9zPS9bXFx1MDAwMFxcdTAwMDlcXHUwMDBBXFx1MDAwRCAjJS86P0BbXFxcXF1dLyxOcz0vW1xcdTAwMDBcXHUwMDA5XFx1MDAwQVxcdTAwMEQgIy86P0BbXFxcXF1dLyxDcz0vXltcXHUwMDAwLVxcdTAwMUYgXSt8W1xcdTAwMDAtXFx1MDAxRiBdKyQvZyxGcz0vW1xcdTAwMDlcXHUwMDBBXFx1MDAwRF0vZyxCcz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbztpZihcIltcIj09ZS5jaGFyQXQoMCkpe2lmKFwiXVwiIT1lLmNoYXJBdChlLmxlbmd0aC0xKSlyZXR1cm4gUnM7aWYoIShyPXFzKGUuc2xpY2UoMSwtMSkpKSlyZXR1cm4gUnM7dC5ob3N0PXJ9ZWxzZSBpZihYcyh0KSl7aWYoZT1mdW5jdGlvbih0KXt2YXIgZSxyLG49W10sbz10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShCdSxcIi5cIikuc3BsaXQoXCIuXCIpO2ZvcihlPTA7ZTxvLmxlbmd0aDtlKyspbi5wdXNoKEZ1LnRlc3Qocj1vW2VdKT9cInhuLS1cIitHdShyKTpyKTtyZXR1cm4gbi5qb2luKFwiLlwiKX0oZSksX3MudGVzdChlKSlyZXR1cm4gUnM7aWYobnVsbD09PShyPURzKGUpKSlyZXR1cm4gUnM7dC5ob3N0PXJ9ZWxzZXtpZihOcy50ZXN0KGUpKXJldHVybiBScztmb3Iocj1cIlwiLG49aHIoZSksbz0wO288bi5sZW5ndGg7bysrKXIrPVZzKG5bb10sV3MpO3QuaG9zdD1yfX0sRHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxhLHUscz10LnNwbGl0KFwiLlwiKTtpZihzLmxlbmd0aCYmXCJcIj09c1tzLmxlbmd0aC0xXSYmcy5wb3AoKSwoZT1zLmxlbmd0aCk+NClyZXR1cm4gdDtmb3Iocj1bXSxuPTA7bjxlO24rKyl7aWYoXCJcIj09KG89c1tuXSkpcmV0dXJuIHQ7aWYoaT0xMCxvLmxlbmd0aD4xJiZcIjBcIj09by5jaGFyQXQoMCkmJihpPWtzLnRlc3Qobyk/MTY6OCxvPW8uc2xpY2UoOD09aT8xOjIpKSxcIlwiPT09bylhPTA7ZWxzZXtpZighKDEwPT1pP1VzOjg9PWk/THM6TXMpLnRlc3QobykpcmV0dXJuIHQ7YT1wYXJzZUludChvLGkpfXIucHVzaChhKX1mb3Iobj0wO248ZTtuKyspaWYoYT1yW25dLG49PWUtMSl7aWYoYT49QXMoMjU2LDUtZSkpcmV0dXJuIG51bGx9ZWxzZSBpZihhPjI1NSlyZXR1cm4gbnVsbDtmb3IodT1yLnBvcCgpLG49MDtuPHIubGVuZ3RoO24rKyl1Kz1yW25dKkFzKDI1NiwzLW4pO3JldHVybiB1fSxxcz1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpLGEsdSxzPVswLDAsMCwwLDAsMCwwLDBdLGM9MCxmPW51bGwsbD0wLGg9ZnVuY3Rpb24oKXtyZXR1cm4gdC5jaGFyQXQobCl9O2lmKFwiOlwiPT1oKCkpe2lmKFwiOlwiIT10LmNoYXJBdCgxKSlyZXR1cm47bCs9MixmPSsrY31mb3IoO2goKTspe2lmKDg9PWMpcmV0dXJuO2lmKFwiOlwiIT1oKCkpe2ZvcihlPXI9MDtyPDQmJk1zLnRlc3QoaCgpKTspZT0xNiplK3BhcnNlSW50KGgoKSwxNiksbCsrLHIrKztpZihcIi5cIj09aCgpKXtpZigwPT1yKXJldHVybjtpZihsLT1yLGM+NilyZXR1cm47Zm9yKG49MDtoKCk7KXtpZihvPW51bGwsbj4wKXtpZighKFwiLlwiPT1oKCkmJm48NCkpcmV0dXJuO2wrK31pZighVHMudGVzdChoKCkpKXJldHVybjtmb3IoO1RzLnRlc3QoaCgpKTspe2lmKGk9cGFyc2VJbnQoaCgpLDEwKSxudWxsPT09bylvPWk7ZWxzZXtpZigwPT1vKXJldHVybjtvPTEwKm8raX1pZihvPjI1NSlyZXR1cm47bCsrfXNbY109MjU2KnNbY10rbywyIT0rK24mJjQhPW58fGMrK31pZig0IT1uKXJldHVybjticmVha31pZihcIjpcIj09aCgpKXtpZihsKyssIWgoKSlyZXR1cm59ZWxzZSBpZihoKCkpcmV0dXJuO3NbYysrXT1lfWVsc2V7aWYobnVsbCE9PWYpcmV0dXJuO2wrKyxmPSsrY319aWYobnVsbCE9PWYpZm9yKGE9Yy1mLGM9NzswIT1jJiZhPjA7KXU9c1tjXSxzW2MtLV09c1tmK2EtMV0sc1tmKy0tYV09dTtlbHNlIGlmKDghPWMpcmV0dXJuO3JldHVybiBzfSx6cz1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbztpZihcIm51bWJlclwiPT10eXBlb2YgdCl7Zm9yKGU9W10scj0wO3I8NDtyKyspZS51bnNoaWZ0KHQlMjU2KSx0PXhzKHQvMjU2KTtyZXR1cm4gZS5qb2luKFwiLlwiKX1pZihcIm9iamVjdFwiPT10eXBlb2YgdCl7Zm9yKGU9XCJcIixuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1udWxsLHI9MSxuPW51bGwsbz0wLGk9MDtpPDg7aSsrKTAhPT10W2ldPyhvPnImJihlPW4scj1vKSxuPW51bGwsbz0wKToobnVsbD09PW4mJihuPWkpLCsrbyk7cmV0dXJuIG8+ciYmKGU9bixyPW8pLGV9KHQpLHI9MDtyPDg7cisrKW8mJjA9PT10W3JdfHwobyYmKG89ITEpLG49PT1yPyhlKz1yP1wiOlwiOlwiOjpcIixvPSEwKTooZSs9dFtyXS50b1N0cmluZygxNikscjw3JiYoZSs9XCI6XCIpKSk7cmV0dXJuXCJbXCIrZStcIl1cIn1yZXR1cm4gdH0sV3M9e30sS3M9TnUoe30sV3Mse1wiIFwiOjEsJ1wiJzoxLFwiPFwiOjEsXCI+XCI6MSxcImBcIjoxfSksR3M9TnUoe30sS3Mse1wiI1wiOjEsXCI/XCI6MSxcIntcIjoxLFwifVwiOjF9KSwkcz1OdSh7fSxHcyx7XCIvXCI6MSxcIjpcIjoxLFwiO1wiOjEsXCI9XCI6MSxcIkBcIjoxLFwiW1wiOjEsXCJcXFxcXCI6MSxcIl1cIjoxLFwiXlwiOjEsXCJ8XCI6MX0pLFZzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9eXModCwwKTtyZXR1cm4gcj4zMiYmcjwxMjcmJiFiKGUsdCk/dDplbmNvZGVVUklDb21wb25lbnQodCl9LEhzPXtmdHA6MjEsZmlsZTpudWxsLGh0dHA6ODAsaHR0cHM6NDQzLHdzOjgwLHdzczo0NDN9LFhzPWZ1bmN0aW9uKHQpe3JldHVybiBiKEhzLHQuc2NoZW1lKX0sWXM9ZnVuY3Rpb24odCl7cmV0dXJuXCJcIiE9dC51c2VybmFtZXx8XCJcIiE9dC5wYXNzd29yZH0sSnM9ZnVuY3Rpb24odCl7cmV0dXJuIXQuaG9zdHx8dC5jYW5ub3RCZUFCYXNlVVJMfHxcImZpbGVcIj09dC5zY2hlbWV9LFFzPWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIDI9PXQubGVuZ3RoJiZQcy50ZXN0KHQuY2hhckF0KDApKSYmKFwiOlwiPT0ocj10LmNoYXJBdCgxKSl8fCFlJiZcInxcIj09cil9LFpzPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0Lmxlbmd0aD4xJiZRcyh0LnNsaWNlKDAsMikpJiYoMj09dC5sZW5ndGh8fFwiL1wiPT09KGU9dC5jaGFyQXQoMikpfHxcIlxcXFxcIj09PWV8fFwiP1wiPT09ZXx8XCIjXCI9PT1lKX0sdGM9ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXRoLHI9ZS5sZW5ndGg7IXJ8fFwiZmlsZVwiPT10LnNjaGVtZSYmMT09ciYmUXMoZVswXSwhMCl8fGUucG9wKCl9LGVjPWZ1bmN0aW9uKHQpe3JldHVyblwiLlwiPT09dHx8XCIlMmVcIj09PXQudG9Mb3dlckNhc2UoKX0scmM9e30sbmM9e30sb2M9e30saWM9e30sYWM9e30sdWM9e30sc2M9e30sY2M9e30sZmM9e30sbGM9e30saGM9e30scGM9e30sZGM9e30sdmM9e30sZ2M9e30seWM9e30sbWM9e30sYmM9e30sd2M9e30sU2M9e30sRWM9e30seGM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saSxhLHUscyxjPXJ8fHJjLGY9MCxsPVwiXCIsaD0hMSxwPSExLGQ9ITE7Zm9yKHJ8fCh0LnNjaGVtZT1cIlwiLHQudXNlcm5hbWU9XCJcIix0LnBhc3N3b3JkPVwiXCIsdC5ob3N0PW51bGwsdC5wb3J0PW51bGwsdC5wYXRoPVtdLHQucXVlcnk9bnVsbCx0LmZyYWdtZW50PW51bGwsdC5jYW5ub3RCZUFCYXNlVVJMPSExLGU9ZS5yZXBsYWNlKENzLFwiXCIpKSxlPWUucmVwbGFjZShGcyxcIlwiKSxvPWhyKGUpO2Y8PW8ubGVuZ3RoOyl7c3dpdGNoKGk9b1tmXSxjKXtjYXNlIHJjOmlmKCFpfHwhUHMudGVzdChpKSl7aWYocilyZXR1cm4gT3M7Yz1vYztjb250aW51ZX1sKz1pLnRvTG93ZXJDYXNlKCksYz1uYzticmVhaztjYXNlIG5jOmlmKGkmJihJcy50ZXN0KGkpfHxcIitcIj09aXx8XCItXCI9PWl8fFwiLlwiPT1pKSlsKz1pLnRvTG93ZXJDYXNlKCk7ZWxzZXtpZihcIjpcIiE9aSl7aWYocilyZXR1cm4gT3M7bD1cIlwiLGM9b2MsZj0wO2NvbnRpbnVlfWlmKHImJihYcyh0KSE9YihIcyxsKXx8XCJmaWxlXCI9PWwmJihZcyh0KXx8bnVsbCE9PXQucG9ydCl8fFwiZmlsZVwiPT10LnNjaGVtZSYmIXQuaG9zdCkpcmV0dXJuO2lmKHQuc2NoZW1lPWwscilyZXR1cm4gdm9pZChYcyh0KSYmSHNbdC5zY2hlbWVdPT10LnBvcnQmJih0LnBvcnQ9bnVsbCkpO2w9XCJcIixcImZpbGVcIj09dC5zY2hlbWU/Yz12YzpYcyh0KSYmbiYmbi5zY2hlbWU9PXQuc2NoZW1lP2M9aWM6WHModCk/Yz1jYzpcIi9cIj09b1tmKzFdPyhjPWFjLGYrKyk6KHQuY2Fubm90QmVBQmFzZVVSTD0hMCx0LnBhdGgucHVzaChcIlwiKSxjPXdjKX1icmVhaztjYXNlIG9jOmlmKCFufHxuLmNhbm5vdEJlQUJhc2VVUkwmJlwiI1wiIT1pKXJldHVybiBPcztpZihuLmNhbm5vdEJlQUJhc2VVUkwmJlwiI1wiPT1pKXt0LnNjaGVtZT1uLnNjaGVtZSx0LnBhdGg9bi5wYXRoLnNsaWNlKCksdC5xdWVyeT1uLnF1ZXJ5LHQuZnJhZ21lbnQ9XCJcIix0LmNhbm5vdEJlQUJhc2VVUkw9ITAsYz1FYzticmVha31jPVwiZmlsZVwiPT1uLnNjaGVtZT92Yzp1Yztjb250aW51ZTtjYXNlIGljOmlmKFwiL1wiIT1pfHxcIi9cIiE9b1tmKzFdKXtjPXVjO2NvbnRpbnVlfWM9ZmMsZisrO2JyZWFrO2Nhc2UgYWM6aWYoXCIvXCI9PWkpe2M9bGM7YnJlYWt9Yz1iYztjb250aW51ZTtjYXNlIHVjOmlmKHQuc2NoZW1lPW4uc2NoZW1lLGk9PXZzKXQudXNlcm5hbWU9bi51c2VybmFtZSx0LnBhc3N3b3JkPW4ucGFzc3dvcmQsdC5ob3N0PW4uaG9zdCx0LnBvcnQ9bi5wb3J0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PW4ucXVlcnk7ZWxzZSBpZihcIi9cIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpKWM9c2M7ZWxzZSBpZihcIj9cIj09aSl0LnVzZXJuYW1lPW4udXNlcm5hbWUsdC5wYXNzd29yZD1uLnBhc3N3b3JkLHQuaG9zdD1uLmhvc3QsdC5wb3J0PW4ucG9ydCx0LnBhdGg9bi5wYXRoLnNsaWNlKCksdC5xdWVyeT1cIlwiLGM9U2M7ZWxzZXtpZihcIiNcIiE9aSl7dC51c2VybmFtZT1uLnVzZXJuYW1lLHQucGFzc3dvcmQ9bi5wYXNzd29yZCx0Lmhvc3Q9bi5ob3N0LHQucG9ydD1uLnBvcnQsdC5wYXRoPW4ucGF0aC5zbGljZSgpLHQucGF0aC5wb3AoKSxjPWJjO2NvbnRpbnVlfXQudXNlcm5hbWU9bi51c2VybmFtZSx0LnBhc3N3b3JkPW4ucGFzc3dvcmQsdC5ob3N0PW4uaG9zdCx0LnBvcnQ9bi5wb3J0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PW4ucXVlcnksdC5mcmFnbWVudD1cIlwiLGM9RWN9YnJlYWs7Y2FzZSBzYzppZighWHModCl8fFwiL1wiIT1pJiZcIlxcXFxcIiE9aSl7aWYoXCIvXCIhPWkpe3QudXNlcm5hbWU9bi51c2VybmFtZSx0LnBhc3N3b3JkPW4ucGFzc3dvcmQsdC5ob3N0PW4uaG9zdCx0LnBvcnQ9bi5wb3J0LGM9YmM7Y29udGludWV9Yz1sY31lbHNlIGM9ZmM7YnJlYWs7Y2FzZSBjYzppZihjPWZjLFwiL1wiIT1pfHxcIi9cIiE9bC5jaGFyQXQoZisxKSljb250aW51ZTtmKys7YnJlYWs7Y2FzZSBmYzppZihcIi9cIiE9aSYmXCJcXFxcXCIhPWkpe2M9bGM7Y29udGludWV9YnJlYWs7Y2FzZSBsYzppZihcIkBcIj09aSl7aCYmKGw9XCIlNDBcIitsKSxoPSEwLGE9aHIobCk7Zm9yKHZhciB2PTA7djxhLmxlbmd0aDt2Kyspe3ZhciBnPWFbdl07aWYoXCI6XCIhPWd8fGQpe3ZhciB5PVZzKGcsJHMpO2Q/dC5wYXNzd29yZCs9eTp0LnVzZXJuYW1lKz15fWVsc2UgZD0hMH1sPVwiXCJ9ZWxzZSBpZihpPT12c3x8XCIvXCI9PWl8fFwiP1wiPT1pfHxcIiNcIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpKXtpZihoJiZcIlwiPT1sKXJldHVyblwiSW52YWxpZCBhdXRob3JpdHlcIjtmLT1ocihsKS5sZW5ndGgrMSxsPVwiXCIsYz1oY31lbHNlIGwrPWk7YnJlYWs7Y2FzZSBoYzpjYXNlIHBjOmlmKHImJlwiZmlsZVwiPT10LnNjaGVtZSl7Yz15Yztjb250aW51ZX1pZihcIjpcIiE9aXx8cCl7aWYoaT09dnN8fFwiL1wiPT1pfHxcIj9cIj09aXx8XCIjXCI9PWl8fFwiXFxcXFwiPT1pJiZYcyh0KSl7aWYoWHModCkmJlwiXCI9PWwpcmV0dXJuIFJzO2lmKHImJlwiXCI9PWwmJihZcyh0KXx8bnVsbCE9PXQucG9ydCkpcmV0dXJuO2lmKHU9QnModCxsKSlyZXR1cm4gdTtpZihsPVwiXCIsYz1tYyxyKXJldHVybjtjb250aW51ZX1cIltcIj09aT9wPSEwOlwiXVwiPT1pJiYocD0hMSksbCs9aX1lbHNle2lmKFwiXCI9PWwpcmV0dXJuIFJzO2lmKHU9QnModCxsKSlyZXR1cm4gdTtpZihsPVwiXCIsYz1kYyxyPT1wYylyZXR1cm59YnJlYWs7Y2FzZSBkYzppZighVHMudGVzdChpKSl7aWYoaT09dnN8fFwiL1wiPT1pfHxcIj9cIj09aXx8XCIjXCI9PWl8fFwiXFxcXFwiPT1pJiZYcyh0KXx8cil7aWYoXCJcIiE9bCl7dmFyIG09cGFyc2VJbnQobCwxMCk7aWYobT42NTUzNSlyZXR1cm4ganM7dC5wb3J0PVhzKHQpJiZtPT09SHNbdC5zY2hlbWVdP251bGw6bSxsPVwiXCJ9aWYocilyZXR1cm47Yz1tYztjb250aW51ZX1yZXR1cm4ganN9bCs9aTticmVhaztjYXNlIHZjOmlmKHQuc2NoZW1lPVwiZmlsZVwiLFwiL1wiPT1pfHxcIlxcXFxcIj09aSljPWdjO2Vsc2V7aWYoIW58fFwiZmlsZVwiIT1uLnNjaGVtZSl7Yz1iYztjb250aW51ZX1pZihpPT12cyl0Lmhvc3Q9bi5ob3N0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PW4ucXVlcnk7ZWxzZSBpZihcIj9cIj09aSl0Lmhvc3Q9bi5ob3N0LHQucGF0aD1uLnBhdGguc2xpY2UoKSx0LnF1ZXJ5PVwiXCIsYz1TYztlbHNle2lmKFwiI1wiIT1pKXtacyhvLnNsaWNlKGYpLmpvaW4oXCJcIikpfHwodC5ob3N0PW4uaG9zdCx0LnBhdGg9bi5wYXRoLnNsaWNlKCksdGModCkpLGM9YmM7Y29udGludWV9dC5ob3N0PW4uaG9zdCx0LnBhdGg9bi5wYXRoLnNsaWNlKCksdC5xdWVyeT1uLnF1ZXJ5LHQuZnJhZ21lbnQ9XCJcIixjPUVjfX1icmVhaztjYXNlIGdjOmlmKFwiL1wiPT1pfHxcIlxcXFxcIj09aSl7Yz15YzticmVha31uJiZcImZpbGVcIj09bi5zY2hlbWUmJiFacyhvLnNsaWNlKGYpLmpvaW4oXCJcIikpJiYoUXMobi5wYXRoWzBdLCEwKT90LnBhdGgucHVzaChuLnBhdGhbMF0pOnQuaG9zdD1uLmhvc3QpLGM9YmM7Y29udGludWU7Y2FzZSB5YzppZihpPT12c3x8XCIvXCI9PWl8fFwiXFxcXFwiPT1pfHxcIj9cIj09aXx8XCIjXCI9PWkpe2lmKCFyJiZRcyhsKSljPWJjO2Vsc2UgaWYoXCJcIj09bCl7aWYodC5ob3N0PVwiXCIscilyZXR1cm47Yz1tY31lbHNle2lmKHU9QnModCxsKSlyZXR1cm4gdTtpZihcImxvY2FsaG9zdFwiPT10Lmhvc3QmJih0Lmhvc3Q9XCJcIikscilyZXR1cm47bD1cIlwiLGM9bWN9Y29udGludWV9bCs9aTticmVhaztjYXNlIG1jOmlmKFhzKHQpKXtpZihjPWJjLFwiL1wiIT1pJiZcIlxcXFxcIiE9aSljb250aW51ZX1lbHNlIGlmKHJ8fFwiP1wiIT1pKWlmKHJ8fFwiI1wiIT1pKXtpZihpIT12cyYmKGM9YmMsXCIvXCIhPWkpKWNvbnRpbnVlfWVsc2UgdC5mcmFnbWVudD1cIlwiLGM9RWM7ZWxzZSB0LnF1ZXJ5PVwiXCIsYz1TYzticmVhaztjYXNlIGJjOmlmKGk9PXZzfHxcIi9cIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpfHwhciYmKFwiP1wiPT1pfHxcIiNcIj09aSkpe2lmKFwiLi5cIj09PShzPShzPWwpLnRvTG93ZXJDYXNlKCkpfHxcIiUyZS5cIj09PXN8fFwiLiUyZVwiPT09c3x8XCIlMmUlMmVcIj09PXM/KHRjKHQpLFwiL1wiPT1pfHxcIlxcXFxcIj09aSYmWHModCl8fHQucGF0aC5wdXNoKFwiXCIpKTplYyhsKT9cIi9cIj09aXx8XCJcXFxcXCI9PWkmJlhzKHQpfHx0LnBhdGgucHVzaChcIlwiKTooXCJmaWxlXCI9PXQuc2NoZW1lJiYhdC5wYXRoLmxlbmd0aCYmUXMobCkmJih0Lmhvc3QmJih0Lmhvc3Q9XCJcIiksbD1sLmNoYXJBdCgwKStcIjpcIiksdC5wYXRoLnB1c2gobCkpLGw9XCJcIixcImZpbGVcIj09dC5zY2hlbWUmJihpPT12c3x8XCI/XCI9PWl8fFwiI1wiPT1pKSlmb3IoO3QucGF0aC5sZW5ndGg+MSYmXCJcIj09PXQucGF0aFswXTspdC5wYXRoLnNoaWZ0KCk7XCI/XCI9PWk/KHQucXVlcnk9XCJcIixjPVNjKTpcIiNcIj09aSYmKHQuZnJhZ21lbnQ9XCJcIixjPUVjKX1lbHNlIGwrPVZzKGksR3MpO2JyZWFrO2Nhc2Ugd2M6XCI/XCI9PWk/KHQucXVlcnk9XCJcIixjPVNjKTpcIiNcIj09aT8odC5mcmFnbWVudD1cIlwiLGM9RWMpOmkhPXZzJiYodC5wYXRoWzBdKz1WcyhpLFdzKSk7YnJlYWs7Y2FzZSBTYzpyfHxcIiNcIiE9aT9pIT12cyYmKFwiJ1wiPT1pJiZYcyh0KT90LnF1ZXJ5Kz1cIiUyN1wiOnQucXVlcnkrPVwiI1wiPT1pP1wiJTIzXCI6VnMoaSxXcykpOih0LmZyYWdtZW50PVwiXCIsYz1FYyk7YnJlYWs7Y2FzZSBFYzppIT12cyYmKHQuZnJhZ21lbnQrPVZzKGksS3MpKX1mKyt9fSxBYz1mdW5jdGlvbih0KXt2YXIgZSxyLG49X3IodGhpcyxBYyxcIlVSTFwiKSxvPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGE9U3RyaW5nKHQpLHU9U3Mobix7dHlwZTpcIlVSTFwifSk7aWYodm9pZCAwIT09bylpZihvIGluc3RhbmNlb2YgQWMpZT1FcyhvKTtlbHNlIGlmKHI9eGMoZT17fSxTdHJpbmcobykpKXRocm93IFR5cGVFcnJvcihyKTtpZihyPXhjKHUsYSxudWxsLGUpKXRocm93IFR5cGVFcnJvcihyKTt2YXIgcz11LnNlYXJjaFBhcmFtcz1uZXcgYnMsYz13cyhzKTtjLnVwZGF0ZVNlYXJjaFBhcmFtcyh1LnF1ZXJ5KSxjLnVwZGF0ZVVSTD1mdW5jdGlvbigpe3UucXVlcnk9U3RyaW5nKHMpfHxudWxsfSxpfHwobi5ocmVmPVJjLmNhbGwobiksbi5vcmlnaW49amMuY2FsbChuKSxuLnByb3RvY29sPVBjLmNhbGwobiksbi51c2VybmFtZT1JYy5jYWxsKG4pLG4ucGFzc3dvcmQ9VGMuY2FsbChuKSxuLmhvc3Q9a2MuY2FsbChuKSxuLmhvc3RuYW1lPUxjLmNhbGwobiksbi5wb3J0PVVjLmNhbGwobiksbi5wYXRobmFtZT1NYy5jYWxsKG4pLG4uc2VhcmNoPV9jLmNhbGwobiksbi5zZWFyY2hQYXJhbXM9TmMuY2FsbChuKSxuLmhhc2g9Q2MuY2FsbChuKSl9LE9jPUFjLnByb3RvdHlwZSxSYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLGU9dC5zY2hlbWUscj10LnVzZXJuYW1lLG49dC5wYXNzd29yZCxvPXQuaG9zdCxpPXQucG9ydCxhPXQucGF0aCx1PXQucXVlcnkscz10LmZyYWdtZW50LGM9ZStcIjpcIjtyZXR1cm4gbnVsbCE9PW8/KGMrPVwiLy9cIixZcyh0KSYmKGMrPXIrKG4/XCI6XCIrbjpcIlwiKStcIkBcIiksYys9enMobyksbnVsbCE9PWkmJihjKz1cIjpcIitpKSk6XCJmaWxlXCI9PWUmJihjKz1cIi8vXCIpLGMrPXQuY2Fubm90QmVBQmFzZVVSTD9hWzBdOmEubGVuZ3RoP1wiL1wiK2Euam9pbihcIi9cIik6XCJcIixudWxsIT09dSYmKGMrPVwiP1wiK3UpLG51bGwhPT1zJiYoYys9XCIjXCIrcyksY30samM9ZnVuY3Rpb24oKXt2YXIgdD1Fcyh0aGlzKSxlPXQuc2NoZW1lLHI9dC5wb3J0O2lmKFwiYmxvYlwiPT1lKXRyeXtyZXR1cm4gbmV3IFVSTChlLnBhdGhbMF0pLm9yaWdpbn1jYXRjaCh0KXtyZXR1cm5cIm51bGxcIn1yZXR1cm5cImZpbGVcIiE9ZSYmWHModCk/ZStcIjovL1wiK3pzKHQuaG9zdCkrKG51bGwhPT1yP1wiOlwiK3I6XCJcIik6XCJudWxsXCJ9LFBjPWZ1bmN0aW9uKCl7cmV0dXJuIEVzKHRoaXMpLnNjaGVtZStcIjpcIn0sSWM9ZnVuY3Rpb24oKXtyZXR1cm4gRXModGhpcykudXNlcm5hbWV9LFRjPWZ1bmN0aW9uKCl7cmV0dXJuIEVzKHRoaXMpLnBhc3N3b3JkfSxrYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLGU9dC5ob3N0LHI9dC5wb3J0O3JldHVybiBudWxsPT09ZT9cIlwiOm51bGw9PT1yP3pzKGUpOnpzKGUpK1wiOlwiK3J9LExjPWZ1bmN0aW9uKCl7dmFyIHQ9RXModGhpcykuaG9zdDtyZXR1cm4gbnVsbD09PXQ/XCJcIjp6cyh0KX0sVWM9ZnVuY3Rpb24oKXt2YXIgdD1Fcyh0aGlzKS5wb3J0O3JldHVybiBudWxsPT09dD9cIlwiOlN0cmluZyh0KX0sTWM9ZnVuY3Rpb24oKXt2YXIgdD1Fcyh0aGlzKSxlPXQucGF0aDtyZXR1cm4gdC5jYW5ub3RCZUFCYXNlVVJMP2VbMF06ZS5sZW5ndGg/XCIvXCIrZS5qb2luKFwiL1wiKTpcIlwifSxfYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLnF1ZXJ5O3JldHVybiB0P1wiP1wiK3Q6XCJcIn0sTmM9ZnVuY3Rpb24oKXtyZXR1cm4gRXModGhpcykuc2VhcmNoUGFyYW1zfSxDYz1mdW5jdGlvbigpe3ZhciB0PUVzKHRoaXMpLmZyYWdtZW50O3JldHVybiB0P1wiI1wiK3Q6XCJcIn0sRmM9ZnVuY3Rpb24odCxlKXtyZXR1cm57Z2V0OnQsc2V0OmUsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9fTtpZihpJiZ6dChPYyx7aHJlZjpGYyhSYyxmdW5jdGlvbih0KXt2YXIgZT1Fcyh0aGlzKSxyPVN0cmluZyh0KSxuPXhjKGUscik7aWYobil0aHJvdyBUeXBlRXJyb3Iobik7d3MoZS5zZWFyY2hQYXJhbXMpLnVwZGF0ZVNlYXJjaFBhcmFtcyhlLnF1ZXJ5KX0pLG9yaWdpbjpGYyhqYykscHJvdG9jb2w6RmMoUGMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7eGMoZSxTdHJpbmcodCkrXCI6XCIscmMpfSksdXNlcm5hbWU6RmMoSWMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcykscj1ocihTdHJpbmcodCkpO2lmKCFKcyhlKSl7ZS51c2VybmFtZT1cIlwiO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKWUudXNlcm5hbWUrPVZzKHJbbl0sJHMpfX0pLHBhc3N3b3JkOkZjKFRjLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpLHI9aHIoU3RyaW5nKHQpKTtpZighSnMoZSkpe2UucGFzc3dvcmQ9XCJcIjtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyllLnBhc3N3b3JkKz1WcyhyW25dLCRzKX19KSxob3N0OkZjKGtjLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpO2UuY2Fubm90QmVBQmFzZVVSTHx8eGMoZSxTdHJpbmcodCksaGMpfSksaG9zdG5hbWU6RmMoTGMsZnVuY3Rpb24odCl7dmFyIGU9RXModGhpcyk7ZS5jYW5ub3RCZUFCYXNlVVJMfHx4YyhlLFN0cmluZyh0KSxwYyl9KSxwb3J0OkZjKFVjLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpO0pzKGUpfHwoXCJcIj09KHQ9U3RyaW5nKHQpKT9lLnBvcnQ9bnVsbDp4YyhlLHQsZGMpKX0pLHBhdGhuYW1lOkZjKE1jLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpO2UuY2Fubm90QmVBQmFzZVVSTHx8KGUucGF0aD1bXSx4YyhlLHQrXCJcIixtYykpfSksc2VhcmNoOkZjKF9jLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpO1wiXCI9PSh0PVN0cmluZyh0KSk/ZS5xdWVyeT1udWxsOihcIj9cIj09dC5jaGFyQXQoMCkmJih0PXQuc2xpY2UoMSkpLGUucXVlcnk9XCJcIix4YyhlLHQsU2MpKSx3cyhlLnNlYXJjaFBhcmFtcykudXBkYXRlU2VhcmNoUGFyYW1zKGUucXVlcnkpfSksc2VhcmNoUGFyYW1zOkZjKE5jKSxoYXNoOkZjKENjLGZ1bmN0aW9uKHQpe3ZhciBlPUVzKHRoaXMpO1wiXCIhPSh0PVN0cmluZyh0KSk/KFwiI1wiPT10LmNoYXJBdCgwKSYmKHQ9dC5zbGljZSgxKSksZS5mcmFnbWVudD1cIlwiLHhjKGUsdCxFYykpOmUuZnJhZ21lbnQ9bnVsbH0pfSksZXQoT2MsXCJ0b0pTT05cIixmdW5jdGlvbigpe3JldHVybiBSYy5jYWxsKHRoaXMpfSx7ZW51bWVyYWJsZTohMH0pLGV0KE9jLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe3JldHVybiBSYy5jYWxsKHRoaXMpfSx7ZW51bWVyYWJsZTohMH0pLG1zKXt2YXIgQmM9bXMuY3JlYXRlT2JqZWN0VVJMLERjPW1zLnJldm9rZU9iamVjdFVSTDtCYyYmZXQoQWMsXCJjcmVhdGVPYmplY3RVUkxcIixmdW5jdGlvbih0KXtyZXR1cm4gQmMuYXBwbHkobXMsYXJndW1lbnRzKX0pLERjJiZldChBYyxcInJldm9rZU9iamVjdFVSTFwiLGZ1bmN0aW9uKHQpe3JldHVybiBEYy5hcHBseShtcyxhcmd1bWVudHMpfSl9X2UoQWMsXCJVUkxcIiksa3Qoe2dsb2JhbDohMCxmb3JjZWQ6IVV1LHNoYW06IWl9LHtVUkw6QWN9KSxrdCh7dGFyZ2V0OlwiVVJMXCIscHJvdG86ITAsZW51bWVyYWJsZTohMH0se3RvSlNPTjpmdW5jdGlvbigpe3JldHVybiBVUkwucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcyl9fSksa3Qoe3RhcmdldDpcIldlYWtNYXBcIixzdGF0OiEwfSx7ZnJvbTplbn0pLGt0KHt0YXJnZXQ6XCJXZWFrTWFwXCIsc3RhdDohMH0se29mOnJufSksa3Qoe3RhcmdldDpcIldlYWtNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIG5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxrdCh7dGFyZ2V0OlwiV2Vha01hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHt1cHNlcnQ6Y259KSxDcihcIldlYWtTZXRcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxtbyksa3Qoe3RhcmdldDpcIldlYWtTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpEfSx7YWRkQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIEhpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxrdCh7dGFyZ2V0OlwiV2Vha1NldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkR9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gbm4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLGt0KHt0YXJnZXQ6XCJXZWFrU2V0XCIsc3RhdDohMH0se2Zyb206ZW59KSxrdCh7dGFyZ2V0OlwiV2Vha1NldFwiLHN0YXQ6ITB9LHtvZjpybn0pO3ZhciBxYyx6YyxXYyxLYz1uLlByb21pc2UsR2M9LyhpcGhvbmV8aXBvZHxpcGFkKS4qYXBwbGV3ZWJraXQvaS50ZXN0KFFpKSwkYz1uLmxvY2F0aW9uLFZjPW4uc2V0SW1tZWRpYXRlLEhjPW4uY2xlYXJJbW1lZGlhdGUsWGM9bi5wcm9jZXNzLFljPW4uTWVzc2FnZUNoYW5uZWwsSmM9bi5EaXNwYXRjaCxRYz0wLFpjPXt9LHRmPWZ1bmN0aW9uKHQpe2lmKFpjLmhhc093blByb3BlcnR5KHQpKXt2YXIgZT1aY1t0XTtkZWxldGUgWmNbdF0sZSgpfX0sZWY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGYodCl9fSxyZj1mdW5jdGlvbih0KXt0Zih0LmRhdGEpfSxuZj1mdW5jdGlvbih0KXtuLnBvc3RNZXNzYWdlKHQrXCJcIiwkYy5wcm90b2NvbCtcIi8vXCIrJGMuaG9zdCl9O1ZjJiZIY3x8KFZjPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTE7YXJndW1lbnRzLmxlbmd0aD5yOyllLnB1c2goYXJndW1lbnRzW3IrK10pO3JldHVybiBaY1srK1FjXT1mdW5jdGlvbigpeyhcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RnVuY3Rpb24odCkpLmFwcGx5KHZvaWQgMCxlKX0scWMoUWMpLFFjfSxIYz1mdW5jdGlvbih0KXtkZWxldGUgWmNbdF19LFwicHJvY2Vzc1wiPT1sKFhjKT9xYz1mdW5jdGlvbih0KXtYYy5uZXh0VGljayhlZih0KSl9OkpjJiZKYy5ub3c/cWM9ZnVuY3Rpb24odCl7SmMubm93KGVmKHQpKX06WWMmJiFHYz8oV2M9KHpjPW5ldyBZYykucG9ydDIsemMucG9ydDEub25tZXNzYWdlPXJmLHFjPVp0KFdjLnBvc3RNZXNzYWdlLFdjLDEpKTohbi5hZGRFdmVudExpc3RlbmVyfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBwb3N0TWVzc2FnZXx8bi5pbXBvcnRTY3JpcHRzfHxvKG5mKXx8XCJmaWxlOlwiPT09JGMucHJvdG9jb2w/cWM9XCJvbnJlYWR5c3RhdGVjaGFuZ2VcImluIEUoXCJzY3JpcHRcIik/ZnVuY3Rpb24odCl7V3QuYXBwZW5kQ2hpbGQoRShcInNjcmlwdFwiKSkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7V3QucmVtb3ZlQ2hpbGQodGhpcyksdGYodCl9fTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KGVmKHQpLDApfToocWM9bmYsbi5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLHJmLCExKSkpO3ZhciBvZixhZix1ZixzZixjZixmZixsZixoZixwZj17c2V0OlZjLGNsZWFyOkhjfSxkZj1PLmYsdmY9cGYuc2V0LGdmPW4uTXV0YXRpb25PYnNlcnZlcnx8bi5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLHlmPW4ucHJvY2VzcyxtZj1uLlByb21pc2UsYmY9XCJwcm9jZXNzXCI9PWwoeWYpLHdmPWRmKG4sXCJxdWV1ZU1pY3JvdGFza1wiKSxTZj13ZiYmd2YudmFsdWU7U2Z8fChvZj1mdW5jdGlvbigpe3ZhciB0LGU7Zm9yKGJmJiYodD15Zi5kb21haW4pJiZ0LmV4aXQoKTthZjspe2U9YWYuZm4sYWY9YWYubmV4dDt0cnl7ZSgpfWNhdGNoKHQpe3Rocm93IGFmP3NmKCk6dWY9dm9pZCAwLHR9fXVmPXZvaWQgMCx0JiZ0LmVudGVyKCl9LGJmP3NmPWZ1bmN0aW9uKCl7eWYubmV4dFRpY2sob2YpfTpnZiYmIUdjPyhjZj0hMCxmZj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKSxuZXcgZ2Yob2YpLm9ic2VydmUoZmYse2NoYXJhY3RlckRhdGE6ITB9KSxzZj1mdW5jdGlvbigpe2ZmLmRhdGE9Y2Y9IWNmfSk6bWYmJm1mLnJlc29sdmU/KGxmPW1mLnJlc29sdmUodm9pZCAwKSxoZj1sZi50aGVuLHNmPWZ1bmN0aW9uKCl7aGYuY2FsbChsZixvZil9KTpzZj1mdW5jdGlvbigpe3ZmLmNhbGwobixvZil9KTt2YXIgRWYseGYsQWYsT2YsUmY9U2Z8fGZ1bmN0aW9uKHQpe3ZhciBlPXtmbjp0LG5leHQ6dm9pZCAwfTt1ZiYmKHVmLm5leHQ9ZSksYWZ8fChhZj1lLHNmKCkpLHVmPWV9LGpmPWZ1bmN0aW9uKHQpe3ZhciBlLHI7dGhpcy5wcm9taXNlPW5ldyB0KGZ1bmN0aW9uKHQsbil7aWYodm9pZCAwIT09ZXx8dm9pZCAwIT09cil0aHJvdyBUeXBlRXJyb3IoXCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvclwiKTtlPXQscj1ufSksdGhpcy5yZXNvbHZlPVF0KGUpLHRoaXMucmVqZWN0PVF0KHIpfSxQZj17ZjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGpmKHQpfX0sSWY9ZnVuY3Rpb24odCxlKXtpZihSKHQpLGcoZSkmJmUuY29uc3RydWN0b3I9PT10KXJldHVybiBlO3ZhciByPVBmLmYodCk7cmV0dXJuKDAsci5yZXNvbHZlKShlKSxyLnByb21pc2V9LFRmPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm57ZXJyb3I6ITEsdmFsdWU6dCgpfX1jYXRjaCh0KXtyZXR1cm57ZXJyb3I6ITAsdmFsdWU6dH19fSxrZj1wZi5zZXQsTGY9RHQoXCJzcGVjaWVzXCIpLFVmPVwiUHJvbWlzZVwiLE1mPXR0LmdldCxfZj10dC5zZXQsTmY9dHQuZ2V0dGVyRm9yKFVmKSxDZj1LYyxGZj1uLlR5cGVFcnJvcixCZj1uLmRvY3VtZW50LERmPW4ucHJvY2VzcyxxZj1vdChcImZldGNoXCIpLHpmPVBmLmYsV2Y9emYsS2Y9XCJwcm9jZXNzXCI9PWwoRGYpLEdmPSEhKEJmJiZCZi5jcmVhdGVFdmVudCYmbi5kaXNwYXRjaEV2ZW50KSwkZj1cInVuaGFuZGxlZHJlamVjdGlvblwiLFZmPUl0KFVmLGZ1bmN0aW9uKCl7aWYoQyhDZik9PT1TdHJpbmcoQ2YpKXtpZig2Nj09PXJhKXJldHVybiEwO2lmKCFLZiYmXCJmdW5jdGlvblwiIT10eXBlb2YgUHJvbWlzZVJlamVjdGlvbkV2ZW50KXJldHVybiEwfWlmKHJhPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KENmKSlyZXR1cm4hMTt2YXIgdD1DZi5yZXNvbHZlKDEpLGU9ZnVuY3Rpb24odCl7dChmdW5jdGlvbigpe30sZnVuY3Rpb24oKXt9KX07cmV0dXJuKHQuY29uc3RydWN0b3I9e30pW0xmXT1lLCEodC50aGVuKGZ1bmN0aW9uKCl7fSlpbnN0YW5jZW9mIGUpfSksSGY9VmZ8fCF5cihmdW5jdGlvbih0KXtDZi5hbGwodCkuY2F0Y2goZnVuY3Rpb24oKXt9KX0pLFhmPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiEoIWcodCl8fFwiZnVuY3Rpb25cIiE9dHlwZW9mKGU9dC50aGVuKSkmJmV9LFlmPWZ1bmN0aW9uKHQsZSxyKXtpZighZS5ub3RpZmllZCl7ZS5ub3RpZmllZD0hMDt2YXIgbj1lLnJlYWN0aW9ucztSZihmdW5jdGlvbigpe2Zvcih2YXIgbz1lLnZhbHVlLGk9MT09ZS5zdGF0ZSxhPTA7bi5sZW5ndGg+YTspe3ZhciB1LHMsYyxmPW5bYSsrXSxsPWk/Zi5vazpmLmZhaWwsaD1mLnJlc29sdmUscD1mLnJlamVjdCxkPWYuZG9tYWluO3RyeXtsPyhpfHwoMj09PWUucmVqZWN0aW9uJiZ0bCh0LGUpLGUucmVqZWN0aW9uPTEpLCEwPT09bD91PW86KGQmJmQuZW50ZXIoKSx1PWwobyksZCYmKGQuZXhpdCgpLGM9ITApKSx1PT09Zi5wcm9taXNlP3AoRmYoXCJQcm9taXNlLWNoYWluIGN5Y2xlXCIpKToocz1YZih1KSk/cy5jYWxsKHUsaCxwKTpoKHUpKTpwKG8pfWNhdGNoKHQpe2QmJiFjJiZkLmV4aXQoKSxwKHQpfX1lLnJlYWN0aW9ucz1bXSxlLm5vdGlmaWVkPSExLHImJiFlLnJlamVjdGlvbiYmUWYodCxlKX0pfX0sSmY9ZnVuY3Rpb24odCxlLHIpe3ZhciBvLGk7R2Y/KChvPUJmLmNyZWF0ZUV2ZW50KFwiRXZlbnRcIikpLnByb21pc2U9ZSxvLnJlYXNvbj1yLG8uaW5pdEV2ZW50KHQsITEsITApLG4uZGlzcGF0Y2hFdmVudChvKSk6bz17cHJvbWlzZTplLHJlYXNvbjpyfSwoaT1uW1wib25cIit0XSk/aShvKTp0PT09JGYmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5jb25zb2xlO3ImJnIuZXJyb3ImJigxPT09YXJndW1lbnRzLmxlbmd0aD9yLmVycm9yKHQpOnIuZXJyb3IodCxlKSl9KFwiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uXCIscil9LFFmPWZ1bmN0aW9uKHQsZSl7a2YuY2FsbChuLGZ1bmN0aW9uKCl7dmFyIHIsbj1lLnZhbHVlO2lmKFpmKGUpJiYocj1UZihmdW5jdGlvbigpe0tmP0RmLmVtaXQoXCJ1bmhhbmRsZWRSZWplY3Rpb25cIixuLHQpOkpmKCRmLHQsbil9KSxlLnJlamVjdGlvbj1LZnx8WmYoZSk/MjoxLHIuZXJyb3IpKXRocm93IHIudmFsdWV9KX0sWmY9ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSx0bD1mdW5jdGlvbih0LGUpe2tmLmNhbGwobixmdW5jdGlvbigpe0tmP0RmLmVtaXQoXCJyZWplY3Rpb25IYW5kbGVkXCIsdCk6SmYoXCJyZWplY3Rpb25oYW5kbGVkXCIsdCxlLnZhbHVlKX0pfSxlbD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24obyl7dChlLHIsbyxuKX19LHJsPWZ1bmN0aW9uKHQsZSxyLG4pe2UuZG9uZXx8KGUuZG9uZT0hMCxuJiYoZT1uKSxlLnZhbHVlPXIsZS5zdGF0ZT0yLFlmKHQsZSwhMCkpfSxubD1mdW5jdGlvbiB0KGUscixuLG8pe2lmKCFyLmRvbmUpe3IuZG9uZT0hMCxvJiYocj1vKTt0cnl7aWYoZT09PW4pdGhyb3cgRmYoXCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZlwiKTt2YXIgaT1YZihuKTtpP1JmKGZ1bmN0aW9uKCl7dmFyIG89e2RvbmU6ITF9O3RyeXtpLmNhbGwobixlbCh0LGUsbyxyKSxlbChybCxlLG8scikpfWNhdGNoKHQpe3JsKGUsbyx0LHIpfX0pOihyLnZhbHVlPW4sci5zdGF0ZT0xLFlmKGUsciwhMSkpfWNhdGNoKHQpe3JsKGUse2RvbmU6ITF9LHQscil9fX07VmYmJihDZj1mdW5jdGlvbih0KXtfcih0aGlzLENmLFVmKSxRdCh0KSxFZi5jYWxsKHRoaXMpO3ZhciBlPU1mKHRoaXMpO3RyeXt0KGVsKG5sLHRoaXMsZSksZWwocmwsdGhpcyxlKSl9Y2F0Y2godCl7cmwodGhpcyxlLHQpfX0sKEVmPWZ1bmN0aW9uKHQpe19mKHRoaXMse3R5cGU6VWYsZG9uZTohMSxub3RpZmllZDohMSxwYXJlbnQ6ITEscmVhY3Rpb25zOltdLHJlamVjdGlvbjohMSxzdGF0ZTowLHZhbHVlOnZvaWQgMH0pfSkucHJvdG90eXBlPUZyKENmLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbih0LGUpe3ZhciByPU5mKHRoaXMpLG49emYoc24odGhpcyxDZikpO3JldHVybiBuLm9rPVwiZnVuY3Rpb25cIiE9dHlwZW9mIHR8fHQsbi5mYWlsPVwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUsbi5kb21haW49S2Y/RGYuZG9tYWluOnZvaWQgMCxyLnBhcmVudD0hMCxyLnJlYWN0aW9ucy5wdXNoKG4pLDAhPXIuc3RhdGUmJllmKHRoaXMsciwhMSksbi5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSx4Zj1mdW5jdGlvbigpe3ZhciB0PW5ldyBFZixlPU1mKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1lbChubCx0LGUpLHRoaXMucmVqZWN0PWVsKHJsLHQsZSl9LFBmLmY9emY9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1DZnx8dD09PUFmP25ldyB4Zih0KTpXZih0KX0sXCJmdW5jdGlvblwiPT10eXBlb2YgS2MmJihPZj1LYy5wcm90b3R5cGUudGhlbixldChLYy5wcm90b3R5cGUsXCJ0aGVuXCIsZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3JldHVybiBuZXcgQ2YoZnVuY3Rpb24odCxlKXtPZi5jYWxsKHIsdCxlKX0pLnRoZW4odCxlKX0se3Vuc2FmZTohMH0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHFmJiZrdCh7Z2xvYmFsOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOiEwfSx7ZmV0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIElmKENmLHFmLmFwcGx5KG4sYXJndW1lbnRzKSl9fSkpKSxrdCh7Z2xvYmFsOiEwLHdyYXA6ITAsZm9yY2VkOlZmfSx7UHJvbWlzZTpDZn0pLF9lKENmLFVmLCExKSxEcihVZiksQWY9b3QoVWYpLGt0KHt0YXJnZXQ6VWYsc3RhdDohMCxmb3JjZWQ6VmZ9LHtyZWplY3Q6ZnVuY3Rpb24odCl7dmFyIGU9emYodGhpcyk7cmV0dXJuIGUucmVqZWN0LmNhbGwodm9pZCAwLHQpLGUucHJvbWlzZX19KSxrdCh7dGFyZ2V0OlVmLHN0YXQ6ITAsZm9yY2VkOlZmfSx7cmVzb2x2ZTpmdW5jdGlvbih0KXtyZXR1cm4gSWYodGhpcyx0KX19KSxrdCh7dGFyZ2V0OlVmLHN0YXQ6ITAsZm9yY2VkOkhmfSx7YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj16ZihlKSxuPXIucmVzb2x2ZSxvPXIucmVqZWN0LGk9VGYoZnVuY3Rpb24oKXt2YXIgcj1RdChlLnJlc29sdmUpLGk9W10sYT0wLHU9MTtNcih0LGZ1bmN0aW9uKHQpe3ZhciBzPWErKyxjPSExO2kucHVzaCh2b2lkIDApLHUrKyxyLmNhbGwoZSx0KS50aGVuKGZ1bmN0aW9uKHQpe2N8fChjPSEwLGlbc109dCwtLXV8fG4oaSkpfSxvKX0pLC0tdXx8bihpKX0pO3JldHVybiBpLmVycm9yJiZvKGkudmFsdWUpLHIucHJvbWlzZX0scmFjZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9emYoZSksbj1yLnJlamVjdCxvPVRmKGZ1bmN0aW9uKCl7dmFyIG89UXQoZS5yZXNvbHZlKTtNcih0LGZ1bmN0aW9uKHQpe28uY2FsbChlLHQpLnRoZW4oci5yZXNvbHZlLG4pfSl9KTtyZXR1cm4gby5lcnJvciYmbihvLnZhbHVlKSxyLnByb21pc2V9fSksa3Qoe3RhcmdldDpcIlByb21pc2VcIixzdGF0OiEwfSx7YWxsU2V0dGxlZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9UGYuZihlKSxuPXIucmVzb2x2ZSxvPXIucmVqZWN0LGk9VGYoZnVuY3Rpb24oKXt2YXIgcj1RdChlLnJlc29sdmUpLG89W10saT0wLGE9MTtNcih0LGZ1bmN0aW9uKHQpe3ZhciB1PWkrKyxzPSExO28ucHVzaCh2b2lkIDApLGErKyxyLmNhbGwoZSx0KS50aGVuKGZ1bmN0aW9uKHQpe3N8fChzPSEwLG9bdV09e3N0YXR1czpcImZ1bGZpbGxlZFwiLHZhbHVlOnR9LC0tYXx8bihvKSl9LGZ1bmN0aW9uKHQpe3N8fChzPSEwLG9bdV09e3N0YXR1czpcInJlamVjdGVkXCIscmVhc29uOnR9LC0tYXx8bihvKSl9KX0pLC0tYXx8bihvKX0pO3JldHVybiBpLmVycm9yJiZvKGkudmFsdWUpLHIucHJvbWlzZX19KTt2YXIgb2w9ISFLYyYmbyhmdW5jdGlvbigpe0tjLnByb3RvdHlwZS5maW5hbGx5LmNhbGwoe3RoZW46ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbigpe30pfSk7a3Qoe3RhcmdldDpcIlByb21pc2VcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpvbH0se2ZpbmFsbHk6ZnVuY3Rpb24odCl7dmFyIGU9c24odGhpcyxvdChcIlByb21pc2VcIikpLHI9XCJmdW5jdGlvblwiPT10eXBlb2YgdDtyZXR1cm4gdGhpcy50aGVuKHI/ZnVuY3Rpb24ocil7cmV0dXJuIElmKGUsdCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KX06dCxyP2Z1bmN0aW9uKHIpe3JldHVybiBJZihlLHQoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IHJ9KX06dCl9fSksXCJmdW5jdGlvblwiIT10eXBlb2YgS2N8fEtjLnByb3RvdHlwZS5maW5hbGx5fHxldChLYy5wcm90b3R5cGUsXCJmaW5hbGx5XCIsb3QoXCJQcm9taXNlXCIpLnByb3RvdHlwZS5maW5hbGx5KTt2YXIgaWw9dHQuc2V0LGFsPXR0LmdldHRlckZvcihcIkFnZ3JlZ2F0ZUVycm9yXCIpLHVsPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztpZighKHIgaW5zdGFuY2VvZiB1bCkpcmV0dXJuIG5ldyB1bCh0LGUpO3FlJiYocj1xZShuZXcgRXJyb3IoZSksSWUocikpKTt2YXIgbj1bXTtyZXR1cm4gTXIodCxuLnB1c2gsbiksaT9pbChyLHtlcnJvcnM6bix0eXBlOlwiQWdncmVnYXRlRXJyb3JcIn0pOnIuZXJyb3JzPW4sdm9pZCAwIT09ZSYmSShyLFwibWVzc2FnZVwiLFN0cmluZyhlKSkscn07dWwucHJvdG90eXBlPUh0KEVycm9yLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6Yyg1LHVsKSxtZXNzYWdlOmMoNSxcIlwiKSxuYW1lOmMoNSxcIkFnZ3JlZ2F0ZUVycm9yXCIpfSksaSYmUC5mKHVsLnByb3RvdHlwZSxcImVycm9yc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWwodGhpcykuZXJyb3JzfSxjb25maWd1cmFibGU6ITB9KSxrdCh7Z2xvYmFsOiEwfSx7QWdncmVnYXRlRXJyb3I6dWx9KSxrdCh7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITB9LHt0cnk6ZnVuY3Rpb24odCl7dmFyIGU9UGYuZih0aGlzKSxyPVRmKHQpO3JldHVybihyLmVycm9yP2UucmVqZWN0OmUucmVzb2x2ZSkoci52YWx1ZSksZS5wcm9taXNlfX0pO3ZhciBzbD1cIk5vIG9uZSBwcm9taXNlIHJlc29sdmVkXCI7a3Qoe3RhcmdldDpcIlByb21pc2VcIixzdGF0OiEwfSx7YW55OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1QZi5mKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1UZihmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksaT1bXSxhPTAsdT0xLHM9ITE7TXIodCxmdW5jdGlvbih0KXt2YXIgYz1hKyssZj0hMTtpLnB1c2godm9pZCAwKSx1Kyssci5jYWxsKGUsdCkudGhlbihmdW5jdGlvbih0KXtmfHxzfHwocz0hMCxuKHQpKX0sZnVuY3Rpb24odCl7Znx8c3x8KGY9ITAsaVtjXT10LC0tdXx8byhuZXcob3QoXCJBZ2dyZWdhdGVFcnJvclwiKSkoaSxzbCkpKX0pfSksLS11fHxvKG5ldyhvdChcIkFnZ3JlZ2F0ZUVycm9yXCIpKShpLHNsKSl9KTtyZXR1cm4gaS5lcnJvciYmbyhpLnZhbHVlKSxyLnByb21pc2V9fSksZWUoXCJQcm9taXNlXCIsXCJmaW5hbGx5XCIpO3ZhciBjbD1cIlVSTFNlYXJjaFBhcmFtc1wiaW4gc2VsZixmbD1cIlN5bWJvbFwiaW4gc2VsZiYmXCJpdGVyYXRvclwiaW4gU3ltYm9sLGxsPVwiRmlsZVJlYWRlclwiaW4gc2VsZiYmXCJCbG9iXCJpbiBzZWxmJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGhsPVwiRm9ybURhdGFcImluIHNlbGYscGw9XCJBcnJheUJ1ZmZlclwiaW4gc2VsZjtpZihwbCl2YXIgZGw9W1wiW29iamVjdCBJbnQ4QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQ4QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XVwiLFwiW29iamVjdCBJbnQxNkFycmF5XVwiLFwiW29iamVjdCBVaW50MTZBcnJheV1cIixcIltvYmplY3QgSW50MzJBcnJheV1cIixcIltvYmplY3QgVWludDMyQXJyYXldXCIsXCJbb2JqZWN0IEZsb2F0MzJBcnJheV1cIixcIltvYmplY3QgRmxvYXQ2NEFycmF5XVwiXSx2bD1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKHQpe3JldHVybiB0JiZkbC5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSk+LTF9O2Z1bmN0aW9uIGdsKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0JiYodD1TdHJpbmcodCkpLC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH5dL2kudGVzdCh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWVcIik7cmV0dXJuIHQudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB5bCh0KXtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKSx0fWZ1bmN0aW9uIG1sKHQpe3ZhciBlPXtuZXh0OmZ1bmN0aW9uKCl7dmFyIGU9dC5zaGlmdCgpO3JldHVybntkb25lOnZvaWQgMD09PWUsdmFsdWU6ZX19fTtyZXR1cm4gZmwmJihlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZX0pLGV9ZnVuY3Rpb24gYmwodCl7dGhpcy5tYXA9e30sdCBpbnN0YW5jZW9mIGJsP3QuZm9yRWFjaChmdW5jdGlvbih0LGUpe3RoaXMuYXBwZW5kKGUsdCl9LHRoaXMpOkFycmF5LmlzQXJyYXkodCk/dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMuYXBwZW5kKHRbMF0sdFsxXSl9LHRoaXMpOnQmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7dGhpcy5hcHBlbmQoZSx0W2VdKX0sdGhpcyl9ZnVuY3Rpb24gd2wodCl7aWYodC5ib2R5VXNlZClyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFR5cGVFcnJvcihcIkFscmVhZHkgcmVhZFwiKSk7dC5ib2R5VXNlZD0hMH1mdW5jdGlvbiBTbCh0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxyKXt0Lm9ubG9hZD1mdW5jdGlvbigpe2UodC5yZXN1bHQpfSx0Lm9uZXJyb3I9ZnVuY3Rpb24oKXtyKHQuZXJyb3IpfX0pfWZ1bmN0aW9uIEVsKHQpe3ZhciBlPW5ldyBGaWxlUmVhZGVyLHI9U2woZSk7cmV0dXJuIGUucmVhZEFzQXJyYXlCdWZmZXIodCkscn1mdW5jdGlvbiB4bCh0KXtpZih0LnNsaWNlKXJldHVybiB0LnNsaWNlKDApO3ZhciBlPW5ldyBVaW50OEFycmF5KHQuYnl0ZUxlbmd0aCk7cmV0dXJuIGUuc2V0KG5ldyBVaW50OEFycmF5KHQpKSxlLmJ1ZmZlcn1mdW5jdGlvbiBBbCgpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKHQpe3ZhciBlO3RoaXMuX2JvZHlJbml0PXQsdD9cInN0cmluZ1wiPT10eXBlb2YgdD90aGlzLl9ib2R5VGV4dD10OmxsJiZCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpP3RoaXMuX2JvZHlCbG9iPXQ6aGwmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpP3RoaXMuX2JvZHlGb3JtRGF0YT10OmNsJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCk/dGhpcy5fYm9keVRleHQ9dC50b1N0cmluZygpOnBsJiZsbCYmKGU9dCkmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpPyh0aGlzLl9ib2R5QXJyYXlCdWZmZXI9eGwodC5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6cGwmJihBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KXx8dmwodCkpP3RoaXMuX2JvZHlBcnJheUJ1ZmZlcj14bCh0KTp0aGlzLl9ib2R5VGV4dD10PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KTp0aGlzLl9ib2R5VGV4dD1cIlwiLHRoaXMuaGVhZGVycy5nZXQoXCJjb250ZW50LXR5cGVcIil8fChcInN0cmluZ1wiPT10eXBlb2YgdD90aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsXCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThcIik6dGhpcy5fYm9keUJsb2ImJnRoaXMuX2JvZHlCbG9iLnR5cGU/dGhpcy5oZWFkZXJzLnNldChcImNvbnRlbnQtdHlwZVwiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOmNsJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCkmJnRoaXMuaGVhZGVycy5zZXQoXCJjb250ZW50LXR5cGVcIixcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04XCIpKX0sbGwmJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgdD13bCh0aGlzKTtpZih0KXJldHVybiB0O2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcihcImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYlwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/d2wodGhpcyl8fFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpOnRoaXMuYmxvYigpLnRoZW4oRWwpfSksdGhpcy50ZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9d2wodGhpcyk7aWYodClyZXR1cm4gdDtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bmV3IEZpbGVSZWFkZXIscj1TbChlKTtyZXR1cm4gZS5yZWFkQXNUZXh0KHQpLHJ9KHRoaXMuX2JvZHlCbG9iKTtpZih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShmdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IFVpbnQ4QXJyYXkodCkscj1uZXcgQXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoO24rKylyW25dPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtuXSk7cmV0dXJuIHIuam9pbihcIlwiKX0odGhpcy5fYm9keUFycmF5QnVmZmVyKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcihcImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgdGV4dFwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0saGwmJih0aGlzLmZvcm1EYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oamwpfSksdGhpcy5qc29uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSl9LHRoaXN9YmwucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbih0LGUpe3Q9Z2wodCksZT15bChlKTt2YXIgcj10aGlzLm1hcFt0XTt0aGlzLm1hcFt0XT1yP3IrXCIsIFwiK2U6ZX0sYmwucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5tYXBbZ2wodCldfSxibC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0PWdsKHQpLHRoaXMuaGFzKHQpP3RoaXMubWFwW3RdOm51bGx9LGJsLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KGdsKHQpKX0sYmwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LGUpe3RoaXMubWFwW2dsKHQpXT15bChlKX0sYmwucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdGhpcy5tYXApdGhpcy5tYXAuaGFzT3duUHJvcGVydHkocikmJnQuY2FsbChlLHRoaXMubWFwW3JdLHIsdGhpcyl9LGJsLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHIpe3QucHVzaChyKX0pLG1sKHQpfSxibC5wcm90b3R5cGUudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSxtbCh0KX0sYmwucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dC5wdXNoKFtyLGVdKX0pLG1sKHQpfSxmbCYmKGJsLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWJsLnByb3RvdHlwZS5lbnRyaWVzKTt2YXIgT2w9W1wiREVMRVRFXCIsXCJHRVRcIixcIkhFQURcIixcIk9QVElPTlNcIixcIlBPU1RcIixcIlBVVFwiXTtmdW5jdGlvbiBSbCh0LGUpe3ZhciByLG4sbz0oZT1lfHx7fSkuYm9keTtpZih0IGluc3RhbmNlb2YgUmwpe2lmKHQuYm9keVVzZWQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFscmVhZHkgcmVhZFwiKTt0aGlzLnVybD10LnVybCx0aGlzLmNyZWRlbnRpYWxzPXQuY3JlZGVudGlhbHMsZS5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBibCh0LmhlYWRlcnMpKSx0aGlzLm1ldGhvZD10Lm1ldGhvZCx0aGlzLm1vZGU9dC5tb2RlLHRoaXMuc2lnbmFsPXQuc2lnbmFsLG98fG51bGw9PXQuX2JvZHlJbml0fHwobz10Ll9ib2R5SW5pdCx0LmJvZHlVc2VkPSEwKX1lbHNlIHRoaXMudXJsPVN0cmluZyh0KTtpZih0aGlzLmNyZWRlbnRpYWxzPWUuY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fFwic2FtZS1vcmlnaW5cIiwhZS5oZWFkZXJzJiZ0aGlzLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IGJsKGUuaGVhZGVycykpLHRoaXMubWV0aG9kPShuPShyPWUubWV0aG9kfHx0aGlzLm1ldGhvZHx8XCJHRVRcIikudG9VcHBlckNhc2UoKSxPbC5pbmRleE9mKG4pPi0xP246ciksdGhpcy5tb2RlPWUubW9kZXx8dGhpcy5tb2RlfHxudWxsLHRoaXMuc2lnbmFsPWUuc2lnbmFsfHx0aGlzLnNpZ25hbCx0aGlzLnJlZmVycmVyPW51bGwsKFwiR0VUXCI9PT10aGlzLm1ldGhvZHx8XCJIRUFEXCI9PT10aGlzLm1ldGhvZCkmJm8pdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvZHkgbm90IGFsbG93ZWQgZm9yIEdFVCBvciBIRUFEIHJlcXVlc3RzXCIpO3RoaXMuX2luaXRCb2R5KG8pfWZ1bmN0aW9uIGpsKHQpe3ZhciBlPW5ldyBGb3JtRGF0YTtyZXR1cm4gdC50cmltKCkuc3BsaXQoXCImXCIpLmZvckVhY2goZnVuY3Rpb24odCl7aWYodCl7dmFyIHI9dC5zcGxpdChcIj1cIiksbj1yLnNoaWZ0KCkucmVwbGFjZSgvXFwrL2csXCIgXCIpLG89ci5qb2luKFwiPVwiKS5yZXBsYWNlKC9cXCsvZyxcIiBcIik7ZS5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KG4pLGRlY29kZVVSSUNvbXBvbmVudChvKSl9fSksZX1mdW5jdGlvbiBQbCh0LGUpe2V8fChlPXt9KSx0aGlzLnR5cGU9XCJkZWZhdWx0XCIsdGhpcy5zdGF0dXM9dm9pZCAwPT09ZS5zdGF0dXM/MjAwOmUuc3RhdHVzLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwLHRoaXMuc3RhdHVzVGV4dD1cInN0YXR1c1RleHRcImluIGU/ZS5zdGF0dXNUZXh0OlwiT0tcIix0aGlzLmhlYWRlcnM9bmV3IGJsKGUuaGVhZGVycyksdGhpcy51cmw9ZS51cmx8fFwiXCIsdGhpcy5faW5pdEJvZHkodCl9UmwucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSbCh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9LEFsLmNhbGwoUmwucHJvdG90eXBlKSxBbC5jYWxsKFBsLnByb3RvdHlwZSksUGwucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQbCh0aGlzLl9ib2R5SW5pdCx7c3RhdHVzOnRoaXMuc3RhdHVzLHN0YXR1c1RleHQ6dGhpcy5zdGF0dXNUZXh0LGhlYWRlcnM6bmV3IGJsKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFBsLmVycm9yPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFBsKG51bGwse3N0YXR1czowLHN0YXR1c1RleHQ6XCJcIn0pO3JldHVybiB0LnR5cGU9XCJlcnJvclwiLHR9O3ZhciBJbD1bMzAxLDMwMiwzMDMsMzA3LDMwOF07UGwucmVkaXJlY3Q9ZnVuY3Rpb24odCxlKXtpZigtMT09PUlsLmluZGV4T2YoZSkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJJbnZhbGlkIHN0YXR1cyBjb2RlXCIpO3JldHVybiBuZXcgUGwobnVsbCx7c3RhdHVzOmUsaGVhZGVyczp7bG9jYXRpb246dH19KX07dmFyIFRsPXNlbGYuRE9NRXhjZXB0aW9uO3RyeXtuZXcgVGx9Y2F0Y2godCl7KFRsPWZ1bmN0aW9uKHQsZSl7dGhpcy5tZXNzYWdlPXQsdGhpcy5uYW1lPWU7dmFyIHI9RXJyb3IodCk7dGhpcy5zdGFjaz1yLnN0YWNrfSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxUbC5wcm90b3R5cGUuY29uc3RydWN0b3I9VGx9ZnVuY3Rpb24ga2wodCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixuKXt2YXIgbz1uZXcgUmwodCxlKTtpZihvLnNpZ25hbCYmby5zaWduYWwuYWJvcnRlZClyZXR1cm4gbihuZXcgVGwoXCJBYm9ydGVkXCIsXCJBYm9ydEVycm9yXCIpKTt2YXIgaT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gYSgpe2kuYWJvcnQoKX1pLm9ubG9hZD1mdW5jdGlvbigpe3ZhciB0LGUsbj17c3RhdHVzOmkuc3RhdHVzLHN0YXR1c1RleHQ6aS5zdGF0dXNUZXh0LGhlYWRlcnM6KHQ9aS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8XCJcIixlPW5ldyBibCx0LnJlcGxhY2UoL1xccj9cXG5bXFx0IF0rL2csXCIgXCIpLnNwbGl0KC9cXHI/XFxuLykuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj10LnNwbGl0KFwiOlwiKSxuPXIuc2hpZnQoKS50cmltKCk7aWYobil7dmFyIG89ci5qb2luKFwiOlwiKS50cmltKCk7ZS5hcHBlbmQobixvKX19KSxlKX07bi51cmw9XCJyZXNwb25zZVVSTFwiaW4gaT9pLnJlc3BvbnNlVVJMOm4uaGVhZGVycy5nZXQoXCJYLVJlcXVlc3QtVVJMXCIpLHIobmV3IFBsKFwicmVzcG9uc2VcImluIGk/aS5yZXNwb25zZTppLnJlc3BvbnNlVGV4dCxuKSl9LGkub25lcnJvcj1mdW5jdGlvbigpe24obmV3IFR5cGVFcnJvcihcIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWRcIikpfSxpLm9udGltZW91dD1mdW5jdGlvbigpe24obmV3IFR5cGVFcnJvcihcIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWRcIikpfSxpLm9uYWJvcnQ9ZnVuY3Rpb24oKXtuKG5ldyBUbChcIkFib3J0ZWRcIixcIkFib3J0RXJyb3JcIikpfSxpLm9wZW4oby5tZXRob2Qsby51cmwsITApLFwiaW5jbHVkZVwiPT09by5jcmVkZW50aWFscz9pLndpdGhDcmVkZW50aWFscz0hMDpcIm9taXRcIj09PW8uY3JlZGVudGlhbHMmJihpLndpdGhDcmVkZW50aWFscz0hMSksXCJyZXNwb25zZVR5cGVcImluIGkmJmxsJiYoaS5yZXNwb25zZVR5cGU9XCJibG9iXCIpLG8uaGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7aS5zZXRSZXF1ZXN0SGVhZGVyKGUsdCl9KSxvLnNpZ25hbCYmKG8uc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLGEpLGkub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWkucmVhZHlTdGF0ZSYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsYSl9KSxpLnNlbmQodm9pZCAwPT09by5fYm9keUluaXQ/bnVsbDpvLl9ib2R5SW5pdCl9KX1rbC5wb2x5ZmlsbD0hMCxzZWxmLmZldGNofHwoc2VsZi5mZXRjaD1rbCxzZWxmLkhlYWRlcnM9Ymwsc2VsZi5SZXF1ZXN0PVJsLHNlbGYuUmVzcG9uc2U9UGwpO3ZhciBMbD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLFVsPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTWw9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtmdW5jdGlvbiBfbCh0KXtpZihudWxsPT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZFwiKTtyZXR1cm4gT2JqZWN0KHQpfXZhciBObD1mdW5jdGlvbigpe3RyeXtpZighT2JqZWN0LmFzc2lnbilyZXR1cm4hMTt2YXIgdD1uZXcgU3RyaW5nKFwiYWJjXCIpO2lmKHRbNV09XCJkZVwiLFwiNVwiPT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModClbMF0pcmV0dXJuITE7Zm9yKHZhciBlPXt9LHI9MDtyPDEwO3IrKyllW1wiX1wiK1N0cmluZy5mcm9tQ2hhckNvZGUocildPXI7aWYoXCIwMTIzNDU2Nzg5XCIhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KS5qb2luKFwiXCIpKXJldHVybiExO3ZhciBuPXt9O3JldHVyblwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIi5zcGxpdChcIlwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF09dH0pLFwiYWJjZGVmZ2hpamtsbW5vcHFyc3RcIj09PU9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sbikpLmpvaW4oXCJcIil9Y2F0Y2godCl7cmV0dXJuITF9fSgpP09iamVjdC5hc3NpZ246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixvPV9sKHQpLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXtmb3IodmFyIGEgaW4gcj1PYmplY3QoYXJndW1lbnRzW2ldKSlVbC5jYWxsKHIsYSkmJihvW2FdPXJbYV0pO2lmKExsKXtuPUxsKHIpO2Zvcih2YXIgdT0wO3U8bi5sZW5ndGg7dSsrKU1sLmNhbGwocixuW3VdKSYmKG9bblt1XV09cltuW3VdXSl9fXJldHVybiBvfTtPYmplY3QuYXNzaWduPU5sfSgpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==