@byteplus/veplayer 1.18.0-rc.9 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +161 -0
- package/index.min.js +2 -2
- package/lite.cjs +2 -2
- package/lite.esm.mjs +2 -2
- package/lite.min.js +2 -2
- package/package.json +1 -1
- package/plugin/modules/DashAbralgo.mjs +1 -1
- package/plugin/modules/XGVideo.mjs +1 -1
- package/plugin/modules/danmuMask.mjs +1 -1
- package/plugin/modules/danmujs.mjs +1 -1
- package/plugin/modules/dash.mjs +1 -1
- package/plugin/modules/flv.mjs +1 -1
- package/plugin/modules/hls.mjs +1 -1
- package/plugin/modules/hlsEncrypt.mjs +1 -1
- package/plugin/modules/hlsjs.mjs +1 -1
- package/plugin/modules/hlsjsPro.mjs +1 -1
- package/plugin/modules/mp4Encrypt.mjs +1 -1
- package/plugin/modules/preloader.mjs +1 -1
- package/plugin/modules/streamprobe.mjs +1 -1
- package/plugin/modules/vestrategy.mjs +1 -1
- package/plugin/modules/vestrategy_adapt_range.mjs +1 -1
- package/plugin/modules/vestrategy_h265.mjs +1 -1
- package/plugin/modules/vestrategy_preload.mjs +1 -1
package/plugin/modules/dash.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
// @byteplus/veplayer@1.18.0
|
|
1
|
+
// @byteplus/veplayer@1.18.0 Built @9/1/2026, 4:36:00 PM
|
|
2
2
|
function _arrayLikeToArray$5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _arrayWithHoles$1(e){if(Array.isArray(e))return e}function _arrayWithoutHoles$3(e){if(Array.isArray(e))return _arrayLikeToArray$5(e)}function _assertThisInitialized$5(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep$4(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$4(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$4(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$4(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _callSuper$2(e,t,n){return t=_getPrototypeOf$5(t),_possibleConstructorReturn$5(e,_isNativeReflectConstruct$5()?Reflect.construct(t,n||[],_getPrototypeOf$5(e).constructor):t.apply(e,n))}function _classCallCheck$8(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$8(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$8(r.key),r)}}function _createClass$8(e,t,n){return t&&_defineProperties$8(e.prototype,t),n&&_defineProperties$8(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _createForOfIteratorHelper$3(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$5(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _defineProperty$7(e,t,n){return(t=_toPropertyKey$8(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _getPrototypeOf$5(e){return(_getPrototypeOf$5=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits$5(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$5(e,t)}function _isNativeReflectConstruct$5(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct$5=function(){return!!e})()}function _iterableToArray$3(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterableToArrayLimit$1(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],d=!0,U=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);d=!0);}catch(e){U=!0,i=e}finally{try{if(!d&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(U)throw i}}return l}}function _nonIterableRest$1(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableSpread$3(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ownKeys$7(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$7(Object(n),!0).forEach((function(t){_defineProperty$7(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$7(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _objectWithoutProperties$4(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$4(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _objectWithoutPropertiesLoose$4(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function _possibleConstructorReturn$5(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$5(e)}function _regeneratorRuntime$4(){_regeneratorRuntime$4=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function U(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{U({},"")}catch(e){U=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:J(e,n,l)}),o}function F(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var s="suspendedStart",Q="suspendedYield",u="executing",R="completed",B={};function h(){}function p(){}function S(){}var V={};U(V,o,(function(){return this}));var f=Object.getPrototypeOf,y=f&&f(f(v([])));y&&y!==n&&r.call(y,o)&&(V=y);var m=S.prototype=h.prototype=Object.create(V);function E(e){["next","throw","return"].forEach((function(t){U(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=F(e[i],e,a);if("throw"!==d.type){var U=d.arg,c=U.value;return c&&"object"==typeof c&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(c).then((function(e){U.value=e,o(U)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function J(t,n,r){var i=s;return function(a,o){if(i===u)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=b(l,r);if(d){if(d===B)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===s)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=u;var U=F(t,n,r);if("normal"===U.type){if(i=r.done?R:Q,U.arg===B)continue;return{value:U.arg,done:r.done}}"throw"===U.type&&(i=R,r.method="throw",r.arg=U.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),B;var a=F(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,B;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,B):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,B)}function W(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function v(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return p.prototype=S,i(m,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:p,configurable:!0}),p.displayName=U(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,U(e,d,"GeneratorFunction")),e.prototype=Object.create(m),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),U(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(c(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(m),U(m,d,"Generator"),U(m,o,(function(){return this})),U(m,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=v,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(k),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),U=r.call(o,"finallyLoc");if(d&&U){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!U)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,B):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),B},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),B}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:v(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),B}},t}function _setPrototypeOf$5(e,t){return(_setPrototypeOf$5=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _slicedToArray$1(e,t){return _arrayWithHoles$1(e)||_iterableToArrayLimit$1(e,t)||_unsupportedIterableToArray$5(e,t)||_nonIterableRest$1()}function _toConsumableArray$3(e){return _arrayWithoutHoles$3(e)||_iterableToArray$3(e)||_unsupportedIterableToArray$5(e)||_nonIterableSpread$3()}function _toPrimitive$8(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$8(e){var t=_toPrimitive$8(e,"string");return"symbol"==typeof t?t:t+""}function _typeof$4(e){return(_typeof$4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _unsupportedIterableToArray$5(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$5(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$5(e,t):void 0}}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var check=function(e){return e&&e.Math==Math&&e},global$C=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof commonjsGlobal&&commonjsGlobal)||function(){return this}()||Function("return this")(),objectGetOwnPropertyDescriptor={},fails$H=function(e){try{return!!e()}catch(e){return!0}},fails$G=fails$H,descriptors=!fails$G((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),fails$F=fails$H,functionBindNative=!fails$F((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),NATIVE_BIND$3=functionBindNative,call$y=Function.prototype.call,functionCall=NATIVE_BIND$3?call$y.bind(call$y):function(){return call$y.apply(call$y,arguments)},objectPropertyIsEnumerable={},$propertyIsEnumerable$1={}.propertyIsEnumerable,getOwnPropertyDescriptor$5=Object.getOwnPropertyDescriptor,NASHORN_BUG=getOwnPropertyDescriptor$5&&!$propertyIsEnumerable$1.call({1:2},1);objectPropertyIsEnumerable.f=NASHORN_BUG?function(e){var t=getOwnPropertyDescriptor$5(this,e);return!!t&&t.enumerable}:$propertyIsEnumerable$1;var match,version$2,createPropertyDescriptor$6=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},NATIVE_BIND$2=functionBindNative,FunctionPrototype$3=Function.prototype,call$x=FunctionPrototype$3.call,uncurryThisWithBind=NATIVE_BIND$2&&FunctionPrototype$3.bind.bind(call$x,call$x),functionUncurryThis=NATIVE_BIND$2?uncurryThisWithBind:function(e){return function(){return call$x.apply(e,arguments)}},uncurryThis$G=functionUncurryThis,toString$g=uncurryThis$G({}.toString),stringSlice$8=uncurryThis$G("".slice),classofRaw$2=function(e){return stringSlice$8(toString$g(e),8,-1)},uncurryThis$F=functionUncurryThis,fails$E=fails$H,classof$g=classofRaw$2,$Object$4=Object,split$3=uncurryThis$F("".split),indexedObject=fails$E((function(){return!$Object$4("z").propertyIsEnumerable(0)}))?function(e){return"String"==classof$g(e)?split$3(e,""):$Object$4(e)}:$Object$4,isNullOrUndefined$a=function(e){return null==e},isNullOrUndefined$9=isNullOrUndefined$a,$TypeError$l=TypeError,requireObjectCoercible$a=function(e){if(isNullOrUndefined$9(e))throw $TypeError$l("Can't call method on "+e);return e},IndexedObject$4=indexedObject,requireObjectCoercible$9=requireObjectCoercible$a,toIndexedObject$b=function(e){return IndexedObject$4(requireObjectCoercible$9(e))},documentAll$2="object"==typeof document&&document.all,IS_HTMLDDA=void 0===documentAll$2&&void 0!==documentAll$2,documentAll_1={all:documentAll$2,IS_HTMLDDA:IS_HTMLDDA},$documentAll$1=documentAll_1,documentAll$1=$documentAll$1.all,isCallable$r=$documentAll$1.IS_HTMLDDA?function(e){return"function"==typeof e||e===documentAll$1}:function(e){return"function"==typeof e},isCallable$q=isCallable$r,$documentAll=documentAll_1,documentAll=$documentAll.all,isObject$p=$documentAll.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:isCallable$q(e)||e===documentAll}:function(e){return"object"==typeof e?null!==e:isCallable$q(e)},global$B=global$C,isCallable$p=isCallable$r,aFunction=function(e){return isCallable$p(e)?e:void 0},getBuiltIn$c=function(e,t){return arguments.length<2?aFunction(global$B[e]):global$B[e]&&global$B[e][t]},uncurryThis$E=functionUncurryThis,objectIsPrototypeOf=uncurryThis$E({}.isPrototypeOf),getBuiltIn$b=getBuiltIn$c,engineUserAgent=getBuiltIn$b("navigator","userAgent")||"",global$A=global$C,userAgent$5=engineUserAgent,process$4=global$A.process,Deno$1=global$A.Deno,versions=process$4&&process$4.versions||Deno$1&&Deno$1.version,v8=versions&&versions.v8;v8&&(version$2=(match=v8.split("."))[0]>0&&match[0]<4?1:+(match[0]+match[1])),!version$2&&userAgent$5&&(!(match=userAgent$5.match(/Edge\/(\d+)/))||match[1]>=74)&&(match=userAgent$5.match(/Chrome\/(\d+)/))&&(version$2=+match[1]);var engineV8Version=version$2,V8_VERSION$3=engineV8Version,fails$D=fails$H,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$D((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&V8_VERSION$3&&V8_VERSION$3<41})),NATIVE_SYMBOL$1=symbolConstructorDetection,useSymbolAsUid=NATIVE_SYMBOL$1&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,getBuiltIn$a=getBuiltIn$c,isCallable$o=isCallable$r,isPrototypeOf$6=objectIsPrototypeOf,USE_SYMBOL_AS_UID$1=useSymbolAsUid,$Object$3=Object,isSymbol$4=USE_SYMBOL_AS_UID$1?function(e){return"symbol"==typeof e}:function(e){var t=getBuiltIn$a("Symbol");return isCallable$o(t)&&isPrototypeOf$6(t.prototype,$Object$3(e))},$String$4=String,tryToString$6=function(e){try{return $String$4(e)}catch(e){return"Object"}},isCallable$n=isCallable$r,tryToString$5=tryToString$6,$TypeError$k=TypeError,aCallable$h=function(e){if(isCallable$n(e))return e;throw $TypeError$k(tryToString$5(e)+" is not a function")},aCallable$g=aCallable$h,isNullOrUndefined$8=isNullOrUndefined$a,getMethod$7=function(e,t){var n=e[t];return isNullOrUndefined$8(n)?void 0:aCallable$g(n)},call$w=functionCall,isCallable$m=isCallable$r,isObject$o=isObject$p,$TypeError$j=TypeError,ordinaryToPrimitive$1=function(e,t){var n,r;if("string"===t&&isCallable$m(n=e.toString)&&!isObject$o(r=call$w(n,e)))return r;if(isCallable$m(n=e.valueOf)&&!isObject$o(r=call$w(n,e)))return r;if("string"!==t&&isCallable$m(n=e.toString)&&!isObject$o(r=call$w(n,e)))return r;throw $TypeError$j("Can't convert object to primitive value")},shared$4={exports:{}},isPure=!1,global$z=global$C,defineProperty$c=Object.defineProperty,defineGlobalProperty$3=function(e,t){try{defineProperty$c(global$z,e,{value:t,configurable:!0,writable:!0})}catch(n){global$z[e]=t}return t},global$y=global$C,defineGlobalProperty$2=defineGlobalProperty$3,SHARED="__core-js_shared__",store$3=global$y[SHARED]||defineGlobalProperty$2(SHARED,{}),sharedStore=store$3,store$2=sharedStore;(shared$4.exports=function(e,t){return store$2[e]||(store$2[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.26.1",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedExports=shared$4.exports,requireObjectCoercible$8=requireObjectCoercible$a,$Object$2=Object,toObject$e=function(e){return $Object$2(requireObjectCoercible$8(e))},uncurryThis$D=functionUncurryThis,toObject$d=toObject$e,hasOwnProperty$2=uncurryThis$D({}.hasOwnProperty),hasOwnProperty_1=Object.hasOwn||function(e,t){return hasOwnProperty$2(toObject$d(e),t)},uncurryThis$C=functionUncurryThis,id$1=0,postfix=Math.random(),toString$f=uncurryThis$C(1..toString),uid$4=function(e){return"Symbol("+(void 0===e?"":e)+")_"+toString$f(++id$1+postfix,36)},global$x=global$C,shared$3=sharedExports,hasOwn$g=hasOwnProperty_1,uid$3=uid$4,NATIVE_SYMBOL=symbolConstructorDetection,USE_SYMBOL_AS_UID=useSymbolAsUid,WellKnownSymbolsStore=shared$3("wks"),Symbol$1=global$x.Symbol,symbolFor=Symbol$1&&Symbol$1.for,createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$1:Symbol$1&&Symbol$1.withoutSetter||uid$3,wellKnownSymbol$q=function(e){if(!hasOwn$g(WellKnownSymbolsStore,e)||!NATIVE_SYMBOL&&"string"!=typeof WellKnownSymbolsStore[e]){var t="Symbol."+e;NATIVE_SYMBOL&&hasOwn$g(Symbol$1,e)?WellKnownSymbolsStore[e]=Symbol$1[e]:WellKnownSymbolsStore[e]=USE_SYMBOL_AS_UID&&symbolFor?symbolFor(t):createWellKnownSymbol(t)}return WellKnownSymbolsStore[e]},call$v=functionCall,isObject$n=isObject$p,isSymbol$3=isSymbol$4,getMethod$6=getMethod$7,ordinaryToPrimitive=ordinaryToPrimitive$1,wellKnownSymbol$p=wellKnownSymbol$q,$TypeError$i=TypeError,TO_PRIMITIVE=wellKnownSymbol$p("toPrimitive"),toPrimitive$3=function(e,t){if(!isObject$n(e)||isSymbol$3(e))return e;var n,r=getMethod$6(e,TO_PRIMITIVE);if(r){if(void 0===t&&(t="default"),n=call$v(r,e,t),!isObject$n(n)||isSymbol$3(n))return n;throw $TypeError$i("Can't convert object to primitive value")}return void 0===t&&(t="number"),ordinaryToPrimitive(e,t)},toPrimitive$2=toPrimitive$3,isSymbol$2=isSymbol$4,toPropertyKey$4=function(e){var t=toPrimitive$2(e,"string");return isSymbol$2(t)?t:t+""},global$w=global$C,isObject$m=isObject$p,document$3=global$w.document,EXISTS$1=isObject$m(document$3)&&isObject$m(document$3.createElement),documentCreateElement$2=function(e){return EXISTS$1?document$3.createElement(e):{}},DESCRIPTORS$k=descriptors,fails$C=fails$H,createElement$1=documentCreateElement$2,ie8DomDefine=!DESCRIPTORS$k&&!fails$C((function(){return 7!=Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a})),DESCRIPTORS$j=descriptors,call$u=functionCall,propertyIsEnumerableModule$1=objectPropertyIsEnumerable,createPropertyDescriptor$5=createPropertyDescriptor$6,toIndexedObject$a=toIndexedObject$b,toPropertyKey$3=toPropertyKey$4,hasOwn$f=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$j?$getOwnPropertyDescriptor$1:function(e,t){if(e=toIndexedObject$a(e),t=toPropertyKey$3(t),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor$1(e,t)}catch(e){}if(hasOwn$f(e,t))return createPropertyDescriptor$5(!call$u(propertyIsEnumerableModule$1.f,e,t),e[t])};var objectDefineProperty={},DESCRIPTORS$i=descriptors,fails$B=fails$H,v8PrototypeDefineBug=DESCRIPTORS$i&&fails$B((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),isObject$l=isObject$p,$String$3=String,$TypeError$h=TypeError,anObject$w=function(e){if(isObject$l(e))return e;throw $TypeError$h($String$3(e)+" is not an object")},DESCRIPTORS$h=descriptors,IE8_DOM_DEFINE=ie8DomDefine,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$v=anObject$w,toPropertyKey$2=toPropertyKey$4,$TypeError$g=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$1="configurable",WRITABLE="writable";objectDefineProperty.f=DESCRIPTORS$h?V8_PROTOTYPE_DEFINE_BUG$1?function(e,t,n){if(anObject$v(e),t=toPropertyKey$2(t),anObject$v(n),"function"==typeof e&&"prototype"===t&&"value"in n&&WRITABLE in n&&!n[WRITABLE]){var r=$getOwnPropertyDescriptor(e,t);r&&r[WRITABLE]&&(e[t]=n.value,n={configurable:CONFIGURABLE$1 in n?n[CONFIGURABLE$1]:r[CONFIGURABLE$1],enumerable:ENUMERABLE in n?n[ENUMERABLE]:r[ENUMERABLE],writable:!1})}return $defineProperty(e,t,n)}:$defineProperty:function(e,t,n){if(anObject$v(e),t=toPropertyKey$2(t),anObject$v(n),IE8_DOM_DEFINE)try{return $defineProperty(e,t,n)}catch(e){}if("get"in n||"set"in n)throw $TypeError$g("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var DESCRIPTORS$g=descriptors,definePropertyModule$6=objectDefineProperty,createPropertyDescriptor$4=createPropertyDescriptor$6,createNonEnumerableProperty$9=DESCRIPTORS$g?function(e,t,n){return definePropertyModule$6.f(e,t,createPropertyDescriptor$4(1,n))}:function(e,t,n){return e[t]=n,e},makeBuiltIn$3={exports:{}},DESCRIPTORS$f=descriptors,hasOwn$e=hasOwnProperty_1,FunctionPrototype$2=Function.prototype,getDescriptor=DESCRIPTORS$f&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$e(FunctionPrototype$2,"name"),PROPER=EXISTS&&"something"===function(){}.name,CONFIGURABLE=EXISTS&&(!DESCRIPTORS$f||DESCRIPTORS$f&&getDescriptor(FunctionPrototype$2,"name").configurable),functionName={EXISTS:EXISTS,PROPER:PROPER,CONFIGURABLE:CONFIGURABLE},uncurryThis$B=functionUncurryThis,isCallable$l=isCallable$r,store$1=sharedStore,functionToString$2=uncurryThis$B(Function.toString);isCallable$l(store$1.inspectSource)||(store$1.inspectSource=function(e){return functionToString$2(e)});var set$2,get$1,has,inspectSource$3=store$1.inspectSource,global$v=global$C,isCallable$k=isCallable$r,WeakMap$1=global$v.WeakMap,weakMapBasicDetection=isCallable$k(WeakMap$1)&&/native code/.test(String(WeakMap$1)),shared$2=sharedExports,uid$2=uid$4,keys$3=shared$2("keys"),sharedKey$3=function(e){return keys$3[e]||(keys$3[e]=uid$2(e))},hiddenKeys$5={},NATIVE_WEAK_MAP=weakMapBasicDetection,global$u=global$C,isObject$k=isObject$p,createNonEnumerableProperty$8=createNonEnumerableProperty$9,hasOwn$d=hasOwnProperty_1,shared$1=sharedStore,sharedKey$2=sharedKey$3,hiddenKeys$4=hiddenKeys$5,OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError$6=global$u.TypeError,WeakMap=global$u.WeakMap,enforce=function(e){return has(e)?get$1(e):set$2(e,{})},getterFor=function(e){return function(t){var n;if(!isObject$k(t)||(n=get$1(t)).type!==e)throw TypeError$6("Incompatible receiver, "+e+" required");return n}};if(NATIVE_WEAK_MAP||shared$1.state){var store=shared$1.state||(shared$1.state=new WeakMap);store.get=store.get,store.has=store.has,store.set=store.set,set$2=function(e,t){if(store.has(e))throw TypeError$6(OBJECT_ALREADY_INITIALIZED);return t.facade=e,store.set(e,t),t},get$1=function(e){return store.get(e)||{}},has=function(e){return store.has(e)}}else{var STATE=sharedKey$2("state");hiddenKeys$4[STATE]=!0,set$2=function(e,t){if(hasOwn$d(e,STATE))throw TypeError$6(OBJECT_ALREADY_INITIALIZED);return t.facade=e,createNonEnumerableProperty$8(e,STATE,t),t},get$1=function(e){return hasOwn$d(e,STATE)?e[STATE]:{}},has=function(e){return hasOwn$d(e,STATE)}}var internalState={set:set$2,get:get$1,has:has,enforce:enforce,getterFor:getterFor},fails$A=fails$H,isCallable$j=isCallable$r,hasOwn$c=hasOwnProperty_1,DESCRIPTORS$e=descriptors,CONFIGURABLE_FUNCTION_NAME$2=functionName.CONFIGURABLE,inspectSource$2=inspectSource$3,InternalStateModule$9=internalState,enforceInternalState$2=InternalStateModule$9.enforce,getInternalState$6=InternalStateModule$9.get,defineProperty$b=Object.defineProperty,CONFIGURABLE_LENGTH=DESCRIPTORS$e&&!fails$A((function(){return 8!==defineProperty$b((function(){}),"length",{value:8}).length})),TEMPLATE=String(String).split("String"),makeBuiltIn$2=makeBuiltIn$3.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!hasOwn$c(e,"name")||CONFIGURABLE_FUNCTION_NAME$2&&e.name!==t)&&(DESCRIPTORS$e?defineProperty$b(e,"name",{value:t,configurable:!0}):e.name=t),CONFIGURABLE_LENGTH&&n&&hasOwn$c(n,"arity")&&e.length!==n.arity&&defineProperty$b(e,"length",{value:n.arity});try{n&&hasOwn$c(n,"constructor")&&n.constructor?DESCRIPTORS$e&&defineProperty$b(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var r=enforceInternalState$2(e);return hasOwn$c(r,"source")||(r.source=TEMPLATE.join("string"==typeof t?t:"")),e};Function.prototype.toString=makeBuiltIn$2((function(){return isCallable$j(this)&&getInternalState$6(this).source||inspectSource$2(this)}),"toString");var makeBuiltInExports=makeBuiltIn$3.exports,isCallable$i=isCallable$r,definePropertyModule$5=objectDefineProperty,makeBuiltIn$1=makeBuiltInExports,defineGlobalProperty$1=defineGlobalProperty$3,defineBuiltIn$f=function(e,t,n,r){r||(r={});var i=r.enumerable,a=void 0!==r.name?r.name:t;if(isCallable$i(n)&&makeBuiltIn$1(n,a,r),r.global)i?e[t]=n:defineGlobalProperty$1(t,n);else{try{r.unsafe?e[t]&&(i=!0):delete e[t]}catch(e){}i?e[t]=n:definePropertyModule$5.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e},objectGetOwnPropertyNames={},ceil=Math.ceil,floor$8=Math.floor,mathTrunc=Math.trunc||function(e){var t=+e;return(t>0?floor$8:ceil)(t)},trunc2=mathTrunc,toIntegerOrInfinity$b=function(e){var t=+e;return t!=t||0===t?0:trunc2(t)},toIntegerOrInfinity$a=toIntegerOrInfinity$b,max$4=Math.max,min$6=Math.min,toAbsoluteIndex$7=function(e,t){var n=toIntegerOrInfinity$a(e);return n<0?max$4(n+t,0):min$6(n,t)},toIntegerOrInfinity$9=toIntegerOrInfinity$b,min$5=Math.min,toLength$8=function(e){return e>0?min$5(toIntegerOrInfinity$9(e),9007199254740991):0},toLength$7=toLength$8,lengthOfArrayLike$g=function(e){return toLength$7(e.length)},toIndexedObject$9=toIndexedObject$b,toAbsoluteIndex$6=toAbsoluteIndex$7,lengthOfArrayLike$f=lengthOfArrayLike$g,createMethod$5=function(e){return function(t,n,r){var i,a=toIndexedObject$9(t),o=lengthOfArrayLike$f(a),l=toAbsoluteIndex$6(r,o);if(e&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},arrayIncludes={includes:createMethod$5(!0),indexOf:createMethod$5(!1)},uncurryThis$A=functionUncurryThis,hasOwn$b=hasOwnProperty_1,toIndexedObject$8=toIndexedObject$b,indexOf$1=arrayIncludes.indexOf,hiddenKeys$3=hiddenKeys$5,push$8=uncurryThis$A([].push),objectKeysInternal=function(e,t){var n,r=toIndexedObject$8(e),i=0,a=[];for(n in r)!hasOwn$b(hiddenKeys$3,n)&&hasOwn$b(r,n)&&push$8(a,n);for(;t.length>i;)hasOwn$b(r,n=t[i++])&&(~indexOf$1(a,n)||push$8(a,n));return a},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$2=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function(e){return internalObjectKeys$1(e,hiddenKeys$2)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$9=getBuiltIn$c,uncurryThis$z=functionUncurryThis,getOwnPropertyNamesModule$1=objectGetOwnPropertyNames,getOwnPropertySymbolsModule$1=objectGetOwnPropertySymbols,anObject$u=anObject$w,concat$2=uncurryThis$z([].concat),ownKeys$6=getBuiltIn$9("Reflect","ownKeys")||function(e){var t=getOwnPropertyNamesModule$1.f(anObject$u(e)),n=getOwnPropertySymbolsModule$1.f;return n?concat$2(t,n(e)):t},hasOwn$a=hasOwnProperty_1,ownKeys$5=ownKeys$6,getOwnPropertyDescriptorModule$1=objectGetOwnPropertyDescriptor,definePropertyModule$4=objectDefineProperty,copyConstructorProperties$1=function(e,t,n){for(var r=ownKeys$5(t),i=definePropertyModule$4.f,a=getOwnPropertyDescriptorModule$1.f,o=0;o<r.length;o++){var l=r[o];hasOwn$a(e,l)||n&&hasOwn$a(n,l)||i(e,l,a(t,l))}},fails$z=fails$H,isCallable$h=isCallable$r,replacement=/#|\.prototype\./,isForced$4=function(e,t){var n=data[normalize(e)];return n==POLYFILL||n!=NATIVE&&(isCallable$h(t)?fails$z(t):!!t)},normalize=isForced$4.normalize=function(e){return String(e).replace(replacement,".").toLowerCase()},data=isForced$4.data={},NATIVE=isForced$4.NATIVE="N",POLYFILL=isForced$4.POLYFILL="P",isForced_1=isForced$4,global$t=global$C,getOwnPropertyDescriptor$4=objectGetOwnPropertyDescriptor.f,createNonEnumerableProperty$7=createNonEnumerableProperty$9,defineBuiltIn$e=defineBuiltIn$f,defineGlobalProperty=defineGlobalProperty$3,copyConstructorProperties=copyConstructorProperties$1,isForced$3=isForced_1,_export=function(e,t){var n,r,i,a,o,l=e.target,d=e.global,U=e.stat;if(n=d?global$t:U?global$t[l]||defineGlobalProperty(l,{}):(global$t[l]||{}).prototype)for(r in t){if(a=t[r],i=e.dontCallGetSet?(o=getOwnPropertyDescriptor$4(n,r))&&o.value:n[r],!isForced$3(d?r:l+(U?".":"#")+r,e.forced)&&void 0!==i){if(typeof a==typeof i)continue;copyConstructorProperties(a,i)}(e.sham||i&&i.sham)&&createNonEnumerableProperty$7(a,"sham",!0),defineBuiltIn$e(n,r,a,e)}},classof$f=classofRaw$2,isArray$4=Array.isArray||function(e){return"Array"==classof$f(e)},$TypeError$f=TypeError,MAX_SAFE_INTEGER=9007199254740991,doesNotExceedSafeInteger$2=function(e){if(e>MAX_SAFE_INTEGER)throw $TypeError$f("Maximum allowed index exceeded");return e},toPropertyKey$1=toPropertyKey$4,definePropertyModule$3=objectDefineProperty,createPropertyDescriptor$3=createPropertyDescriptor$6,createProperty$5=function(e,t,n){var r=toPropertyKey$1(t);r in e?definePropertyModule$3.f(e,r,createPropertyDescriptor$3(0,n)):e[r]=n},wellKnownSymbol$o=wellKnownSymbol$q,TO_STRING_TAG$4=wellKnownSymbol$o("toStringTag"),test$1={};test$1[TO_STRING_TAG$4]="z";var toStringTagSupport="[object z]"===String(test$1),TO_STRING_TAG_SUPPORT$2=toStringTagSupport,isCallable$g=isCallable$r,classofRaw$1=classofRaw$2,wellKnownSymbol$n=wellKnownSymbol$q,TO_STRING_TAG$3=wellKnownSymbol$n("toStringTag"),$Object$1=Object,CORRECT_ARGUMENTS="Arguments"==classofRaw$1(function(){return arguments}()),tryGet=function(e,t){try{return e[t]}catch(e){}},classof$e=TO_STRING_TAG_SUPPORT$2?classofRaw$1:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=tryGet(t=$Object$1(e),TO_STRING_TAG$3))?n:CORRECT_ARGUMENTS?classofRaw$1(t):"Object"==(r=classofRaw$1(t))&&isCallable$g(t.callee)?"Arguments":r},uncurryThis$y=functionUncurryThis,fails$y=fails$H,isCallable$f=isCallable$r,classof$d=classof$e,getBuiltIn$8=getBuiltIn$c,inspectSource$1=inspectSource$3,noop$1=function(){},empty=[],construct=getBuiltIn$8("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec$4=uncurryThis$y(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.exec(noop$1),isConstructorModern=function(e){if(!isCallable$f(e))return!1;try{return construct(noop$1,empty,e),!0}catch(e){return!1}},isConstructorLegacy=function(e){if(!isCallable$f(e))return!1;switch(classof$d(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec$4(constructorRegExp,inspectSource$1(e))}catch(e){return!0}};isConstructorLegacy.sham=!0;var isConstructor$4=!construct||fails$y((function(){var e;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern((function(){e=!0}))||e}))?isConstructorLegacy:isConstructorModern,isArray$3=isArray$4,isConstructor$3=isConstructor$4,isObject$j=isObject$p,wellKnownSymbol$m=wellKnownSymbol$q,SPECIES$6=wellKnownSymbol$m("species"),$Array$4=Array,arraySpeciesConstructor$1=function(e){var t;return isArray$3(e)&&(t=e.constructor,(isConstructor$3(t)&&(t===$Array$4||isArray$3(t.prototype))||isObject$j(t)&&null===(t=t[SPECIES$6]))&&(t=void 0)),void 0===t?$Array$4:t},arraySpeciesConstructor=arraySpeciesConstructor$1,arraySpeciesCreate$3=function(e,t){return new(arraySpeciesConstructor(e))(0===t?0:t)},fails$x=fails$H,wellKnownSymbol$l=wellKnownSymbol$q,V8_VERSION$2=engineV8Version,SPECIES$5=wellKnownSymbol$l("species"),arrayMethodHasSpeciesSupport$5=function(e){return V8_VERSION$2>=51||!fails$x((function(){var t=[];return(t.constructor={})[SPECIES$5]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},$$K=_export,fails$w=fails$H,isArray$2=isArray$4,isObject$i=isObject$p,toObject$c=toObject$e,lengthOfArrayLike$e=lengthOfArrayLike$g,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$2,createProperty$4=createProperty$5,arraySpeciesCreate$2=arraySpeciesCreate$3,arrayMethodHasSpeciesSupport$4=arrayMethodHasSpeciesSupport$5,wellKnownSymbol$k=wellKnownSymbol$q,V8_VERSION$1=engineV8Version,IS_CONCAT_SPREADABLE=wellKnownSymbol$k("isConcatSpreadable"),IS_CONCAT_SPREADABLE_SUPPORT=V8_VERSION$1>=51||!fails$w((function(){var e=[];return e[IS_CONCAT_SPREADABLE]=!1,e.concat()[0]!==e})),SPECIES_SUPPORT=arrayMethodHasSpeciesSupport$4("concat"),isConcatSpreadable=function(e){if(!isObject$i(e))return!1;var t=e[IS_CONCAT_SPREADABLE];return void 0!==t?!!t:isArray$2(e)},FORCED$5=!IS_CONCAT_SPREADABLE_SUPPORT||!SPECIES_SUPPORT;$$K({target:"Array",proto:!0,arity:1,forced:FORCED$5},{concat:function(e){var t,n,r,i,a,o=toObject$c(this),l=arraySpeciesCreate$2(o,0),d=0;for(t=-1,r=arguments.length;t<r;t++)if(isConcatSpreadable(a=-1===t?o:arguments[t]))for(i=lengthOfArrayLike$e(a),doesNotExceedSafeInteger$1(d+i),n=0;n<i;n++,d++)n in a&&createProperty$4(l,d,a[n]);else doesNotExceedSafeInteger$1(d+1),createProperty$4(l,d++,a);return l.length=d,l}});var objectDefineProperties={},internalObjectKeys=objectKeysInternal,enumBugKeys$1=enumBugKeys$3,objectKeys$3=Object.keys||function(e){return internalObjectKeys(e,enumBugKeys$1)},DESCRIPTORS$d=descriptors,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$2=objectDefineProperty,anObject$t=anObject$w,toIndexedObject$7=toIndexedObject$b,objectKeys$2=objectKeys$3;objectDefineProperties.f=DESCRIPTORS$d&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(e,t){anObject$t(e);for(var n,r=toIndexedObject$7(t),i=objectKeys$2(t),a=i.length,o=0;a>o;)definePropertyModule$2.f(e,n=i[o++],r[n]);return e};var activeXDocument,getBuiltIn$7=getBuiltIn$c,html$2=getBuiltIn$7("document","documentElement"),anObject$s=anObject$w,definePropertiesModule=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys$1=hiddenKeys$5,html$1=html$2,documentCreateElement$1=documentCreateElement$2,sharedKey$1=sharedKey$3,GT=">",LT="<",PROTOTYPE$1="prototype",SCRIPT="script",IE_PROTO$1=sharedKey$1("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(e){return LT+SCRIPT+GT+e+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(e){e.write(scriptTag("")),e.close();var t=e.parentWindow.Object;return e=null,t},NullProtoObjectViaIFrame=function(){var e,t=documentCreateElement$1("iframe"),n="java"+SCRIPT+":";return t.style.display="none",html$1.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(scriptTag("document.F=Object")),e.close(),e.F},NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch(e){}NullProtoObject="undefined"!=typeof document?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var e=enumBugKeys.length;e--;)delete NullProtoObject[PROTOTYPE$1][enumBugKeys[e]];return NullProtoObject()};hiddenKeys$1[IE_PROTO$1]=!0;var objectCreate=Object.create||function(e,t){var n;return null!==e?(EmptyConstructor[PROTOTYPE$1]=anObject$s(e),n=new EmptyConstructor,EmptyConstructor[PROTOTYPE$1]=null,n[IE_PROTO$1]=e):n=NullProtoObject(),void 0===t?n:definePropertiesModule.f(n,t)},wellKnownSymbol$j=wellKnownSymbol$q,create$6=objectCreate,defineProperty$a=objectDefineProperty.f,UNSCOPABLES=wellKnownSymbol$j("unscopables"),ArrayPrototype$1=Array.prototype;null==ArrayPrototype$1[UNSCOPABLES]&&defineProperty$a(ArrayPrototype$1,UNSCOPABLES,{configurable:!0,value:create$6(null)});var addToUnscopables$4=function(e){ArrayPrototype$1[UNSCOPABLES][e]=!0},$$J=_export,$includes$1=arrayIncludes.includes,fails$v=fails$H,addToUnscopables$3=addToUnscopables$4,BROKEN_ON_SPARSE=fails$v((function(){return!Array(1).includes()}));$$J({target:"Array",proto:!0,forced:BROKEN_ON_SPARSE},{includes:function(e){return $includes$1(this,e,arguments.length>1?arguments[1]:void 0)}}),addToUnscopables$3("includes");var classofRaw=classofRaw$2,uncurryThis$x=functionUncurryThis,functionUncurryThisClause=function(e){if("Function"===classofRaw(e))return uncurryThis$x(e)},uncurryThis$w=functionUncurryThisClause,aCallable$f=aCallable$h,NATIVE_BIND$1=functionBindNative,bind$h=functionUncurryThisClause(functionUncurryThisClause.bind),functionBindContext=function(e,t){return aCallable$f(e),void 0===t?e:NATIVE_BIND$1?bind$h(e,t):function(){return e.apply(t,arguments)}},bind$g=functionBindContext,uncurryThis$v=functionUncurryThis,IndexedObject$3=indexedObject,toObject$b=toObject$e,lengthOfArrayLike$d=lengthOfArrayLike$g,arraySpeciesCreate$1=arraySpeciesCreate$3,push$7=uncurryThis$v([].push),createMethod$4=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,a=6==e,o=7==e,l=5==e||a;return function(d,U,c,F){for(var s,Q,u=toObject$b(d),R=IndexedObject$3(u),B=bind$g(U,c),h=lengthOfArrayLike$d(R),p=0,S=F||arraySpeciesCreate$1,V=t?S(d,h):n||o?S(d,0):void 0;h>p;p++)if((l||p in R)&&(Q=B(s=R[p],p,u),e))if(t)V[p]=Q;else if(Q)switch(e){case 3:return!0;case 5:return s;case 6:return p;case 2:push$7(V,s)}else switch(e){case 4:return!1;case 7:push$7(V,s)}return a?-1:r||i?i:V}},arrayIteration={forEach:createMethod$4(0),map:createMethod$4(1),filter:createMethod$4(2),some:createMethod$4(3),every:createMethod$4(4),find:createMethod$4(5),findIndex:createMethod$4(6),filterReject:createMethod$4(7)},$$I=_export,$map$1=arrayIteration.map,arrayMethodHasSpeciesSupport$3=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT$3=arrayMethodHasSpeciesSupport$3("map");$$I({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$3},{map:function(e){return $map$1(this,e,arguments.length>1?arguments[1]:void 0)}});var uncurryThis$u=functionUncurryThis,arraySlice$9=uncurryThis$u([].slice),$$H=_export,isArray$1=isArray$4,isConstructor$2=isConstructor$4,isObject$h=isObject$p,toAbsoluteIndex$5=toAbsoluteIndex$7,lengthOfArrayLike$c=lengthOfArrayLike$g,toIndexedObject$6=toIndexedObject$b,createProperty$3=createProperty$5,wellKnownSymbol$i=wellKnownSymbol$q,arrayMethodHasSpeciesSupport$2=arrayMethodHasSpeciesSupport$5,nativeSlice=arraySlice$9,HAS_SPECIES_SUPPORT$2=arrayMethodHasSpeciesSupport$2("slice"),SPECIES$4=wellKnownSymbol$i("species"),$Array$3=Array,max$3=Math.max;$$H({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$2},{slice:function(e,t){var n,r,i,a=toIndexedObject$6(this),o=lengthOfArrayLike$c(a),l=toAbsoluteIndex$5(e,o),d=toAbsoluteIndex$5(void 0===t?o:t,o);if(isArray$1(a)&&(n=a.constructor,(isConstructor$2(n)&&(n===$Array$3||isArray$1(n.prototype))||isObject$h(n)&&null===(n=n[SPECIES$4]))&&(n=void 0),n===$Array$3||void 0===n))return nativeSlice(a,l,d);for(r=new(void 0===n?$Array$3:n)(max$3(d-l,0)),i=0;l<d;l++,i++)l in a&&createProperty$3(r,i,a[l]);return r.length=i,r}});var DESCRIPTORS$c=descriptors,uncurryThis$t=functionUncurryThis,call$t=functionCall,fails$u=fails$H,objectKeys$1=objectKeys$3,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols,propertyIsEnumerableModule=objectPropertyIsEnumerable,toObject$a=toObject$e,IndexedObject$2=indexedObject,$assign=Object.assign,defineProperty$9=Object.defineProperty,concat$1=uncurryThis$t([].concat),objectAssign=!$assign||fails$u((function(){if(DESCRIPTORS$c&&1!==$assign({b:1},$assign(defineProperty$9({},"a",{enumerable:!0,get:function(){defineProperty$9(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=$assign({},e)[n]||objectKeys$1($assign({},t)).join("")!=r}))?function(e,t){for(var n=toObject$a(e),r=arguments.length,i=1,a=getOwnPropertySymbolsModule.f,o=propertyIsEnumerableModule.f;r>i;)for(var l,d=IndexedObject$2(arguments[i++]),U=a?concat$1(objectKeys$1(d),a(d)):objectKeys$1(d),c=U.length,F=0;c>F;)l=U[F++],DESCRIPTORS$c&&!call$t(o,d,l)||(n[l]=d[l]);return n}:$assign,$$G=_export,assign$3=objectAssign;$$G({target:"Object",stat:!0,arity:2,forced:Object.assign!==assign$3},{assign:assign$3});var $$F=_export,toObject$9=toObject$e,nativeKeys=objectKeys$3,fails$t=fails$H,FAILS_ON_PRIMITIVES$1=fails$t((function(){nativeKeys(1)}));$$F({target:"Object",stat:!0,forced:FAILS_ON_PRIMITIVES$1},{keys:function(e){return nativeKeys(toObject$9(e))}});var TO_STRING_TAG_SUPPORT$1=toStringTagSupport,classof$c=classof$e,objectToString=TO_STRING_TAG_SUPPORT$1?{}.toString:function(){return"[object "+classof$c(this)+"]"},TO_STRING_TAG_SUPPORT=toStringTagSupport,defineBuiltIn$d=defineBuiltIn$f,toString$e=objectToString;TO_STRING_TAG_SUPPORT||defineBuiltIn$d(Object.prototype,"toString",toString$e,{unsafe:!0});var classof$b=classof$e,$String$2=String,toString$d=function(e){if("Symbol"===classof$b(e))throw TypeError("Cannot convert a Symbol value to a string");return $String$2(e)},anObject$r=anObject$w,regexpFlags$1=function(){var e=anObject$r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t},call$s=functionCall,hasOwn$9=hasOwnProperty_1,isPrototypeOf$5=objectIsPrototypeOf,regExpFlags=regexpFlags$1,RegExpPrototype$2=RegExp.prototype,regexpGetFlags=function(e){var t=e.flags;return void 0!==t||"flags"in RegExpPrototype$2||hasOwn$9(e,"flags")||!isPrototypeOf$5(RegExpPrototype$2,e)?t:call$s(regExpFlags,e)},PROPER_FUNCTION_NAME$2=functionName.PROPER,defineBuiltIn$c=defineBuiltIn$f,anObject$q=anObject$w,$toString$2=toString$d,fails$s=fails$H,getRegExpFlags=regexpGetFlags,TO_STRING="toString",RegExpPrototype$1=RegExp.prototype,nativeToString=RegExpPrototype$1[TO_STRING],NOT_GENERIC=fails$s((function(){return"/a/b"!=nativeToString.call({source:"a",flags:"b"})})),INCORRECT_NAME=PROPER_FUNCTION_NAME$2&&nativeToString.name!=TO_STRING;(NOT_GENERIC||INCORRECT_NAME)&&defineBuiltIn$c(RegExp.prototype,TO_STRING,(function(){var e=anObject$q(this);return"/"+$toString$2(e.source)+"/"+$toString$2(getRegExpFlags(e))}),{unsafe:!0});var isObject$g=isObject$p,classof$a=classofRaw$2,wellKnownSymbol$h=wellKnownSymbol$q,MATCH$1=wellKnownSymbol$h("match"),isRegexp=function(e){var t;return isObject$g(e)&&(void 0!==(t=e[MATCH$1])?!!t:"RegExp"==classof$a(e))},isRegExp$1=isRegexp,$TypeError$e=TypeError,notARegexp=function(e){if(isRegExp$1(e))throw $TypeError$e("The method doesn't accept regular expressions");return e},wellKnownSymbol$g=wellKnownSymbol$q,MATCH=wellKnownSymbol$g("match"),correctIsRegexpLogic=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[MATCH]=!1,"/./"[e](t)}catch(e){}}return!1},$$E=_export,uncurryThis$s=functionUncurryThis,notARegExp=notARegexp,requireObjectCoercible$7=requireObjectCoercible$a,toString$c=toString$d,correctIsRegExpLogic=correctIsRegexpLogic,stringIndexOf$1=uncurryThis$s("".indexOf);$$E({target:"String",proto:!0,forced:!correctIsRegExpLogic("includes")},{includes:function(e){return!!~stringIndexOf$1(toString$c(requireObjectCoercible$7(this)),toString$c(notARegExp(e)),arguments.length>1?arguments[1]:void 0)}});var domIterables={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},documentCreateElement=documentCreateElement$2,classList=documentCreateElement("span").classList,DOMTokenListPrototype$2=classList&&classList.constructor&&classList.constructor.prototype,domTokenListPrototype=DOMTokenListPrototype$2===Object.prototype?void 0:DOMTokenListPrototype$2,fails$r=fails$H,arrayMethodIsStrict$4=function(e,t){var n=[][e];return!!n&&fails$r((function(){n.call(null,t||function(){return 1},1)}))},$forEach$1=arrayIteration.forEach,arrayMethodIsStrict$3=arrayMethodIsStrict$4,STRICT_METHOD$3=arrayMethodIsStrict$3("forEach"),arrayForEach=STRICT_METHOD$3?[].forEach:function(e){return $forEach$1(this,e,arguments.length>1?arguments[1]:void 0)},global$s=global$C,DOMIterables$1=domIterables,DOMTokenListPrototype$1=domTokenListPrototype,forEach$2=arrayForEach,createNonEnumerableProperty$6=createNonEnumerableProperty$9,handlePrototype$1=function(e){if(e&&e.forEach!==forEach$2)try{createNonEnumerableProperty$6(e,"forEach",forEach$2)}catch(t){e.forEach=forEach$2}};for(var COLLECTION_NAME$1 in DOMIterables$1)DOMIterables$1[COLLECTION_NAME$1]&&handlePrototype$1(global$s[COLLECTION_NAME$1]&&global$s[COLLECTION_NAME$1].prototype);function ownKeys$4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$4(Object(n),!0).forEach((function(t){_defineProperty$6(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$4(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _typeof$3(e){return(_typeof$3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck$7(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$7(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$7(r.key),r)}}function _createClass$7(e,t,n){return t&&_defineProperties$7(e.prototype,t),n&&_defineProperties$7(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$6(e,t,n){return(t=_toPropertyKey$7(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toConsumableArray$2(e){return _arrayWithoutHoles$2(e)||_iterableToArray$2(e)||_unsupportedIterableToArray$4(e)||_nonIterableSpread$2()}function _arrayWithoutHoles$2(e){if(Array.isArray(e))return _arrayLikeToArray$4(e)}function _iterableToArray$2(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray$4(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$4(e,t):void 0}}function _arrayLikeToArray$4(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _nonIterableSpread$2(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _toPrimitive$7(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$7(e){var t=_toPrimitive$7(e,"string");return"symbol"==typeof t?t:String(t)}handlePrototype$1(DOMTokenListPrototype$1);var eventemitter3={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,a||e,o),d=n?n+t:t;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],l]:e._events[d].push(l):(e._events[d]=l,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,a=r.length,o=new Array(a);i<a;i++)o[i]=r[i].fn;return o},l.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},l.prototype.emit=function(e,t,r,i,a,o){var l=n?n+e:e;if(!this._events[l])return!1;var d,U,c=this._events[l],F=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),F){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,i),!0;case 5:return c.fn.call(c.context,t,r,i,a),!0;case 6:return c.fn.call(c.context,t,r,i,a,o),!0}for(U=1,d=new Array(F-1);U<F;U++)d[U-1]=arguments[U];c.fn.apply(c.context,d)}else{var s,Q=c.length;for(U=0;U<Q;U++)switch(c[U].once&&this.removeListener(e,c[U].fn,void 0,!0),F){case 1:c[U].fn.call(c[U].context);break;case 2:c[U].fn.call(c[U].context,t);break;case 3:c[U].fn.call(c[U].context,t,r);break;case 4:c[U].fn.call(c[U].context,t,r,i);break;default:if(!d)for(s=1,d=new Array(F-1);s<F;s++)d[s-1]=arguments[s];c[U].fn.apply(c[U].context,d)}}return!0},l.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,r,i){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||i&&!l.once||r&&l.context!==r||o(this,a);else{for(var d=0,U=[],c=l.length;d<c;d++)(l[d].fn!==t||i&&!l[d].once||r&&l[d].context!==r)&&U.push(l[d]);U.length?this._events[a]=1===U.length?U[0]:U:o(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(eventemitter3);var eventemitter3Exports=eventemitter3.exports,EventEmitter$1=getDefaultExportFromCjs(eventemitter3Exports),XG_DEBUG_OPEN="undefined"!=typeof window&&window.location&&window.location.href.indexOf("xgplayerdebugger=1")>-1,STYLE={info:"color: #525252; background-color: #90ee90;",error:"color: #525252; background-color: red;",warn:"color: #525252; background-color: yellow; "},XGTAG="%c[xgplayer]",XG_DEBUG={config:{debug:XG_DEBUG_OPEN?3:0},logInfo:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];this.config.debug>=3&&(t=console).log.apply(t,[XGTAG,STYLE.info,e].concat(r))},logWarn:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];this.config.debug>=1&&(t=console).warn.apply(t,[XGTAG,STYLE.warn,e].concat(r))},logError:function(e){var t;if(!(this.config.debug<1)){for(var n=this.config.debug>=2?"trace":"error",r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];(t=console)[n].apply(t,[XGTAG,STYLE.error,e].concat(i))}}},XgplayerTimeRange=function(){function e(t){_classCallCheck$7(this,e),this.bufferedList=t}return _createClass$7(e,[{key:"start",value:function(e){return this.bufferedList[e].start}},{key:"end",value:function(e){return this.bufferedList[e].end}},{key:"length",get:function(){return this.bufferedList.length}}]),e}(),util$2={};function checkIsIn(e,t){for(var n=0,r=t.length;n<r;n++)if(e.indexOf(t[n])>-1)return!0;return!1}util$2.createDom=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=document.createElement(e);return i.className=r,i.innerHTML=t,Object.keys(n).forEach((function(t){var r=t,a=n[t];"video"===e||"audio"===e||"live-video"===e?a&&i.setAttribute(r,a):i.setAttribute(r,a)})),i},util$2.createDomFromHtml=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{var r=document.createElement("div");r.innerHTML=e;var i=r.children;return r=null,i.length>0?(i=i[0],n&&util$2.addClass(i,n),t&&Object.keys(t).forEach((function(e){i.setAttribute(e,t[e])})),i):null}catch(e){return XG_DEBUG.logError("util.createDomFromHtml",e),null}},util$2.hasClass=function(e,t){if(!e||!t)return!1;try{return Array.prototype.some.call(e.classList,(function(e){return e===t}))}catch(r){var n=e.className&&"object"===_typeof$3(e.className)?e.getAttribute("class"):e.className;return n&&!!n.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}},util$2.addClass=function(e,t){if(e&&t)try{t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(t){t&&e.classList.add(t)}))}catch(n){util$2.hasClass(e,t)||(e.className&&"object"===_typeof$3(e.className)?e.setAttribute("class",e.getAttribute("class")+" "+t):e.className+=" "+t)}},util$2.removeClass=function(e,t){if(e&&t)try{t.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(t){t&&e.classList.remove(t)}))}catch(n){util$2.hasClass(e,t)&&t.split(/\s+/g).forEach((function(t){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className&&"object"===_typeof$3(e.className)?e.setAttribute("class",e.getAttribute("class").replace(n," ")):e.className=e.className.replace(n," ")}))}},util$2.toggleClass=function(e,t){e&&t.split(/\s+/g).forEach((function(t){util$2.hasClass(e,t)?util$2.removeClass(e,t):util$2.addClass(e,t)}))},util$2.classNames=function(){for(var e=arguments,t=[],n=function(n){"String"===util$2.typeOf(e[n])?t.push(e[n]):"Object"===util$2.typeOf(e[n])&&Object.keys(e[n]).map((function(r){e[n][r]&&t.push(r)}))},r=0;r<arguments.length;r++)n(r);return t.join(" ")},util$2.findDom=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,n=arguments.length>1?arguments[1]:void 0;try{e=t.querySelector(n)}catch(r){XG_DEBUG.logError("util.findDom",r),0===n.indexOf("#")&&(e=t.getElementById(n.slice(1)))}return e},util$2.getCss=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,!1)[t]},util$2.padStart=function(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l},util$2.format=function(e){if(window.isNaN(e))return"";e=Math.round(e);var t=util$2.padStart(Math.floor(e/3600),2,0),n=util$2.padStart(Math.floor((e-3600*t)/60),2,0),r=util$2.padStart(Math.floor(e-3600*t-60*n),2,0);return("00"===t?[n,r]:[t,n,r]).join(":")},util$2.event=function(e){if(e.touches){var t=e.touches[0]||e.changedTouches[0];e.clientX=t.clientX||0,e.clientY=t.clientY||0,e.offsetX=t.pageX-t.target.offsetLeft,e.offsetY=t.pageY-t.target.offsetTop}e._target=e.target||e.srcElement},util$2.typeOf=function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},util$2.deepCopy=function(e,t){if("Object"===util$2.typeOf(t)&&"Object"===util$2.typeOf(e))return Object.keys(t).forEach((function(n){"Object"!==util$2.typeOf(t[n])||t[n]instanceof Node?"Array"===util$2.typeOf(t[n])?e[n]="Array"===util$2.typeOf(e[n])?e[n].concat(t[n]):t[n]:e[n]=t[n]:void 0===e[n]||void 0===e[n]?e[n]=t[n]:util$2.deepCopy(e[n],t[n])})),e},util$2.deepMerge=function(e,t){return Object.keys(t).map((function(n){var r;"Array"===util$2.typeOf(t[n])&&"Array"===util$2.typeOf(e[n])?"Array"===util$2.typeOf(e[n])&&(r=e[n]).push.apply(r,_toConsumableArray$2(t[n])):util$2.typeOf(e[n])!==util$2.typeOf(t[n])||null===e[n]||"Object"!==util$2.typeOf(e[n])||t[n]instanceof window.Node?null!==t[n]&&(e[n]=t[n]):util$2.deepMerge(e[n],t[n])})),e},util$2.getBgImage=function(e){var t=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;if(!t||"none"===t)return"";var n=document.createElement("a");return n.href=t.replace(/url\("|"\)/g,""),n.href},util$2.copyDom=function(e){if(e&&1===e.nodeType){var t=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){t.setAttribute(e.name,e.value)})),e.innerHTML&&(t.innerHTML=e.innerHTML),t}return""},util$2.setInterval=function(e,t,n,r){e._interval[t]||(e._interval[t]=window.setInterval(n.bind(e),r))},util$2.clearInterval=function(e,t){clearInterval(e._interval[t]),e._interval[t]=null},util$2.setTimeout=function(e,t,n){e._timers||(e._timers=[]);var r=setTimeout((function(){t(),util$2.clearTimeout(e,r)}),n);return e._timers.push(r),r},util$2.clearTimeout=function(e,t){var n=e._timers;if("Array"===util$2.typeOf(n)){for(var r=0;r<n.length;r++)if(n[r]===t){n.splice(r,1),clearTimeout(t);break}}else clearTimeout(t)},util$2.clearAllTimers=function(e){var t=e._timers;"Array"===util$2.typeOf(t)&&(t.map((function(e){clearTimeout(e)})),e._timerIds=[])},util$2.createImgBtn=function(e,t,n,r){var i,a,o,l=util$2.createDom("xg-".concat(e),"",{},"xgplayer-".concat(e,"-img"));(l.style.backgroundImage='url("'.concat(t,'")'),n&&r)&&(["px","rem","em","pt","dp","vw","vh","vm","%"].every((function(e){return!(n.indexOf(e)>-1&&r.indexOf(e)>-1)||(i=parseFloat(n.slice(0,n.indexOf(e)).trim()),a=parseFloat(r.slice(0,r.indexOf(e)).trim()),o=e,!1)})),l.style.width="".concat(i).concat(o),l.style.height="".concat(a).concat(o),l.style.backgroundSize="".concat(i).concat(o," ").concat(a).concat(o),l.style.margin="start"===e?"-".concat(a/2).concat(o," auto auto -").concat(i/2).concat(o):"auto 5px auto 5px");return l},util$2.Hex2RGBA=function(e,t){var n=[];if(/^\#[0-9A-F]{3}$/i.test(e)){var r="#";e.replace(/[0-9A-F]/gi,(function(e){r+=e+e})),e=r}return/^#[0-9A-F]{6}$/i.test(e)?(e.replace(/[0-9A-F]{2}/gi,(function(e){n.push(parseInt(e,16))})),"rgba(".concat(n.join(","),", ").concat(t,")")):"rgba(255, 255, 255, 0.1)"},util$2.getFullScreenEl=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},util$2.checkIsFunction=function(e){return e&&"function"==typeof e},util$2.checkIsObject=function(e){return null!==e&&"object"===_typeof$3(e)},util$2.hide=function(e){e.style.display="none"},util$2.show=function(e,t){e.style.display=t||"block"},util$2.isUndefined=function(e){if(null==e)return!0},util$2.isNotNull=function(e){return!(null==e)},util$2.setStyleFromCsstext=function(e,t){t&&("String"===util$2.typeOf(t)?t.replace(/\s+/g,"").split(";").map((function(t){if(t){var n=t.split(":");n.length>1&&(e.style[n[0]]=n[1])}})):Object.keys(t).map((function(n){e.style[n]=t[n]})))},util$2.filterStyleFromText=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height","top","left","bottom","right","position","z-index","padding","margin","transform"],n=e.style.cssText;if(!n)return{};var r=n.replace(/\s+/g,"").split(";"),i={},a={};return r.map((function(e){if(e){var n=e.split(":");n.length>1&&(checkIsIn(n[0],t)?i[n[0]]=n[1]:a[n[0]]=n[1])}})),e.setAttribute("style",""),Object.keys(a).map((function(t){e.style[t]=a[t]})),i},util$2.getStyleFromCsstext=function(e){var t=e.style.cssText;if(!t)return{};var n=t.replace(/\s+/g,"").split(";"),r={};return n.map((function(e){if(e){var t=e.split(":");t.length>1&&(r[t[0]]=t[1])}})),r},util$2.preloadImg=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};if(e){var r=new window.Image;r.onload=function(e){r=null,t&&t(e)},r.onerror=function(e){r=null,n&&n(e)},r.src=e}},util$2.stopPropagation=function(e){e&&e.stopPropagation()},util$2.scrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},util$2.scrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},util$2.checkTouchSupport=function(){return"ontouchstart"in window},util$2.getBuffered2=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5,n=[],r=0;r<e.length;r++)n.push({start:e.start(r)<.5?0:e.start(r),end:e.end(r)});n.sort((function(e,t){var n=e.start-t.start;return n||t.end-e.end}));var i=[];if(t)for(var a=0;a<n.length;a++){var o=i.length;if(o){var l=i[o-1].end;n[a].start-l<t?n[a].end>l&&(i[o-1].end=n[a].end):i.push(n[a])}else i.push(n[a])}else i=n;return new XgplayerTimeRange(i)},util$2.getEventPos=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.touches&&e.touches.length>0&&(e=e.touches[0]),{x:e.x/t,y:e.y/t,clientX:e.clientX/t,clientY:e.clientY/t,offsetX:e.offsetX/t,offsetY:e.offsetY/t,pageX:e.pageX/t,pageY:e.pageY/t}},util$2.requestAnimationFrame=function(e){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;if(t)return t(e)},util$2.getHostFromUrl=function(e){if("String"!==util$2.typeOf(e))return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},util$2.cancelAnimationFrame=function(e){var t=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame;t&&t(e)},util$2.isMSE=function(e){return e.media&&(e=e.media),!!(e&&e instanceof HTMLMediaElement)&&(/^blob/.test(e.currentSrc)||/^blob/.test(e.src))},util$2.isBlob=function(e){return"string"==typeof e&&/^blob/.test(e)},util$2.generateSessionId=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=(new Date).getTime();try{e=parseInt(e)}catch(t){e=0}return t+=e,window.performance&&"function"==typeof window.performance.now&&(t+=parseInt(window.performance.now())),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var n=(t+16*Math.random())%16|0;return t=Math.floor(t/16),("x"===e?n:3&n|8).toString(16)}))},util$2.createEvent=function(e){var t;return"function"==typeof window.Event?t=new Event(e):(t=document.createEvent("Event")).initEvent(e,!0,!0),t},util$2.adjustTimeByDuration=function(e,t,n){return t&&e&&(e>t||n&&e<t)?t:e},util$2.createPositionBar=function(e,t){var n=util$2.createDom("xg-bar","",{"data-index":-1},e);return t.appendChild(n),n},util$2.getTransformStyle=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{x:0,y:0,scale:1,rotate:0},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n={scale:"".concat(e.scale||1),translate:"".concat(e.x||0,"%, ").concat(e.y||0,"%"),rotate:"".concat(e.rotate||0,"deg")};return Object.keys(n).forEach((function(e){var r=new RegExp("".concat(e,"\\([^\\(]+\\)"),"g"),i="".concat(e,"(").concat(n[e],")");r.test(t)?(r.lastIndex=-1,t=t.replace(r,i)):t+="".concat(i," ")})),t},util$2.convertDeg=function(e){return Math.abs(e)<=1?360*e:e%360},util$2.getIndexByTime=function(e,t){var n=t.length,r=-1;if(n<1)return r;if(e<=t[0].end||n<2)r=0;else if(e>t[n-1].end)r=n-1;else for(var i=1;i<n;i++)if(e>t[i-1].end&&e<=t[i].end){r=i;break}return r},util$2.getOffsetCurrentTime=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=-1;if((r=n>=0&&n<t.length?n:util$2.getIndexByTime(e,t))<0)return-1;var i=t.length,a=t[r],o=a.start,l=a.end,d=a.cTime,U=a.offset;return e<o?d:e>=o&&e<=l?e-U:e>l&&r>=i-1?l:-1},util$2.getCurrentTimeByOffset=function(e,t){var n=-1;if(!t||t.length<0)return e;for(var r=0;r<t.length;r++)if(e<=t[r].duration){n=r;break}if(-1!==n){var i=t[n].start;return n-1<0?i+e:i+(e-t[n-1].duration)}return e};var VERSION_REG={android:/(Android)\s([\d.]+)/,ios:/(Version)\/([\d.]+)/},H264_MIMETYPES=["avc1.42E01E, mp4a.40.2","avc1.58A01E, mp4a.40.2","avc1.4D401E, mp4a.40.2","avc1.64001E, mp4a.40.2","avc1.42E01E","mp4v.20.8","mp4v.20.8, mp4a.40.2","mp4v.20.240, mp4a.40.2"],sniffer={get device(){return sniffer.os.isPc?"pc":"mobile"},get browser(){if("undefined"==typeof navigator)return"";var e=navigator.userAgent.toLowerCase(),t={ie:/rv:([\d.]+)\) like gecko/,firefox:/firefox\/([\d.]+)/,chrome:/chrome\/([\d.]+)/,opera:/opera.([\d.]+)/,safari:/version\/([\d.]+).*safari/};return[].concat(Object.keys(t).filter((function(n){return t[n].test(e)})))[0]},get os(){if("undefined"==typeof navigator)return{};var e=navigator.userAgent,t=/(?:Windows Phone)/.test(e),n=/(?:SymbianOS)/.test(e)||t,r=/(?:Tizen)/gi.test(e),i=/(?:Web0S)/gi.test(e),a=/(?:Android)/.test(e),o=/(?:Firefox)/.test(e),l=/(?:iPad|PlayBook)/.test(e)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,d=l||a&&!/(?:Mobile)/.test(e)||o&&/(?:Tablet)/.test(e),U=/(?:iPhone)/.test(e)&&!d;return{isTablet:d,isPhone:U,isIpad:l,isIos:U||l,isAndroid:a,isPc:!(U||a||n||d),isSymbian:n,isWindowsPhone:t,isFireFox:o,isTizen:r,isWebOS:i}},get osVersion(){if("undefined"==typeof navigator)return 0;var e=navigator.userAgent,t="",n=(t=/(?:iPhone)|(?:iPad|PlayBook)/.test(e)?VERSION_REG.ios:VERSION_REG.android)?t.exec(e):[];if(n&&n.length>=3){var r=n[2].split(".");return r.length>0?parseInt(r[0]):0}return 0},get isWeixin(){if("undefined"==typeof navigator)return!1;return!!/(micromessenger)\/([\d.]+)/.exec(navigator.userAgent.toLocaleLowerCase())},isSupportMP4:function(){var e={isSupport:!1,mime:""};if("undefined"==typeof document)return e;if(this.supportResult)return this.supportResult;var t=document.createElement("video");return"function"==typeof t.canPlayType&&H264_MIMETYPES.map((function(n){"probably"===t.canPlayType('video/mp4; codecs="'.concat(n,'"'))&&(e.isSupport=!0,e.mime+="||".concat(n))})),this.supportResult=e,t=null,e},isMSESupport:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if("undefined"==typeof MediaSource||!MediaSource)return!1;try{return MediaSource.isTypeSupported(e)}catch(t){return this._logger.error(e,t),!1}},isHevcSupported:function(){return!("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)&&(MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"'))},probeConfigSupported:function(e){var t={supported:!1,smooth:!1,powerEfficient:!1};if(!e||"undefined"==typeof navigator)return Promise.resolve(t);if(navigator.mediaCapabilities&&navigator.mediaCapabilities.decodingInfo)return navigator.mediaCapabilities.decodingInfo(e);var n=e.video||{},r=e.audio||{};try{var i=MediaSource.isTypeSupported(n.contentType),a=MediaSource.isTypeSupported(r.contentType);return Promise.resolve({supported:i&&a,smooth:!1,powerEfficient:!1})}catch(e){return Promise.resolve(t)}}},version$1="3.0.23-rc.3",ERROR_MAP={1:5101,2:5102,3:5103,4:5104,5:5105,6:5106},Errors$2=_createClass$7((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{errorType:"",errorCode:0,errorMessage:"",originError:"",ext:{},mediaError:null};_classCallCheck$7(this,e);var r=t&&t.i18n?t.i18n.ERROR_TYPES:null;if(t.media){var i=n.mediaError?n.mediaError:t.media.error||{},a=t.duration,o=t.currentTime,l=t.ended,d=t.src,U=t.currentSrc,c=t.media,F=c.readyState,s=c.networkState,Q=n.errorCode||i.code;ERROR_MAP[Q]&&(Q=ERROR_MAP[Q]);var u={playerVersion:version$1,currentTime:o,duration:a,ended:l,readyState:F,networkState:s,src:d||U,errorType:n.errorType,errorCode:Q,message:n.errorMessage||i.message,mediaError:i,originError:n.originError?n.originError.stack:"",host:util$2.getHostFromUrl(d||U)};return n.ext&&Object.keys(n.ext).map((function(e){u[e]=n.ext[e]})),u}if(arguments.length>1){for(var R={playerVersion:version$1,domain:document.domain},B=["errorType","currentTime","duration","networkState","readyState","src","currentSrc","ended","errd","errorCode","mediaError"],h=0;h<arguments.length;h++)R[B[h]]=arguments[h];return R.ex=r?(r[arguments[0]]||{}).msg:"",R}})),TIME_UPDATE="timeupdate",LOADED_DATA="loadeddata",LOAD_START="loadstart",AUTOPLAY_STARTED="autoplay_started",STATS_EVENTS$1={STATS_INFO:"stats_info",STATS_DOWNLOAD:"stats_download",STATS_RESET:"stats_reset"};function callHandler(e,t,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];var o=t.call.apply(t,[e].concat(i));n&&"function"==typeof n&&(o&&o.then?o.then((function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];n.call.apply(n,[e].concat(r))})):n.call.apply(n,[e].concat(i)))}function hook(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{pre:null,next:null};return this.__hooks||(this.__hooks={}),!this.__hooks[e]&&(this.__hooks[e]=null),function(){var r=arguments,i=this;if(n.pre)try{var a;(a=n.pre).call.apply(a,[this].concat(Array.prototype.slice.call(arguments)))}catch(t){throw t.message="[pluginName: ".concat(this.pluginName,":").concat(e,":pre error] >> ").concat(t.message),t}if(this.__hooks&&this.__hooks[e])try{var o=runHooks.apply(void 0,[this,e,t].concat(Array.prototype.slice.call(arguments)));o?o.then?o.then((function(e){!1!==e&&callHandler.apply(void 0,[i,t,n.next].concat(_toConsumableArray$2(r)))})).catch((function(e){throw e})):callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments))):void 0===o&&callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments)))}catch(t){throw t.message="[pluginName: ".concat(this.pluginName,":").concat(e,"] >> ").concat(t.message),t}else callHandler.apply(void 0,[this,t,n.next].concat(Array.prototype.slice.call(arguments)))}.bind(this)}function findHookIndex(e,t){var n=this.__hooks;if(!n||!Array.isArray(n[e]))return-1;for(var r=n[e],i=0;i<r.length;i++)if(r[i]===t)return i;return-1}function useHooks(e,t){var n=this.__hooks;if(n)return n.hasOwnProperty(e)?(Array.isArray(n[e])||(n[e]=[]),-1===findHookIndex.call(this,e,t)&&n[e].push(t),!0):(console.warn("has no supported hook which name [".concat(e,"]")),!1)}function removeHooks(e,t){var n=this.__hooks;if(n)if(Array.isArray(n[e])){var r=n[e],i=findHookIndex.call(this,e,t);-1!==i&&r.splice(i,1)}else n[e]&&(n[e]=null)}function hooksDescriptor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e.__hooks={},t&&t.map((function(t){e.__hooks[t]=null})),Object.defineProperty(e,"hooks",{get:function(){return e.__hooks&&Object.keys(e.__hooks).map((function(t){if(e.__hooks[t])return t}))}})}function delHooksDescriptor(e){e.__hooks=null}function runHooks(e,t,n){for(var r=arguments.length,i=new Array(r>3?r-3:0),a=3;a<r;a++)i[a-3]=arguments[a];if(e.__hooks&&Array.isArray(e.__hooks[t])){var o=e.__hooks[t],l=-1;return function e(t,n,r){for(var i=arguments.length,a=new Array(i>3?i-3:0),d=3;d<i;d++)a[d-3]=arguments[d];if(l++,0===o.length||l===o.length)return r.call.apply(r,[t,t].concat(a));var U=o[l],c=U.call.apply(U,[t,t].concat(a));return c&&c.then?c.then((function(i){return!1===i?null:e.apply(void 0,[t,n,r].concat(a))})).catch((function(e){console.warn("[runHooks]".concat(n," reject"),e.message)})):!1!==c?e.apply(void 0,[t,n,r].concat(a)):void 0}.apply(void 0,[e,t,n].concat(i))}return n.call.apply(n,[e,e].concat(i))}function showErrorMsg(e,t){XG_DEBUG.logError("[".concat(e,"] event or callback cant be undefined or null when call ").concat(t))}var BasePlugin=function(){function e(t){_classCallCheck$7(this,e),util$2.checkIsFunction(this.beforeCreate)&&this.beforeCreate(t),hooksDescriptor(this),this.__args=t,this.__events={},this.__onceEvents={},this.config=t.config||{},this.player=null,this.playerConfig={},this.pluginName="",this.__init(t)}return _createClass$7(e,[{key:"beforeCreate",value:function(e){}},{key:"afterCreate",value:function(){}},{key:"beforePlayerInit",value:function(){}},{key:"onPluginsReady",value:function(){}},{key:"afterPlayerInit",value:function(){}},{key:"destroy",value:function(){}},{key:"__init",value:function(e){this.player=e.player,this.playerConfig=e.player&&e.player.config,this.pluginName=e.pluginName?e.pluginName.toLowerCase():this.constructor.pluginName.toLowerCase(),this.logger=e.player&&e.player.logger}},{key:"updateLang",value:function(e){e||(e=this.lang)}},{key:"lang",get:function(){return this.player.lang}},{key:"i18n",get:function(){return this.player.i18n}},{key:"i18nKeys",get:function(){return this.player.i18nKeys}},{key:"domEventType",get:function(){var e=util$2.checkTouchSupport()?"touch":"mouse";return!this.playerConfig||"touch"!==this.playerConfig.domEventType&&"mouse"!==this.playerConfig.domEventType||(e=this.playerConfig.domEventType),e}},{key:"on",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(this.__events[e]=t,this.player.on(e,t)):Array.isArray(e)&&e.forEach((function(e){n.__events[e]=t,n.player.on(e,t)})):showErrorMsg(this.pluginName,"plugin.on(event, callback)")}},{key:"once",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(this.__onceEvents[e]=t,this.player.once(e,t)):Array.isArray(e)&&e.forEach((function(r){n.__onceEvents[r]=t,n.player.once(e,t)})):showErrorMsg(this.pluginName,"plugin.once(event, callback)")}},{key:"off",value:function(e,t){var n=this;e&&t&&this.player?"string"==typeof e?(delete this.__events[e],this.player.off(e,t)):Array.isArray(e)&&e.forEach((function(r){delete n.__events[e],n.player.off(r,t)})):showErrorMsg(this.pluginName,"plugin.off(event, callback)")}},{key:"offAll",value:function(){var e=this;["__events","__onceEvents"].forEach((function(t){Object.keys(e[t]).forEach((function(n){e[t][n]&&e.off(n,e[t][n]),n&&delete e[t][n]}))})),this.__events={},this.__onceEvents={}}},{key:"emit",value:function(e){var t;if(this.player){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=this.player).emit.apply(t,[e].concat(r))}}},{key:"emitUserAction",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(this.player){var r=_objectSpread2$4(_objectSpread2$4({},n),{},{pluginName:this.pluginName});this.player.emitUserAction(e,t,r)}}},{key:"hook",value:function(e,t){return hook.call.apply(hook,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"useHooks",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return useHooks.call.apply(useHooks,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"removeHooks",value:function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return removeHooks.call.apply(removeHooks,[this].concat(Array.prototype.slice.call(arguments)))}},{key:"registerPlugin",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.player)return n&&(t.pluginName=n),this.player.registerPlugin({plugin:e,options:t})}},{key:"getPlugin",value:function(e){return this.player?this.player.getPlugin(e):null}},{key:"__destroy",value:function(){var e=this,t=this.player,n=this.pluginName;this.offAll(),util$2.clearAllTimers(this),util$2.checkIsFunction(this.destroy)&&this.destroy(),["player","playerConfig","pluginName","logger","__args","__hooks"].map((function(t){e[t]=null})),t.unRegisterPlugin(n),delHooksDescriptor(this)}}],[{key:"defineGetterOrSetter",value:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&Object.defineProperty(e,n,t[n])}},{key:"defineMethod",value:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&"function"==typeof t[n]&&Object.defineProperty(e,n,{configurable:!0,value:t[n]})}},{key:"defaultConfig",get:function(){return{}}},{key:"pluginName",get:function(){return"pluginName"}}]),e}(),fails$q=fails$H,global$r=global$C,$RegExp$2=global$r.RegExp,UNSUPPORTED_Y$2=fails$q((function(){var e=$RegExp$2("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),MISSED_STICKY=UNSUPPORTED_Y$2||fails$q((function(){return!$RegExp$2("a","y").sticky})),BROKEN_CARET=UNSUPPORTED_Y$2||fails$q((function(){var e=$RegExp$2("^r","gy");return e.lastIndex=2,null!=e.exec("str")})),regexpStickyHelpers={BROKEN_CARET:BROKEN_CARET,MISSED_STICKY:MISSED_STICKY,UNSUPPORTED_Y:UNSUPPORTED_Y$2},fails$p=fails$H,global$q=global$C,$RegExp$1=global$q.RegExp,regexpUnsupportedDotAll=fails$p((function(){var e=$RegExp$1(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)})),fails$o=fails$H,global$p=global$C,$RegExp=global$p.RegExp,regexpUnsupportedNcg=fails$o((function(){var e=$RegExp("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),call$r=functionCall,uncurryThis$r=functionUncurryThis,toString$b=toString$d,regexpFlags=regexpFlags$1,stickyHelpers$1=regexpStickyHelpers,shared=sharedExports,create$5=objectCreate,getInternalState$5=internalState.get,UNSUPPORTED_DOT_ALL=regexpUnsupportedDotAll,UNSUPPORTED_NCG=regexpUnsupportedNcg,nativeReplace=shared("native-string-replace",String.prototype.replace),nativeExec=RegExp.prototype.exec,patchedExec=nativeExec,charAt$6=uncurryThis$r("".charAt),indexOf=uncurryThis$r("".indexOf),replace$5=uncurryThis$r("".replace),stringSlice$7=uncurryThis$r("".slice),UPDATES_LAST_INDEX_WRONG=function(){var e=/a/,t=/b*/g;return call$r(nativeExec,e,"a"),call$r(nativeExec,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),UNSUPPORTED_Y$1=stickyHelpers$1.BROKEN_CARET,NPCG_INCLUDED=void 0!==/()??/.exec("")[1],PATCH=UPDATES_LAST_INDEX_WRONG||NPCG_INCLUDED||UNSUPPORTED_Y$1||UNSUPPORTED_DOT_ALL||UNSUPPORTED_NCG;PATCH&&(patchedExec=function(e){var t,n,r,i,a,o,l,d=this,U=getInternalState$5(d),c=toString$b(e),F=U.raw;if(F)return F.lastIndex=d.lastIndex,t=call$r(patchedExec,F,c),d.lastIndex=F.lastIndex,t;var s=U.groups,Q=UNSUPPORTED_Y$1&&d.sticky,u=call$r(regexpFlags,d),R=d.source,B=0,h=c;if(Q&&(u=replace$5(u,"y",""),-1===indexOf(u,"g")&&(u+="g"),h=stringSlice$7(c,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&"\n"!==charAt$6(c,d.lastIndex-1))&&(R="(?: "+R+")",h=" "+h,B++),n=new RegExp("^(?:"+R+")",u)),NPCG_INCLUDED&&(n=new RegExp("^"+R+"$(?!\\s)",u)),UPDATES_LAST_INDEX_WRONG&&(r=d.lastIndex),i=call$r(nativeExec,Q?n:d,h),Q?i?(i.input=stringSlice$7(i.input,B),i[0]=stringSlice$7(i[0],B),i.index=d.lastIndex,d.lastIndex+=i[0].length):d.lastIndex=0:UPDATES_LAST_INDEX_WRONG&&i&&(d.lastIndex=d.global?i.index+i[0].length:r),NPCG_INCLUDED&&i&&i.length>1&&call$r(nativeReplace,i[0],n,(function(){for(a=1;a<arguments.length-2;a++)void 0===arguments[a]&&(i[a]=void 0)})),i&&s)for(i.groups=o=create$5(null),a=0;a<s.length;a++)o[(l=s[a])[0]]=i[l[1]];return i});var regexpExec$3=patchedExec,$$D=_export,exec$3=regexpExec$3;$$D({target:"RegExp",proto:!0,forced:/./.exec!==regexpExec$3},{exec:regexpExec$3});var uncurryThis$q=functionUncurryThisClause,defineBuiltIn$b=defineBuiltIn$f,regexpExec$2=regexpExec$3,fails$n=fails$H,wellKnownSymbol$f=wellKnownSymbol$q,createNonEnumerableProperty$5=createNonEnumerableProperty$9,SPECIES$3=wellKnownSymbol$f("species"),RegExpPrototype=RegExp.prototype,fixRegexpWellKnownSymbolLogic=function(e,t,n,r){var i=wellKnownSymbol$f(e),a=!fails$n((function(){var t={};return t[i]=function(){return 7},7!=""[e](t)})),o=a&&!fails$n((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[SPECIES$3]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return t=!0,null},n[i](""),!t}));if(!a||!o||n){var l=uncurryThis$q(/./[i]),d=t(i,""[e],(function(e,t,n,r,i){var o=uncurryThis$q(e),d=t.exec;return d===regexpExec$2||d===RegExpPrototype.exec?a&&!i?{done:!0,value:l(t,n,r)}:{done:!0,value:o(n,t,r)}:{done:!1}}));defineBuiltIn$b(String.prototype,e,d[0]),defineBuiltIn$b(RegExpPrototype,i,d[1])}r&&createNonEnumerableProperty$5(RegExpPrototype[i],"sham",!0)},sameValue$1=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},call$q=functionCall,anObject$p=anObject$w,isCallable$e=isCallable$r,classof$9=classofRaw$2,regexpExec$1=regexpExec$3,$TypeError$d=TypeError,regexpExecAbstract=function(e,t){var n=e.exec;if(isCallable$e(n)){var r=call$q(n,e,t);return null!==r&&anObject$p(r),r}if("RegExp"===classof$9(e))return call$q(regexpExec$1,e,t);throw $TypeError$d("RegExp#exec called on incompatible receiver")},call$p=functionCall,fixRegExpWellKnownSymbolLogic$3=fixRegexpWellKnownSymbolLogic,anObject$o=anObject$w,isNullOrUndefined$7=isNullOrUndefined$a,requireObjectCoercible$6=requireObjectCoercible$a,sameValue=sameValue$1,toString$a=toString$d,getMethod$5=getMethod$7,regExpExec$3=regexpExecAbstract;fixRegExpWellKnownSymbolLogic$3("search",(function(e,t,n){return[function(t){var n=requireObjectCoercible$6(this),r=isNullOrUndefined$7(t)?void 0:getMethod$5(t,e);return r?call$p(r,t,n):new RegExp(t)[e](toString$a(n))},function(e){var r=anObject$o(this),i=toString$a(e),a=n(t,r,i);if(a.done)return a.value;var o=r.lastIndex;sameValue(o,0)||(r.lastIndex=0);var l=regExpExec$3(r,i);return sameValue(r.lastIndex,o)||(r.lastIndex=o),null===l?-1:l.index}]}));var $location,defer,channel,port,classof$8=classofRaw$2,global$o=global$C,engineIsNode="process"==classof$8(global$o.process),isCallable$d=isCallable$r,$String$1=String,$TypeError$c=TypeError,aPossiblePrototype$1=function(e){if("object"==typeof e||isCallable$d(e))return e;throw $TypeError$c("Can't set "+$String$1(e)+" as a prototype")},uncurryThis$p=functionUncurryThis,anObject$n=anObject$w,aPossiblePrototype=aPossiblePrototype$1,objectSetPrototypeOf=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=uncurryThis$p(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return anObject$n(n),aPossiblePrototype(r),t?e(n,r):n.__proto__=r,n}}():void 0),defineProperty$8=objectDefineProperty.f,hasOwn$8=hasOwnProperty_1,wellKnownSymbol$e=wellKnownSymbol$q,TO_STRING_TAG$2=wellKnownSymbol$e("toStringTag"),setToStringTag$7=function(e,t,n){e&&!n&&(e=e.prototype),e&&!hasOwn$8(e,TO_STRING_TAG$2)&&defineProperty$8(e,TO_STRING_TAG$2,{configurable:!0,value:t})},getBuiltIn$6=getBuiltIn$c,definePropertyModule$1=objectDefineProperty,wellKnownSymbol$d=wellKnownSymbol$q,DESCRIPTORS$b=descriptors,SPECIES$2=wellKnownSymbol$d("species"),setSpecies$4=function(e){var t=getBuiltIn$6(e),n=definePropertyModule$1.f;DESCRIPTORS$b&&t&&!t[SPECIES$2]&&n(t,SPECIES$2,{configurable:!0,get:function(){return this}})},isPrototypeOf$4=objectIsPrototypeOf,$TypeError$b=TypeError,anInstance$7=function(e,t){if(isPrototypeOf$4(t,e))return e;throw $TypeError$b("Incorrect invocation")},isConstructor$1=isConstructor$4,tryToString$4=tryToString$6,$TypeError$a=TypeError,aConstructor$2=function(e){if(isConstructor$1(e))return e;throw $TypeError$a(tryToString$4(e)+" is not a constructor")},anObject$m=anObject$w,aConstructor$1=aConstructor$2,isNullOrUndefined$6=isNullOrUndefined$a,wellKnownSymbol$c=wellKnownSymbol$q,SPECIES$1=wellKnownSymbol$c("species"),speciesConstructor$7=function(e,t){var n,r=anObject$m(e).constructor;return void 0===r||isNullOrUndefined$6(n=anObject$m(r)[SPECIES$1])?t:aConstructor$1(n)},NATIVE_BIND=functionBindNative,FunctionPrototype$1=Function.prototype,apply$6=FunctionPrototype$1.apply,call$o=FunctionPrototype$1.call,functionApply="object"==typeof Reflect&&Reflect.apply||(NATIVE_BIND?call$o.bind(apply$6):function(){return call$o.apply(apply$6,arguments)}),$TypeError$9=TypeError,validateArgumentsLength$3=function(e,t){if(e<t)throw $TypeError$9("Not enough arguments");return e},userAgent$4=engineUserAgent,engineIsIos=/(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$4),global$n=global$C,apply$5=functionApply,bind$f=functionBindContext,isCallable$c=isCallable$r,hasOwn$7=hasOwnProperty_1,fails$m=fails$H,html=html$2,arraySlice$8=arraySlice$9,createElement=documentCreateElement$2,validateArgumentsLength$2=validateArgumentsLength$3,IS_IOS$1=engineIsIos,IS_NODE$3=engineIsNode,set$1=global$n.setImmediate,clear=global$n.clearImmediate,process$3=global$n.process,Dispatch=global$n.Dispatch,Function$1=global$n.Function,MessageChannel=global$n.MessageChannel,String$1=global$n.String,counter=0,queue$1={},ONREADYSTATECHANGE="onreadystatechange";try{$location=global$n.location}catch(e){}var run=function(e){if(hasOwn$7(queue$1,e)){var t=queue$1[e];delete queue$1[e],t()}},runner=function(e){return function(){run(e)}},listener=function(e){run(e.data)},post=function(e){global$n.postMessage(String$1(e),$location.protocol+"//"+$location.host)};set$1&&clear||(set$1=function(e){validateArgumentsLength$2(arguments.length,1);var t=isCallable$c(e)?e:Function$1(e),n=arraySlice$8(arguments,1);return queue$1[++counter]=function(){apply$5(t,void 0,n)},defer(counter),counter},clear=function(e){delete queue$1[e]},IS_NODE$3?defer=function(e){process$3.nextTick(runner(e))}:Dispatch&&Dispatch.now?defer=function(e){Dispatch.now(runner(e))}:MessageChannel&&!IS_IOS$1?(port=(channel=new MessageChannel).port2,channel.port1.onmessage=listener,defer=bind$f(port.postMessage,port)):global$n.addEventListener&&isCallable$c(global$n.postMessage)&&!global$n.importScripts&&$location&&"file:"!==$location.protocol&&!fails$m(post)?(defer=post,global$n.addEventListener("message",listener,!1)):defer=ONREADYSTATECHANGE in createElement("script")?function(e){html.appendChild(createElement("script"))[ONREADYSTATECHANGE]=function(){html.removeChild(this),run(e)}}:function(e){setTimeout(runner(e),0)});var flush,head,last,notify$1,toggle,node,promise,then,task$1={set:set$1,clear:clear},userAgent$3=engineUserAgent,global$m=global$C,engineIsIosPebble=/ipad|iphone|ipod/i.test(userAgent$3)&&void 0!==global$m.Pebble,userAgent$2=engineUserAgent,engineIsWebosWebkit=/web0s(?!.*chrome)/i.test(userAgent$2),global$l=global$C,bind$e=functionBindContext,getOwnPropertyDescriptor$3=objectGetOwnPropertyDescriptor.f,macrotask=task$1.set,IS_IOS=engineIsIos,IS_IOS_PEBBLE=engineIsIosPebble,IS_WEBOS_WEBKIT=engineIsWebosWebkit,IS_NODE$2=engineIsNode,MutationObserver=global$l.MutationObserver||global$l.WebKitMutationObserver,document$2=global$l.document,process$2=global$l.process,Promise$1=global$l.Promise,queueMicrotaskDescriptor=getOwnPropertyDescriptor$3(global$l,"queueMicrotask"),queueMicrotask=queueMicrotaskDescriptor&&queueMicrotaskDescriptor.value;queueMicrotask||(flush=function(){var e,t;for(IS_NODE$2&&(e=process$2.domain)&&e.exit();head;){t=head.fn,head=head.next;try{t()}catch(e){throw head?notify$1():last=void 0,e}}last=void 0,e&&e.enter()},IS_IOS||IS_NODE$2||IS_WEBOS_WEBKIT||!MutationObserver||!document$2?!IS_IOS_PEBBLE&&Promise$1&&Promise$1.resolve?((promise=Promise$1.resolve(void 0)).constructor=Promise$1,then=bind$e(promise.then,promise),notify$1=function(){then(flush)}):IS_NODE$2?notify$1=function(){process$2.nextTick(flush)}:(macrotask=bind$e(macrotask,global$l),notify$1=function(){macrotask(flush)}):(toggle=!0,node=document$2.createTextNode(""),new MutationObserver(flush).observe(node,{characterData:!0}),notify$1=function(){node.data=toggle=!toggle}));var microtask$1=queueMicrotask||function(e){var t={fn:e,next:void 0};last&&(last.next=t),head||(head=t,notify$1()),last=t},global$k=global$C,hostReportErrors$1=function(e,t){var n=global$k.console;n&&n.error&&(1==arguments.length?n.error(e):n.error(e,t))},perform$3=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},Queue$1=function(){this.head=null,this.tail=null};Queue$1.prototype={add:function(e){var t={item:e,next:null};this.head?this.tail.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return this.head=e.next,this.tail===e&&(this.tail=null),e.item}};var queue=Queue$1,global$j=global$C,promiseNativeConstructor=global$j.Promise,engineIsDeno="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,IS_DENO$1=engineIsDeno,IS_NODE$1=engineIsNode,engineIsBrowser=!IS_DENO$1&&!IS_NODE$1&&"object"==typeof window&&"object"==typeof document,global$i=global$C,NativePromiseConstructor$4=promiseNativeConstructor,isCallable$b=isCallable$r,isForced$2=isForced_1,inspectSource=inspectSource$3,wellKnownSymbol$b=wellKnownSymbol$q,IS_BROWSER=engineIsBrowser,IS_DENO=engineIsDeno,V8_VERSION=engineV8Version;NativePromiseConstructor$4&&NativePromiseConstructor$4.prototype;var SPECIES=wellKnownSymbol$b("species"),SUBCLASSING=!1,NATIVE_PROMISE_REJECTION_EVENT$1=isCallable$b(global$i.PromiseRejectionEvent),FORCED_PROMISE_CONSTRUCTOR$5=isForced$2("Promise",(function(){var e=inspectSource(NativePromiseConstructor$4),t=e!==String(NativePromiseConstructor$4);if(!t&&66===V8_VERSION)return!0;if(!V8_VERSION||V8_VERSION<51||!/native code/.test(e)){var n=new NativePromiseConstructor$4((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((n.constructor={})[SPECIES]=r,!(SUBCLASSING=n.then((function(){}))instanceof r))return!0}return!t&&(IS_BROWSER||IS_DENO)&&!NATIVE_PROMISE_REJECTION_EVENT$1})),promiseConstructorDetection={CONSTRUCTOR:FORCED_PROMISE_CONSTRUCTOR$5,REJECTION_EVENT:NATIVE_PROMISE_REJECTION_EVENT$1,SUBCLASSING:SUBCLASSING},newPromiseCapability$2={},aCallable$e=aCallable$h,$TypeError$8=TypeError,PromiseCapability=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw $TypeError$8("Bad Promise constructor");t=e,n=r})),this.resolve=aCallable$e(t),this.reject=aCallable$e(n)};newPromiseCapability$2.f=function(e){return new PromiseCapability(e)};var Internal,OwnPromiseCapability,PromiseWrapper,nativeThen,$$C=_export,IS_NODE=engineIsNode,global$h=global$C,call$n=functionCall,defineBuiltIn$a=defineBuiltIn$f,setPrototypeOf$5=objectSetPrototypeOf,setToStringTag$6=setToStringTag$7,setSpecies$3=setSpecies$4,aCallable$d=aCallable$h,isCallable$a=isCallable$r,isObject$f=isObject$p,anInstance$6=anInstance$7,speciesConstructor$6=speciesConstructor$7,task=task$1.set,microtask=microtask$1,hostReportErrors=hostReportErrors$1,perform$2=perform$3,Queue=queue,InternalStateModule$8=internalState,NativePromiseConstructor$3=promiseNativeConstructor,PromiseConstructorDetection=promiseConstructorDetection,newPromiseCapabilityModule$3=newPromiseCapability$2,PROMISE="Promise",FORCED_PROMISE_CONSTRUCTOR$4=PromiseConstructorDetection.CONSTRUCTOR,NATIVE_PROMISE_REJECTION_EVENT=PromiseConstructorDetection.REJECTION_EVENT,NATIVE_PROMISE_SUBCLASSING=PromiseConstructorDetection.SUBCLASSING,getInternalPromiseState=InternalStateModule$8.getterFor(PROMISE),setInternalState$7=InternalStateModule$8.set,NativePromisePrototype$2=NativePromiseConstructor$3&&NativePromiseConstructor$3.prototype,PromiseConstructor=NativePromiseConstructor$3,PromisePrototype=NativePromisePrototype$2,TypeError$5=global$h.TypeError,document$1=global$h.document,process$1=global$h.process,newPromiseCapability$1=newPromiseCapabilityModule$3.f,newGenericPromiseCapability=newPromiseCapability$1,DISPATCH_EVENT=!!(document$1&&document$1.createEvent&&global$h.dispatchEvent),UNHANDLED_REJECTION="unhandledrejection",REJECTION_HANDLED="rejectionhandled",PENDING=0,FULFILLED=1,REJECTED=2,HANDLED=1,UNHANDLED=2,isThenable=function(e){var t;return!(!isObject$f(e)||!isCallable$a(t=e.then))&&t},callReaction=function(e,t){var n,r,i,a=t.value,o=t.state==FULFILLED,l=o?e.ok:e.fail,d=e.resolve,U=e.reject,c=e.domain;try{l?(o||(t.rejection===UNHANDLED&&onHandleUnhandled(t),t.rejection=HANDLED),!0===l?n=a:(c&&c.enter(),n=l(a),c&&(c.exit(),i=!0)),n===e.promise?U(TypeError$5("Promise-chain cycle")):(r=isThenable(n))?call$n(r,n,d,U):d(n)):U(a)}catch(e){c&&!i&&c.exit(),U(e)}},notify=function(e,t){e.notified||(e.notified=!0,microtask((function(){for(var n,r=e.reactions;n=r.get();)callReaction(n,e);e.notified=!1,t&&!e.rejection&&onUnhandled(e)})))},dispatchEvent=function(e,t,n){var r,i;DISPATCH_EVENT?((r=document$1.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),global$h.dispatchEvent(r)):r={promise:t,reason:n},!NATIVE_PROMISE_REJECTION_EVENT&&(i=global$h["on"+e])?i(r):e===UNHANDLED_REJECTION&&hostReportErrors("Unhandled promise rejection",n)},onUnhandled=function(e){call$n(task,global$h,(function(){var t,n=e.facade,r=e.value;if(isUnhandled(e)&&(t=perform$2((function(){IS_NODE?process$1.emit("unhandledRejection",r,n):dispatchEvent(UNHANDLED_REJECTION,n,r)})),e.rejection=IS_NODE||isUnhandled(e)?UNHANDLED:HANDLED,t.error))throw t.value}))},isUnhandled=function(e){return e.rejection!==HANDLED&&!e.parent},onHandleUnhandled=function(e){call$n(task,global$h,(function(){var t=e.facade;IS_NODE?process$1.emit("rejectionHandled",t):dispatchEvent(REJECTION_HANDLED,t,e.value)}))},bind$d=function(e,t,n){return function(r){e(t,r,n)}},internalReject=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=REJECTED,notify(e,!0))},internalResolve=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw TypeError$5("Promise can't be resolved itself");var r=isThenable(t);r?microtask((function(){var n={done:!1};try{call$n(r,t,bind$d(internalResolve,n,e),bind$d(internalReject,n,e))}catch(t){internalReject(n,t,e)}})):(e.value=t,e.state=FULFILLED,notify(e,!1))}catch(t){internalReject({done:!1},t,e)}}};if(FORCED_PROMISE_CONSTRUCTOR$4&&(PromisePrototype=(PromiseConstructor=function(e){anInstance$6(this,PromisePrototype),aCallable$d(e),call$n(Internal,this);var t=getInternalPromiseState(this);try{e(bind$d(internalResolve,t),bind$d(internalReject,t))}catch(e){internalReject(t,e)}}).prototype,(Internal=function(e){setInternalState$7(this,{type:PROMISE,done:!1,notified:!1,parent:!1,reactions:new Queue,rejection:!1,state:PENDING,value:void 0})}).prototype=defineBuiltIn$a(PromisePrototype,"then",(function(e,t){var n=getInternalPromiseState(this),r=newPromiseCapability$1(speciesConstructor$6(this,PromiseConstructor));return n.parent=!0,r.ok=!isCallable$a(e)||e,r.fail=isCallable$a(t)&&t,r.domain=IS_NODE?process$1.domain:void 0,n.state==PENDING?n.reactions.add(r):microtask((function(){callReaction(r,n)})),r.promise})),OwnPromiseCapability=function(){var e=new Internal,t=getInternalPromiseState(e);this.promise=e,this.resolve=bind$d(internalResolve,t),this.reject=bind$d(internalReject,t)},newPromiseCapabilityModule$3.f=newPromiseCapability$1=function(e){return e===PromiseConstructor||e===PromiseWrapper?new OwnPromiseCapability(e):newGenericPromiseCapability(e)},isCallable$a(NativePromiseConstructor$3)&&NativePromisePrototype$2!==Object.prototype)){nativeThen=NativePromisePrototype$2.then,NATIVE_PROMISE_SUBCLASSING||defineBuiltIn$a(NativePromisePrototype$2,"then",(function(e,t){var n=this;return new PromiseConstructor((function(e,t){call$n(nativeThen,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete NativePromisePrototype$2.constructor}catch(e){}setPrototypeOf$5&&setPrototypeOf$5(NativePromisePrototype$2,PromisePrototype)}$$C({global:!0,constructor:!0,wrap:!0,forced:FORCED_PROMISE_CONSTRUCTOR$4},{Promise:PromiseConstructor}),setToStringTag$6(PromiseConstructor,PROMISE,!1),setSpecies$3(PROMISE);var iterators={},wellKnownSymbol$a=wellKnownSymbol$q,Iterators$4=iterators,ITERATOR$8=wellKnownSymbol$a("iterator"),ArrayPrototype=Array.prototype,isArrayIteratorMethod$3=function(e){return void 0!==e&&(Iterators$4.Array===e||ArrayPrototype[ITERATOR$8]===e)},classof$7=classof$e,getMethod$4=getMethod$7,isNullOrUndefined$5=isNullOrUndefined$a,Iterators$3=iterators,wellKnownSymbol$9=wellKnownSymbol$q,ITERATOR$7=wellKnownSymbol$9("iterator"),getIteratorMethod$5=function(e){if(!isNullOrUndefined$5(e))return getMethod$4(e,ITERATOR$7)||getMethod$4(e,"@@iterator")||Iterators$3[classof$7(e)]},call$m=functionCall,aCallable$c=aCallable$h,anObject$l=anObject$w,tryToString$3=tryToString$6,getIteratorMethod$4=getIteratorMethod$5,$TypeError$7=TypeError,getIterator$4=function(e,t){var n=arguments.length<2?getIteratorMethod$4(e):t;if(aCallable$c(n))return anObject$l(call$m(n,e));throw $TypeError$7(tryToString$3(e)+" is not iterable")},call$l=functionCall,anObject$k=anObject$w,getMethod$3=getMethod$7,iteratorClose$2=function(e,t,n){var r,i;anObject$k(e);try{if(!(r=getMethod$3(e,"return"))){if("throw"===t)throw n;return n}r=call$l(r,e)}catch(e){i=!0,r=e}if("throw"===t)throw n;if(i)throw r;return anObject$k(r),n},bind$c=functionBindContext,call$k=functionCall,anObject$j=anObject$w,tryToString$2=tryToString$6,isArrayIteratorMethod$2=isArrayIteratorMethod$3,lengthOfArrayLike$b=lengthOfArrayLike$g,isPrototypeOf$3=objectIsPrototypeOf,getIterator$3=getIterator$4,getIteratorMethod$3=getIteratorMethod$5,iteratorClose$1=iteratorClose$2,$TypeError$6=TypeError,Result=function(e,t){this.stopped=e,this.result=t},ResultPrototype=Result.prototype,iterate$f=function(e,t,n){var r,i,a,o,l,d,U,c=n&&n.that,F=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_RECORD),Q=!(!n||!n.IS_ITERATOR),u=!(!n||!n.INTERRUPTED),R=bind$c(t,c),B=function(e){return r&&iteratorClose$1(r,"normal",e),new Result(!0,e)},h=function(e){return F?(anObject$j(e),u?R(e[0],e[1],B):R(e[0],e[1])):u?R(e,B):R(e)};if(s)r=e.iterator;else if(Q)r=e;else{if(!(i=getIteratorMethod$3(e)))throw $TypeError$6(tryToString$2(e)+" is not iterable");if(isArrayIteratorMethod$2(i)){for(a=0,o=lengthOfArrayLike$b(e);o>a;a++)if((l=h(e[a]))&&isPrototypeOf$3(ResultPrototype,l))return l;return new Result(!1)}r=getIterator$3(e,i)}for(d=s?e.next:r.next;!(U=call$k(d,r)).done;){try{l=h(U.value)}catch(e){iteratorClose$1(r,"throw",e)}if("object"==typeof l&&l&&isPrototypeOf$3(ResultPrototype,l))return l}return new Result(!1)},wellKnownSymbol$8=wellKnownSymbol$q,ITERATOR$6=wellKnownSymbol$8("iterator"),SAFE_CLOSING=!1;try{var called=0,iteratorWithReturn={next:function(){return{done:!!called++}},return:function(){SAFE_CLOSING=!0}};iteratorWithReturn[ITERATOR$6]=function(){return this},Array.from(iteratorWithReturn,(function(){throw 2}))}catch(e){}var checkCorrectnessOfIteration$3=function(e,t){if(!t&&!SAFE_CLOSING)return!1;var n=!1;try{var r={};r[ITERATOR$6]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},NativePromiseConstructor$2=promiseNativeConstructor,checkCorrectnessOfIteration$2=checkCorrectnessOfIteration$3,FORCED_PROMISE_CONSTRUCTOR$3=promiseConstructorDetection.CONSTRUCTOR,promiseStaticsIncorrectIteration=FORCED_PROMISE_CONSTRUCTOR$3||!checkCorrectnessOfIteration$2((function(e){NativePromiseConstructor$2.all(e).then(void 0,(function(){}))})),$$B=_export,call$j=functionCall,aCallable$b=aCallable$h,newPromiseCapabilityModule$2=newPromiseCapability$2,perform$1=perform$3,iterate$e=iterate$f,PROMISE_STATICS_INCORRECT_ITERATION$1=promiseStaticsIncorrectIteration;$$B({target:"Promise",stat:!0,forced:PROMISE_STATICS_INCORRECT_ITERATION$1},{all:function(e){var t=this,n=newPromiseCapabilityModule$2.f(t),r=n.resolve,i=n.reject,a=perform$1((function(){var n=aCallable$b(t.resolve),a=[],o=0,l=1;iterate$e(e,(function(e){var d=o++,U=!1;l++,call$j(n,t,e).then((function(e){U||(U=!0,a[d]=e,--l||r(a))}),i)})),--l||r(a)}));return a.error&&i(a.value),n.promise}});var $$A=_export,FORCED_PROMISE_CONSTRUCTOR$2=promiseConstructorDetection.CONSTRUCTOR,NativePromiseConstructor$1=promiseNativeConstructor,getBuiltIn$5=getBuiltIn$c,isCallable$9=isCallable$r,defineBuiltIn$9=defineBuiltIn$f,NativePromisePrototype$1=NativePromiseConstructor$1&&NativePromiseConstructor$1.prototype;if($$A({target:"Promise",proto:!0,forced:FORCED_PROMISE_CONSTRUCTOR$2,real:!0},{catch:function(e){return this.then(void 0,e)}}),isCallable$9(NativePromiseConstructor$1)){var method$1=getBuiltIn$5("Promise").prototype.catch;NativePromisePrototype$1.catch!==method$1&&defineBuiltIn$9(NativePromisePrototype$1,"catch",method$1,{unsafe:!0})}var $$z=_export,call$i=functionCall,aCallable$a=aCallable$h,newPromiseCapabilityModule$1=newPromiseCapability$2,perform=perform$3,iterate$d=iterate$f,PROMISE_STATICS_INCORRECT_ITERATION=promiseStaticsIncorrectIteration;$$z({target:"Promise",stat:!0,forced:PROMISE_STATICS_INCORRECT_ITERATION},{race:function(e){var t=this,n=newPromiseCapabilityModule$1.f(t),r=n.reject,i=perform((function(){var i=aCallable$a(t.resolve);iterate$d(e,(function(e){call$i(i,t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var $$y=_export,call$h=functionCall,newPromiseCapabilityModule=newPromiseCapability$2,FORCED_PROMISE_CONSTRUCTOR$1=promiseConstructorDetection.CONSTRUCTOR;$$y({target:"Promise",stat:!0,forced:FORCED_PROMISE_CONSTRUCTOR$1},{reject:function(e){var t=newPromiseCapabilityModule.f(this);return call$h(t.reject,void 0,e),t.promise}});var anObject$i=anObject$w,isObject$e=isObject$p,newPromiseCapability=newPromiseCapability$2,promiseResolve$2=function(e,t){if(anObject$i(e),isObject$e(t)&&t.constructor===e)return t;var n=newPromiseCapability.f(e);return(0,n.resolve)(t),n.promise},$$x=_export,getBuiltIn$4=getBuiltIn$c,FORCED_PROMISE_CONSTRUCTOR=promiseConstructorDetection.CONSTRUCTOR,promiseResolve$1=promiseResolve$2;function installUnStagedWithPromise(){Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e})}function installPolyfill(){installUnStagedWithPromise()}function debounce(e,t,n){var r;return function(){for(var i=this,a=arguments.length,o=new Array(a),l=0;l<a;l++)o[l]=arguments[l];var d=o,U=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||e.apply(i,d)}),t),U&&e.apply(i,d)}}function _classCallCheck$6(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$6(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$6(r.key),r)}}function _createClass$6(e,t,n){return t&&_defineProperties$6(e.prototype,t),n&&_defineProperties$6(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPrimitive$6(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$6(e){var t=_toPrimitive$6(e,"string");return"symbol"==typeof t?t:String(t)}getBuiltIn$4("Promise"),$$x({target:"Promise",stat:!0,forced:FORCED_PROMISE_CONSTRUCTOR},{resolve:function(e){return promiseResolve$1(this,e)}});var Raf=function(){function e(){_classCallCheck$6(this,e)}return _createClass$6(e,null,[{key:"install",value:function(){if(window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame,!window.requestAnimationFrame){var e=Date.now();window.requestAnimationFrame=function(t){var n=Date.now(),r=Math.max(16.7-(n-e),0),i=setTimeout(t,r);return e=n+r,i}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),FpsDetection=function(){function e(){_classCallCheck$6(this,e),this.fps=0,this.isStoped=!0,this.ticks=[],this.isSupport=!0,this.maxFps=0,this.step=this._step.bind(this),this.rafId=null}return _createClass$6(e,[{key:"_step",value:function(e){var t=this.ticks;if(t.unshift(e),t.length>10){var n=t.pop();n&&(this.fps=Math.floor(1e4/(e-n)),this.updateFpsInfo())}this.isStoped||(this.rafId=window.requestAnimationFrame(this.step))}},{key:"updateFpsInfo",value:function(){this.fps>this.maxFps&&(this.maxFps=this.fps)}},{key:"start",value:function(){void 0!==window.requestAnimationFrame&&(this.isStoped=!1,this.rafId=window.requestAnimationFrame(this.step))}},{key:"stop",value:function(){window.cancelAnimationFrame(this.rafId),this.isStoped=!0}}],[{key:"install",value:function(){Raf.install()}}]),e}(),uncurryThis$o=functionUncurryThis,toIntegerOrInfinity$8=toIntegerOrInfinity$b,toString$9=toString$d,requireObjectCoercible$5=requireObjectCoercible$a,charAt$5=uncurryThis$o("".charAt),charCodeAt$2=uncurryThis$o("".charCodeAt),stringSlice$6=uncurryThis$o("".slice),createMethod$3=function(e){return function(t,n){var r,i,a=toString$9(requireObjectCoercible$5(t)),o=toIntegerOrInfinity$8(n),l=a.length;return o<0||o>=l?e?"":void 0:(r=charCodeAt$2(a,o))<55296||r>56319||o+1===l||(i=charCodeAt$2(a,o+1))<56320||i>57343?e?charAt$5(a,o):r:e?stringSlice$6(a,o,o+2):i-56320+(r-55296<<10)+65536}},stringMultibyte={codeAt:createMethod$3(!1),charAt:createMethod$3(!0)},charAt$4=stringMultibyte.charAt,advanceStringIndex$3=function(e,t,n){return t+(n?charAt$4(e,t).length:1)},toAbsoluteIndex$4=toAbsoluteIndex$7,lengthOfArrayLike$a=lengthOfArrayLike$g,createProperty$2=createProperty$5,$Array$2=Array,max$2=Math.max,arraySliceSimple=function(e,t,n){for(var r=lengthOfArrayLike$a(e),i=toAbsoluteIndex$4(t,r),a=toAbsoluteIndex$4(void 0===n?r:n,r),o=$Array$2(max$2(a-i,0)),l=0;i<a;i++,l++)createProperty$2(o,l,e[i]);return o.length=l,o},apply$4=functionApply,call$g=functionCall,uncurryThis$n=functionUncurryThis,fixRegExpWellKnownSymbolLogic$2=fixRegexpWellKnownSymbolLogic,anObject$h=anObject$w,isNullOrUndefined$4=isNullOrUndefined$a,isRegExp=isRegexp,requireObjectCoercible$4=requireObjectCoercible$a,speciesConstructor$5=speciesConstructor$7,advanceStringIndex$2=advanceStringIndex$3,toLength$6=toLength$8,toString$8=toString$d,getMethod$2=getMethod$7,arraySlice$7=arraySliceSimple,callRegExpExec=regexpExecAbstract,regexpExec=regexpExec$3,stickyHelpers=regexpStickyHelpers,fails$l=fails$H,UNSUPPORTED_Y=stickyHelpers.UNSUPPORTED_Y,MAX_UINT32=4294967295,min$4=Math.min,$push=[].push,exec$2=uncurryThis$n(/./.exec),push$6=uncurryThis$n($push),stringSlice$5=uncurryThis$n("".slice),SPLIT_WORKS_WITH_OVERWRITTEN_EXEC=!fails$l((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));fixRegExpWellKnownSymbolLogic$2("split",(function(e,t,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var r=toString$8(requireObjectCoercible$4(this)),i=void 0===n?MAX_UINT32:n>>>0;if(0===i)return[];if(void 0===e)return[r];if(!isRegExp(e))return call$g(t,r,e,i);for(var a,o,l,d=[],U=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),c=0,F=new RegExp(e.source,U+"g");(a=call$g(regexpExec,F,r))&&!((o=F.lastIndex)>c&&(push$6(d,stringSlice$5(r,c,a.index)),a.length>1&&a.index<r.length&&apply$4($push,d,arraySlice$7(a,1)),l=a[0].length,c=o,d.length>=i));)F.lastIndex===a.index&&F.lastIndex++;return c===r.length?!l&&exec$2(F,"")||push$6(d,""):push$6(d,stringSlice$5(r,c)),d.length>i?arraySlice$7(d,0,i):d}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:call$g(t,this,e,n)}:t,[function(t,n){var i=requireObjectCoercible$4(this),a=isNullOrUndefined$4(t)?void 0:getMethod$2(t,e);return a?call$g(a,t,i,n):call$g(r,toString$8(i),t,n)},function(e,i){var a=anObject$h(this),o=toString$8(e),l=n(r,a,o,i,r!==t);if(l.done)return l.value;var d=speciesConstructor$5(a,RegExp),U=a.unicode,c=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(UNSUPPORTED_Y?"g":"y"),F=new d(UNSUPPORTED_Y?"^(?:"+a.source+")":a,c),s=void 0===i?MAX_UINT32:i>>>0;if(0===s)return[];if(0===o.length)return null===callRegExpExec(F,o)?[o]:[];for(var Q=0,u=0,R=[];u<o.length;){F.lastIndex=UNSUPPORTED_Y?0:u;var B,h=callRegExpExec(F,UNSUPPORTED_Y?stringSlice$5(o,u):o);if(null===h||(B=min$4(toLength$6(F.lastIndex+(UNSUPPORTED_Y?u:0)),o.length))===Q)u=advanceStringIndex$2(o,u,U);else{if(push$6(R,stringSlice$5(o,Q,u)),R.length===s)return R;for(var p=1;p<=h.length-1;p++)if(push$6(R,h[p]),R.length===s)return R;u=Q=B}}return push$6(R,stringSlice$5(o,Q)),R}]}),!SPLIT_WORKS_WITH_OVERWRITTEN_EXEC,UNSUPPORTED_Y);var whitespaces$1="\t\n\v\f\r \u2028\u2029\ufeff",uncurryThis$m=functionUncurryThis,requireObjectCoercible$3=requireObjectCoercible$a,toString$7=toString$d,whitespaces=whitespaces$1,replace$4=uncurryThis$m("".replace),whitespace="["+whitespaces+"]",ltrim=RegExp("^"+whitespace+whitespace+"*"),rtrim=RegExp(whitespace+whitespace+"*$"),createMethod$2=function(e){return function(t){var n=toString$7(requireObjectCoercible$3(t));return 1&e&&(n=replace$4(n,ltrim,"")),2&e&&(n=replace$4(n,rtrim,"")),n}},stringTrim={start:createMethod$2(1),end:createMethod$2(2),trim:createMethod$2(3)},$$w=_export,uncurryThis$l=functionUncurryThis,IndexedObject$1=indexedObject,toIndexedObject$5=toIndexedObject$b,arrayMethodIsStrict$2=arrayMethodIsStrict$4,nativeJoin=uncurryThis$l([].join),ES3_STRINGS=IndexedObject$1!=Object,STRICT_METHOD$2=arrayMethodIsStrict$2("join",",");$$w({target:"Array",proto:!0,forced:ES3_STRINGS||!STRICT_METHOD$2},{join:function(e){return nativeJoin(toIndexedObject$5(this),void 0===e?",":e)}});var IntervalTimer=function(){function e(){_classCallCheck$6(this,e),this.timeID=null,this.func=null}return _createClass$6(e,[{key:"repeat",value:function(e,t){this.timeID=1,this.repeatInterval(e,t)}},{key:"repeatInterval",value:function(e,t){var n=this;this.timeID&&(null===this.func&&(this.func=e),this.func===e&&(this.timeID&&clearTimeout(this.timeID),this.timeID=null,this.timeID=setTimeout((function(){e(),n.repeatInterval(e,t)}),t)))}},{key:"clear",value:function(){clearTimeout(this.timeID),this.timeID=null}}]),e}();const IntervalTimer$1=IntervalTimer;var isSupport$1=_isLocalStorageUsable();function probeSupport(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}function checkIfLocalStorageThrows(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}function _isLocalStorageUsable(){return probeSupport&&!checkIfLocalStorageThrows()}var proxyLocalStorage={length:isSupport$1?localStorage.length:0,clear:function(e){try{for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}}catch(e){}},getItem:function(e){try{return localStorage.getItem(e)}catch(e){return null}},key:function(e){try{return localStorage.key(e)}catch(e){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(e){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(e){}},isSupport:isSupport$1};const proxyLocalStorage$1=proxyLocalStorage;var IteratorPrototype$2,PrototypeOfArrayIteratorPrototype,arrayIterator,ProxyPromise=function(){function e(){var t,n;_classCallCheck$6(this,e);var r=new Promise((function(e,r){t=e,n=r}));return r.resolve=t,r.reject=n,r}return _createClass$6(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),fails$k=fails$H,correctPrototypeGetter=!fails$k((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),hasOwn$6=hasOwnProperty_1,isCallable$8=isCallable$r,toObject$8=toObject$e,sharedKey=sharedKey$3,CORRECT_PROTOTYPE_GETTER=correctPrototypeGetter,IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype$2=$Object.prototype,objectGetPrototypeOf=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(e){var t=toObject$8(e);if(hasOwn$6(t,IE_PROTO))return t[IE_PROTO];var n=t.constructor;return isCallable$8(n)&&t instanceof n?n.prototype:t instanceof $Object?ObjectPrototype$2:null},fails$j=fails$H,isCallable$7=isCallable$r,isObject$d=isObject$p,getPrototypeOf$3=objectGetPrototypeOf,defineBuiltIn$8=defineBuiltIn$f,wellKnownSymbol$7=wellKnownSymbol$q,ITERATOR$5=wellKnownSymbol$7("iterator"),BUGGY_SAFARI_ITERATORS$1=!1;[].keys&&("next"in(arrayIterator=[].keys())?(PrototypeOfArrayIteratorPrototype=getPrototypeOf$3(getPrototypeOf$3(arrayIterator)))!==Object.prototype&&(IteratorPrototype$2=PrototypeOfArrayIteratorPrototype):BUGGY_SAFARI_ITERATORS$1=!0);var NEW_ITERATOR_PROTOTYPE=!isObject$d(IteratorPrototype$2)||fails$j((function(){var e={};return IteratorPrototype$2[ITERATOR$5].call(e)!==e}));NEW_ITERATOR_PROTOTYPE&&(IteratorPrototype$2={}),isCallable$7(IteratorPrototype$2[ITERATOR$5])||defineBuiltIn$8(IteratorPrototype$2,ITERATOR$5,(function(){return this}));var iteratorsCore={IteratorPrototype:IteratorPrototype$2,BUGGY_SAFARI_ITERATORS:BUGGY_SAFARI_ITERATORS$1},IteratorPrototype$1=iteratorsCore.IteratorPrototype,create$4=objectCreate,createPropertyDescriptor$2=createPropertyDescriptor$6,setToStringTag$5=setToStringTag$7,Iterators$2=iterators,returnThis$1=function(){return this},iteratorCreateConstructor=function(e,t,n,r){var i=t+" Iterator";return e.prototype=create$4(IteratorPrototype$1,{next:createPropertyDescriptor$2(+!r,n)}),setToStringTag$5(e,i,!1),Iterators$2[i]=returnThis$1,e},$$v=_export,call$f=functionCall,FunctionName$1=functionName,isCallable$6=isCallable$r,createIteratorConstructor$1=iteratorCreateConstructor,getPrototypeOf$2=objectGetPrototypeOf,setPrototypeOf$4=objectSetPrototypeOf,setToStringTag$4=setToStringTag$7,createNonEnumerableProperty$4=createNonEnumerableProperty$9,defineBuiltIn$7=defineBuiltIn$f,wellKnownSymbol$6=wellKnownSymbol$q,Iterators$1=iterators,IteratorsCore=iteratorsCore,PROPER_FUNCTION_NAME$1=FunctionName$1.PROPER,CONFIGURABLE_FUNCTION_NAME$1=FunctionName$1.CONFIGURABLE,IteratorPrototype=IteratorsCore.IteratorPrototype,BUGGY_SAFARI_ITERATORS=IteratorsCore.BUGGY_SAFARI_ITERATORS,ITERATOR$4=wellKnownSymbol$6("iterator"),KEYS="keys",VALUES="values",ENTRIES="entries",returnThis=function(){return this},iteratorDefine=function(e,t,n,r,i,a,o){createIteratorConstructor$1(n,t,r);var l,d,U,c=function(e){if(e===i&&R)return R;if(!BUGGY_SAFARI_ITERATORS&&e in Q)return Q[e];switch(e){case KEYS:case VALUES:case ENTRIES:return function(){return new n(this,e)}}return function(){return new n(this)}},F=t+" Iterator",s=!1,Q=e.prototype,u=Q[ITERATOR$4]||Q["@@iterator"]||i&&Q[i],R=!BUGGY_SAFARI_ITERATORS&&u||c(i),B="Array"==t&&Q.entries||u;if(B&&(l=getPrototypeOf$2(B.call(new e)))!==Object.prototype&&l.next&&(getPrototypeOf$2(l)!==IteratorPrototype&&(setPrototypeOf$4?setPrototypeOf$4(l,IteratorPrototype):isCallable$6(l[ITERATOR$4])||defineBuiltIn$7(l,ITERATOR$4,returnThis)),setToStringTag$4(l,F,!0)),PROPER_FUNCTION_NAME$1&&i==VALUES&&u&&u.name!==VALUES&&(CONFIGURABLE_FUNCTION_NAME$1?createNonEnumerableProperty$4(Q,"name",VALUES):(s=!0,R=function(){return call$f(u,this)})),i)if(d={values:c(VALUES),keys:a?R:c(KEYS),entries:c(ENTRIES)},o)for(U in d)(BUGGY_SAFARI_ITERATORS||s||!(U in Q))&&defineBuiltIn$7(Q,U,d[U]);else $$v({target:t,proto:!0,forced:BUGGY_SAFARI_ITERATORS||s},d);return Q[ITERATOR$4]!==R&&defineBuiltIn$7(Q,ITERATOR$4,R,{name:i}),Iterators$1[t]=R,d},createIterResultObject$3=function(e,t){return{value:e,done:t}},toIndexedObject$4=toIndexedObject$b,addToUnscopables$2=addToUnscopables$4,Iterators=iterators,InternalStateModule$7=internalState,defineProperty$7=objectDefineProperty.f,defineIterator$2=iteratorDefine,createIterResultObject$2=createIterResultObject$3,DESCRIPTORS$a=descriptors,ARRAY_ITERATOR="Array Iterator",setInternalState$6=InternalStateModule$7.set,getInternalState$4=InternalStateModule$7.getterFor(ARRAY_ITERATOR),es_array_iterator=defineIterator$2(Array,"Array",(function(e,t){setInternalState$6(this,{type:ARRAY_ITERATOR,target:toIndexedObject$4(e),index:0,kind:t})}),(function(){var e=getInternalState$4(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,createIterResultObject$2(void 0,!0)):createIterResultObject$2("keys"==n?r:"values"==n?t[r]:[r,t[r]],!1)}),"values"),values=Iterators.Arguments=Iterators.Array;if(addToUnscopables$2("keys"),addToUnscopables$2("values"),addToUnscopables$2("entries"),DESCRIPTORS$a&&"values"!==values.name)try{defineProperty$7(values,"name",{value:"values"})}catch(e){}var NAME$1,Constructor,Prototype,typedArrayConstructor={exports:{}},arrayBufferBasicDetection="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,NATIVE_ARRAY_BUFFER$1=arrayBufferBasicDetection,DESCRIPTORS$9=descriptors,global$g=global$C,isCallable$5=isCallable$r,isObject$c=isObject$p,hasOwn$5=hasOwnProperty_1,classof$6=classof$e,tryToString$1=tryToString$6,createNonEnumerableProperty$3=createNonEnumerableProperty$9,defineBuiltIn$6=defineBuiltIn$f,defineProperty$6=objectDefineProperty.f,isPrototypeOf$2=objectIsPrototypeOf,getPrototypeOf$1=objectGetPrototypeOf,setPrototypeOf$3=objectSetPrototypeOf,wellKnownSymbol$5=wellKnownSymbol$q,uid$1=uid$4,InternalStateModule$6=internalState,enforceInternalState$1=InternalStateModule$6.enforce,getInternalState$3=InternalStateModule$6.get,Int8Array$4=global$g.Int8Array,Int8ArrayPrototype$1=Int8Array$4&&Int8Array$4.prototype,Uint8ClampedArray$1=global$g.Uint8ClampedArray,Uint8ClampedArrayPrototype=Uint8ClampedArray$1&&Uint8ClampedArray$1.prototype,TypedArray$1=Int8Array$4&&getPrototypeOf$1(Int8Array$4),TypedArrayPrototype$2=Int8ArrayPrototype$1&&getPrototypeOf$1(Int8ArrayPrototype$1),ObjectPrototype$1=Object.prototype,TypeError$4=global$g.TypeError,TO_STRING_TAG$1=wellKnownSymbol$5("toStringTag"),TYPED_ARRAY_TAG$1=uid$1("TYPED_ARRAY_TAG"),TYPED_ARRAY_CONSTRUCTOR="TypedArrayConstructor",NATIVE_ARRAY_BUFFER_VIEWS$2=NATIVE_ARRAY_BUFFER$1&&!!setPrototypeOf$3&&"Opera"!==classof$6(global$g.opera),TYPED_ARRAY_TAG_REQUIRED=!1,TypedArrayConstructorsList={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},BigIntArrayConstructorsList={BigInt64Array:8,BigUint64Array:8},isView=function(e){if(!isObject$c(e))return!1;var t=classof$6(e);return"DataView"===t||hasOwn$5(TypedArrayConstructorsList,t)||hasOwn$5(BigIntArrayConstructorsList,t)},getTypedArrayConstructor$1=function(e){var t=getPrototypeOf$1(e);if(isObject$c(t)){var n=getInternalState$3(t);return n&&hasOwn$5(n,TYPED_ARRAY_CONSTRUCTOR)?n[TYPED_ARRAY_CONSTRUCTOR]:getTypedArrayConstructor$1(t)}},isTypedArray$1=function(e){if(!isObject$c(e))return!1;var t=classof$6(e);return hasOwn$5(TypedArrayConstructorsList,t)||hasOwn$5(BigIntArrayConstructorsList,t)},aTypedArray$m=function(e){if(isTypedArray$1(e))return e;throw TypeError$4("Target is not a typed array")},aTypedArrayConstructor$4=function(e){if(isCallable$5(e)&&(!setPrototypeOf$3||isPrototypeOf$2(TypedArray$1,e)))return e;throw TypeError$4(tryToString$1(e)+" is not a typed array constructor")},exportTypedArrayMethod$n=function(e,t,n,r){if(DESCRIPTORS$9){if(n)for(var i in TypedArrayConstructorsList){var a=global$g[i];if(a&&hasOwn$5(a.prototype,e))try{delete a.prototype[e]}catch(n){try{a.prototype[e]=t}catch(e){}}}TypedArrayPrototype$2[e]&&!n||defineBuiltIn$6(TypedArrayPrototype$2,e,n?t:NATIVE_ARRAY_BUFFER_VIEWS$2&&Int8ArrayPrototype$1[e]||t,r)}},exportTypedArrayStaticMethod$1=function(e,t,n){var r,i;if(DESCRIPTORS$9){if(setPrototypeOf$3){if(n)for(r in TypedArrayConstructorsList)if((i=global$g[r])&&hasOwn$5(i,e))try{delete i[e]}catch(e){}if(TypedArray$1[e]&&!n)return;try{return defineBuiltIn$6(TypedArray$1,e,n?t:NATIVE_ARRAY_BUFFER_VIEWS$2&&TypedArray$1[e]||t)}catch(e){}}for(r in TypedArrayConstructorsList)!(i=global$g[r])||i[e]&&!n||defineBuiltIn$6(i,e,t)}};for(NAME$1 in TypedArrayConstructorsList)(Prototype=(Constructor=global$g[NAME$1])&&Constructor.prototype)?enforceInternalState$1(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor:NATIVE_ARRAY_BUFFER_VIEWS$2=!1;for(NAME$1 in BigIntArrayConstructorsList)(Prototype=(Constructor=global$g[NAME$1])&&Constructor.prototype)&&(enforceInternalState$1(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor);if((!NATIVE_ARRAY_BUFFER_VIEWS$2||!isCallable$5(TypedArray$1)||TypedArray$1===Function.prototype)&&(TypedArray$1=function(){throw TypeError$4("Incorrect invocation")},NATIVE_ARRAY_BUFFER_VIEWS$2))for(NAME$1 in TypedArrayConstructorsList)global$g[NAME$1]&&setPrototypeOf$3(global$g[NAME$1],TypedArray$1);if((!NATIVE_ARRAY_BUFFER_VIEWS$2||!TypedArrayPrototype$2||TypedArrayPrototype$2===ObjectPrototype$1)&&(TypedArrayPrototype$2=TypedArray$1.prototype,NATIVE_ARRAY_BUFFER_VIEWS$2))for(NAME$1 in TypedArrayConstructorsList)global$g[NAME$1]&&setPrototypeOf$3(global$g[NAME$1].prototype,TypedArrayPrototype$2);if(NATIVE_ARRAY_BUFFER_VIEWS$2&&getPrototypeOf$1(Uint8ClampedArrayPrototype)!==TypedArrayPrototype$2&&setPrototypeOf$3(Uint8ClampedArrayPrototype,TypedArrayPrototype$2),DESCRIPTORS$9&&!hasOwn$5(TypedArrayPrototype$2,TO_STRING_TAG$1))for(NAME$1 in TYPED_ARRAY_TAG_REQUIRED=!0,defineProperty$6(TypedArrayPrototype$2,TO_STRING_TAG$1,{get:function(){return isObject$c(this)?this[TYPED_ARRAY_TAG$1]:void 0}}),TypedArrayConstructorsList)global$g[NAME$1]&&createNonEnumerableProperty$3(global$g[NAME$1],TYPED_ARRAY_TAG$1,NAME$1);var arrayBufferViewCore={NATIVE_ARRAY_BUFFER_VIEWS:NATIVE_ARRAY_BUFFER_VIEWS$2,TYPED_ARRAY_TAG:TYPED_ARRAY_TAG_REQUIRED&&TYPED_ARRAY_TAG$1,aTypedArray:aTypedArray$m,aTypedArrayConstructor:aTypedArrayConstructor$4,exportTypedArrayMethod:exportTypedArrayMethod$n,exportTypedArrayStaticMethod:exportTypedArrayStaticMethod$1,getTypedArrayConstructor:getTypedArrayConstructor$1,isView:isView,isTypedArray:isTypedArray$1,TypedArray:TypedArray$1,TypedArrayPrototype:TypedArrayPrototype$2},global$f=global$C,fails$i=fails$H,checkCorrectnessOfIteration$1=checkCorrectnessOfIteration$3,NATIVE_ARRAY_BUFFER_VIEWS$1=arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS,ArrayBuffer$3=global$f.ArrayBuffer,Int8Array$3=global$f.Int8Array,typedArrayConstructorsRequireWrappers=!NATIVE_ARRAY_BUFFER_VIEWS$1||!fails$i((function(){Int8Array$3(1)}))||!fails$i((function(){new Int8Array$3(-1)}))||!checkCorrectnessOfIteration$1((function(e){new Int8Array$3,new Int8Array$3(null),new Int8Array$3(1.5),new Int8Array$3(e)}),!0)||fails$i((function(){return 1!==new Int8Array$3(new ArrayBuffer$3(2),1,void 0).length})),defineBuiltIn$5=defineBuiltIn$f,defineBuiltIns$3=function(e,t,n){for(var r in t)defineBuiltIn$5(e,r,t[r],n);return e},toIntegerOrInfinity$7=toIntegerOrInfinity$b,toLength$5=toLength$8,$RangeError$5=RangeError,toIndex$2=function(e){if(void 0===e)return 0;var t=toIntegerOrInfinity$7(e),n=toLength$5(t);if(t!==n)throw $RangeError$5("Wrong length or index");return n},$Array$1=Array,abs=Math.abs,pow$2=Math.pow,floor$7=Math.floor,log$1=Math.log,LN2=Math.LN2,pack=function(e,t,n){var r,i,a,o=$Array$1(n),l=8*n-t-1,d=(1<<l)-1,U=d>>1,c=23===t?pow$2(2,-24)-pow$2(2,-77):0,F=e<0||0===e&&1/e<0?1:0,s=0;for((e=abs(e))!=e||e===1/0?(i=e!=e?1:0,r=d):(r=floor$7(log$1(e)/LN2),e*(a=pow$2(2,-r))<1&&(r--,a*=2),(e+=r+U>=1?c/a:c*pow$2(2,1-U))*a>=2&&(r++,a/=2),r+U>=d?(i=0,r=d):r+U>=1?(i=(e*a-1)*pow$2(2,t),r+=U):(i=e*pow$2(2,U-1)*pow$2(2,t),r=0));t>=8;)o[s++]=255&i,i/=256,t-=8;for(r=r<<t|i,l+=t;l>0;)o[s++]=255&r,r/=256,l-=8;return o[--s]|=128*F,o},unpack=function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<<i)-1,o=a>>1,l=i-7,d=r-1,U=e[d--],c=127&U;for(U>>=7;l>0;)c=256*c+e[d--],l-=8;for(n=c&(1<<-l)-1,c>>=-l,l+=t;l>0;)n=256*n+e[d--],l-=8;if(0===c)c=1-o;else{if(c===a)return n?NaN:U?-1/0:1/0;n+=pow$2(2,t),c-=o}return(U?-1:1)*n*pow$2(2,c-t)},ieee754={pack:pack,unpack:unpack},toObject$7=toObject$e,toAbsoluteIndex$3=toAbsoluteIndex$7,lengthOfArrayLike$9=lengthOfArrayLike$g,arrayFill$1=function(e){for(var t=toObject$7(this),n=lengthOfArrayLike$9(t),r=arguments.length,i=toAbsoluteIndex$3(r>1?arguments[1]:void 0,n),a=r>2?arguments[2]:void 0,o=void 0===a?n:toAbsoluteIndex$3(a,n);o>i;)t[i++]=e;return t},global$e=global$C,uncurryThis$k=functionUncurryThis,DESCRIPTORS$8=descriptors,NATIVE_ARRAY_BUFFER=arrayBufferBasicDetection,FunctionName=functionName,createNonEnumerableProperty$2=createNonEnumerableProperty$9,defineBuiltIns$2=defineBuiltIns$3,fails$h=fails$H,anInstance$5=anInstance$7,toIntegerOrInfinity$6=toIntegerOrInfinity$b,toLength$4=toLength$8,toIndex$1=toIndex$2,IEEE754=ieee754,getPrototypeOf=objectGetPrototypeOf,setPrototypeOf$2=objectSetPrototypeOf,getOwnPropertyNames$2=objectGetOwnPropertyNames.f,defineProperty$5=objectDefineProperty.f,arrayFill=arrayFill$1,arraySlice$6=arraySliceSimple,setToStringTag$3=setToStringTag$7,InternalStateModule$5=internalState,PROPER_FUNCTION_NAME=FunctionName.PROPER,CONFIGURABLE_FUNCTION_NAME=FunctionName.CONFIGURABLE,getInternalState$2=InternalStateModule$5.get,setInternalState$5=InternalStateModule$5.set,ARRAY_BUFFER$1="ArrayBuffer",DATA_VIEW="DataView",PROTOTYPE="prototype",WRONG_LENGTH$1="Wrong length",WRONG_INDEX="Wrong index",NativeArrayBuffer$1=global$e[ARRAY_BUFFER$1],$ArrayBuffer=NativeArrayBuffer$1,ArrayBufferPrototype$1=$ArrayBuffer&&$ArrayBuffer[PROTOTYPE],$DataView=global$e[DATA_VIEW],DataViewPrototype=$DataView&&$DataView[PROTOTYPE],ObjectPrototype=Object.prototype,Array$1=global$e.Array,RangeError$3=global$e.RangeError,fill$1=uncurryThis$k(arrayFill),reverse=uncurryThis$k([].reverse),packIEEE754=IEEE754.pack,unpackIEEE754=IEEE754.unpack,packInt8=function(e){return[255&e]},packInt16=function(e){return[255&e,e>>8&255]},packInt32=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},unpackInt32=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},packFloat32=function(e){return packIEEE754(e,23,4)},packFloat64=function(e){return packIEEE754(e,52,8)},addGetter$1=function(e,t){defineProperty$5(e[PROTOTYPE],t,{get:function(){return getInternalState$2(this)[t]}})},get=function(e,t,n,r){var i=toIndex$1(n),a=getInternalState$2(e);if(i+t>a.byteLength)throw RangeError$3(WRONG_INDEX);var o=getInternalState$2(a.buffer).bytes,l=i+a.byteOffset,d=arraySlice$6(o,l,l+t);return r?d:reverse(d)},set=function(e,t,n,r,i,a){var o=toIndex$1(n),l=getInternalState$2(e);if(o+t>l.byteLength)throw RangeError$3(WRONG_INDEX);for(var d=getInternalState$2(l.buffer).bytes,U=o+l.byteOffset,c=r(+i),F=0;F<t;F++)d[U+F]=c[a?F:t-F-1]};if(NATIVE_ARRAY_BUFFER){var INCORRECT_ARRAY_BUFFER_NAME=PROPER_FUNCTION_NAME&&NativeArrayBuffer$1.name!==ARRAY_BUFFER$1;if(fails$h((function(){NativeArrayBuffer$1(1)}))&&fails$h((function(){new NativeArrayBuffer$1(-1)}))&&!fails$h((function(){return new NativeArrayBuffer$1,new NativeArrayBuffer$1(1.5),new NativeArrayBuffer$1(NaN),1!=NativeArrayBuffer$1.length||INCORRECT_ARRAY_BUFFER_NAME&&!CONFIGURABLE_FUNCTION_NAME})))INCORRECT_ARRAY_BUFFER_NAME&&CONFIGURABLE_FUNCTION_NAME&&createNonEnumerableProperty$2(NativeArrayBuffer$1,"name",ARRAY_BUFFER$1);else{($ArrayBuffer=function(e){return anInstance$5(this,ArrayBufferPrototype$1),new NativeArrayBuffer$1(toIndex$1(e))})[PROTOTYPE]=ArrayBufferPrototype$1;for(var key$1,keys$2=getOwnPropertyNames$2(NativeArrayBuffer$1),j$1=0;keys$2.length>j$1;)(key$1=keys$2[j$1++])in $ArrayBuffer||createNonEnumerableProperty$2($ArrayBuffer,key$1,NativeArrayBuffer$1[key$1]);ArrayBufferPrototype$1.constructor=$ArrayBuffer}setPrototypeOf$2&&getPrototypeOf(DataViewPrototype)!==ObjectPrototype&&setPrototypeOf$2(DataViewPrototype,ObjectPrototype);var testView=new $DataView(new $ArrayBuffer(2)),$setInt8=uncurryThis$k(DataViewPrototype.setInt8);testView.setInt8(0,2147483648),testView.setInt8(1,2147483649),!testView.getInt8(0)&&testView.getInt8(1)||defineBuiltIns$2(DataViewPrototype,{setInt8:function(e,t){$setInt8(this,e,t<<24>>24)},setUint8:function(e,t){$setInt8(this,e,t<<24>>24)}},{unsafe:!0})}else ArrayBufferPrototype$1=($ArrayBuffer=function(e){anInstance$5(this,ArrayBufferPrototype$1);var t=toIndex$1(e);setInternalState$5(this,{bytes:fill$1(Array$1(t),0),byteLength:t}),DESCRIPTORS$8||(this.byteLength=t)})[PROTOTYPE],DataViewPrototype=($DataView=function(e,t,n){anInstance$5(this,DataViewPrototype),anInstance$5(e,ArrayBufferPrototype$1);var r=getInternalState$2(e).byteLength,i=toIntegerOrInfinity$6(t);if(i<0||i>r)throw RangeError$3("Wrong offset");if(i+(n=void 0===n?r-i:toLength$4(n))>r)throw RangeError$3(WRONG_LENGTH$1);setInternalState$5(this,{buffer:e,byteLength:n,byteOffset:i}),DESCRIPTORS$8||(this.buffer=e,this.byteLength=n,this.byteOffset=i)})[PROTOTYPE],DESCRIPTORS$8&&(addGetter$1($ArrayBuffer,"byteLength"),addGetter$1($DataView,"buffer"),addGetter$1($DataView,"byteLength"),addGetter$1($DataView,"byteOffset")),defineBuiltIns$2(DataViewPrototype,{getInt8:function(e){return get(this,1,e)[0]<<24>>24},getUint8:function(e){return get(this,1,e)[0]},getInt16:function(e){var t=get(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=get(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return unpackInt32(get(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return unpackInt32(get(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return unpackIEEE754(get(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return unpackIEEE754(get(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){set(this,1,e,packInt8,t)},setUint8:function(e,t){set(this,1,e,packInt8,t)},setInt16:function(e,t){set(this,2,e,packInt16,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){set(this,2,e,packInt16,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){set(this,4,e,packInt32,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){set(this,4,e,packInt32,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){set(this,4,e,packFloat32,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){set(this,8,e,packFloat64,t,arguments.length>2?arguments[2]:void 0)}});setToStringTag$3($ArrayBuffer,ARRAY_BUFFER$1),setToStringTag$3($DataView,DATA_VIEW);var arrayBuffer={ArrayBuffer:$ArrayBuffer,DataView:$DataView},isObject$b=isObject$p,floor$6=Math.floor,isIntegralNumber$1=Number.isInteger||function(e){return!isObject$b(e)&&isFinite(e)&&floor$6(e)===e},toIntegerOrInfinity$5=toIntegerOrInfinity$b,$RangeError$4=RangeError,toPositiveInteger$1=function(e){var t=toIntegerOrInfinity$5(e);if(t<0)throw $RangeError$4("The argument can't be less than 0");return t},toPositiveInteger=toPositiveInteger$1,$RangeError$3=RangeError,toOffset$2=function(e,t){var n=toPositiveInteger(e);if(n%t)throw $RangeError$3("Wrong offset");return n},classof$5=classof$e,uncurryThis$j=functionUncurryThis,slice$1=uncurryThis$j("".slice),isBigIntArray$1=function(e){return"Big"===slice$1(classof$5(e),0,3)},toPrimitive$1=toPrimitive$3,$TypeError$5=TypeError,toBigInt$2=function(e){var t=toPrimitive$1(e,"number");if("number"==typeof t)throw $TypeError$5("Can't convert number to bigint");return BigInt(t)},bind$b=functionBindContext,call$e=functionCall,aConstructor=aConstructor$2,toObject$6=toObject$e,lengthOfArrayLike$8=lengthOfArrayLike$g,getIterator$2=getIterator$4,getIteratorMethod$2=getIteratorMethod$5,isArrayIteratorMethod$1=isArrayIteratorMethod$3,isBigIntArray=isBigIntArray$1,aTypedArrayConstructor$3=arrayBufferViewCore.aTypedArrayConstructor,toBigInt$1=toBigInt$2,typedArrayFrom$1=function(e){var t,n,r,i,a,o,l,d,U=aConstructor(this),c=toObject$6(e),F=arguments.length,s=F>1?arguments[1]:void 0,Q=void 0!==s,u=getIteratorMethod$2(c);if(u&&!isArrayIteratorMethod$1(u))for(d=(l=getIterator$2(c,u)).next,c=[];!(o=call$e(d,l)).done;)c.push(o.value);for(Q&&F>2&&(s=bind$b(s,arguments[2])),n=lengthOfArrayLike$8(c),r=new(aTypedArrayConstructor$3(U))(n),i=isBigIntArray(r),t=0;n>t;t++)a=Q?s(c[t],t):c[t],r[t]=i?toBigInt$1(a):+a;return r},isCallable$4=isCallable$r,isObject$a=isObject$p,setPrototypeOf$1=objectSetPrototypeOf,inheritIfRequired$3=function(e,t,n){var r,i;return setPrototypeOf$1&&isCallable$4(r=t.constructor)&&r!==n&&isObject$a(i=r.prototype)&&i!==n.prototype&&setPrototypeOf$1(e,i),e},$$u=_export,global$d=global$C,call$d=functionCall,DESCRIPTORS$7=descriptors,TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1=typedArrayConstructorsRequireWrappers,ArrayBufferViewCore$o=arrayBufferViewCore,ArrayBufferModule=arrayBuffer,anInstance$4=anInstance$7,createPropertyDescriptor$1=createPropertyDescriptor$6,createNonEnumerableProperty$1=createNonEnumerableProperty$9,isIntegralNumber=isIntegralNumber$1,toLength$3=toLength$8,toIndex=toIndex$2,toOffset$1=toOffset$2,toPropertyKey=toPropertyKey$4,hasOwn$4=hasOwnProperty_1,classof$4=classof$e,isObject$9=isObject$p,isSymbol$1=isSymbol$4,create$3=objectCreate,isPrototypeOf$1=objectIsPrototypeOf,setPrototypeOf=objectSetPrototypeOf,getOwnPropertyNames$1=objectGetOwnPropertyNames.f,typedArrayFrom=typedArrayFrom$1,forEach$1=arrayIteration.forEach,setSpecies$2=setSpecies$4,definePropertyModule=objectDefineProperty,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor,InternalStateModule$4=internalState,inheritIfRequired$2=inheritIfRequired$3,getInternalState$1=InternalStateModule$4.get,setInternalState$4=InternalStateModule$4.set,enforceInternalState=InternalStateModule$4.enforce,nativeDefineProperty=definePropertyModule.f,nativeGetOwnPropertyDescriptor=getOwnPropertyDescriptorModule.f,round=Math.round,RangeError$2=global$d.RangeError,ArrayBuffer$2=ArrayBufferModule.ArrayBuffer,ArrayBufferPrototype=ArrayBuffer$2.prototype,DataView$1=ArrayBufferModule.DataView,NATIVE_ARRAY_BUFFER_VIEWS=ArrayBufferViewCore$o.NATIVE_ARRAY_BUFFER_VIEWS,TYPED_ARRAY_TAG=ArrayBufferViewCore$o.TYPED_ARRAY_TAG,TypedArray=ArrayBufferViewCore$o.TypedArray,TypedArrayPrototype$1=ArrayBufferViewCore$o.TypedArrayPrototype,aTypedArrayConstructor$2=ArrayBufferViewCore$o.aTypedArrayConstructor,isTypedArray=ArrayBufferViewCore$o.isTypedArray,BYTES_PER_ELEMENT="BYTES_PER_ELEMENT",WRONG_LENGTH="Wrong length",fromList=function(e,t){aTypedArrayConstructor$2(e);for(var n=0,r=t.length,i=new e(r);r>n;)i[n]=t[n++];return i},addGetter=function(e,t){nativeDefineProperty(e,t,{get:function(){return getInternalState$1(this)[t]}})},isArrayBuffer=function(e){var t;return isPrototypeOf$1(ArrayBufferPrototype,e)||"ArrayBuffer"==(t=classof$4(e))||"SharedArrayBuffer"==t},isTypedArrayIndex=function(e,t){return isTypedArray(e)&&!isSymbol$1(t)&&t in e&&isIntegralNumber(+t)&&t>=0},wrappedGetOwnPropertyDescriptor=function(e,t){return t=toPropertyKey(t),isTypedArrayIndex(e,t)?createPropertyDescriptor$1(2,e[t]):nativeGetOwnPropertyDescriptor(e,t)},wrappedDefineProperty=function(e,t,n){return t=toPropertyKey(t),!(isTypedArrayIndex(e,t)&&isObject$9(n)&&hasOwn$4(n,"value"))||hasOwn$4(n,"get")||hasOwn$4(n,"set")||n.configurable||hasOwn$4(n,"writable")&&!n.writable||hasOwn$4(n,"enumerable")&&!n.enumerable?nativeDefineProperty(e,t,n):(e[t]=n.value,e)};DESCRIPTORS$7?(NATIVE_ARRAY_BUFFER_VIEWS||(getOwnPropertyDescriptorModule.f=wrappedGetOwnPropertyDescriptor,definePropertyModule.f=wrappedDefineProperty,addGetter(TypedArrayPrototype$1,"buffer"),addGetter(TypedArrayPrototype$1,"byteOffset"),addGetter(TypedArrayPrototype$1,"byteLength"),addGetter(TypedArrayPrototype$1,"length")),$$u({target:"Object",stat:!0,forced:!NATIVE_ARRAY_BUFFER_VIEWS},{getOwnPropertyDescriptor:wrappedGetOwnPropertyDescriptor,defineProperty:wrappedDefineProperty}),typedArrayConstructor.exports=function(e,t,n){var r=e.match(/\d+$/)[0]/8,i=e+(n?"Clamped":"")+"Array",a="get"+e,o="set"+e,l=global$d[i],d=l,U=d&&d.prototype,c={},F=function(e,t){nativeDefineProperty(e,t,{get:function(){return function(e,t){var n=getInternalState$1(e);return n.view[a](t*r+n.byteOffset,!0)}(this,t)},set:function(e){return function(e,t,i){var a=getInternalState$1(e);n&&(i=(i=round(i))<0?0:i>255?255:255&i),a.view[o](t*r+a.byteOffset,i,!0)}(this,t,e)},enumerable:!0})};NATIVE_ARRAY_BUFFER_VIEWS?TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS$1&&(d=t((function(e,t,n,i){return anInstance$4(e,U),inheritIfRequired$2(isObject$9(t)?isArrayBuffer(t)?void 0!==i?new l(t,toOffset$1(n,r),i):void 0!==n?new l(t,toOffset$1(n,r)):new l(t):isTypedArray(t)?fromList(d,t):call$d(typedArrayFrom,d,t):new l(toIndex(t)),e,d)})),setPrototypeOf&&setPrototypeOf(d,TypedArray),forEach$1(getOwnPropertyNames$1(l),(function(e){e in d||createNonEnumerableProperty$1(d,e,l[e])})),d.prototype=U):(d=t((function(e,t,n,i){anInstance$4(e,U);var a,o,l,c=0,s=0;if(isObject$9(t)){if(!isArrayBuffer(t))return isTypedArray(t)?fromList(d,t):call$d(typedArrayFrom,d,t);a=t,s=toOffset$1(n,r);var Q=t.byteLength;if(void 0===i){if(Q%r)throw RangeError$2(WRONG_LENGTH);if((o=Q-s)<0)throw RangeError$2(WRONG_LENGTH)}else if((o=toLength$3(i)*r)+s>Q)throw RangeError$2(WRONG_LENGTH);l=o/r}else l=toIndex(t),a=new ArrayBuffer$2(o=l*r);for(setInternalState$4(e,{buffer:a,byteOffset:s,byteLength:o,length:l,view:new DataView$1(a)});c<l;)F(e,c++)})),setPrototypeOf&&setPrototypeOf(d,TypedArray),U=d.prototype=create$3(TypedArrayPrototype$1)),U.constructor!==d&&createNonEnumerableProperty$1(U,"constructor",d),enforceInternalState(U).TypedArrayConstructor=d,TYPED_ARRAY_TAG&&createNonEnumerableProperty$1(U,TYPED_ARRAY_TAG,i);var s=d!=l;c[i]=d,$$u({global:!0,constructor:!0,forced:s,sham:!NATIVE_ARRAY_BUFFER_VIEWS},c),BYTES_PER_ELEMENT in d||createNonEnumerableProperty$1(d,BYTES_PER_ELEMENT,r),BYTES_PER_ELEMENT in U||createNonEnumerableProperty$1(U,BYTES_PER_ELEMENT,r),setSpecies$2(i)}):typedArrayConstructor.exports=function(){};var typedArrayConstructorExports=typedArrayConstructor.exports,createTypedArrayConstructor$1=typedArrayConstructorExports;createTypedArrayConstructor$1("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var tryToString=tryToString$6,$TypeError$4=TypeError,deletePropertyOrThrow$3=function(e,t){if(!delete e[t])throw $TypeError$4("Cannot delete property "+tryToString(t)+" of "+tryToString(e))},toObject$5=toObject$e,toAbsoluteIndex$2=toAbsoluteIndex$7,lengthOfArrayLike$7=lengthOfArrayLike$g,deletePropertyOrThrow$2=deletePropertyOrThrow$3,min$3=Math.min,arrayCopyWithin=[].copyWithin||function(e,t){var n=toObject$5(this),r=lengthOfArrayLike$7(n),i=toAbsoluteIndex$2(e,r),a=toAbsoluteIndex$2(t,r),o=arguments.length>2?arguments[2]:void 0,l=min$3((void 0===o?r:toAbsoluteIndex$2(o,r))-a,r-i),d=1;for(a<i&&i<a+l&&(d=-1,a+=l-1,i+=l-1);l-- >0;)a in n?n[i]=n[a]:deletePropertyOrThrow$2(n,i),i+=d,a+=d;return n},uncurryThis$i=functionUncurryThis,ArrayBufferViewCore$n=arrayBufferViewCore,$ArrayCopyWithin=arrayCopyWithin,u$ArrayCopyWithin=uncurryThis$i($ArrayCopyWithin),aTypedArray$l=ArrayBufferViewCore$n.aTypedArray,exportTypedArrayMethod$m=ArrayBufferViewCore$n.exportTypedArrayMethod;exportTypedArrayMethod$m("copyWithin",(function(e,t){return u$ArrayCopyWithin(aTypedArray$l(this),e,t,arguments.length>2?arguments[2]:void 0)}));var ArrayBufferViewCore$m=arrayBufferViewCore,$every=arrayIteration.every,aTypedArray$k=ArrayBufferViewCore$m.aTypedArray,exportTypedArrayMethod$l=ArrayBufferViewCore$m.exportTypedArrayMethod;exportTypedArrayMethod$l("every",(function(e){return $every(aTypedArray$k(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$l=arrayBufferViewCore,$fill=arrayFill$1,toBigInt=toBigInt$2,classof$3=classof$e,call$c=functionCall,uncurryThis$h=functionUncurryThis,fails$g=fails$H,aTypedArray$j=ArrayBufferViewCore$l.aTypedArray,exportTypedArrayMethod$k=ArrayBufferViewCore$l.exportTypedArrayMethod,slice2=uncurryThis$h("".slice),CONVERSION_BUG=fails$g((function(){var e=0;return new Int8Array(2).fill({valueOf:function(){return e++}}),1!==e}));exportTypedArrayMethod$k("fill",(function(e){var t=arguments.length;aTypedArray$j(this);var n="Big"===slice2(classof$3(this),0,3)?toBigInt(e):+e;return call$c($fill,this,n,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),CONVERSION_BUG);var lengthOfArrayLike$6=lengthOfArrayLike$g,arrayFromConstructorAndList$1=function(e,t){for(var n=0,r=lengthOfArrayLike$6(t),i=new e(r);r>n;)i[n]=t[n++];return i},ArrayBufferViewCore$k=arrayBufferViewCore,speciesConstructor$4=speciesConstructor$7,aTypedArrayConstructor$1=ArrayBufferViewCore$k.aTypedArrayConstructor,getTypedArrayConstructor=ArrayBufferViewCore$k.getTypedArrayConstructor,typedArraySpeciesConstructor$4=function(e){return aTypedArrayConstructor$1(speciesConstructor$4(e,getTypedArrayConstructor(e)))},arrayFromConstructorAndList=arrayFromConstructorAndList$1,typedArraySpeciesConstructor$3=typedArraySpeciesConstructor$4,typedArrayFromSpeciesAndList=function(e,t){return arrayFromConstructorAndList(typedArraySpeciesConstructor$3(e),t)},ArrayBufferViewCore$j=arrayBufferViewCore,$filter$1=arrayIteration.filter,fromSpeciesAndList=typedArrayFromSpeciesAndList,aTypedArray$i=ArrayBufferViewCore$j.aTypedArray,exportTypedArrayMethod$j=ArrayBufferViewCore$j.exportTypedArrayMethod;exportTypedArrayMethod$j("filter",(function(e){var t=$filter$1(aTypedArray$i(this),e,arguments.length>1?arguments[1]:void 0);return fromSpeciesAndList(this,t)}));var ArrayBufferViewCore$i=arrayBufferViewCore,$find$1=arrayIteration.find,aTypedArray$h=ArrayBufferViewCore$i.aTypedArray,exportTypedArrayMethod$i=ArrayBufferViewCore$i.exportTypedArrayMethod;exportTypedArrayMethod$i("find",(function(e){return $find$1(aTypedArray$h(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$h=arrayBufferViewCore,$findIndex=arrayIteration.findIndex,aTypedArray$g=ArrayBufferViewCore$h.aTypedArray,exportTypedArrayMethod$h=ArrayBufferViewCore$h.exportTypedArrayMethod;exportTypedArrayMethod$h("findIndex",(function(e){return $findIndex(aTypedArray$g(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$g=arrayBufferViewCore,$forEach=arrayIteration.forEach,aTypedArray$f=ArrayBufferViewCore$g.aTypedArray,exportTypedArrayMethod$g=ArrayBufferViewCore$g.exportTypedArrayMethod;exportTypedArrayMethod$g("forEach",(function(e){$forEach(aTypedArray$f(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$f=arrayBufferViewCore,$includes=arrayIncludes.includes,aTypedArray$e=ArrayBufferViewCore$f.aTypedArray,exportTypedArrayMethod$f=ArrayBufferViewCore$f.exportTypedArrayMethod;exportTypedArrayMethod$f("includes",(function(e){return $includes(aTypedArray$e(this),e,arguments.length>1?arguments[1]:void 0)}));var ArrayBufferViewCore$e=arrayBufferViewCore,$indexOf=arrayIncludes.indexOf,aTypedArray$d=ArrayBufferViewCore$e.aTypedArray,exportTypedArrayMethod$e=ArrayBufferViewCore$e.exportTypedArrayMethod;exportTypedArrayMethod$e("indexOf",(function(e){return $indexOf(aTypedArray$d(this),e,arguments.length>1?arguments[1]:void 0)}));var global$c=global$C,fails$f=fails$H,uncurryThis$g=functionUncurryThis,ArrayBufferViewCore$d=arrayBufferViewCore,ArrayIterators=es_array_iterator,wellKnownSymbol$4=wellKnownSymbol$q,ITERATOR$3=wellKnownSymbol$4("iterator"),Uint8Array$2=global$c.Uint8Array,arrayValues=uncurryThis$g(ArrayIterators.values),arrayKeys=uncurryThis$g(ArrayIterators.keys),arrayEntries=uncurryThis$g(ArrayIterators.entries),aTypedArray$c=ArrayBufferViewCore$d.aTypedArray,exportTypedArrayMethod$d=ArrayBufferViewCore$d.exportTypedArrayMethod,TypedArrayPrototype=Uint8Array$2&&Uint8Array$2.prototype,GENERIC=!fails$f((function(){TypedArrayPrototype[ITERATOR$3].call([1])})),ITERATOR_IS_VALUES=!!TypedArrayPrototype&&TypedArrayPrototype.values&&TypedArrayPrototype[ITERATOR$3]===TypedArrayPrototype.values&&"values"===TypedArrayPrototype.values.name,typedArrayValues=function(){return arrayValues(aTypedArray$c(this))};exportTypedArrayMethod$d("entries",(function(){return arrayEntries(aTypedArray$c(this))}),GENERIC),exportTypedArrayMethod$d("keys",(function(){return arrayKeys(aTypedArray$c(this))}),GENERIC),exportTypedArrayMethod$d("values",typedArrayValues,GENERIC||!ITERATOR_IS_VALUES,{name:"values"}),exportTypedArrayMethod$d(ITERATOR$3,typedArrayValues,GENERIC||!ITERATOR_IS_VALUES,{name:"values"});var ArrayBufferViewCore$c=arrayBufferViewCore,uncurryThis$f=functionUncurryThis,aTypedArray$b=ArrayBufferViewCore$c.aTypedArray,exportTypedArrayMethod$c=ArrayBufferViewCore$c.exportTypedArrayMethod,$join=uncurryThis$f([].join);exportTypedArrayMethod$c("join",(function(e){return $join(aTypedArray$b(this),e)}));var apply$3=functionApply,toIndexedObject$3=toIndexedObject$b,toIntegerOrInfinity$4=toIntegerOrInfinity$b,lengthOfArrayLike$5=lengthOfArrayLike$g,arrayMethodIsStrict$1=arrayMethodIsStrict$4,min$2=Math.min,$lastIndexOf$1=[].lastIndexOf,NEGATIVE_ZERO=!!$lastIndexOf$1&&1/[1].lastIndexOf(1,-0)<0,STRICT_METHOD$1=arrayMethodIsStrict$1("lastIndexOf"),FORCED$4=NEGATIVE_ZERO||!STRICT_METHOD$1,arrayLastIndexOf=FORCED$4?function(e){if(NEGATIVE_ZERO)return apply$3($lastIndexOf$1,this,arguments)||0;var t=toIndexedObject$3(this),n=lengthOfArrayLike$5(t),r=n-1;for(arguments.length>1&&(r=min$2(r,toIntegerOrInfinity$4(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:$lastIndexOf$1,ArrayBufferViewCore$b=arrayBufferViewCore,apply$2=functionApply,$lastIndexOf=arrayLastIndexOf,aTypedArray$a=ArrayBufferViewCore$b.aTypedArray,exportTypedArrayMethod$b=ArrayBufferViewCore$b.exportTypedArrayMethod;exportTypedArrayMethod$b("lastIndexOf",(function(e){var t=arguments.length;return apply$2($lastIndexOf,aTypedArray$a(this),t>1?[e,arguments[1]]:[e])}));var ArrayBufferViewCore$a=arrayBufferViewCore,$map=arrayIteration.map,typedArraySpeciesConstructor$2=typedArraySpeciesConstructor$4,aTypedArray$9=ArrayBufferViewCore$a.aTypedArray,exportTypedArrayMethod$a=ArrayBufferViewCore$a.exportTypedArrayMethod;exportTypedArrayMethod$a("map",(function(e){return $map(aTypedArray$9(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(typedArraySpeciesConstructor$2(e))(t)}))}));var aCallable$9=aCallable$h,toObject$4=toObject$e,IndexedObject=indexedObject,lengthOfArrayLike$4=lengthOfArrayLike$g,$TypeError$3=TypeError,createMethod$1=function(e){return function(t,n,r,i){aCallable$9(n);var a=toObject$4(t),o=IndexedObject(a),l=lengthOfArrayLike$4(a),d=e?l-1:0,U=e?-1:1;if(r<2)for(;;){if(d in o){i=o[d],d+=U;break}if(d+=U,e?d<0:l<=d)throw $TypeError$3("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=U)d in o&&(i=n(i,o[d],d,a));return i}},arrayReduce={left:createMethod$1(!1),right:createMethod$1(!0)},ArrayBufferViewCore$9=arrayBufferViewCore,$reduce=arrayReduce.left,aTypedArray$8=ArrayBufferViewCore$9.aTypedArray,exportTypedArrayMethod$9=ArrayBufferViewCore$9.exportTypedArrayMethod;exportTypedArrayMethod$9("reduce",(function(e){var t=arguments.length;return $reduce(aTypedArray$8(this),e,t,t>1?arguments[1]:void 0)}));var ArrayBufferViewCore$8=arrayBufferViewCore,$reduceRight=arrayReduce.right,aTypedArray$7=ArrayBufferViewCore$8.aTypedArray,exportTypedArrayMethod$8=ArrayBufferViewCore$8.exportTypedArrayMethod;exportTypedArrayMethod$8("reduceRight",(function(e){var t=arguments.length;return $reduceRight(aTypedArray$7(this),e,t,t>1?arguments[1]:void 0)}));var ArrayBufferViewCore$7=arrayBufferViewCore,aTypedArray$6=ArrayBufferViewCore$7.aTypedArray,exportTypedArrayMethod$7=ArrayBufferViewCore$7.exportTypedArrayMethod,floor$5=Math.floor;exportTypedArrayMethod$7("reverse",(function(){for(var e,t=this,n=aTypedArray$6(t).length,r=floor$5(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}));var global$b=global$C,call$b=functionCall,ArrayBufferViewCore$6=arrayBufferViewCore,lengthOfArrayLike$3=lengthOfArrayLike$g,toOffset=toOffset$2,toIndexedObject$2=toObject$e,fails$e=fails$H,RangeError$1=global$b.RangeError,Int8Array$2=global$b.Int8Array,Int8ArrayPrototype=Int8Array$2&&Int8Array$2.prototype,$set=Int8ArrayPrototype&&Int8ArrayPrototype.set,aTypedArray$5=ArrayBufferViewCore$6.aTypedArray,exportTypedArrayMethod$6=ArrayBufferViewCore$6.exportTypedArrayMethod,WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS=!fails$e((function(){var e=new Uint8ClampedArray(2);return call$b($set,e,{length:1,0:3},1),3!==e[1]})),TO_OBJECT_BUG=WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS&&ArrayBufferViewCore$6.NATIVE_ARRAY_BUFFER_VIEWS&&fails$e((function(){var e=new Int8Array$2(2);return e.set(1),e.set("2",1),0!==e[0]||2!==e[1]}));exportTypedArrayMethod$6("set",(function(e){aTypedArray$5(this);var t=toOffset(arguments.length>1?arguments[1]:void 0,1),n=toIndexedObject$2(e);if(WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS)return call$b($set,this,n,t);var r=this.length,i=lengthOfArrayLike$3(n),a=0;if(i+t>r)throw RangeError$1("Wrong length");for(;a<i;)this[t+a]=n[a++]}),!WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS||TO_OBJECT_BUG);var ArrayBufferViewCore$5=arrayBufferViewCore,typedArraySpeciesConstructor$1=typedArraySpeciesConstructor$4,fails$d=fails$H,arraySlice$5=arraySlice$9,aTypedArray$4=ArrayBufferViewCore$5.aTypedArray,exportTypedArrayMethod$5=ArrayBufferViewCore$5.exportTypedArrayMethod,FORCED$3=fails$d((function(){new Int8Array(1).slice()}));exportTypedArrayMethod$5("slice",(function(e,t){for(var n=arraySlice$5(aTypedArray$4(this),e,t),r=typedArraySpeciesConstructor$1(this),i=0,a=n.length,o=new r(a);a>i;)o[i]=n[i++];return o}),FORCED$3);var ArrayBufferViewCore$4=arrayBufferViewCore,$some=arrayIteration.some,aTypedArray$3=ArrayBufferViewCore$4.aTypedArray,exportTypedArrayMethod$4=ArrayBufferViewCore$4.exportTypedArrayMethod;exportTypedArrayMethod$4("some",(function(e){return $some(aTypedArray$3(this),e,arguments.length>1?arguments[1]:void 0)}));var arraySlice$4=arraySliceSimple,floor$4=Math.floor,mergeSort=function(e,t){var n=e.length,r=floor$4(n/2);return n<8?insertionSort(e,t):merge(e,mergeSort(arraySlice$4(e,0,r),t),mergeSort(arraySlice$4(e,r),t),t)},insertionSort=function(e,t){for(var n,r,i=e.length,a=1;a<i;){for(r=a,n=e[a];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==a++&&(e[r]=n)}return e},merge=function(e,t,n,r){for(var i=t.length,a=n.length,o=0,l=0;o<i||l<a;)e[o+l]=o<i&&l<a?r(t[o],n[l])<=0?t[o++]:n[l++]:o<i?t[o++]:n[l++];return e},arraySort$1=mergeSort,userAgent$1=engineUserAgent,firefox=userAgent$1.match(/firefox\/(\d+)/i),engineFfVersion=!!firefox&&+firefox[1],UA=engineUserAgent,engineIsIeOrEdge=/MSIE|Trident/.test(UA),userAgent=engineUserAgent,webkit=userAgent.match(/AppleWebKit\/(\d+)\./),engineWebkitVersion=!!webkit&&+webkit[1],global$a=global$C,uncurryThis$e=functionUncurryThisClause,fails$c=fails$H,aCallable$8=aCallable$h,internalSort$1=arraySort$1,ArrayBufferViewCore$3=arrayBufferViewCore,FF$1=engineFfVersion,IE_OR_EDGE$1=engineIsIeOrEdge,V8$1=engineV8Version,WEBKIT$1=engineWebkitVersion,aTypedArray$2=ArrayBufferViewCore$3.aTypedArray,exportTypedArrayMethod$3=ArrayBufferViewCore$3.exportTypedArrayMethod,Uint16Array$1=global$a.Uint16Array,nativeSort$1=Uint16Array$1&&uncurryThis$e(Uint16Array$1.prototype.sort),ACCEPT_INCORRECT_ARGUMENTS=!(!nativeSort$1||fails$c((function(){nativeSort$1(new Uint16Array$1(2),null)}))&&fails$c((function(){nativeSort$1(new Uint16Array$1(2),{})}))),STABLE_SORT$1=!!nativeSort$1&&!fails$c((function(){if(V8$1)return V8$1<74;if(FF$1)return FF$1<67;if(IE_OR_EDGE$1)return!0;if(WEBKIT$1)return WEBKIT$1<602;var e,t,n=new Uint16Array$1(516),r=Array(516);for(e=0;e<516;e++)t=e%4,n[e]=515-e,r[e]=e-2*t+3;for(nativeSort$1(n,(function(e,t){return(e/4|0)-(t/4|0)})),e=0;e<516;e++)if(n[e]!==r[e])return!0})),getSortCompare$1=function(e){return function(t,n){return void 0!==e?+e(t,n)||0:n!=n?-1:t!=t?1:0===t&&0===n?1/t>0&&1/n<0?1:-1:t>n}};exportTypedArrayMethod$3("sort",(function(e){return void 0!==e&&aCallable$8(e),STABLE_SORT$1?nativeSort$1(this,e):internalSort$1(aTypedArray$2(this),getSortCompare$1(e))}),!STABLE_SORT$1||ACCEPT_INCORRECT_ARGUMENTS);var ArrayBufferViewCore$2=arrayBufferViewCore,toLength$2=toLength$8,toAbsoluteIndex$1=toAbsoluteIndex$7,typedArraySpeciesConstructor=typedArraySpeciesConstructor$4,aTypedArray$1=ArrayBufferViewCore$2.aTypedArray,exportTypedArrayMethod$2=ArrayBufferViewCore$2.exportTypedArrayMethod;exportTypedArrayMethod$2("subarray",(function(e,t){var n=aTypedArray$1(this),r=n.length,i=toAbsoluteIndex$1(e,r);return new(typedArraySpeciesConstructor(n))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,toLength$2((void 0===t?r:toAbsoluteIndex$1(t,r))-i))}));var global$9=global$C,apply$1=functionApply,ArrayBufferViewCore$1=arrayBufferViewCore,fails$b=fails$H,arraySlice$3=arraySlice$9,Int8Array$1=global$9.Int8Array,aTypedArray=ArrayBufferViewCore$1.aTypedArray,exportTypedArrayMethod$1=ArrayBufferViewCore$1.exportTypedArrayMethod,$toLocaleString=[].toLocaleString,TO_LOCALE_STRING_BUG=!!Int8Array$1&&fails$b((function(){$toLocaleString.call(new Int8Array$1(1))})),FORCED$2=fails$b((function(){return[1,2].toLocaleString()!=new Int8Array$1([1,2]).toLocaleString()}))||!fails$b((function(){Int8Array$1.prototype.toLocaleString.call([1,2])}));exportTypedArrayMethod$1("toLocaleString",(function(){return apply$1($toLocaleString,TO_LOCALE_STRING_BUG?arraySlice$3(aTypedArray(this)):aTypedArray(this),arraySlice$3(arguments))}),FORCED$2);var exportTypedArrayMethod=arrayBufferViewCore.exportTypedArrayMethod,fails$a=fails$H,global$8=global$C,uncurryThis$d=functionUncurryThis,Uint8Array$1=global$8.Uint8Array,Uint8ArrayPrototype=Uint8Array$1&&Uint8Array$1.prototype||{},arrayToString=[].toString,join$3=uncurryThis$d([].join);fails$a((function(){arrayToString.call({})}))&&(arrayToString=function(){return join$3(this)});var IS_NOT_ARRAY_METHOD=Uint8ArrayPrototype.toString!=arrayToString;exportTypedArrayMethod("toString",arrayToString,IS_NOT_ARRAY_METHOD);var charAt$3=stringMultibyte.charAt,toString$6=toString$d,InternalStateModule$3=internalState,defineIterator$1=iteratorDefine,createIterResultObject$1=createIterResultObject$3,STRING_ITERATOR="String Iterator",setInternalState$3=InternalStateModule$3.set,getInternalState=InternalStateModule$3.getterFor(STRING_ITERATOR);defineIterator$1(String,"String",(function(e){setInternalState$3(this,{type:STRING_ITERATOR,string:toString$6(e),index:0})}),(function(){var e,t=getInternalState(this),n=t.string,r=t.index;return r>=n.length?createIterResultObject$1(void 0,!0):(e=charAt$3(n,r),t.index+=e.length,createIterResultObject$1(e,!1))}));var global$7=global$C,DOMIterables=domIterables,DOMTokenListPrototype=domTokenListPrototype,ArrayIteratorMethods=es_array_iterator,createNonEnumerableProperty=createNonEnumerableProperty$9,wellKnownSymbol$3=wellKnownSymbol$q,ITERATOR$2=wellKnownSymbol$3("iterator"),TO_STRING_TAG=wellKnownSymbol$3("toStringTag"),ArrayValues=ArrayIteratorMethods.values,handlePrototype=function(e,t){if(e){if(e[ITERATOR$2]!==ArrayValues)try{createNonEnumerableProperty(e,ITERATOR$2,ArrayValues)}catch(t){e[ITERATOR$2]=ArrayValues}if(e[TO_STRING_TAG]||createNonEnumerableProperty(e,TO_STRING_TAG,t),DOMIterables[t])for(var n in ArrayIteratorMethods)if(e[n]!==ArrayIteratorMethods[n])try{createNonEnumerableProperty(e,n,ArrayIteratorMethods[n])}catch(t){e[n]=ArrayIteratorMethods[n]}}};for(var COLLECTION_NAME in DOMIterables)handlePrototype(global$7[COLLECTION_NAME]&&global$7[COLLECTION_NAME].prototype,COLLECTION_NAME);handlePrototype(DOMTokenListPrototype,"DOMTokenList");var fails$9=fails$H,wellKnownSymbol$2=wellKnownSymbol$q,IS_PURE=isPure,ITERATOR$1=wellKnownSymbol$2("iterator"),urlConstructorDetection=!fails$9((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n="";return e.pathname="c%20d",t.forEach((function(e,r){t.delete("b"),n+=r+e})),IS_PURE&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[ITERATOR$1]||"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"!==n||"x"!==new URL("http://x",void 0).host})),makeBuiltIn=makeBuiltInExports,defineProperty$4=objectDefineProperty,defineBuiltInAccessor$1=function(e,t,n){return n.get&&makeBuiltIn(n.get,t,{getter:!0}),n.set&&makeBuiltIn(n.set,t,{setter:!0}),defineProperty$4.f(e,t,n)},anObject$g=anObject$w,iteratorClose=iteratorClose$2,callWithSafeIterationClosing$1=function(e,t,n,r){try{return r?t(anObject$g(n)[0],n[1]):t(n)}catch(t){iteratorClose(e,"throw",t)}},bind$a=functionBindContext,call$a=functionCall,toObject$3=toObject$e,callWithSafeIterationClosing=callWithSafeIterationClosing$1,isArrayIteratorMethod=isArrayIteratorMethod$3,isConstructor3=isConstructor$4,lengthOfArrayLike$2=lengthOfArrayLike$g,createProperty$1=createProperty$5,getIterator$1=getIterator$4,getIteratorMethod$1=getIteratorMethod$5,$Array=Array,arrayFrom$1=function(e){var t=toObject$3(e),n=isConstructor3(this),r=arguments.length,i=r>1?arguments[1]:void 0,a=void 0!==i;a&&(i=bind$a(i,r>2?arguments[2]:void 0));var o,l,d,U,c,F,s=getIteratorMethod$1(t),Q=0;if(!s||this===$Array&&isArrayIteratorMethod(s))for(o=lengthOfArrayLike$2(t),l=n?new this(o):$Array(o);o>Q;Q++)F=a?i(t[Q],Q):t[Q],createProperty$1(l,Q,F);else for(c=(U=getIterator$1(t,s)).next,l=n?new this:[];!(d=call$a(c,U)).done;Q++)F=a?callWithSafeIterationClosing(U,i,[d.value,Q],!0):d.value,createProperty$1(l,Q,F);return l.length=Q,l},uncurryThis$c=functionUncurryThis,maxInt=2147483647,base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,delimiter="-",regexNonASCII=/[^\0-\u007E]/,regexSeparators=/[.\u3002\uFF0E\uFF61]/g,OVERFLOW_ERROR="Overflow: input needs wider integers to process",baseMinusTMin=base-tMin,$RangeError$2=RangeError,exec$1=uncurryThis$c(regexSeparators.exec),floor$3=Math.floor,fromCharCode=String.fromCharCode,charCodeAt$1=uncurryThis$c("".charCodeAt),join$2=uncurryThis$c([].join),push$5=uncurryThis$c([].push),replace$3=uncurryThis$c("".replace),split$2=uncurryThis$c("".split),toLowerCase$1=uncurryThis$c("".toLowerCase),ucs2decode=function(e){for(var t=[],n=0,r=e.length;n<r;){var i=charCodeAt$1(e,n++);if(i>=55296&&i<=56319&&n<r){var a=charCodeAt$1(e,n++);56320==(64512&a)?push$5(t,((1023&i)<<10)+(1023&a)+65536):(push$5(t,i),n--)}else push$5(t,i)}return t},digitToBasic=function(e){return e+22+75*(e<26)},adapt=function(e,t,n){var r=0;for(e=n?floor$3(e/damp):e>>1,e+=floor$3(e/t);e>baseMinusTMin*tMax>>1;)e=floor$3(e/baseMinusTMin),r+=base;return floor$3(r+(baseMinusTMin+1)*e/(e+skew))},encode$2=function(e){var t,n,r=[],i=(e=ucs2decode(e)).length,a=initialN,o=0,l=initialBias;for(t=0;t<e.length;t++)(n=e[t])<128&&push$5(r,fromCharCode(n));var d=r.length,U=d;for(d&&push$5(r,delimiter);U<i;){var c=maxInt;for(t=0;t<e.length;t++)(n=e[t])>=a&&n<c&&(c=n);var F=U+1;if(c-a>floor$3((maxInt-o)/F))throw $RangeError$2(OVERFLOW_ERROR);for(o+=(c-a)*F,a=c,t=0;t<e.length;t++){if((n=e[t])<a&&++o>maxInt)throw $RangeError$2(OVERFLOW_ERROR);if(n==a){for(var s=o,Q=base;;){var u=Q<=l?tMin:Q>=l+tMax?tMax:Q-l;if(s<u)break;var R=s-u,B=base-u;push$5(r,fromCharCode(digitToBasic(u+R%B))),s=floor$3(R/B),Q+=base}push$5(r,fromCharCode(digitToBasic(s))),l=adapt(o,F,U==d),o=0,U++}}o++,a++}return join$2(r,"")},stringPunycodeToAscii=function(e){var t,n,r=[],i=split$2(replace$3(toLowerCase$1(e),regexSeparators,"."),".");for(t=0;t<i.length;t++)n=i[t],push$5(r,exec$1(regexNonASCII,n)?"xn--"+encode$2(n):n);return join$2(r,".")},$$t=_export,global$6=global$C,call$9=functionCall,uncurryThis$b=functionUncurryThis,DESCRIPTORS$6=descriptors,USE_NATIVE_URL$1=urlConstructorDetection,defineBuiltIn$4=defineBuiltIn$f,defineBuiltIns$1=defineBuiltIns$3,setToStringTag$2=setToStringTag$7,createIteratorConstructor=iteratorCreateConstructor,InternalStateModule$2=internalState,anInstance$3=anInstance$7,isCallable$3=isCallable$r,hasOwn$3=hasOwnProperty_1,bind$9=functionBindContext,classof$2=classof$e,anObject$f=anObject$w,isObject$8=isObject$p,$toString$1=toString$d,create$2=objectCreate,createPropertyDescriptor=createPropertyDescriptor$6,getIterator=getIterator$4,getIteratorMethod=getIteratorMethod$5,validateArgumentsLength$1=validateArgumentsLength$3,wellKnownSymbol$1=wellKnownSymbol$q,arraySort=arraySort$1,ITERATOR=wellKnownSymbol$1("iterator"),URL_SEARCH_PARAMS="URLSearchParams",URL_SEARCH_PARAMS_ITERATOR=URL_SEARCH_PARAMS+"Iterator",setInternalState$2=InternalStateModule$2.set,getInternalParamsState=InternalStateModule$2.getterFor(URL_SEARCH_PARAMS),getInternalIteratorState=InternalStateModule$2.getterFor(URL_SEARCH_PARAMS_ITERATOR),getOwnPropertyDescriptor$2=Object.getOwnPropertyDescriptor,safeGetBuiltIn=function(e){if(!DESCRIPTORS$6)return global$6[e];var t=getOwnPropertyDescriptor$2(global$6,e);return t&&t.value},nativeFetch=safeGetBuiltIn("fetch"),NativeRequest=safeGetBuiltIn("Request"),Headers$1=safeGetBuiltIn("Headers"),RequestPrototype=NativeRequest&&NativeRequest.prototype,HeadersPrototype=Headers$1&&Headers$1.prototype,RegExp$1=global$6.RegExp,TypeError$3=global$6.TypeError,decodeURIComponent$1=global$6.decodeURIComponent,encodeURIComponent$1=global$6.encodeURIComponent,charAt$2=uncurryThis$b("".charAt),join$1=uncurryThis$b([].join),push$4=uncurryThis$b([].push),replace$2=uncurryThis$b("".replace),shift$1=uncurryThis$b([].shift),splice=uncurryThis$b([].splice),split$1=uncurryThis$b("".split),stringSlice$4=uncurryThis$b("".slice),plus=/\+/g,sequences=Array(4),percentSequence=function(e){return sequences[e-1]||(sequences[e-1]=RegExp$1("((?:%[\\da-f]{2}){"+e+"})","gi"))},percentDecode=function(e){try{return decodeURIComponent$1(e)}catch(t){return e}},deserialize=function(e){var t=replace$2(e,plus," "),n=4;try{return decodeURIComponent$1(t)}catch(e){for(;n;)t=replace$2(t,percentSequence(n--),percentDecode);return t}},find2=/[!'()~]|%20/g,replacements={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},replacer=function(e){return replacements[e]},serialize=function(e){return replace$2(encodeURIComponent$1(e),find2,replacer)},URLSearchParamsIterator=createIteratorConstructor((function(e,t){setInternalState$2(this,{type:URL_SEARCH_PARAMS_ITERATOR,iterator:getIterator(getInternalParamsState(e).entries),kind:t})}),"Iterator",(function(){var e=getInternalIteratorState(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),URLSearchParamsState=function(e){this.entries=[],this.url=null,void 0!==e&&(isObject$8(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===charAt$2(e,0)?stringSlice$4(e,1):e:$toString$1(e)))};URLSearchParamsState.prototype={type:URL_SEARCH_PARAMS,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,i,a,o,l,d=getIteratorMethod(e);if(d)for(n=(t=getIterator(e,d)).next;!(r=call$9(n,t)).done;){if(a=(i=getIterator(anObject$f(r.value))).next,(o=call$9(a,i)).done||(l=call$9(a,i)).done||!call$9(a,i).done)throw TypeError$3("Expected sequence with length 2");push$4(this.entries,{key:$toString$1(o.value),value:$toString$1(l.value)})}else for(var U in e)hasOwn$3(e,U)&&push$4(this.entries,{key:U,value:$toString$1(e[U])})},parseQuery:function(e){if(e)for(var t,n,r=split$1(e,"&"),i=0;i<r.length;)(t=r[i++]).length&&(n=split$1(t,"="),push$4(this.entries,{key:deserialize(shift$1(n)),value:deserialize(join$1(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],push$4(n,serialize(e.key)+"="+serialize(e.value));return join$1(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var URLSearchParamsConstructor=function(){anInstance$3(this,URLSearchParamsPrototype),setInternalState$2(this,new URLSearchParamsState(arguments.length>0?arguments[0]:void 0))},URLSearchParamsPrototype=URLSearchParamsConstructor.prototype;if(defineBuiltIns$1(URLSearchParamsPrototype,{append:function(e,t){validateArgumentsLength$1(arguments.length,2);var n=getInternalParamsState(this);push$4(n.entries,{key:$toString$1(e),value:$toString$1(t)}),n.updateURL()},delete:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this),n=t.entries,r=$toString$1(e),i=0;i<n.length;)n[i].key===r?splice(n,i,1):i++;t.updateURL()},get:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$1(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$1(e),r=[],i=0;i<t.length;i++)t[i].key===n&&push$4(r,t[i].value);return r},has:function(e){validateArgumentsLength$1(arguments.length,1);for(var t=getInternalParamsState(this).entries,n=$toString$1(e),r=0;r<t.length;)if(t[r++].key===n)return!0;return!1},set:function(e,t){validateArgumentsLength$1(arguments.length,1);for(var n,r=getInternalParamsState(this),i=r.entries,a=!1,o=$toString$1(e),l=$toString$1(t),d=0;d<i.length;d++)(n=i[d]).key===o&&(a?splice(i,d--,1):(a=!0,n.value=l));a||push$4(i,{key:o,value:l}),r.updateURL()},sort:function(){var e=getInternalParamsState(this);arraySort(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=getInternalParamsState(this).entries,r=bind$9(e,arguments.length>1?arguments[1]:void 0),i=0;i<n.length;)r((t=n[i++]).value,t.key,this)},keys:function(){return new URLSearchParamsIterator(this,"keys")},values:function(){return new URLSearchParamsIterator(this,"values")},entries:function(){return new URLSearchParamsIterator(this,"entries")}},{enumerable:!0}),defineBuiltIn$4(URLSearchParamsPrototype,ITERATOR,URLSearchParamsPrototype.entries,{name:"entries"}),defineBuiltIn$4(URLSearchParamsPrototype,"toString",(function(){return getInternalParamsState(this).serialize()}),{enumerable:!0}),setToStringTag$2(URLSearchParamsConstructor,URL_SEARCH_PARAMS),$$t({global:!0,constructor:!0,forced:!USE_NATIVE_URL$1},{URLSearchParams:URLSearchParamsConstructor}),!USE_NATIVE_URL$1&&isCallable$3(Headers$1)){var headersHas=uncurryThis$b(HeadersPrototype.has),headersSet=uncurryThis$b(HeadersPrototype.set),wrapRequestOptions=function(e){if(isObject$8(e)){var t,n=e.body;if(classof$2(n)===URL_SEARCH_PARAMS)return t=e.headers?new Headers$1(e.headers):new Headers$1,headersHas(t,"content-type")||headersSet(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),create$2(e,{body:createPropertyDescriptor(0,$toString$1(n)),headers:createPropertyDescriptor(0,t)})}return e};if(isCallable$3(nativeFetch)&&$$t({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return nativeFetch(e,arguments.length>1?wrapRequestOptions(arguments[1]):{})}}),isCallable$3(NativeRequest)){var RequestConstructor=function(e){return anInstance$3(this,RequestPrototype),new NativeRequest(e,arguments.length>1?wrapRequestOptions(arguments[1]):{})};RequestPrototype.constructor=RequestConstructor,RequestConstructor.prototype=RequestPrototype,$$t({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:RequestConstructor})}}var EOF,web_urlSearchParams_constructor={URLSearchParams:URLSearchParamsConstructor,getState:getInternalParamsState},$$s=_export,DESCRIPTORS$5=descriptors,USE_NATIVE_URL=urlConstructorDetection,global$5=global$C,bind$8=functionBindContext,uncurryThis$a=functionUncurryThis,defineBuiltIn$3=defineBuiltIn$f,defineBuiltInAccessor=defineBuiltInAccessor$1,anInstance$2=anInstance$7,hasOwn$2=hasOwnProperty_1,assign$2=objectAssign,arrayFrom=arrayFrom$1,arraySlice$2=arraySliceSimple,codeAt=stringMultibyte.codeAt,toASCII=stringPunycodeToAscii,$toString=toString$d,setToStringTag$1=setToStringTag$7,validateArgumentsLength=validateArgumentsLength$3,URLSearchParamsModule=web_urlSearchParams_constructor,InternalStateModule$1=internalState,setInternalState$1=InternalStateModule$1.set,getInternalURLState=InternalStateModule$1.getterFor("URL"),URLSearchParams$1=URLSearchParamsModule.URLSearchParams,getInternalSearchParamsState=URLSearchParamsModule.getState,NativeURL=global$5.URL,TypeError$2=global$5.TypeError,parseInt$1=global$5.parseInt,floor$2=Math.floor,pow$1=Math.pow,charAt$1=uncurryThis$a("".charAt),exec=uncurryThis$a(/./.exec),join3=uncurryThis$a([].join),numberToString=uncurryThis$a(1..toString),pop=uncurryThis$a([].pop),push$3=uncurryThis$a([].push),replace$1=uncurryThis$a("".replace),shift=uncurryThis$a([].shift),split=uncurryThis$a("".split),stringSlice$3=uncurryThis$a("".slice),toLowerCase=uncurryThis$a("".toLowerCase),unshift=uncurryThis$a([].unshift),INVALID_AUTHORITY="Invalid authority",INVALID_SCHEME="Invalid scheme",INVALID_HOST="Invalid host",INVALID_PORT="Invalid port",ALPHA=/[a-z]/i,ALPHANUMERIC=/[\d+-.a-z]/i,DIGIT=/\d/,HEX_START=/^0x/i,OCT=/^[0-7]+$/,DEC=/^\d+$/,HEX=/^[\da-f]+$/i,FORBIDDEN_HOST_CODE_POINT=/[\0\t\n\r #%/:<>?@[\\\]^|]/,FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT=/[\0\t\n\r #/:<>?@[\\\]^|]/,LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,TAB_AND_NEW_LINE=/[\t\n\r]/g,parseIPv4=function(e){var t,n,r,i,a,o,l,d=split(e,".");if(d.length&&""==d[d.length-1]&&d.length--,(t=d.length)>4)return e;for(n=[],r=0;r<t;r++){if(""==(i=d[r]))return e;if(a=10,i.length>1&&"0"==charAt$1(i,0)&&(a=exec(HEX_START,i)?16:8,i=stringSlice$3(i,8==a?1:2)),""===i)o=0;else{if(!exec(10==a?DEC:8==a?OCT:HEX,i))return e;o=parseInt$1(i,a)}push$3(n,o)}for(r=0;r<t;r++)if(o=n[r],r==t-1){if(o>=pow$1(256,5-t))return null}else if(o>255)return null;for(l=pop(n),r=0;r<n.length;r++)l+=n[r]*pow$1(256,3-r);return l},parseIPv6=function(e){var t,n,r,i,a,o,l,d=[0,0,0,0,0,0,0,0],U=0,c=null,F=0,s=function(){return charAt$1(e,F)};if(":"==s()){if(":"!=charAt$1(e,1))return;F+=2,c=++U}for(;s();){if(8==U)return;if(":"!=s()){for(t=n=0;n<4&&exec(HEX,s());)t=16*t+parseInt$1(s(),16),F++,n++;if("."==s()){if(0==n)return;if(F-=n,U>6)return;for(r=0;s();){if(i=null,r>0){if(!("."==s()&&r<4))return;F++}if(!exec(DIGIT,s()))return;for(;exec(DIGIT,s());){if(a=parseInt$1(s(),10),null===i)i=a;else{if(0==i)return;i=10*i+a}if(i>255)return;F++}d[U]=256*d[U]+i,2!=++r&&4!=r||U++}if(4!=r)return;break}if(":"==s()){if(F++,!s())return}else if(s())return;d[U++]=t}else{if(null!==c)return;F++,c=++U}}if(null!==c)for(o=U-c,U=7;0!=U&&o>0;)l=d[U],d[U--]=d[c+o-1],d[c+--o]=l;else if(8!=U)return;return d},findLongestZeroSequence=function(e){for(var t=null,n=1,r=null,i=0,a=0;a<8;a++)0!==e[a]?(i>n&&(t=r,n=i),r=null,i=0):(null===r&&(r=a),++i);return i>n&&(t=r,n=i),t},serializeHost=function(e){var t,n,r,i;if("number"==typeof e){for(t=[],n=0;n<4;n++)unshift(t,e%256),e=floor$2(e/256);return join3(t,".")}if("object"==typeof e){for(t="",r=findLongestZeroSequence(e),n=0;n<8;n++)i&&0===e[n]||(i&&(i=!1),r===n?(t+=n?":":"::",i=!0):(t+=numberToString(e[n],16),n<7&&(t+=":")));return"["+t+"]"}return e},C0ControlPercentEncodeSet={},fragmentPercentEncodeSet=assign$2({},C0ControlPercentEncodeSet,{" ":1,'"':1,"<":1,">":1,"`":1}),pathPercentEncodeSet=assign$2({},fragmentPercentEncodeSet,{"#":1,"?":1,"{":1,"}":1}),userinfoPercentEncodeSet=assign$2({},pathPercentEncodeSet,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),percentEncode=function(e,t){var n=codeAt(e,0);return n>32&&n<127&&!hasOwn$2(t,e)?e:encodeURIComponent(e)},specialSchemes={ftp:21,file:null,http:80,https:443,ws:80,wss:443},isWindowsDriveLetter=function(e,t){var n;return 2==e.length&&exec(ALPHA,charAt$1(e,0))&&(":"==(n=charAt$1(e,1))||!t&&"|"==n)},startsWithWindowsDriveLetter=function(e){var t;return e.length>1&&isWindowsDriveLetter(stringSlice$3(e,0,2))&&(2==e.length||"/"===(t=charAt$1(e,2))||"\\"===t||"?"===t||"#"===t)},isSingleDot=function(e){return"."===e||"%2e"===toLowerCase(e)},isDoubleDot=function(e){return".."===(e=toLowerCase(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},SCHEME_START={},SCHEME={},NO_SCHEME={},SPECIAL_RELATIVE_OR_AUTHORITY={},PATH_OR_AUTHORITY={},RELATIVE={},RELATIVE_SLASH={},SPECIAL_AUTHORITY_SLASHES={},SPECIAL_AUTHORITY_IGNORE_SLASHES={},AUTHORITY={},HOST={},HOSTNAME={},PORT={},FILE={},FILE_SLASH={},FILE_HOST={},PATH_START={},PATH={},CANNOT_BE_A_BASE_URL_PATH={},QUERY={},FRAGMENT={},URLState=function(e,t,n){var r,i,a,o=$toString(e);if(t){if(i=this.parse(o))throw TypeError$2(i);this.searchParams=null}else{if(void 0!==n&&(r=new URLState(n,!0)),i=this.parse(o,null,r))throw TypeError$2(i);(a=getInternalSearchParamsState(new URLSearchParams$1)).bindURL(this),this.searchParams=a}};URLState.prototype={type:"URL",parse:function(e,t,n){var r,i,a,o,l=this,d=t||SCHEME_START,U=0,c="",F=!1,s=!1,Q=!1;for(e=$toString(e),t||(l.scheme="",l.username="",l.password="",l.host=null,l.port=null,l.path=[],l.query=null,l.fragment=null,l.cannotBeABaseURL=!1,e=replace$1(e,LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE,"")),e=replace$1(e,TAB_AND_NEW_LINE,""),r=arrayFrom(e);U<=r.length;){switch(i=r[U],d){case SCHEME_START:if(!i||!exec(ALPHA,i)){if(t)return INVALID_SCHEME;d=NO_SCHEME;continue}c+=toLowerCase(i),d=SCHEME;break;case SCHEME:if(i&&(exec(ALPHANUMERIC,i)||"+"==i||"-"==i||"."==i))c+=toLowerCase(i);else{if(":"!=i){if(t)return INVALID_SCHEME;c="",d=NO_SCHEME,U=0;continue}if(t&&(l.isSpecial()!=hasOwn$2(specialSchemes,c)||"file"==c&&(l.includesCredentials()||null!==l.port)||"file"==l.scheme&&!l.host))return;if(l.scheme=c,t)return void(l.isSpecial()&&specialSchemes[l.scheme]==l.port&&(l.port=null));c="","file"==l.scheme?d=FILE:l.isSpecial()&&n&&n.scheme==l.scheme?d=SPECIAL_RELATIVE_OR_AUTHORITY:l.isSpecial()?d=SPECIAL_AUTHORITY_SLASHES:"/"==r[U+1]?(d=PATH_OR_AUTHORITY,U++):(l.cannotBeABaseURL=!0,push$3(l.path,""),d=CANNOT_BE_A_BASE_URL_PATH)}break;case NO_SCHEME:if(!n||n.cannotBeABaseURL&&"#"!=i)return INVALID_SCHEME;if(n.cannotBeABaseURL&&"#"==i){l.scheme=n.scheme,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",l.cannotBeABaseURL=!0,d=FRAGMENT;break}d="file"==n.scheme?FILE:RELATIVE;continue;case SPECIAL_RELATIVE_OR_AUTHORITY:if("/"!=i||"/"!=r[U+1]){d=RELATIVE;continue}d=SPECIAL_AUTHORITY_IGNORE_SLASHES,U++;break;case PATH_OR_AUTHORITY:if("/"==i){d=AUTHORITY;break}d=PATH;continue;case RELATIVE:if(l.scheme=n.scheme,i==EOF)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query=n.query;else if("/"==i||"\\"==i&&l.isSpecial())d=RELATIVE_SLASH;else if("?"==i)l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query="",d=QUERY;else{if("#"!=i){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.path.length--,d=PATH;continue}l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",d=FRAGMENT}break;case RELATIVE_SLASH:if(!l.isSpecial()||"/"!=i&&"\\"!=i){if("/"!=i){l.username=n.username,l.password=n.password,l.host=n.host,l.port=n.port,d=PATH;continue}d=AUTHORITY}else d=SPECIAL_AUTHORITY_IGNORE_SLASHES;break;case SPECIAL_AUTHORITY_SLASHES:if(d=SPECIAL_AUTHORITY_IGNORE_SLASHES,"/"!=i||"/"!=charAt$1(c,U+1))continue;U++;break;case SPECIAL_AUTHORITY_IGNORE_SLASHES:if("/"!=i&&"\\"!=i){d=AUTHORITY;continue}break;case AUTHORITY:if("@"==i){F&&(c="%40"+c),F=!0,a=arrayFrom(c);for(var u=0;u<a.length;u++){var R=a[u];if(":"!=R||Q){var B=percentEncode(R,userinfoPercentEncodeSet);Q?l.password+=B:l.username+=B}else Q=!0}c=""}else if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()){if(F&&""==c)return INVALID_AUTHORITY;U-=arrayFrom(c).length+1,c="",d=HOST}else c+=i;break;case HOST:case HOSTNAME:if(t&&"file"==l.scheme){d=FILE_HOST;continue}if(":"!=i||s){if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()){if(l.isSpecial()&&""==c)return INVALID_HOST;if(t&&""==c&&(l.includesCredentials()||null!==l.port))return;if(o=l.parseHost(c))return o;if(c="",d=PATH_START,t)return;continue}"["==i?s=!0:"]"==i&&(s=!1),c+=i}else{if(""==c)return INVALID_HOST;if(o=l.parseHost(c))return o;if(c="",d=PORT,t==HOSTNAME)return}break;case PORT:if(!exec(DIGIT,i)){if(i==EOF||"/"==i||"?"==i||"#"==i||"\\"==i&&l.isSpecial()||t){if(""!=c){var h=parseInt$1(c,10);if(h>65535)return INVALID_PORT;l.port=l.isSpecial()&&h===specialSchemes[l.scheme]?null:h,c=""}if(t)return;d=PATH_START;continue}return INVALID_PORT}c+=i;break;case FILE:if(l.scheme="file","/"==i||"\\"==i)d=FILE_SLASH;else{if(!n||"file"!=n.scheme){d=PATH;continue}if(i==EOF)l.host=n.host,l.path=arraySlice$2(n.path),l.query=n.query;else if("?"==i)l.host=n.host,l.path=arraySlice$2(n.path),l.query="",d=QUERY;else{if("#"!=i){startsWithWindowsDriveLetter(join3(arraySlice$2(r,U),""))||(l.host=n.host,l.path=arraySlice$2(n.path),l.shortenPath()),d=PATH;continue}l.host=n.host,l.path=arraySlice$2(n.path),l.query=n.query,l.fragment="",d=FRAGMENT}}break;case FILE_SLASH:if("/"==i||"\\"==i){d=FILE_HOST;break}n&&"file"==n.scheme&&!startsWithWindowsDriveLetter(join3(arraySlice$2(r,U),""))&&(isWindowsDriveLetter(n.path[0],!0)?push$3(l.path,n.path[0]):l.host=n.host),d=PATH;continue;case FILE_HOST:if(i==EOF||"/"==i||"\\"==i||"?"==i||"#"==i){if(!t&&isWindowsDriveLetter(c))d=PATH;else if(""==c){if(l.host="",t)return;d=PATH_START}else{if(o=l.parseHost(c))return o;if("localhost"==l.host&&(l.host=""),t)return;c="",d=PATH_START}continue}c+=i;break;case PATH_START:if(l.isSpecial()){if(d=PATH,"/"!=i&&"\\"!=i)continue}else if(t||"?"!=i)if(t||"#"!=i){if(i!=EOF&&(d=PATH,"/"!=i))continue}else l.fragment="",d=FRAGMENT;else l.query="",d=QUERY;break;case PATH:if(i==EOF||"/"==i||"\\"==i&&l.isSpecial()||!t&&("?"==i||"#"==i)){if(isDoubleDot(c)?(l.shortenPath(),"/"==i||"\\"==i&&l.isSpecial()||push$3(l.path,"")):isSingleDot(c)?"/"==i||"\\"==i&&l.isSpecial()||push$3(l.path,""):("file"==l.scheme&&!l.path.length&&isWindowsDriveLetter(c)&&(l.host&&(l.host=""),c=charAt$1(c,0)+":"),push$3(l.path,c)),c="","file"==l.scheme&&(i==EOF||"?"==i||"#"==i))for(;l.path.length>1&&""===l.path[0];)shift(l.path);"?"==i?(l.query="",d=QUERY):"#"==i&&(l.fragment="",d=FRAGMENT)}else c+=percentEncode(i,pathPercentEncodeSet);break;case CANNOT_BE_A_BASE_URL_PATH:"?"==i?(l.query="",d=QUERY):"#"==i?(l.fragment="",d=FRAGMENT):i!=EOF&&(l.path[0]+=percentEncode(i,C0ControlPercentEncodeSet));break;case QUERY:t||"#"!=i?i!=EOF&&("'"==i&&l.isSpecial()?l.query+="%27":l.query+="#"==i?"%23":percentEncode(i,C0ControlPercentEncodeSet)):(l.fragment="",d=FRAGMENT);break;case FRAGMENT:i!=EOF&&(l.fragment+=percentEncode(i,fragmentPercentEncodeSet))}U++}},parseHost:function(e){var t,n,r;if("["==charAt$1(e,0)){if("]"!=charAt$1(e,e.length-1))return INVALID_HOST;if(!(t=parseIPv6(stringSlice$3(e,1,-1))))return INVALID_HOST;this.host=t}else if(this.isSpecial()){if(e=toASCII(e),exec(FORBIDDEN_HOST_CODE_POINT,e))return INVALID_HOST;if(null===(t=parseIPv4(e)))return INVALID_HOST;this.host=t}else{if(exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT,e))return INVALID_HOST;for(t="",n=arrayFrom(e),r=0;r<n.length;r++)t+=percentEncode(n[r],C0ControlPercentEncodeSet);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return hasOwn$2(specialSchemes,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&isWindowsDriveLetter(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,n=e.username,r=e.password,i=e.host,a=e.port,o=e.path,l=e.query,d=e.fragment,U=t+":";return null!==i?(U+="//",e.includesCredentials()&&(U+=n+(r?":"+r:"")+"@"),U+=serializeHost(i),null!==a&&(U+=":"+a)):"file"==t&&(U+="//"),U+=e.cannotBeABaseURL?o[0]:o.length?"/"+join3(o,"/"):"",null!==l&&(U+="?"+l),null!==d&&(U+="#"+d),U},setHref:function(e){var t=this.parse(e);if(t)throw TypeError$2(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new URLConstructor(e.path[0]).origin}catch(e){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+serializeHost(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse($toString(e)+":",SCHEME_START)},getUsername:function(){return this.username},setUsername:function(e){var t=arrayFrom($toString(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var n=0;n<t.length;n++)this.username+=percentEncode(t[n],userinfoPercentEncodeSet)}},getPassword:function(){return this.password},setPassword:function(e){var t=arrayFrom($toString(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var n=0;n<t.length;n++)this.password+=percentEncode(t[n],userinfoPercentEncodeSet)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?serializeHost(e):serializeHost(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,HOST)},getHostname:function(){var e=this.host;return null===e?"":serializeHost(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,HOSTNAME)},getPort:function(){var e=this.port;return null===e?"":$toString(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=$toString(e))?this.port=null:this.parse(e,PORT))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+join3(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,PATH_START))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=$toString(e))?this.query=null:("?"==charAt$1(e,0)&&(e=stringSlice$3(e,1)),this.query="",this.parse(e,QUERY)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=$toString(e))?("#"==charAt$1(e,0)&&(e=stringSlice$3(e,1)),this.fragment="",this.parse(e,FRAGMENT)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var URLConstructor=function(e){var t=anInstance$2(this,URLPrototype),n=validateArgumentsLength(arguments.length,1)>1?arguments[1]:void 0,r=setInternalState$1(t,new URLState(e,!1,n));DESCRIPTORS$5||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},URLPrototype=URLConstructor.prototype,accessorDescriptor=function(e,t){return{get:function(){return getInternalURLState(this)[e]()},set:t&&function(e){return getInternalURLState(this)[t](e)},configurable:!0,enumerable:!0}};if(DESCRIPTORS$5&&(defineBuiltInAccessor(URLPrototype,"href",accessorDescriptor("serialize","setHref")),defineBuiltInAccessor(URLPrototype,"origin",accessorDescriptor("getOrigin")),defineBuiltInAccessor(URLPrototype,"protocol",accessorDescriptor("getProtocol","setProtocol")),defineBuiltInAccessor(URLPrototype,"username",accessorDescriptor("getUsername","setUsername")),defineBuiltInAccessor(URLPrototype,"password",accessorDescriptor("getPassword","setPassword")),defineBuiltInAccessor(URLPrototype,"host",accessorDescriptor("getHost","setHost")),defineBuiltInAccessor(URLPrototype,"hostname",accessorDescriptor("getHostname","setHostname")),defineBuiltInAccessor(URLPrototype,"port",accessorDescriptor("getPort","setPort")),defineBuiltInAccessor(URLPrototype,"pathname",accessorDescriptor("getPathname","setPathname")),defineBuiltInAccessor(URLPrototype,"search",accessorDescriptor("getSearch","setSearch")),defineBuiltInAccessor(URLPrototype,"searchParams",accessorDescriptor("getSearchParams")),defineBuiltInAccessor(URLPrototype,"hash",accessorDescriptor("getHash","setHash"))),defineBuiltIn$3(URLPrototype,"toJSON",(function(){return getInternalURLState(this).serialize()}),{enumerable:!0}),defineBuiltIn$3(URLPrototype,"toString",(function(){return getInternalURLState(this).serialize()}),{enumerable:!0}),NativeURL){var nativeCreateObjectURL=NativeURL.createObjectURL,nativeRevokeObjectURL=NativeURL.revokeObjectURL;nativeCreateObjectURL&&defineBuiltIn$3(URLConstructor,"createObjectURL",bind$8(nativeCreateObjectURL,NativeURL)),nativeRevokeObjectURL&&defineBuiltIn$3(URLConstructor,"revokeObjectURL",bind$8(nativeRevokeObjectURL,NativeURL))}setToStringTag$1(URLConstructor,"URL"),$$s({global:!0,constructor:!0,forced:!USE_NATIVE_URL,sham:!DESCRIPTORS$5},{URL:URLConstructor});var DESCRIPTORS$4=descriptors,FUNCTION_NAME_EXISTS=functionName.EXISTS,uncurryThis$9=functionUncurryThis,defineProperty$3=objectDefineProperty.f,FunctionPrototype=Function.prototype,functionToString$1=uncurryThis$9(FunctionPrototype.toString),nameRE=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,regExpExec$2=uncurryThis$9(nameRE.exec),NAME="name";DESCRIPTORS$4&&!FUNCTION_NAME_EXISTS&&defineProperty$3(FunctionPrototype,NAME,{configurable:!0,get:function(){try{return regExpExec$2(nameRE,functionToString$1(this))[1]}catch(e){return""}}});var Xml2Json=function(){function e(){_classCallCheck$6(this,e)}return _createClass$6(e,null,[{key:"parse",value:function(t){var n=e.parseXmlString(t);return null!==n?e.parseDOMChildren(n):null}},{key:"parseXmlString",value:function(e){if(void 0===e)return null;var t,n=new window.DOMParser;try{(t=n.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(t=null)}catch(e){t=null}return t}},{key:"parseDOMChildren",value:function(t,n){if(t.nodeType===Node.DOCUMENT_NODE){for(var r={},i=t.childNodes,a=0;a<i.length;a++){var o=i[a];o.nodeType===Node.ELEMENT_NODE&&(r=e.parseDOMChildren(o))}return r}if(t.nodeType===Node.ELEMENT_NODE){for(var l={__cnt:0},d=[],U=t.childNodes,c=0;c<U.length;c++){var F=U[c],s=e.getNodeLocalName(F);if(F.nodeType!==Node.COMMENT_NODE){var Q="".concat(n,".").concat(s);if(l.__cnt++,null==l[s]){var u=e.parseDOMChildren(F,Q);if("#text"!==s||/[^\s]/.test(u)){var R={};R[s]=u,d.push(R)}l[s]=u,e.toArrayAccessForm(l,s)}else{null!=l[s]&&(l[s]instanceof Array||(l[s]=[l[s]],e.toArrayAccessForm(l,s,Q)));var B=e.parseDOMChildren(F,Q);if("#text"!==s||/[^\s]/.test(B)){var h={};h[s]=B,d.push(h)}l[s][l[s].length]=B}}}for(var p=0;p<t.attributes.length;p++){var S=t.attributes[p];l.__cnt++;var V=S.value;l[S.name]=V}var f=t.prefix;return null!=f&&""!==f&&(l.__cnt++,l.__prefix=f),null!=l["#text"]&&(l.__text=l["#text"],l.__text instanceof Array&&(l.__text=l.__text.join("\n")),delete l["#text"],delete l["#text_asArray"]),null!=l["#cdata-section"]&&(l.__cdata=l["#cdata-section"],delete l["#cdata-section"],delete l["#cdata-section_asArray"]),1===l.__cnt&&null!=l.__text?l=l.__text:1===l.__cnt&&null!=l.__cdata&&(l=l.__cdata),delete l.__cnt,l}if(t.nodeType===Node.TEXT_NODE||t.nodeType===Node.CDATA_SECTION_NODE)return t.nodeValue}},{key:"getNodeLocalName",value:function(e){var t=e.localName;return null==t&&(t=e.baseName),null!=t&&""!==t||(t=e.nodeName),t}},{key:"toArrayAccessForm",value:function(e,t){e[t]instanceof Array||(e[t]=[e[t]])}}]),e}();function ownKeys$3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$3(Object(n),!0).forEach((function(t){_defineProperty$5(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$3(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$3(){_regeneratorRuntime$3=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function U(e,t,n,i){var a=t&&t.prototype instanceof s?t:s,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:f(e,n,l)}),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=U;var F={};function s(){}function Q(){}function u(){}var R={};d(R,a,(function(){return this}));var B=Object.getPrototypeOf,h=B&&B(B(J([])));h&&h!==t&&n.call(h,a)&&(R=h);var p=u.prototype=s.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function V(e,t){function i(r,a,o,l){var d=c(e[r],e,a);if("throw"!==d.type){var U=d.arg,F=U.value;return F&&"object"==typeof F&&n.call(F,"__await")?t.resolve(F.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(F).then((function(e){U.value=e,o(U)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function f(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=y(o,n);if(l){if(l===F)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=c(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===F)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function y(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,y(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),F;var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,F;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,F):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,F)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function J(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:b}}function b(){return{value:void 0,done:!0}}return Q.prototype=u,r(p,"constructor",{value:u,configurable:!0}),r(u,"constructor",{value:Q,configurable:!0}),Q.displayName=d(u,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===Q||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,d(e,l,"GeneratorFunction")),e.prototype=Object.create(p),e},e.awrap=function(e){return{__await:e}},S(V.prototype),d(V.prototype,o,(function(){return this})),e.AsyncIterator=V,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new V(U(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(p),d(p,l,"Generator"),d(p,a,(function(){return this})),d(p,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=J,Z.prototype={constructor:Z,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,F):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),F},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),F}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:J(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),F}},e}function _typeof$2(e){return(_typeof$2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function asyncGeneratorStep$3(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$3(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$3(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$3(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$5(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$5(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$5(r.key),r)}}function _createClass$5(e,t,n){return t&&_defineProperties$5(e.prototype,t),n&&_defineProperties$5(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$5(e,t,n){return(t=_toPropertyKey$5(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$4(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$4(e,t)}function _getPrototypeOf$4(e){return(_getPrototypeOf$4=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$4(e,t){return(_setPrototypeOf$4=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$4(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function _construct$1(e,t,n){return(_construct$1=_isNativeReflectConstruct$4()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf$4(i,n.prototype),i}).apply(null,arguments)}function _isNativeFunction$1(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _wrapNativeSuper$1(e){var t="function"==typeof Map?new Map:void 0;return _wrapNativeSuper$1=function(e){if(null===e||!_isNativeFunction$1(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct$1(e,arguments,_getPrototypeOf$4(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf$4(n,e)},_wrapNativeSuper$1(e)}function _objectWithoutPropertiesLoose$3(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$3(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$3(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$4(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$4(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$4(e)}function _createSuper$2(e){var t=_isNativeReflectConstruct$4();return function(){var n,r=_getPrototypeOf$4(e);if(t){var i=_getPrototypeOf$4(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$4(this,n)}}function _superPropBase$1(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$4(e)););return e}function _get$1(){return _get$1="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase$1(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get$1.apply(this,arguments)}function _unsupportedIterableToArray$3(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$3(e,t):void 0}}function _arrayLikeToArray$3(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _createForOfIteratorHelper$2(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$3(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$5(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$5(e){var t=_toPrimitive$5(e,"string");return"symbol"==typeof t?t:String(t)}installPolyfill();var _ERR_CODE,Buffer=function(){function e(){_classCallCheck$5(this,e)}return _createClass$5(e,null,[{key:"start",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6||1===e.length&&e.start(0)<0?0:e.start(0):0}},{key:"end",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6?0:e.end(e.length-1):0}},{key:"get",value:function(e){if(e)try{return e.buffered}catch(e){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],r=0,i=e.length;r<i;r++){var a=n.length;if(a&&t){var o=n[a-1],l=o[1];if(e.start(r)-l<=t){var d=e.end(r);d>l&&(o[1]=d)}else n.push([e.start(r),e.end(r)])}else n.push([e.start(r),e.end(r)])}return n}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,t){return e+(t[1]-t[0])}),0):0}},{key:"info",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var i=0,a=0,o=0,l=0,d=0,U=0,c=0,F=e.buffers(t,r),s=0,Q=F.length;s<Q;s++){var u=F[s];if(n+r>=u[0]&&n<=u[1])i=u[0],a=u[1],o=s;else{if(n+r<u[0]){l=u[0],d=u[1];break}n+r>u[1]&&(U=u[0],c=u[1])}}return{start:i,end:a,index:o,buffers:F,nextStart:l,nextEnd:d,prevStart:U,prevEnd:c,currentTime:n,behind:n-i,remaining:a?a-n:0,length:e.totalLength&&e.totalLength(F)}}}]),e}(),isBrowser$1="undefined"!=typeof window,ERR={MANIFEST:"manifest",NETWORK:"network",NETWORK_TIMEOUT:"network_timeout",NETWORK_FORBIDDEN:"network_forbidden",NETWORK_NOTFOUND:"network_notfound",NETWROK_RANGE_NOT_SATISFIABLE:"network_range_not_satisfiable",DEMUX:"demux",REMUX:"remux",MEDIA:"media",DRM:"drm",OTHER:"other",RUNTIME:"runtime",SUB_TYPES:{FLV:"FLV",HLS:"HLS",MP4:"MP4",FMP4:"FMP4",MSE_ADD_SB:"MSE_ADD_SB",MSE_APPEND_BUFFER:"MSE_APPEND_BUFFER",MSE_OTHER:"MSE_OTHER",MSE_FULL:"MSE_FULL",MSE_CHANGE_TYPE:"MSE_CHANGE_TYPE",OPTION:"OPTION",DASH:"DASH",LICENSE:"LICENSE",CUSTOM_LICENSE:"CUSTOM_LICENSE",MSE_HIJACK:"MSE_HIJACK",EME_HIJACK:"EME_HIJACK",SIDX:"SIDX",NO_CANPLAY_ERROR:"NO_CANPLAY_ERROR",BUFFERBREAK_ERROR:"BUFFERBREAK_ERROR",WAITING_TIMEOUT_ERROR:"WAITING_TIMEOUT_ERROR",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_CODEC_NOT_SUPPORTED:"MEDIA_ERR_CODEC_NOT_SUPPORTED",MEDIA_ERR_URL_EMPTY:"MEDIA_ERR_URL_EMPTY"}},ERR_CODE=(_defineProperty$5(_ERR_CODE={},ERR.MANIFEST,{HLS:1100,DASH:1200}),_defineProperty$5(_ERR_CODE,ERR.NETWORK,2100),_defineProperty$5(_ERR_CODE,ERR.NETWORK_TIMEOUT,2101),_defineProperty$5(_ERR_CODE,ERR.NETWORK_FORBIDDEN,2103),_defineProperty$5(_ERR_CODE,ERR.NETWORK_NOTFOUND,2104),_defineProperty$5(_ERR_CODE,ERR.NETWROK_RANGE_NOT_SATISFIABLE,2116),_defineProperty$5(_ERR_CODE,ERR.DEMUX,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),_defineProperty$5(_ERR_CODE,ERR.REMUX,{FMP4:4100,MP4:4200}),_defineProperty$5(_ERR_CODE,ERR.MEDIA,{MEDIA_ERR_ABORTED:5101,MEDIA_ERR_NETWORK:5102,MEDIA_ERR_DECODE:5103,MEDIA_ERR_SRC_NOT_SUPPORTED:5104,MEDIA_ERR_CODEC_NOT_SUPPORTED:5105,MEDIA_ERR_URL_EMPTY:5106,MSE_ADD_SB:5200,MSE_APPEND_BUFFER:5201,MSE_OTHER:5202,MSE_FULL:5203,MSE_HIJACK:5204,MSE_CHANGE_TYPE:5205,EME_HIJACK:5301}),_defineProperty$5(_ERR_CODE,ERR.DRM,{LICENSE:7100,CUSTOM_LICENSE:7200}),_defineProperty$5(_ERR_CODE,ERR.OTHER,8e3),_defineProperty$5(_ERR_CODE,ERR.RUNTIME,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),_ERR_CODE),StreamingError=function(e){_inherits$4(n,_wrapNativeSuper$1(Error));var t=_createSuper$2(n);function n(e,r,i,a,o){var l;return _classCallCheck$5(this,n),(l=t.call(this,o||(null==i?void 0:i.message))).errorType=e===ERR.NETWORK_TIMEOUT?ERR.NETWORK:e,l.originError=i,l.ext=a,l.errorCode=ERR_CODE[e][r]||ERR_CODE[e],l.errorMessage=l.message,l.errorCode||(l.errorType=ERR.OTHER,l.errorCode=ERR_CODE[l.errorType]),l}return _createClass$5(n,null,[{key:"create",value:function(e,t,r,i,a){return e instanceof n?e:(e instanceof Error&&(r=e,e=""),e||(e=ERR.OTHER),new n(e,t,r,i,a))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?ERR.NETWORK_TIMEOUT:ERR.NETWORK,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(t=e.response)||void 0===t?void 0:t.status})}}]),n}(),LogCacheLevel$1={DEBUG:1,LOG:2,WARN:3,ERROR:4},LOG_MAX_SIZE$1=204800,SIMPLE_TYPE$1=["Boolean","Number","String","Undefined","Null","Date","Object"],Logger$1=function(){function e(t,n){_classCallCheck$5(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||LOG_MAX_SIZE$1,this.logSize=0,this.logTextArray=[]}return _createClass$5(e,[{key:"debug",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.DEBUG].concat(r)),e.disabled||(t=console).debug.apply(t,[this._prefix,nowTime$2()].concat(r))}},{key:"log",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.LOG].concat(r)),e.disabled||(t=console).log.apply(t,[this._prefix,nowTime$2()].concat(r))}},{key:"warn",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.WARN].concat(r)),e.disabled||(t=console).warn.apply(t,[this._prefix,nowTime$2()].concat(r))}},{key:"error",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel$1.ERROR].concat(r)),e.disabled||(t=console).error.apply(t,[this._prefix,nowTime$2()].concat(r))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=r.map((function(e){return logable$1(e)}));t=this._prefix+nowTime$2()+JSON.stringify(a)}catch(e){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var o=this.logTextArray.shift();this.logSize-=o.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function nowTime$2(){return(new Date).toLocaleString()}function reduceDepth$1(e){if("object"!==_typeof$2(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function logable$1(e,t,n){n||(n=1),t||(t=2);var r={};if(!e||"object"!==_typeof$2(e))return e;var i=Object.prototype.toString.call(e).slice(8,-1);if(!SIMPLE_TYPE$1.includes(i))return i;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?r[a]=reduceDepth$1(e[a]):"object"===_typeof$2(e[a])?r[a]=logable$1(e[a],t,n+1):r[a]=e[a]);return r}}function createPublicPromise$1(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}function nowTime$1(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}_defineProperty$5(Logger$1,"disabled",!0);var SafeJSON={stringify:function(e){try{return JSON.stringify(e)}catch(e){return""}},parse:function(e){try{return JSON.parse(e)}catch(e){return}}};function getMediaSource(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return isBrowser$1?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(e){}}function isMMS(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}function getTimeRanges(e){var t=[];if(e instanceof TimeRanges)for(var n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}var OP_NAME={APPEND:"appendBuffer",REMOVE:"removeBuffer",UPDATE_DURATION:"updateDuration"},MSE=function(){function e(t,n){var r=this;_classCallCheck$5(this,e),_defineProperty$5(this,"media",null),_defineProperty$5(this,"mediaSource",null),_defineProperty$5(this,"_openPromise",createPublicPromise$1()),_defineProperty$5(this,"_queue",Object.create(null)),_defineProperty$5(this,"_sourceBuffer",Object.create(null)),_defineProperty$5(this,"_mseFullFlag",{}),_defineProperty$5(this,"_st",0),_defineProperty$5(this,"_opst",0),_defineProperty$5(this,"_logger",null),_defineProperty$5(this,"_config",null),_defineProperty$5(this,"_url",null),_defineProperty$5(this,"_onStartStreaming",(function(){r._logger.debug("startstreaming")})),_defineProperty$5(this,"_onEndStreaming",(function(){r._logger.debug("endstreaming")})),_defineProperty$5(this,"_onSBUpdateEnd",(function(e){var t=r._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==OP_NAME.UPDATE_DURATION&&t.shift(),n){var i,a=void 0;try{var o;a=null===(o=r._sourceBuffer[e])||void 0===o?void 0:o.buffered}catch(e){}var l=nowTime$1()-r._opst;r._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),SafeJSON.stringify(getTimeRanges(a)),l,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:l});var d=null===(i=n.context)||void 0===i?void 0:i.callback;d&&"function"==typeof d&&d(n.context),r._startQueue(e)}}})),_defineProperty$5(this,"_onSBUpdateError",(function(e,t){var n=r._queue[e];if(n){var i=n[0];i&&(r._logger.error("UpdateError",e,i.opName,i.context),i.promise.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new Logger$1("MSE"),this._config.openLog&&Logger$1.enable()}var t,n,r;return _createClass$5(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"hasOpTasks",get:function(){var e=this,t=!1;return Object.keys(this._queue).forEach((function(n){var r=e._queue[n];Array.isArray(r)&&(t||(t=r.length>0))})),t}},{key:"url",get:function(){return this._url}},{key:"duration",get:function(){var e;return(null===(e=this.mediaSource)||void 0===e?void 0:e.duration)||-1}},{key:"isEnded",get:function(){return!!this.mediaSource&&"ended"===this.mediaSource.readyState}},{key:"streaming",get:function(){return!isMMS(this.mediaSource)||this.mediaSource.streaming}},{key:"isFull",value:function(t){return t?this._mseFullFlag[t]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var t=this,n=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var r=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{r=Math.max(t.bufferEnd(e)||0,r)}catch(e){}})),e<r)return Promise.resolve()}return this._enqueueBlockingOp((function(){t.isEnded?t._logger.debug("setDuration but ended"):t.mediaSource&&(t.mediaSource.duration=e,t._logger.debug("setDuration",e))}),OP_NAME.UPDATE_DURATION,{isReduceDuration:n})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var t=this.mediaSource;t.addEventListener("sourceopen",(function n(){var r=nowTime$1()-e._st;e._logger.debug("sourceopen",r),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:r})})),this._openPromise=createPublicPromise$1()}return this._openPromise}},{key:"bindMedia",value:(r=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(t){var n,r,i,a,o=this;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.mediaSource&&!this.media){e.next=3;break}return e.next=3,this.unbindMedia();case 3:if(n=getMediaSource(this._config.preferMMS),t&&n){e.next=6;break}throw new Error("Param media or MediaSource does not exist");case 6:return this.media=t,r=this.mediaSource=new n,i=isMMS(r),this._st=nowTime$1(),a=function e(){var n=nowTime$1()-o._st;o._logger.debug("sourceopen"),r.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),o._openPromise.resolve({costtime:n})},r.addEventListener("sourceopen",a),i&&(r.addEventListener("startstreaming",this._onStartStreaming),r.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(r),t.src=this._url,t.disableRemotePlayback=i,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"unbindMedia",value:(n=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){var t,n,r,i=this;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),t=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var t=i._queue[e];t&&t.forEach((function(e){var t,n;return null===(t=e.promise)||void 0===t||null===(n=t.resolve)||void 0===n?void 0:n.call(t)}))})),n=!!this.media&&this.media.readyState>=1,r="open"===t.readyState,n&&r)try{t.endOfStream()}catch(e){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(i._sourceBuffer[e])}catch(e){}})),isMMS(t)&&(t.removeEventListener("startstreaming",this._onStartStreaming),t.removeEventListener("endstreaming",this._onEndStreaming))}if(this.media){this.media.disableRemotePlayback=!1,this.media.removeAttribute("src");try{this.media.load()}catch(e){}this.media=null}this.mediaSource=null,this._openPromise=createPublicPromise$1(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"createSource",value:function(e,t){if(!this._sourceBuffer[e]&&this.mediaSource){var n;try{n=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(t)}catch(e){throw new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_ADD_SB,e)}n.mimeType=t,n.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),n.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,t){var n=this,r=this._sourceBuffer[e];return this.mediaSource&&r&&r.mimeType!==t?"function"!=typeof r.changeType?Promise.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{r.changeType(t)}catch(e){throw new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_CHANGE_TYPE,e)}r.mimeType=t,n._onSBUpdateEnd(e)}),"changeType",{mimeType:t}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,t){return this.createSource(e,t),this.changeType(e,t)}},{key:"append",value:function(e,t,n){var r=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var i;r.mediaSource&&!r.media.error&&(r._logger.debug("MSE APPEND START",n),r._opst=nowTime$1(),null===(i=r._sourceBuffer[e])||void 0===i||i.appendBuffer(t))}),OP_NAME.APPEND,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,r){var i=this,a=!1;return this._mseFullFlag[e]&&(a=!0),this._enqueueOp(e,(function(){if(i.mediaSource&&!i.media.error){var a=i._sourceBuffer[e];t>=n||!a?i._onSBUpdateEnd(e):(i._opst=nowTime$1(),i._logger.debug("MSE REMOVE START",e,t,n,r),a.remove(t,n))}}),OP_NAME.REMOVE,r,a)}},{key:"clearBuffer",value:function(e,t){var n,r=this;return Object.keys(this._sourceBuffer).forEach((function(i){n=r.remove(i,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var r=t._sourceBuffer[n];e=t.remove(n,0,Buffer.end(Buffer.get(r)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var r=this._queue[e];if(t&&r)this._queue[e]=[];else if(r&&r[e]&&!(r.length<5)){var i=[];r.forEach((function(e){e.context&&e.context.isinit&&i.push(e)})),this._queue[e]=r.slice(0,2),i.length>0&&(n=this._queue[e]).push.apply(n,i)}}},{key:"endOfStream",value:function(e){var t=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var n=t.mediaSource;n&&"open"===n.readyState&&(t._logger.debug("MSE endOfStream START"),e?n.endOfStream(e):n.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,t){var n=this.mediaSource;e<0||t<e||null==n||!n.setLiveSeekableRange||"open"!==n.readyState||n.setLiveSeekableRange(e,t)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return Buffer.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return Buffer.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return Buffer.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,r,i){var a=this;if(!this.mediaSource)return Promise.resolve();var o=this._queue[e]=this._queue[e]||[],l={exec:t,promise:createPublicPromise$1(),opName:n,context:r};return i?(o.splice(0,0,l),this._mseFullFlag[e]=!1,this._startQueue(e)):o.push(l),this.isOpened||this.isEnded?1===o.length&&this._startQueue(e):this._openPromise.then((function(){1===o.length&&a._startQueue(e)})),l.promise}},{key:"_enqueueBlockingOp",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(t,n,r){var i,a,o=this;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mediaSource){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:if((i=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",t());case 5:return a=[],i.forEach((function(e){var t=o._queue[e],i=createPublicPromise$1();a.push(i),t.push({exec:function(){i.resolve()},promise:i,opName:n,context:r}),1===t.length&&o._startQueue(e)})),e.abrupt("return",Promise.all(a).then((function(){try{return t()}finally{i.forEach((function(e){var t=o._queue[e],n=o._sourceBuffer[e];null==t||t.shift(),n&&n.updating||o._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,r){return t.apply(this,arguments)})},{key:"_startQueue",value:function(e){var t=this._queue[e];if(t){var n=t[0];if(n&&!this._mseFullFlag[e])try{n.exec()}catch(r){r&&r.message&&r.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,n.context&&"object"===_typeof$2(n.context)&&(n.context.isFull=!0),this._logger.error("[MSE error], context,",n.context," ,name,",n.opName,",err,SourceBuffer is full"),n.promise.reject(new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_FULL,r))):(this._logger.error(r),n.promise.reject(r.constructor===StreamingError?r:new StreamingError(ERR.MEDIA,ERR.SUB_TYPES.MSE_OTHER,r)),t.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,t,n){var r=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),r._sourceBuffer[e].timestampOffset=t,r._onSBUpdateEnd(e)}),"setTimeoffset",n)}},{key:"abort",value:function(e,t){var n=this;return this.isOpened?this._enqueueOp(e,(function(){n._sourceBuffer[e].abort(),n._onSBUpdateEnd(e)}),"abort",t):Promise.resolve()}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"',t=getMediaSource();if(!t)return!1;try{return t.isTypeSupported(e)}catch(t){return this._logger.error(e,t),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();_defineProperty$5(MSE,"VIDEO","video"),_defineProperty$5(MSE,"AUDIO","audio");var LoaderType$1={FETCH:"fetch",XHR:"xhr"},ResponseType$1={ARRAY_BUFFER:"arraybuffer",TEXT:"text",JSON:"json"},NetError$1=function(e){_inherits$4(n,_wrapNativeSuper$1(Error));var t=_createSuper$2(n);function n(e,r,i,a){var o;return _classCallCheck$5(this,n),_defineProperty$5(_assertThisInitialized$4(o=t.call(this,a)),"retryCount",0),_defineProperty$5(_assertThisInitialized$4(o),"isTimeout",!1),_defineProperty$5(_assertThisInitialized$4(o),"loaderType",LoaderType$1.FETCH),_defineProperty$5(_assertThisInitialized$4(o),"startTime",0),_defineProperty$5(_assertThisInitialized$4(o),"endTime",0),_defineProperty$5(_assertThisInitialized$4(o),"options",{}),o.url=e,o.request=r,o.response=i,o}return _createClass$5(n)}(),toString$5=Object.prototype.toString;function isObject$7(e){return null!==e&&"object"===_typeof$2(e)}function isPlainObject$1(e){if("[object Object]"!==toString$5.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isDate$1(e){return"[object Date]"===toString$5.call(e)}function getRangeValue$1(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function encode$1(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function setUrlParams$1(e,t){if(e){if(!t)return e;var n,r=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){return isDate$1(t)?t=t.toISOString():isObject$7(t)&&(t=JSON.stringify(t)),"".concat(encode$1(e),"=").concat(encode$1(t))})).join("&")})).filter(Boolean).join("&");if(r){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}}function createResponse$1(e,t,n,r,i,a,o,l,d,U,c){return i=null!=i?parseFloat(i):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0),{data:e,done:t,options:{range:d,vid:U,index:l,contentLength:r,age:i,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:c},response:n}}function calculateSpeed$1(e,t){return Math.round(8*e*1e3/t/1024)}var EVENT$1={ERROR:"error",TTFB:"core.ttfb",LOAD_START:"core.loadstart",LOAD_RESPONSE_HEADERS:"core.loadresponseheaders",LOAD_COMPLETE:"core.loadcomplete",LOAD_RETRY:"core.loadretry",SOURCEBUFFER_CREATED:"core.sourcebuffercreated",MEDIASOURCE_OPENED:"core.mediasourceopened",ANALYZE_DURATION_EXCEEDED:"core.analyzedurationexceeded",REMOVE_BUFFER:"core.removebuffer",BUFFEREOS:"core.buffereos",KEYFRAME:"core.keyframe",CHASEFRAME:"core.chaseframe",METADATA_PARSED:"core.metadataparsed",SEI:"core.sei",SEI_IN_TIME:"core.seiintime",FLV_SCRIPT_DATA:"core.flvscriptdata",LOWDECODE:"core.lowdecode",SWITCH_URL_SUCCESS:"core.switchurlsuccess",SWITCH_URL_FAILED:"core.switchurlfailed",SPEED:"core.speed",HLS_MANIFEST_LOADED:"core.hlsmanifestloaded",HLS_LEVEL_LOADED:"core.hlslevelloaded",DEMUXED_TRACK:"core.demuxedtrack",STREAM_EXCEPTION:"core.streamexception",LARGE_AV_FIRST_FRAME_GAP_DETECT:"LARGE_AV_FIRST_FRAME_GAP_DETECT",LARGE_VIDEO_DTS_GAP_DETECT:"LARGE_VIDEO_DTS_GAP_DETECT",LARGE_AUDIO_DTS_GAP_DETECT:"LARGE_AUDIO_DTS_GAP_DETECT",AUDIO_GAP_DETECT:"AUDIO_GAP_DETECT",AUDIO_OVERLAP_DETECT:"AUDIO_OVERLAP_DETECT",MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT:"MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT",REAL_TIME_SPEED:"real_time_speed"},CACHESIZE$1=2097152,FetchLoader$1=function(e){_inherits$4(r,EventEmitter$1);var t,n=_createSuper$2(r);function r(){var e;return _classCallCheck$5(this,r),_defineProperty$5(_assertThisInitialized$4(e=n.call(this)),"_abortController",null),_defineProperty$5(_assertThisInitialized$4(e),"_timeoutTimer",null),_defineProperty$5(_assertThisInitialized$4(e),"_reader",null),_defineProperty$5(_assertThisInitialized$4(e),"_response",null),_defineProperty$5(_assertThisInitialized$4(e),"_aborted",!1),_defineProperty$5(_assertThisInitialized$4(e),"_index",-1),_defineProperty$5(_assertThisInitialized$4(e),"_range",null),_defineProperty$5(_assertThisInitialized$4(e),"_receivedLength",0),_defineProperty$5(_assertThisInitialized$4(e),"_running",!1),_defineProperty$5(_assertThisInitialized$4(e),"_logger",null),_defineProperty$5(_assertThisInitialized$4(e),"_vid",""),_defineProperty$5(_assertThisInitialized$4(e),"_onProcessMinLen",0),_defineProperty$5(_assertThisInitialized$4(e),"_onCancel",null),_defineProperty$5(_assertThisInitialized$4(e),"_priOptions",null),e}return _createClass$5(r,[{key:"load",value:function(e){var t,n=this,r=e.url,i=e.vid,a=e.timeout,o=e.responseType,l=e.onProgress,d=e.index,U=e.onTimeout,c=e.onCancel,F=e.range,s=e.transformResponse,Q=e.request,u=e.params,R=e.logger,B=e.method,h=e.headers,p=e.body,S=e.mode,V=e.credentials,f=e.cache,y=e.redirect,m=e.referrer,E=e.referrerPolicy,Z=e.onProcessMinLen,J=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=Z,this._onCancel=c,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=F||[0,0],this._vid=i||r,this._priOptions=J||{};var b={method:B,headers:h,body:p,mode:S,credentials:V,cache:f,redirect:y,referrer:m,referrerPolicy:E,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},W=!1;clearTimeout(this._timeoutTimer),r=setUrlParams$1(r,u);var k=getRangeValue$1(F);k&&(h=Q?Q.headers:b.headers=b.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",k):h.Range=k),a&&(this._timeoutTimer=setTimeout((function(){if(W=!0,n.cancel(),U){var e=new NetError$1(r,b,null,"timeout");e.isTimeout=!0,U(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var T=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",F),new Promise((function(e,t){fetch(Q||r,Q?void 0:b).then(function(){var i=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function i(a){var U,c,Q,u;return _regeneratorRuntime$3().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){i.next=4;break}return i.abrupt("return");case 4:if(s&&(a=s(a,r)||a),a.ok){i.next=7;break}throw new NetError$1(r,b,a,"bad network response");case 7:if(U=Date.now(),o!==ResponseType$1.TEXT){i.next=15;break}return i.next=11,a.text();case 11:c=i.sent,n._running=!1,i.next=37;break;case 15:if(o!==ResponseType$1.JSON){i.next=22;break}return i.next=18,a.json();case 18:c=i.sent,n._running=!1,i.next=37;break;case 22:if(!l){i.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,l,T,U),i.abrupt("return");case 29:return i.next=31,a.arrayBuffer();case 31:c=i.sent,c=new Uint8Array(c),n._running=!1,Q=Date.now()-T,u=calculateSpeed$1(c.byteLength,Q),n.emit(EVENT$1.REAL_TIME_SPEED,{speed:u,len:c.byteLength,time:Q,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",d,",range,",F),e(createResponse$1(c,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),T,U,d,F,n._vid,n._priOptions));case 39:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()).catch((function(e){var i;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!W||((e=e instanceof NetError$1?e:new NetError$1(r,b,null,null===(i=e)||void 0===i?void 0:i.message)).startTime=T,e.endTime=Date.now(),e.isTimeout=W,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(e){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,r){var i=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new NetError$1(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(CACHESIZE$1),this._writeIdx=0);var o,l,d,U=this._reader=e.body.getReader(),c=function(){var a=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function a(){var F,s,Q,u,R,B,h,p;return _regeneratorRuntime$3().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return l=Date.now(),a.prev=1,a.next=4,U.read();case 4:o=a.sent,d=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),d=Date.now(),i._aborted||(i._running=!1,a.t0.options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.reject(a.t0)),a.abrupt("return");case 13:if(s=(null===(F=i._range)||void 0===F?void 0:F.length)>0?i._range[0]:0,Q=s+i._receivedLength,!i._aborted){a.next=19;break}return i._running=!1,t(void 0,!1,{range:[Q,Q],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),a.abrupt("return");case 19:u=o.value?o.value.byteLength:0,i._receivedLength+=u,i._logger.debug("【fetchLoader,onProgress call】,task,",i._range,", start,",Q,", end,",s+i._receivedLength,", done,",o.done),i._onProcessMinLen>0?i._writeIdx+u>=i._onProcessMinLen||o.done?((R=new Uint8Array(i._writeIdx+u)).set(i._cache.slice(0,i._writeIdx),0),u>0&&R.set(o.value,i._writeIdx),i._writeIdx=0,i._logger.debug("【fetchLoader,onProgress enough】,done,",o.done,",len,",R.byteLength,", writeIdx,",i._writeIdx)):u>0&&i._writeIdx+u<CACHESIZE$1?(i._cache.set(o.value,i._writeIdx),i._writeIdx+=u,i._logger.debug("【fetchLoader,onProgress cache】,len,",u,", writeIdx,",i._writeIdx)):u>0&&(B=new Uint8Array(i._writeIdx+u+2048),i._logger.debug("【fetchLoader,onProgress extra start】,size,",i._writeIdx+u+2048,", datalen,",u,", writeIdx,",i._writeIdx),B.set(i._cache.slice(0,i._writeIdx),0),u>0&&B.set(o.value,i._writeIdx),i._writeIdx+=u,delete i._cache,i._cache=B,i._logger.debug("【fetchLoader,onProgress extra end】,len,",u,", writeIdx,",i._writeIdx)):R=o.value,(R&&R.byteLength>0||o.done)&&t(R,o.done,{range:[i._range[0]+i._receivedLength-(R?R.byteLength:0),i._range[0]+i._receivedLength],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),o.done?(h=Date.now()-n,p=calculateSpeed$1(i._receivedLength,h),i.emit(EVENT$1.REAL_TIME_SPEED,{speed:p,len:i._receivedLength,time:h,vid:i._vid,index:i._index,range:i._range,priOptions:i._priOptions}),i._running=!1,i._logger.debug("[fetchLoader onProgress end],task,",i._range,",done,",o.done),i.resolve(createResponse$1(o,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,r,i._index,i._range,i._vid,i._priOptions))):c();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();c()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),r}();function getConfig$1(e){return _objectSpread2$3({loaderType:LoaderType$1.FETCH,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:ResponseType$1.TEXT,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}var XhrLoader$1=function(e){_inherits$4(n,EventEmitter$1);var t=_createSuper$2(n);function n(){var e;return _classCallCheck$5(this,n),_defineProperty$5(_assertThisInitialized$4(e=t.call(this)),"_xhr",null),_defineProperty$5(_assertThisInitialized$4(e),"_aborted",!1),_defineProperty$5(_assertThisInitialized$4(e),"_timeoutTimer",null),_defineProperty$5(_assertThisInitialized$4(e),"_range",null),_defineProperty$5(_assertThisInitialized$4(e),"_receivedLength",0),_defineProperty$5(_assertThisInitialized$4(e),"_url",null),_defineProperty$5(_assertThisInitialized$4(e),"_onProgress",null),_defineProperty$5(_assertThisInitialized$4(e),"_index",-1),_defineProperty$5(_assertThisInitialized$4(e),"_headers",null),_defineProperty$5(_assertThisInitialized$4(e),"_currentChunkSizeKB",384),_defineProperty$5(_assertThisInitialized$4(e),"_timeout",null),_defineProperty$5(_assertThisInitialized$4(e),"_xhr",null),_defineProperty$5(_assertThisInitialized$4(e),"_withCredentials",null),_defineProperty$5(_assertThisInitialized$4(e),"_startTime",-1),_defineProperty$5(_assertThisInitialized$4(e),"_loadCompleteResolve",null),_defineProperty$5(_assertThisInitialized$4(e),"_loadCompleteReject",null),_defineProperty$5(_assertThisInitialized$4(e),"_runing",!1),_defineProperty$5(_assertThisInitialized$4(e),"_logger",!1),_defineProperty$5(_assertThisInitialized$4(e),"_vid",""),_defineProperty$5(_assertThisInitialized$4(e),"_responseType",void 0),_defineProperty$5(_assertThisInitialized$4(e),"_credentials",void 0),_defineProperty$5(_assertThisInitialized$4(e),"_method",void 0),_defineProperty$5(_assertThisInitialized$4(e),"_transformResponse",void 0),_defineProperty$5(_assertThisInitialized$4(e),"_firstRtt",void 0),_defineProperty$5(_assertThisInitialized$4(e),"_onCancel",null),_defineProperty$5(_assertThisInitialized$4(e),"_priOptions",null),e}return _createClass$5(n,[{key:"load",value:function(e){var t=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=setUrlParams$1(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof NetError$1?e:new NetError$1(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ResponseType$1.ARRAY_BUFFER&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,r=this._range[1];t<this._range[1]-n&&(r=n+t),e=[n,r],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,r,i;t._running=!1;var a=new NetError$1(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.status)+",statusText,"+(null==e||null===(i=e.currentTarget)||void 0===i?void 0:i.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new NetError$1(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var r=this._headers||{},i=getRangeValue$1(e);i&&(r.Range=i),r&&Object.keys(r).forEach((function(e){n.setRequestHeader(e,r[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var r=new NetError$1(this._url,null,_objectSpread2$3(_objectSpread2$3({},e.target.response),{},{status:n}),"bad response,status:"+n);return r.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}var i,a=null,o=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===ResponseType$1.ARRAY_BUFFER){var d,U=new Uint8Array(e.target.response);if(i=l+this._receivedLength,U&&U.byteLength>0){this._receivedLength+=U.byteLength;var c=Date.now()-this._startTime,F=calculateSpeed$1(this._receivedLength,c);this.emit(EVENT$1.REAL_TIME_SPEED,{speed:F,len:this._receivedLength,time:c,vid:this._vid,index:this._index,range:[i,l+this._receivedLength],priOptions:this._priOptions})}a=U,o=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",i,"end ",l+this._receivedLength,",dataLen,",U?U.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",o)}else o=!0,a=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(a,o,{index:this._index,vid:this._vid,range:[i,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),o?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(createResponse$1(this._onProgress?null:a,o,s,s.headers["content-length"],s.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,_get$1(_getPrototypeOf$4(n.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var t,n={},r=_createForOfIteratorHelper$2(e.getAllResponseHeaders().trim().split("\r\n"));try{for(r.s();!(t=r.n()).done;){var i=t.value.split(": ");n[i[0].toLowerCase()]=i.slice(1).join(": ")}}catch(e){r.e(e)}finally{r.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(),_excluded$6=["retry","retryDelay","onRetryError","transformError"],Task$1=function(){function e(t,n){_classCallCheck$5(this,e),this.promise=createPublicPromise$1(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Logger$1("Loader")),this._loaderType=t,this._loader=t===LoaderType$1.FETCH&&"undefined"!=typeof fetch?new FetchLoader$1:new XhrLoader$1,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return _createClass$5(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,r=t.retryDelay,i=t.onRetryError,a=t.transformError,o=_objectWithoutProperties$3(t,_excluded$6),l=function(){var t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function t(){var d,U,c;return _regeneratorRuntime$3().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(o);case 3:d=t.sent,e.promise.resolve(d),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,U=t.t0,a&&(U=a(U)||U),i&&e._retryCount>0&&i(U,e._retryCount,{index:o.index,vid:o.vid,range:o.range,priOptions:o.priOptions}),e._retryCount++,c=!0,e._retryCheckFunc&&(c=e._retryCheckFunc(t.t0)),!(c&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",o.range),e._retryTimer=setTimeout(l,r),t.abrupt("return");case 26:e.promise.reject(U);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function concatUint8Array(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((t=t.filter(Boolean)).length<2)return t[0];var r=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),i=0;return t.forEach((function(e){r.set(e,i),i+=e.byteLength})),r}function sleep$1(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var NetLoader$1=function(e){_inherits$4(r,EventEmitter$1);var t,n=_createSuper$2(r);function r(e){var t;return _classCallCheck$5(this,r),_defineProperty$5(_assertThisInitialized$4(t=n.call(this,e)),"type",LoaderType$1.FETCH),_defineProperty$5(_assertThisInitialized$4(t),"_queue",[]),_defineProperty$5(_assertThisInitialized$4(t),"_alive",[]),_defineProperty$5(_assertThisInitialized$4(t),"_currentTask",null),_defineProperty$5(_assertThisInitialized$4(t),"_finnalUrl",""),_defineProperty$5(_assertThisInitialized$4(t),"_config",void 0),t._config=getConfig$1(e),t._config.loaderType!==LoaderType$1.XHR&&FetchLoader$1.isSupported()||(t.type=LoaderType$1.XHR),t.log=e.logger,t}return _createClass$5(r,[{key:"isFetch",value:function(){return this.type===LoaderType$1.FETCH}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&isPlainObject$1(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&isPlainObject$1(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var r=new Task$1(this.type,n);return r.loader.on(EVENT$1.REAL_TIME_SPEED,(function(e){t.emit(EVENT$1.REAL_TIME_SPEED,e)})),this._queue.push(r),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),r.promise}},{key:"cancel",value:(t=_asyncToGenerator$3(_regeneratorRuntime$3().mark((function e(){var t;return _regeneratorRuntime$3().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sleep$1();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FetchLoader$1.isSupported()}}]),r}(),LOGOPEN=getLogOpen();function getLogOpen(){return"undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!proxyLocalStorage$1.getItem("abrdebug")||!!proxyLocalStorage$1.getItem("playerlog"))}var logger=new Logger$1("Logger",{logCacheLevel:LogCacheLevel$1.DEBUG});LOGOPEN&&Logger$1.enable();var debug={},debugPrefix={log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"},noCachePrefix=["abr"],_loop=function(e){noCachePrefix.includes(e)?debug[e]=LOGOPEN?function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];(t=console).log.apply(t,["[".concat(e,"]"),(new Date).toLocaleString()].concat(r))}:function(){}:debug[e]=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];logger.log.apply(logger,["[".concat(e,"]")].concat(n))}};for(var item in debugPrefix)_loop(item);function getLogger(){return logger}const debug$1=debug;var DEFAULT_PROGRESS_TIMER=1e3,DEFAULT_PRELOAD_TIME=50,DEFAULT_END=1,SPPED_CACHE="danger_d_speed",MAX_TIMESTAMP=5e9,MIN_EXPIRE_INTERVAL=300,MONITOR_HEADERS={"x-cache":"x_cache","x-response-sinfo":"server_ip"},SEGMENT_SIZE_CONFIG={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},PLAYER_START="player_start",WASM_START="wasm_start",WASM_READY="wasm_ready",INIT_FINISHED="init_finished",CORE_START="core_start",START_PLAY="start_play",ERROR_HANDLER="error_handler",ERROR_CATCHING="error_catching",ERROR_NO_MP4OPTS="error_no_mp4opts",ERROR_CATCH_FINISHED="error_catch_finished",NEXT_START="next_start",NEXT_FINISHED="next_finished",SEGMENT_STATE={NO_START:0,GOING:1,APPEND:2},MEDIA_CONTENT_ERR="media_exception",MP4_SOURCE_ERR="mp4_source_exception",TASK_REQUEST_EXPIRED="task_request_expired",TASK_REQUEST_ERROR="task_request_error",DASH_TYPE={MAIN:"0",BACK:"1"},CHANGE_STATES$2={INIT:"init",ERR:"error"},URL_DASH_TAG="currentDashType",LOAD_TYPE$2={CDN:"cdn",PCDN:"pcdn"},USE_WAIT_WATER_LEVEL_MIN_TIME=2,EVENT_BUFFER_CONTROL="buffer_control",BUFFER_CONTROL_TYPE={WAITING:"waiting",PLAYING:"playing"},PAUSE_TYPES={BUFFER_CONTROLS:"buffer_control"},$$r=_export,global$4=global$C,arrayBufferModule=arrayBuffer,setSpecies$1=setSpecies$4,ARRAY_BUFFER="ArrayBuffer",ArrayBuffer$1=arrayBufferModule[ARRAY_BUFFER],NativeArrayBuffer=global$4[ARRAY_BUFFER];$$r({global:!0,constructor:!0,forced:NativeArrayBuffer!==ArrayBuffer$1},{ArrayBuffer:ArrayBuffer$1}),setSpecies$1(ARRAY_BUFFER);var ArrayBufferViewCore=arrayBufferViewCore,TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS=typedArrayConstructorsRequireWrappers,aTypedArrayConstructor=ArrayBufferViewCore.aTypedArrayConstructor,exportTypedArrayStaticMethod=ArrayBufferViewCore.exportTypedArrayStaticMethod;function checkIsMSBrowser(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function checkIsQQBrowser(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function checkIsFirefoxBrowser(){var e=window.navigator.userAgent;return!(window.location.search.indexOf("firefox_dash=true")>-1||!!proxyLocalStorage$1.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1}function checkIsSafariBrowser(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function checkIsChromeCoreBrowser(){return navigator.userAgent.toLowerCase().indexOf("chrome")>-1}function checkIsEdgeBrowser(){return navigator.userAgent.indexOf("Edge")>0}function checkIsIncompatibleBrowser(){var e=checkIsSafariBrowser(),t=checkIsMSBrowser(),n=checkIsFirefoxBrowser(),r=checkIsEdgeBrowser();return e||t||n||r}function checkWebAssemblySupport(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":_typeof$4(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){console.log(e)}return!1}function checkMediaSourceSupport(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}exportTypedArrayStaticMethod("of",(function(){for(var e=0,t=arguments.length,n=new(aTypedArrayConstructor(this))(t);t>e;)n[e]=arguments[e++];return n}),TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);var AV1MimeTypes=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function isCodecSupported(e){if(!checkMediaSourceSupport())return!1;for(var t=0;t<e.length;t++){var n=e[t];if(MediaSource.isTypeSupported(n))return!0}return!1}function isAV1Supported(){return isCodecSupported(AV1MimeTypes)}function isEMESupported(){return!!navigator.requestMediaKeySystemAccess&&!checkIsIncompatibleBrowser()}function isSupported(){return checkWebAssemblySupport()&&checkMediaSourceSupport()&&!checkIsMSBrowser()}function isEncryptSupported(){return checkWebAssemblySupport()&&checkMediaSourceSupport()&&!checkIsMSBrowser()&&!checkIsQQBrowser()}function getDrmServerUrl(e){return new Promise((function(t){checkWebAssemblySupport()&&checkMediaSourceSupport()&&navigator.requestMediaKeySystemAccess||t(void 0);checkIsSafariBrowser();var n=checkIsChromeCoreBrowser(),r=checkIsEdgeBrowser();n&&!checkIsQQBrowser()?navigator.requestMediaKeySystemAccess("com.widevine.alpha",[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'}]}]).then((function(){t("https://".concat(e,"/video/drm/v1/widevine?aid=32&kid="))}),(function(){t(void 0)})):t(r?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))}var isSupport=Object.freeze({__proto__:null,AV1MimeTypes:AV1MimeTypes,checkWebAssemblySupport:checkWebAssemblySupport,getDrmServerUrl:getDrmServerUrl,isAV1Supported:isAV1Supported,isCodecSupported:isCodecSupported,isEMESupported:isEMESupported,isEncryptSupported:isEncryptSupported,isSupported:isSupported}),$$q=_export,uncurryThis$8=functionUncurryThis,aCallable$7=aCallable$h,toObject$2=toObject$e,lengthOfArrayLike$1=lengthOfArrayLike$g,deletePropertyOrThrow$1=deletePropertyOrThrow$3,toString$4=toString$d,fails$8=fails$H,internalSort=arraySort$1,arrayMethodIsStrict=arrayMethodIsStrict$4,FF=engineFfVersion,IE_OR_EDGE=engineIsIeOrEdge,V8=engineV8Version,WEBKIT=engineWebkitVersion,test=[],nativeSort=uncurryThis$8(test.sort),push$2=uncurryThis$8(test.push),FAILS_ON_UNDEFINED=fails$8((function(){test.sort(void 0)})),FAILS_ON_NULL=fails$8((function(){test.sort(null)})),STRICT_METHOD=arrayMethodIsStrict("sort"),STABLE_SORT=!fails$8((function(){if(V8)return V8<70;if(!(FF&&FF>3)){if(IE_OR_EDGE)return!0;if(WEBKIT)return WEBKIT<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)test.push({k:t+r,v:n})}for(test.sort((function(e,t){return t.v-e.v})),r=0;r<test.length;r++)t=test[r].k.charAt(0),i.charAt(i.length-1)!==t&&(i+=t);return"DGBEFHACIJK"!==i}})),FORCED$1=FAILS_ON_UNDEFINED||!FAILS_ON_NULL||!STRICT_METHOD||!STABLE_SORT,getSortCompare=function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:toString$4(t)>toString$4(n)?1:-1}};$$q({target:"Array",proto:!0,forced:FORCED$1},{sort:function(e){void 0!==e&&aCallable$7(e);var t=toObject$2(this);if(STABLE_SORT)return void 0===e?nativeSort(t):nativeSort(t,e);var n,r,i=[],a=lengthOfArrayLike$1(t);for(r=0;r<a;r++)r in t&&push$2(i,t[r]);for(internalSort(i,getSortCompare(e)),n=lengthOfArrayLike$1(i),r=0;r<n;)t[r]=i[r++];for(;r<a;)deletePropertyOrThrow$1(t,r++);return t}});var uncurryThis$7=functionUncurryThis,thisNumberValue$2=uncurryThis$7(1..valueOf),DESCRIPTORS$3=descriptors,global$3=global$C,uncurryThis$6=functionUncurryThis,isForced$1=isForced_1,defineBuiltIn$2=defineBuiltIn$f,hasOwn$1=hasOwnProperty_1,inheritIfRequired$1=inheritIfRequired$3,isPrototypeOf=objectIsPrototypeOf,isSymbol=isSymbol$4,toPrimitive=toPrimitive$3,fails$7=fails$H,getOwnPropertyNames2=objectGetOwnPropertyNames.f,getOwnPropertyDescriptor$1=objectGetOwnPropertyDescriptor.f,defineProperty$2=objectDefineProperty.f,thisNumberValue$1=thisNumberValue$2,trim=stringTrim.trim,NUMBER="Number",NativeNumber=global$3[NUMBER],NumberPrototype=NativeNumber.prototype,TypeError$1=global$3.TypeError,arraySlice$1=uncurryThis$6("".slice),charCodeAt=uncurryThis$6("".charCodeAt),toNumeric=function(e){var t=toPrimitive(e,"number");return"bigint"==typeof t?t:toNumber(t)},toNumber=function(e){var t,n,r,i,a,o,l,d,U=toPrimitive(e,"number");if(isSymbol(U))throw TypeError$1("Cannot convert a Symbol value to a number");if("string"==typeof U&&U.length>2)if(U=trim(U),43===(t=charCodeAt(U,0))||45===t){if(88===(n=charCodeAt(U,2))||120===n)return NaN}else if(48===t){switch(charCodeAt(U,1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+U}for(o=(a=arraySlice$1(U,2)).length,l=0;l<o;l++)if((d=charCodeAt(a,l))<48||d>i)return NaN;return parseInt(a,r)}return+U};if(isForced$1(NUMBER,!NativeNumber(" 0o1")||!NativeNumber("0b1")||NativeNumber("+0x1"))){for(var key2,NumberWrapper=function(e){var t=arguments.length<1?0:NativeNumber(toNumeric(e)),n=this;return isPrototypeOf(NumberPrototype,n)&&fails$7((function(){thisNumberValue$1(n)}))?inheritIfRequired$1(Object(t),n,NumberWrapper):t},keys$1=DESCRIPTORS$3?getOwnPropertyNames2(NativeNumber):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),j=0;keys$1.length>j;j++)hasOwn$1(NativeNumber,key2=keys$1[j])&&!hasOwn$1(NumberWrapper,key2)&&defineProperty$2(NumberWrapper,key2,getOwnPropertyDescriptor$1(NativeNumber,key2));NumberWrapper.prototype=NumberPrototype,NumberPrototype.constructor=NumberWrapper,defineBuiltIn$2(global$3,NUMBER,NumberWrapper,{constructor:!0})}var toIntegerOrInfinity$3=toIntegerOrInfinity$b,toString$3=toString$d,requireObjectCoercible$2=requireObjectCoercible$a,$RangeError$1=RangeError,stringRepeat=function(e){var t=toString$3(requireObjectCoercible$2(this)),n="",r=toIntegerOrInfinity$3(e);if(r<0||r==1/0)throw $RangeError$1("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))1&r&&(n+=t);return n},$$p=_export,uncurryThis$5=functionUncurryThis,toIntegerOrInfinity$2=toIntegerOrInfinity$b,thisNumberValue=thisNumberValue$2,$repeat=stringRepeat,fails$6=fails$H,$RangeError=RangeError,$String=String,floor$1=Math.floor,repeat$1=uncurryThis$5($repeat),stringSlice$2=uncurryThis$5("".slice),nativeToFixed=uncurryThis$5(1..toFixed),pow=function(e,t,n){return 0===t?n:t%2==1?pow(e,t-1,n*e):pow(e*e,t/2,n)},log=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t},multiply=function(e,t,n){for(var r=-1,i=n;++r<6;)i+=t*e[r],e[r]=i%1e7,i=floor$1(i/1e7)},divide=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=floor$1(r/t),r=r%t*1e7},dataToString=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=$String(e[t]);n=""===n?r:n+repeat$1("0",7-r.length)+r}return n},FORCED=fails$6((function(){return"0.000"!==nativeToFixed(8e-5,3)||"1"!==nativeToFixed(.9,0)||"1.25"!==nativeToFixed(1.255,2)||"1000000000000000128"!==nativeToFixed(0xde0b6b3a7640080,0)}))||!fails$6((function(){nativeToFixed({})}));$$p({target:"Number",proto:!0,forced:FORCED},{toFixed:function(e){var t,n,r,i,a=thisNumberValue(this),o=toIntegerOrInfinity$2(e),l=[0,0,0,0,0,0],d="",U="0";if(o<0||o>20)throw $RangeError("Incorrect fraction digits");if(a!=a)return"NaN";if(a<=-1e21||a>=1e21)return $String(a);if(a<0&&(d="-",a=-a),a>1e-21)if(n=(t=log(a*pow(2,69,1))-69)<0?a*pow(2,-t,1):a/pow(2,t,1),n*=4503599627370496,(t=52-t)>0){for(multiply(l,0,n),r=o;r>=7;)multiply(l,1e7,0),r-=7;for(multiply(l,pow(10,r,1),0),r=t-1;r>=23;)divide(l,1<<23),r-=23;divide(l,1<<r),multiply(l,1,1),divide(l,2),U=dataToString(l)}else multiply(l,0,n),multiply(l,1<<-t,0),U=dataToString(l)+repeat$1("0",o);return U=o>0?d+((i=U.length)<=o?"0."+repeat$1("0",o-i)+U:stringSlice$2(U,0,i-o)+"."+stringSlice$2(U,i-o)):d+U}});var DESCRIPTORS$2=descriptors,uncurryThis$4=functionUncurryThis,objectKeys=objectKeys$3,toIndexedObject$1=toIndexedObject$b,$propertyIsEnumerable=objectPropertyIsEnumerable.f,propertyIsEnumerable2=uncurryThis$4($propertyIsEnumerable),push$1=uncurryThis$4([].push),createMethod=function(e){return function(t){for(var n,r=toIndexedObject$1(t),i=objectKeys(r),a=i.length,o=0,l=[];a>o;)n=i[o++],DESCRIPTORS$2&&!propertyIsEnumerable2(r,n)||push$1(l,e?[n,r[n]]:r[n]);return l}},objectToArray={entries:createMethod(!0),values:createMethod(!1)},$$o=_export,$values=objectToArray.values;$$o({target:"Object",stat:!0},{values:function(e){return $values(e)}});var $$n=_export,NativePromiseConstructor=promiseNativeConstructor,fails$5=fails$H,getBuiltIn$3=getBuiltIn$c,isCallable$2=isCallable$r,speciesConstructor$3=speciesConstructor$7,promiseResolve=promiseResolve$2,defineBuiltIn$1=defineBuiltIn$f,NativePromisePrototype=NativePromiseConstructor&&NativePromiseConstructor.prototype,NON_GENERIC=!!NativePromiseConstructor&&fails$5((function(){NativePromisePrototype.finally.call({then:function(){}},(function(){}))}));if($$n({target:"Promise",proto:!0,real:!0,forced:NON_GENERIC},{finally:function(e){var t=speciesConstructor$3(this,getBuiltIn$3("Promise")),n=isCallable$2(e);return this.then(n?function(n){return promiseResolve(t,e()).then((function(){return n}))}:e,n?function(n){return promiseResolve(t,e()).then((function(){throw n}))}:e)}}),isCallable$2(NativePromiseConstructor)){var method=getBuiltIn$3("Promise").prototype.finally;NativePromisePrototype.finally!==method&&defineBuiltIn$1(NativePromisePrototype,"finally",method,{unsafe:!0})}var call$8=functionCall,fixRegExpWellKnownSymbolLogic$1=fixRegexpWellKnownSymbolLogic,anObject$e=anObject$w,isNullOrUndefined$3=isNullOrUndefined$a,toLength$1=toLength$8,toString$2=toString$d,requireObjectCoercible$1=requireObjectCoercible$a,getMethod$1=getMethod$7,advanceStringIndex$1=advanceStringIndex$3,regExpExec$1=regexpExecAbstract;fixRegExpWellKnownSymbolLogic$1("match",(function(e,t,n){return[function(t){var n=requireObjectCoercible$1(this),r=isNullOrUndefined$3(t)?void 0:getMethod$1(t,e);return r?call$8(r,t,n):new RegExp(t)[e](toString$2(n))},function(e){var r=anObject$e(this),i=toString$2(e),a=n(t,r,i);if(a.done)return a.value;if(!r.global)return regExpExec$1(r,i);var o=r.unicode;r.lastIndex=0;for(var l,d=[],U=0;null!==(l=regExpExec$1(r,i));){var c=toString$2(l[0]);d[U]=c,""===c&&(r.lastIndex=advanceStringIndex$1(i,toLength$1(r.lastIndex),o)),U++}return 0===U?null:d}]}));var uncurryThis$3=functionUncurryThis,toObject$1=toObject$e,floor=Math.floor,charAt=uncurryThis$3("".charAt),replace=uncurryThis$3("".replace),stringSlice$1=uncurryThis$3("".slice),SUBSTITUTION_SYMBOLS=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,SUBSTITUTION_SYMBOLS_NO_NAMED=/\$([$&'`]|\d{1,2})/g,getSubstitution$1=function(e,t,n,r,i,a){var o=n+e.length,l=r.length,d=SUBSTITUTION_SYMBOLS_NO_NAMED;return void 0!==i&&(i=toObject$1(i),d=SUBSTITUTION_SYMBOLS),replace(a,d,(function(a,d){var U;switch(charAt(d,0)){case"$":return"$";case"&":return e;case"`":return stringSlice$1(t,0,n);case"'":return stringSlice$1(t,o);case"<":U=i[stringSlice$1(d,1,-1)];break;default:var c=+d;if(0===c)return a;if(c>l){var F=floor(c/10);return 0===F?a:F<=l?void 0===r[F-1]?charAt(d,1):r[F-1]+charAt(d,1):a}U=r[c-1]}return void 0===U?"":U}))},apply=functionApply,call$7=functionCall,uncurryThis$2=functionUncurryThis,fixRegExpWellKnownSymbolLogic=fixRegexpWellKnownSymbolLogic,fails$4=fails$H,anObject$d=anObject$w,isCallable$1=isCallable$r,isNullOrUndefined$2=isNullOrUndefined$a,toIntegerOrInfinity$1=toIntegerOrInfinity$b,toLength=toLength$8,toString$1=toString$d,requireObjectCoercible=requireObjectCoercible$a,advanceStringIndex=advanceStringIndex$3,getMethod=getMethod$7,getSubstitution=getSubstitution$1,regExpExec=regexpExecAbstract,wellKnownSymbol=wellKnownSymbol$q,REPLACE=wellKnownSymbol("replace"),max$1=Math.max,min$1=Math.min,concat2=uncurryThis$2([].concat),push=uncurryThis$2([].push),stringIndexOf=uncurryThis$2("".indexOf),stringSlice=uncurryThis$2("".slice),maybeToString=function(e){return void 0===e?e:String(e)},REPLACE_KEEPS_$0="$0"==="a".replace(/./,"$0"),REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE=!!/./[REPLACE]&&""===/./[REPLACE]("a","$0"),REPLACE_SUPPORTS_NAMED_GROUPS=!fails$4((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}));function _assertThisInitialized$3(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function asyncGeneratorStep$2(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$2(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$2(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$2(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _callSuper$1(e,t,n){return t=_getPrototypeOf$3(t),_possibleConstructorReturn$3(e,_isNativeReflectConstruct$3()?Reflect.construct(t,n||[],_getPrototypeOf$3(e).constructor):t.apply(e,n))}function _classCallCheck$4(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$4(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$4(r.key),r)}}function _createClass$4(e,t,n){return t&&_defineProperties$4(e.prototype,t),n&&_defineProperties$4(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$4(e,t,n){return(t=_toPropertyKey$4(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _getPrototypeOf$3(e){return(_getPrototypeOf$3=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits$3(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$3(e,t)}function _isNativeReflectConstruct$3(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct$3=function(){return!!e})()}function _possibleConstructorReturn$3(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$3(e)}function _regeneratorRuntime$2(){_regeneratorRuntime$2=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function U(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{U({},"")}catch(e){U=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:J(e,n,l)}),o}function F(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var s="suspendedStart",Q="suspendedYield",u="executing",R="completed",B={};function h(){}function p(){}function S(){}var V={};U(V,o,(function(){return this}));var f=Object.getPrototypeOf,y=f&&f(f(v([])));y&&y!==n&&r.call(y,o)&&(V=y);var m=S.prototype=h.prototype=Object.create(V);function E(e){["next","throw","return"].forEach((function(t){U(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=F(e[i],e,a);if("throw"!==d.type){var U=d.arg,c=U.value;return c&&"object"==typeof c&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(c).then((function(e){U.value=e,o(U)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function J(t,n,r){var i=s;return function(a,o){if(i===u)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=b(l,r);if(d){if(d===B)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===s)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=u;var U=F(t,n,r);if("normal"===U.type){if(i=r.done?R:Q,U.arg===B)continue;return{value:U.arg,done:r.done}}"throw"===U.type&&(i=R,r.method="throw",r.arg=U.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),B;var a=F(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,B;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,B):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,B)}function W(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function v(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return p.prototype=S,i(m,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:p,configurable:!0}),p.displayName=U(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,U(e,d,"GeneratorFunction")),e.prototype=Object.create(m),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),U(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(c(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(m),U(m,d,"Generator"),U(m,o,(function(){return this})),U(m,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=v,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(k),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),U=r.call(o,"finallyLoc");if(d&&U){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!U)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,B):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),B},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),B}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:v(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),B}},t}function _setPrototypeOf$3(e,t){return(_setPrototypeOf$3=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _toPrimitive$4(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$4(e){var t=_toPrimitive$4(e,"string");return"symbol"==typeof t?t:t+""}fixRegExpWellKnownSymbolLogic("replace",(function(e,t,n){var r=REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE?"$":"$0";return[function(e,n){var r=requireObjectCoercible(this),i=isNullOrUndefined$2(e)?void 0:getMethod(e,REPLACE);return i?call$7(i,e,r,n):call$7(t,toString$1(r),e,n)},function(e,i){var a=anObject$d(this),o=toString$1(e);if("string"==typeof i&&-1===stringIndexOf(i,r)&&-1===stringIndexOf(i,"$<")){var l=n(t,a,o,i);if(l.done)return l.value}var d=isCallable$1(i);d||(i=toString$1(i));var U=a.global;if(U){var c=a.unicode;a.lastIndex=0}for(var F=[];;){var s=regExpExec(a,o);if(null===s)break;if(push(F,s),!U)break;""===toString$1(s[0])&&(a.lastIndex=advanceStringIndex(o,toLength(a.lastIndex),c))}for(var Q="",u=0,R=0;R<F.length;R++){for(var B=toString$1((s=F[R])[0]),h=max$1(min$1(toIntegerOrInfinity$1(s.index),o.length),0),p=[],S=1;S<s.length;S++)push(p,maybeToString(s[S]));var V=s.groups;if(d){var f=concat2([B],p,h,o);void 0!==V&&push(f,V);var y=toString$1(apply(i,void 0,f))}else y=getSubstitution(B,o,h,p,V,i);h>=u&&(Q+=stringSlice(o,u,h)+y,u=h+B.length)}return Q+stringSlice(o,u)}]}),!REPLACE_SUPPORTS_NAMED_GROUPS||!REPLACE_KEEPS_$0||REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);var preloader,defaultAvgSpeed=1024,GopAdaptRange=function(){return _createClass$4((function e(t,n,r,i){var a=this;_classCallCheck$4(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,i&&Object.keys(i).map((function(e){void 0!==i[e]&&null!==i[e]&&(a.config[e]=i[e])})),this.duration=r,this.player=t,this.updateBitrate(n)}),[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,t=this.config;if(!t.rangeControl)return-1;var n=(null==e?void 0:e.bufferedPoint)||null,r=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-r,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var r=t.estPlayTime,i=r;if(t.estPTcontrol){var a=this.duration||(null==e?void 0:e.duration)||0,o=(null==e?void 0:e.currentTime)||0;i=Math.min(r,a-o)}var l=e&&e.avgSpeed*defaultAvgSpeed||0,d=Math.max(t.safeFactor*l,t.minBandwidth);null!=e&&e.avgSpeed&&(d=t.safeFactor*l);var U=n>0?Math.floor((1-d/n)*i):0;return U=t.minDangerThreshold+Math.max(U,0),Math.min(Math.max(t.cacheSafeFactor*U,t.minTargetCacheDur),t.maxTargetCacheDur)}}],[{key:"getDefaultConfig",value:function(){return{rangeMaxDuration:15,rangeMinDuration:5,rangeMinSize:409600,safeFactor:.1,cacheSafeFactor:3,minDangerThreshold:5,estPlayTime:12,minBandwidth:1e6,estPTcontrol:!1,minTargetCacheDur:30,maxTargetCacheDur:60,targetCacheControl:!1,rangeControl:!1}}}])}(),VTYPES$1=function(e){return e.MP4="MP4",e.MP4_MSE_SOFT="MP4_MSE_SOFT",e.MP4_MSE="MP4_MSE",e.MP4_0="MP4_0",e.MP4_1="MP4_1",e.MP4_2="MP4_2",e.DASH="DASH",e.HLS="HLS",e}(VTYPES$1||{}),BizTypes=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(BizTypes||{}),CodecTypes=function(e){return e[e.AVC=0]="AVC",e[e.HEVC=1]="HEVC",e[e.VVC=2]="VVC",e.H264="h264",e.H265="h265",e.H266="h266",e}(CodecTypes||{}),REAL_TIME_SPEED_EVENT$1="real_time_speed",LOAD_TYPE$1={CDN:"cdn",PCDN:"pcdn"},START_TIMELINES={BEFEORE_START:0,NOT_SUPPORTED:1,START_INIT_DESTROY:2,NO_PRELOAD:3,CLOSE_DWNGRADE:4,INIT_PROMISE_CATCH:5,PLAYER_ERROR:6,HTTP_ERROR:7,MSE_ERROR:8,DESTROY:9},START_TIMELINES_MESSAGE=_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4(_defineProperty$4({},START_TIMELINES.BEFEORE_START,"before start"),START_TIMELINES.NOT_SUPPORTED,"codec not support"),START_TIMELINES.START_INIT_DESTROY,"start init destroy"),START_TIMELINES.NO_PRELOAD,"no preload"),START_TIMELINES.CLOSE_DWNGRADE,"close downgrade"),START_TIMELINES.INIT_PROMISE_CATCH,"init promise catch"),START_TIMELINES.PLAYER_ERROR,"player error"),START_TIMELINES.HTTP_ERROR,"http error"),START_TIMELINES.MSE_ERROR,"mse error"),START_TIMELINES.DESTROY,"destroy"),EncryptBasePlugin=function(e){function t(e){var n;_classCallCheck$4(this,t);var r=n=_callSuper$1(this,t,[e]),i=r.player,a=r.playerConfig;return n.playerId=i.playerId,n.codecType=a.codecType?a.codecType.toLowerCase():CodecTypes.H264,n.bizType=i.bizType="number"==typeof a.bizType?a.bizType:BizTypes.Normal,a.vtype&&(n.vtype=a.vtype.toUpperCase()),preloader&&(i.preloader=preloader),n}return _inherits$3(t,BasePlugin),_createClass$4(t,[{key:"softDecode",get:function(){var e;return"xg-video"===(null===(e=this.playerConfig)||void 0===e?void 0:e.mediaType)}}],[{key:"registerPreloader",value:function(e){preloader=e}}])}(),$$m=_export,$filter=arrayIteration.filter,arrayMethodHasSpeciesSupport$1=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT$1=arrayMethodHasSpeciesSupport$1("filter");$$m({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT$1},{filter:function(e){return $filter(this,e,arguments.length>1?arguments[1]:void 0)}});var internalMetadata={exports:{}},objectGetOwnPropertyNamesExternal={},classof$1=classofRaw$2,toIndexedObject=toIndexedObject$b,$getOwnPropertyNames=objectGetOwnPropertyNames.f,arraySlice=arraySliceSimple,windowNames="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],getWindowNames=function(e){try{return $getOwnPropertyNames(e)}catch(e){return arraySlice(windowNames)}};objectGetOwnPropertyNamesExternal.f=function(e){return windowNames&&"Window"==classof$1(e)?getWindowNames(e):$getOwnPropertyNames(toIndexedObject(e))};var fails$3=fails$H,arrayBufferNonExtensible=fails$3((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})),fails$2=fails$H,isObject$6=isObject$p,classof=classofRaw$2,ARRAY_BUFFER_NON_EXTENSIBLE=arrayBufferNonExtensible,$isExtensible=Object.isExtensible,FAILS_ON_PRIMITIVES=fails$2((function(){$isExtensible(1)})),objectIsExtensible=FAILS_ON_PRIMITIVES||ARRAY_BUFFER_NON_EXTENSIBLE?function(e){return!!isObject$6(e)&&((!ARRAY_BUFFER_NON_EXTENSIBLE||"ArrayBuffer"!=classof(e))&&(!$isExtensible||$isExtensible(e)))}:$isExtensible,fails$1=fails$H,freezing=!fails$1((function(){return Object.isExtensible(Object.preventExtensions({}))})),$$l=_export,uncurryThis$1=functionUncurryThis,hiddenKeys=hiddenKeys$5,isObject$5=isObject$p,hasOwn2=hasOwnProperty_1,defineProperty$1=objectDefineProperty.f,getOwnPropertyNamesModule=objectGetOwnPropertyNames,getOwnPropertyNamesExternalModule=objectGetOwnPropertyNamesExternal,isExtensible2=objectIsExtensible,uid=uid$4,FREEZING=freezing,REQUIRED=!1,METADATA=uid("meta"),id=0,setMetadata=function(e){defineProperty$1(e,METADATA,{value:{objectID:"O"+id++,weakData:{}}})},fastKey$1=function(e,t){if(!isObject$5(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!hasOwn2(e,METADATA)){if(!isExtensible2(e))return"F";if(!t)return"E";setMetadata(e)}return e[METADATA].objectID},getWeakData=function(e,t){if(!hasOwn2(e,METADATA)){if(!isExtensible2(e))return!0;if(!t)return!1;setMetadata(e)}return e[METADATA].weakData},onFreeze=function(e){return FREEZING&&REQUIRED&&isExtensible2(e)&&!hasOwn2(e,METADATA)&&setMetadata(e),e},enable=function(){meta.enable=function(){},REQUIRED=!0;var e=getOwnPropertyNamesModule.f,t=uncurryThis$1([].splice),n={};n[METADATA]=1,e(n).length&&(getOwnPropertyNamesModule.f=function(n){for(var r=e(n),i=0,a=r.length;i<a;i++)if(r[i]===METADATA){t(r,i,1);break}return r},$$l({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:getOwnPropertyNamesExternalModule.f}))},meta=internalMetadata.exports={enable:enable,fastKey:fastKey$1,getWeakData:getWeakData,onFreeze:onFreeze};hiddenKeys[METADATA]=!0;var internalMetadataExports=internalMetadata.exports,$$k=_export,global$2=global$C,uncurryThis=functionUncurryThis,isForced=isForced_1,defineBuiltIn=defineBuiltIn$f,InternalMetadataModule=internalMetadataExports,iterate$c=iterate$f,anInstance$1=anInstance$7,isCallable=isCallable$r,isNullOrUndefined$1=isNullOrUndefined$a,isObject$4=isObject$p,fails=fails$H,checkCorrectnessOfIteration=checkCorrectnessOfIteration$3,setToStringTag=setToStringTag$7,inheritIfRequired=inheritIfRequired$3,collection$1=function(e,t,n){var r=-1!==e.indexOf("Map"),i=-1!==e.indexOf("Weak"),a=r?"set":"add",o=global$2[e],l=o&&o.prototype,d=o,U={},c=function(e){var t=uncurryThis(l[e]);defineBuiltIn(l,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(i&&!isObject$4(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return i&&!isObject$4(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(i&&!isObject$4(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(isForced(e,!isCallable(o)||!(i||l.forEach&&!fails((function(){(new o).entries().next()})))))d=n.getConstructor(t,e,r,a),InternalMetadataModule.enable();else if(isForced(e,!0)){var F=new d,s=F[a](i?{}:-0,1)!=F,Q=fails((function(){F.has(1)})),u=checkCorrectnessOfIteration((function(e){new o(e)})),R=!i&&fails((function(){for(var e=new o,t=5;t--;)e[a](t,t);return!e.has(-0)}));u||((d=t((function(e,t){anInstance$1(e,l);var n=inheritIfRequired(new o,e,d);return isNullOrUndefined$1(t)||iterate$c(t,n[a],{that:n,AS_ENTRIES:r}),n}))).prototype=l,l.constructor=d),(Q||R)&&(c("delete"),c("has"),r&&c("get")),(R||s)&&c(a),i&&l.clear&&delete l.clear}return U[e]=d,$$k({global:!0,constructor:!0,forced:d!=o},U),setToStringTag(d,e),i||n.setStrong(d,e,r),d},defineProperty4=objectDefineProperty.f,create$1=objectCreate,defineBuiltIns=defineBuiltIns$3,bind$7=functionBindContext,anInstance=anInstance$7,isNullOrUndefined=isNullOrUndefined$a,iterate$b=iterate$f,defineIterator=iteratorDefine,createIterResultObject=createIterResultObject$3,setSpecies=setSpecies$4,DESCRIPTORS$1=descriptors,fastKey=internalMetadataExports.fastKey,InternalStateModule=internalState,setInternalState=InternalStateModule.set,internalStateGetterFor=InternalStateModule.getterFor,collectionStrong$1={getConstructor:function(e,t,n,r){var i=e((function(e,i){anInstance(e,a),setInternalState(e,{type:t,index:create$1(null),first:void 0,last:void 0,size:0}),DESCRIPTORS$1||(e.size=0),isNullOrUndefined(i)||iterate$b(i,e[r],{that:e,AS_ENTRIES:n})})),a=i.prototype,o=internalStateGetterFor(t),l=function(e,t,n){var r,i,a=o(e),l=d(e,t);return l?l.value=n:(a.last=l={index:i=fastKey(t,!0),key:t,value:n,previous:r=a.last,next:void 0,removed:!1},a.first||(a.first=l),r&&(r.next=l),DESCRIPTORS$1?a.size++:e.size++,"F"!==i&&(a.index[i]=l)),e},d=function(e,t){var n,r=o(e),i=fastKey(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return defineBuiltIns(a,{clear:function(){for(var e=o(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,DESCRIPTORS$1?e.size=0:this.size=0},delete:function(e){var t=this,n=o(t),r=d(t,e);if(r){var i=r.next,a=r.previous;delete n.index[r.index],r.removed=!0,a&&(a.next=i),i&&(i.previous=a),n.first==r&&(n.first=i),n.last==r&&(n.last=a),DESCRIPTORS$1?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=o(this),r=bind$7(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!d(this,e)}}),defineBuiltIns(a,n?{get:function(e){var t=d(this,e);return t&&t.value},set:function(e,t){return l(this,0===e?0:e,t)}}:{add:function(e){return l(this,e=0===e?0:e,e)}}),DESCRIPTORS$1&&defineProperty4(a,"size",{get:function(){return o(this).size}}),i},setStrong:function(e,t,n){var r=t+" Iterator",i=internalStateGetterFor(t),a=internalStateGetterFor(r);defineIterator(e,t,(function(e,t){setInternalState(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?createIterResultObject("keys"==t?n.key:"values"==t?n.value:[n.key,n.value],!1):(e.target=void 0,createIterResultObject(void 0,!0))}),n?"entries":"values",!n,!0),setSpecies(t)}},collection=collection$1,collectionStrong=collectionStrong$1;collection("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),collectionStrong);var call$6=functionCall,aCallable$6=aCallable$h,anObject$c=anObject$w,collectionDeleteAll=function(){for(var e,t=anObject$c(this),n=aCallable$6(t.delete),r=!0,i=0,a=arguments.length;i<a;i++)e=call$6(n,t,arguments[i]),r=r&&e;return!!r},$$j=_export,deleteAll2=collectionDeleteAll;$$j({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:deleteAll2});var call$5=functionCall,getMapIterator$a=function(e){return call$5(Map.prototype.entries,e)},$$i=_export,anObject$b=anObject$w,bind$6=functionBindContext,getMapIterator$9=getMapIterator$a,iterate$a=iterate$f;$$i({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var t=anObject$b(this),n=getMapIterator$9(t),r=bind$6(e,arguments.length>1?arguments[1]:void 0);return!iterate$a(n,(function(e,n,i){if(!r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$h=_export,getBuiltIn$2=getBuiltIn$c,bind$5=functionBindContext,call$4=functionCall,aCallable$5=aCallable$h,anObject$a=anObject$w,speciesConstructor$2=speciesConstructor$7,getMapIterator$8=getMapIterator$a,iterate$9=iterate$f;$$h({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var t=anObject$a(this),n=getMapIterator$8(t),r=bind$5(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor$2(t,getBuiltIn$2("Map"))),a=aCallable$5(i.set);return iterate$9(n,(function(e,n){r(n,e,t)&&call$4(a,i,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$g=_export,anObject$9=anObject$w,bind$4=functionBindContext,getMapIterator$7=getMapIterator$a,iterate$8=iterate$f;$$g({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var t=anObject$9(this),n=getMapIterator$7(t),r=bind$4(e,arguments.length>1?arguments[1]:void 0);return iterate$8(n,(function(e,n,i){if(r(n,e,t))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $$f=_export,anObject$8=anObject$w,bind$3=functionBindContext,getMapIterator$6=getMapIterator$a,iterate$7=iterate$f;$$f({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var t=anObject$8(this),n=getMapIterator$6(t),r=bind$3(e,arguments.length>1?arguments[1]:void 0);return iterate$7(n,(function(e,n,i){if(r(n,e,t))return i(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var sameValueZero$1=function(e,t){return e===t||e!=e&&t!=t},$$e=_export,anObject$7=anObject$w,getMapIterator$5=getMapIterator$a,sameValueZero=sameValueZero$1,iterate$6=iterate$f;$$e({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return iterate$6(getMapIterator$5(anObject$7(this)),(function(t,n,r){if(sameValueZero(n,e))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$d=_export,anObject$6=anObject$w,getMapIterator$4=getMapIterator$a,iterate$5=iterate$f;$$d({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){return iterate$5(getMapIterator$4(anObject$6(this)),(function(t,n,r){if(n===e)return r(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $$c=_export,getBuiltIn$1=getBuiltIn$c,bind$2=functionBindContext,call$3=functionCall,aCallable$4=aCallable$h,anObject$5=anObject$w,speciesConstructor$1=speciesConstructor$7,getMapIterator$3=getMapIterator$a,iterate$4=iterate$f;$$c({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var t=anObject$5(this),n=getMapIterator$3(t),r=bind$2(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor$1(t,getBuiltIn$1("Map"))),a=aCallable$4(i.set);return iterate$4(n,(function(e,n){call$3(a,i,r(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$b=_export,getBuiltIn=getBuiltIn$c,bind$1=functionBindContext,call$2=functionCall,aCallable$3=aCallable$h,anObject$4=anObject$w,speciesConstructor=speciesConstructor$7,getMapIterator$2=getMapIterator$a,iterate$3=iterate$f;$$b({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var t=anObject$4(this),n=getMapIterator$2(t),r=bind$1(e,arguments.length>1?arguments[1]:void 0),i=new(speciesConstructor(t,getBuiltIn("Map"))),a=aCallable$3(i.set);return iterate$3(n,(function(e,n){call$2(a,i,e,r(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var $$a=_export,aCallable$2=aCallable$h,anObject$3=anObject$w,iterate$2=iterate$f;$$a({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var t=anObject$3(this),n=aCallable$2(t.set),r=arguments.length,i=0;i<r;)iterate$2(arguments[i++],n,{that:t,AS_ENTRIES:!0});return t}});var $$9=_export,anObject$2=anObject$w,aCallable$1=aCallable$h,getMapIterator$1=getMapIterator$a,iterate$1=iterate$f,$TypeError$2=TypeError;$$9({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=anObject$2(this),n=getMapIterator$1(t),r=arguments.length<2,i=r?void 0:arguments[1];if(aCallable$1(e),iterate$1(n,(function(n,a){r?(r=!1,i=a):i=e(i,a,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw $TypeError$2("Reduce of empty map with no initial value");return i}});var $$8=_export,anObject$1=anObject$w,bind=functionBindContext,getMapIterator=getMapIterator$a,iterate=iterate$f;$$8({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var t=anObject$1(this),n=getMapIterator(t),r=bind(e,arguments.length>1?arguments[1]:void 0);return iterate(n,(function(e,n,i){if(r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var $$7=_export,call$1=functionCall,anObject=anObject$w,aCallable=aCallable$h,$TypeError$1=TypeError;function ownKeys$2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$2(Object(n),!0).forEach((function(t){_defineProperty$3(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime$1(){_regeneratorRuntime$1=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function U(e,t,n,i){var a=t&&t.prototype instanceof s?t:s,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:f(e,n,l)}),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=U;var F={};function s(){}function Q(){}function u(){}var R={};d(R,a,(function(){return this}));var B=Object.getPrototypeOf,h=B&&B(B(J([])));h&&h!==t&&n.call(h,a)&&(R=h);var p=u.prototype=s.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function V(e,t){function i(r,a,o,l){var d=c(e[r],e,a);if("throw"!==d.type){var U=d.arg,F=U.value;return F&&"object"==typeof F&&n.call(F,"__await")?t.resolve(F.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(F).then((function(e){U.value=e,o(U)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function f(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=y(o,n);if(l){if(l===F)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=c(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===F)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function y(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,y(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),F;var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,F;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,F):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,F)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function J(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:b}}function b(){return{value:void 0,done:!0}}return Q.prototype=u,r(p,"constructor",{value:u,configurable:!0}),r(u,"constructor",{value:Q,configurable:!0}),Q.displayName=d(u,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===Q||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,d(e,l,"GeneratorFunction")),e.prototype=Object.create(p),e},e.awrap=function(e){return{__await:e}},S(V.prototype),d(V.prototype,o,(function(){return this})),e.AsyncIterator=V,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new V(U(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(p),d(p,l,"Generator"),d(p,a,(function(){return this})),d(p,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=J,Z.prototype={constructor:Z,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,F):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),F},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),F}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:J(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),F}},e}function _typeof$1(e){return(_typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function asyncGeneratorStep$1(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator$1(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep$1(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep$1(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$3(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$3(r.key),r)}}function _createClass$3(e,t,n){return t&&_defineProperties$3(e.prototype,t),n&&_defineProperties$3(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$3(e,t,n){return(t=_toPropertyKey$3(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$2(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$2(e,t)}function _getPrototypeOf$2(e){return(_getPrototypeOf$2=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$2(e,t){return(_setPrototypeOf$2=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$2(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function _construct(e,t,n){return(_construct=_isNativeReflectConstruct$2()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&_setPrototypeOf$2(i,n.prototype),i}).apply(null,arguments)}function _isNativeFunction(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function _wrapNativeSuper(e){var t="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function(e){if(null===e||!_isNativeFunction(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf$2(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf$2(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$2(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$2(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$2(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$2(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$2(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$2(e)}function _createSuper$1(e){var t=_isNativeReflectConstruct$2();return function(){var n,r=_getPrototypeOf$2(e);if(t){var i=_getPrototypeOf$2(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$2(this,n)}}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=_getPrototypeOf$2(e)););return e}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=_superPropBase(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},_get.apply(this,arguments)}function _unsupportedIterableToArray$2(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$2(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$2(e,t):void 0}}function _arrayLikeToArray$2(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _createForOfIteratorHelper$1(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$2(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$3(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$3(e){var t=_toPrimitive$3(e,"string");return"symbol"==typeof t?t:String(t)}function createPublicPromise(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}$$7({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,t){var n=anObject(this),r=aCallable(n.get),i=aCallable(n.has),a=aCallable(n.set),o=arguments.length;aCallable(t);var l=call$1(i,n,e);if(!l&&o<3)throw $TypeError$1("Updating absent value");var d=l?call$1(r,n,e):aCallable(o>2?arguments[2]:void 0)(e,n);return call$1(a,n,e,t(d,e,n)),n}});var LogCacheLevel={DEBUG:1,LOG:2,WARN:3,ERROR:4},LOG_MAX_SIZE=204800,SIMPLE_TYPE=["Boolean","Number","String","Undefined","Null","Date","Object"],Logger=function(){function e(t,n){_classCallCheck$3(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||LOG_MAX_SIZE,this.logSize=0,this.logTextArray=[]}return _createClass$3(e,[{key:"debug",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.DEBUG].concat(r)),e.disabled||(t=console).debug.apply(t,[this._prefix,nowTime()].concat(r))}},{key:"log",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.LOG].concat(r)),e.disabled||(t=console).log.apply(t,[this._prefix,nowTime()].concat(r))}},{key:"warn",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.WARN].concat(r)),e.disabled||(t=console).warn.apply(t,[this._prefix,nowTime()].concat(r))}},{key:"error",value:function(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];this.logCache.apply(this,[LogCacheLevel.ERROR].concat(r)),e.disabled||(t=console).error.apply(t,[this._prefix,nowTime()].concat(r))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];var a=r.map((function(e){return logable(e)}));t=this._prefix+nowTime()+JSON.stringify(a)}catch(e){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var o=this.logTextArray.shift();this.logSize-=o.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function nowTime(){return(new Date).toLocaleString()}function reduceDepth(e){if("object"!==_typeof$1(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function logable(e,t,n){n||(n=1),t||(t=2);var r={};if(!e||"object"!==_typeof$1(e))return e;var i=Object.prototype.toString.call(e).slice(8,-1);if(!SIMPLE_TYPE.includes(i))return i;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?r[a]=reduceDepth(e[a]):"object"===_typeof$1(e[a])?r[a]=logable(e[a],t,n+1):r[a]=e[a]);return r}}_defineProperty$3(Logger,"disabled",!0);var LoaderType={FETCH:"fetch",XHR:"xhr"},ResponseType={ARRAY_BUFFER:"arraybuffer",TEXT:"text",JSON:"json"},NetError=function(e){_inherits$2(n,_wrapNativeSuper(Error));var t=_createSuper$1(n);function n(e,r,i,a){var o;return _classCallCheck$3(this,n),_defineProperty$3(_assertThisInitialized$2(o=t.call(this,a)),"retryCount",0),_defineProperty$3(_assertThisInitialized$2(o),"isTimeout",!1),_defineProperty$3(_assertThisInitialized$2(o),"loaderType",LoaderType.FETCH),_defineProperty$3(_assertThisInitialized$2(o),"startTime",0),_defineProperty$3(_assertThisInitialized$2(o),"endTime",0),_defineProperty$3(_assertThisInitialized$2(o),"options",{}),o.url=e,o.request=r,o.response=i,o}return _createClass$3(n)}(),toString5=Object.prototype.toString;function isObject$3(e){return null!==e&&"object"===_typeof$1(e)}function isPlainObject(e){if("[object Object]"!==toString5.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function isDate(e){return"[object Date]"===toString5.call(e)}function getRangeValue(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function setUrlParams(e,t){if(e){if(!t)return e;var n,r=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){return isDate(t)?t=t.toISOString():isObject$3(t)&&(t=JSON.stringify(t)),"".concat(encode(e),"=").concat(encode(t))})).join("&")})).filter(Boolean).join("&");if(r){var i=e.indexOf("#");-1!==i&&(e=e.slice(0,i)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}}function createResponse(e,t,n,r,i,a,o,l,d,U,c){return i=null!=i?parseFloat(i):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0),{data:e,done:t,options:{range:d,vid:U,index:l,contentLength:r,age:i,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:c},response:n}}function calculateSpeed(e,t){return Math.round(8*e*1e3/t/1024)}var EVENT={ERROR:"error",TTFB:"core.ttfb",LOAD_START:"core.loadstart",LOAD_RESPONSE_HEADERS:"core.loadresponseheaders",LOAD_COMPLETE:"core.loadcomplete",LOAD_RETRY:"core.loadretry",SOURCEBUFFER_CREATED:"core.sourcebuffercreated",ANALYZE_DURATION_EXCEEDED:"core.analyzedurationexceeded",REMOVE_BUFFER:"core.removebuffer",BUFFEREOS:"core.buffereos",KEYFRAME:"core.keyframe",METADATA_PARSED:"core.metadataparsed",SEI:"core.sei",SEI_IN_TIME:"core.seiintime",FLV_SCRIPT_DATA:"core.flvscriptdata",LOWDECODE:"core.lowdecode",SWITCH_URL_SUCCESS:"core.switchurlsuccess",SWITCH_URL_FAILED:"core.switchurlfailed",SPEED:"core.speed",HLS_MANIFEST_LOADED:"core.hlsmanifestloaded",HLS_LEVEL_LOADED:"core.hlslevelloaded",DEMUXED_TRACK:"core.demuxedtrack",STREAM_EXCEPTION:"core.streamexception",LARGE_AV_FIRST_FRAME_GAP_DETECT:"LARGE_AV_FIRST_FRAME_GAP_DETECT",LARGE_VIDEO_DTS_GAP_DETECT:"LARGE_VIDEO_DTS_GAP_DETECT",LARGE_AUDIO_DTS_GAP_DETECT:"LARGE_AUDIO_DTS_GAP_DETECT",AUDIO_GAP_DETECT:"AUDIO_GAP_DETECT",AUDIO_OVERLAP_DETECT:"AUDIO_OVERLAP_DETECT",MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT:"MAX_DTS_DELTA_WITH_NEXT_SEGMENT_DETECT",REAL_TIME_SPEED:"real_time_speed"},CACHESIZE=2097152,FetchLoader=function(e){_inherits$2(r,EventEmitter$1);var t,n=_createSuper$1(r);function r(){var e;return _classCallCheck$3(this,r),_defineProperty$3(_assertThisInitialized$2(e=n.call(this)),"_abortController",null),_defineProperty$3(_assertThisInitialized$2(e),"_timeoutTimer",null),_defineProperty$3(_assertThisInitialized$2(e),"_reader",null),_defineProperty$3(_assertThisInitialized$2(e),"_response",null),_defineProperty$3(_assertThisInitialized$2(e),"_aborted",!1),_defineProperty$3(_assertThisInitialized$2(e),"_index",-1),_defineProperty$3(_assertThisInitialized$2(e),"_range",null),_defineProperty$3(_assertThisInitialized$2(e),"_receivedLength",0),_defineProperty$3(_assertThisInitialized$2(e),"_running",!1),_defineProperty$3(_assertThisInitialized$2(e),"_logger",null),_defineProperty$3(_assertThisInitialized$2(e),"_vid",""),_defineProperty$3(_assertThisInitialized$2(e),"_onProcessMinLen",0),_defineProperty$3(_assertThisInitialized$2(e),"_onCancel",null),_defineProperty$3(_assertThisInitialized$2(e),"_priOptions",null),e}return _createClass$3(r,[{key:"load",value:function(e){var t,n=this,r=e.url,i=e.vid,a=e.timeout,o=e.responseType,l=e.onProgress,d=e.index,U=e.onTimeout,c=e.onCancel,F=e.range,s=e.transformResponse,Q=e.request,u=e.params,R=e.logger,B=e.method,h=e.headers,p=e.body,S=e.mode,V=e.credentials,f=e.cache,y=e.redirect,m=e.referrer,E=e.referrerPolicy,Z=e.onProcessMinLen,J=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=Z,this._onCancel=c,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=F||[0,0],this._vid=i||r,this._priOptions=J||{};var b={method:B,headers:h,body:p,mode:S,credentials:V,cache:f,redirect:y,referrer:m,referrerPolicy:E,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},W=!1;clearTimeout(this._timeoutTimer),r=setUrlParams(r,u);var k=getRangeValue(F);k&&(h=Q?Q.headers:b.headers=b.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",k):h.Range=k),a&&(this._timeoutTimer=setTimeout((function(){if(W=!0,n.cancel(),U){var e=new NetError(r,b,null,"timeout");e.isTimeout=!0,U(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var T=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",F),new Promise((function(e,t){fetch(Q||r,Q?void 0:b).then(function(){var i=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function i(a){var U,c,Q,u;return _regeneratorRuntime$1().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){i.next=4;break}return i.abrupt("return");case 4:if(s&&(a=s(a,r)||a),a.ok){i.next=7;break}throw new NetError(r,b,a,"bad network response");case 7:if(U=Date.now(),o!==ResponseType.TEXT){i.next=15;break}return i.next=11,a.text();case 11:c=i.sent,n._running=!1,i.next=37;break;case 15:if(o!==ResponseType.JSON){i.next=22;break}return i.next=18,a.json();case 18:c=i.sent,n._running=!1,i.next=37;break;case 22:if(!l){i.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,l,T,U),i.abrupt("return");case 29:return i.next=31,a.arrayBuffer();case 31:c=i.sent,c=new Uint8Array(c),n._running=!1,Q=Date.now()-T,u=calculateSpeed(c.byteLength,Q),n.emit(EVENT.REAL_TIME_SPEED,{speed:u,len:c.byteLength,time:Q,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",d,",range,",F),e(createResponse(c,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),T,U,d,F,n._vid,n._priOptions));case 39:case"end":return i.stop()}}),i)})));return function(e){return i.apply(this,arguments)}}()).catch((function(e){var i;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!W||((e=e instanceof NetError?e:new NetError(r,b,null,null===(i=e)||void 0===i?void 0:i.message)).startTime=T,e.endTime=Date.now(),e.isTimeout=W,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){return _regeneratorRuntime$1().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(e){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,r){var i=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new NetError(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(CACHESIZE),this._writeIdx=0);var o,l,d,U=this._reader=e.body.getReader(),c=function(){var a=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function a(){var F,s,Q,u,R,B,h,p;return _regeneratorRuntime$1().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return l=Date.now(),a.prev=1,a.next=4,U.read();case 4:o=a.sent,d=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),d=Date.now(),i._aborted||(i._running=!1,a.t0.options={index:i._index,range:i._range,vid:i._vid,priOptions:i._priOptions},i.reject(a.t0)),a.abrupt("return");case 13:if(s=(null===(F=i._range)||void 0===F?void 0:F.length)>0?i._range[0]:0,Q=s+i._receivedLength,!i._aborted){a.next=19;break}return i._running=!1,t(void 0,!1,{range:[Q,Q],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),a.abrupt("return");case 19:u=o.value?o.value.byteLength:0,i._receivedLength+=u,i._logger.debug("【fetchLoader,onProgress call】,task,",i._range,", start,",Q,", end,",s+i._receivedLength,", done,",o.done),i._onProcessMinLen>0?i._writeIdx+u>=i._onProcessMinLen||o.done?((R=new Uint8Array(i._writeIdx+u)).set(i._cache.slice(0,i._writeIdx),0),u>0&&R.set(o.value,i._writeIdx),i._writeIdx=0,i._logger.debug("【fetchLoader,onProgress enough】,done,",o.done,",len,",R.byteLength,", writeIdx,",i._writeIdx)):u>0&&i._writeIdx+u<CACHESIZE?(i._cache.set(o.value,i._writeIdx),i._writeIdx+=u,i._logger.debug("【fetchLoader,onProgress cache】,len,",u,", writeIdx,",i._writeIdx)):u>0&&(B=new Uint8Array(i._writeIdx+u+2048),i._logger.debug("【fetchLoader,onProgress extra start】,size,",i._writeIdx+u+2048,", datalen,",u,", writeIdx,",i._writeIdx),B.set(i._cache.slice(0,i._writeIdx),0),u>0&&B.set(o.value,i._writeIdx),i._writeIdx+=u,delete i._cache,i._cache=B,i._logger.debug("【fetchLoader,onProgress extra end】,len,",u,", writeIdx,",i._writeIdx)):R=o.value,(R&&R.byteLength>0||o.done)&&t(R,o.done,{range:[i._range[0]+i._receivedLength-(R?R.byteLength:0),i._range[0]+i._receivedLength],vid:i._vid,index:i._index,startTime:l,endTime:d,st:n,firstByteTime:r,priOptions:i._priOptions},e),o.done?(h=Date.now()-n,p=calculateSpeed(i._receivedLength,h),i.emit(EVENT.REAL_TIME_SPEED,{speed:p,len:i._receivedLength,time:h,vid:i._vid,index:i._index,range:i._range,priOptions:i._priOptions}),i._running=!1,i._logger.debug("[fetchLoader onProgress end],task,",i._range,",done,",o.done),i.resolve(createResponse(o,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,r,i._index,i._range,i._vid,i._priOptions))):c();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();c()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),r}();function getConfig(e){return _objectSpread2$2({loaderType:LoaderType.FETCH,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:ResponseType.TEXT,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}var XhrLoader=function(e){_inherits$2(n,EventEmitter$1);var t=_createSuper$1(n);function n(){var e;return _classCallCheck$3(this,n),_defineProperty$3(_assertThisInitialized$2(e=t.call(this)),"_xhr",null),_defineProperty$3(_assertThisInitialized$2(e),"_aborted",!1),_defineProperty$3(_assertThisInitialized$2(e),"_timeoutTimer",null),_defineProperty$3(_assertThisInitialized$2(e),"_range",null),_defineProperty$3(_assertThisInitialized$2(e),"_receivedLength",0),_defineProperty$3(_assertThisInitialized$2(e),"_url",null),_defineProperty$3(_assertThisInitialized$2(e),"_onProgress",null),_defineProperty$3(_assertThisInitialized$2(e),"_index",-1),_defineProperty$3(_assertThisInitialized$2(e),"_headers",null),_defineProperty$3(_assertThisInitialized$2(e),"_currentChunkSizeKB",384),_defineProperty$3(_assertThisInitialized$2(e),"_timeout",null),_defineProperty$3(_assertThisInitialized$2(e),"_xhr",null),_defineProperty$3(_assertThisInitialized$2(e),"_withCredentials",null),_defineProperty$3(_assertThisInitialized$2(e),"_startTime",-1),_defineProperty$3(_assertThisInitialized$2(e),"_loadCompleteResolve",null),_defineProperty$3(_assertThisInitialized$2(e),"_loadCompleteReject",null),_defineProperty$3(_assertThisInitialized$2(e),"_runing",!1),_defineProperty$3(_assertThisInitialized$2(e),"_logger",!1),_defineProperty$3(_assertThisInitialized$2(e),"_vid",""),_defineProperty$3(_assertThisInitialized$2(e),"_responseType",void 0),_defineProperty$3(_assertThisInitialized$2(e),"_credentials",void 0),_defineProperty$3(_assertThisInitialized$2(e),"_method",void 0),_defineProperty$3(_assertThisInitialized$2(e),"_transformResponse",void 0),_defineProperty$3(_assertThisInitialized$2(e),"_firstRtt",void 0),_defineProperty$3(_assertThisInitialized$2(e),"_onCancel",null),_defineProperty$3(_assertThisInitialized$2(e),"_priOptions",null),e}return _createClass$3(n,[{key:"load",value:function(e){var t=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=setUrlParams(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof NetError?e:new NetError(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===ResponseType.ARRAY_BUFFER&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,r=this._range[1];t<this._range[1]-n&&(r=n+t),e=[n,r],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,r,i;t._running=!1;var a=new NetError(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(r=e.currentTarget)||void 0===r?void 0:r.status)+",statusText,"+(null==e||null===(i=e.currentTarget)||void 0===i?void 0:i.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new NetError(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var r=this._headers||{},i=getRangeValue(e);i&&(r.Range=i),r&&Object.keys(r).forEach((function(e){n.setRequestHeader(e,r[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var r=new NetError(this._url,null,_objectSpread2$2(_objectSpread2$2({},e.target.response),{},{status:n}),"bad response,status:"+n);return r.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}var i,a=null,o=!1,l=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===ResponseType.ARRAY_BUFFER){var d,U=new Uint8Array(e.target.response);if(i=l+this._receivedLength,U&&U.byteLength>0){this._receivedLength+=U.byteLength;var c=Date.now()-this._startTime,F=calculateSpeed(this._receivedLength,c);this.emit(EVENT.REAL_TIME_SPEED,{speed:F,len:this._receivedLength,time:c,vid:this._vid,index:this._index,range:[i,l+this._receivedLength],priOptions:this._priOptions})}a=U,o=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",i,"end ",l+this._receivedLength,",dataLen,",U?U.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",o)}else o=!0,a=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(a,o,{index:this._index,vid:this._vid,range:[i,l+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),o?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(createResponse(this._onProgress?null:a,o,s,s.headers["content-length"],s.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,_get(_getPrototypeOf$2(n.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var t,n={},r=_createForOfIteratorHelper$1(e.getAllResponseHeaders().trim().split("\r\n"));try{for(r.s();!(t=r.n()).done;){var i=t.value.split(": ");n[i[0].toLowerCase()]=i.slice(1).join(": ")}}catch(e){r.e(e)}finally{r.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(),_excluded$5=["retry","retryDelay","onRetryError","transformError"],Task=function(){function e(t,n){_classCallCheck$3(this,e),this.promise=createPublicPromise(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Logger("Loader")),this._loaderType=t,this._loader=t===LoaderType.FETCH&&"undefined"!=typeof fetch?new FetchLoader:new XhrLoader,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return _createClass$3(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,r=t.retryDelay,i=t.onRetryError,a=t.transformError,o=_objectWithoutProperties$2(t,_excluded$5),l=function(){var t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function t(){var d,U,c;return _regeneratorRuntime$1().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(o);case 3:d=t.sent,e.promise.resolve(d),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,U=t.t0,a&&(U=a(U)||U),i&&e._retryCount>0&&i(U,e._retryCount,{index:o.index,vid:o.vid,range:o.range,priOptions:o.priOptions}),e._retryCount++,c=!0,e._retryCheckFunc&&(c=e._retryCheckFunc(t.t0)),!(c&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",o.range),e._retryTimer=setTimeout(l,r),t.abrupt("return");case 26:e.promise.reject(U);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return l(),this.promise}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){return _regeneratorRuntime$1().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function sleep(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var NetLoader=function(e){_inherits$2(r,EventEmitter$1);var t,n=_createSuper$1(r);function r(e){var t;return _classCallCheck$3(this,r),_defineProperty$3(_assertThisInitialized$2(t=n.call(this,e)),"type",LoaderType.FETCH),_defineProperty$3(_assertThisInitialized$2(t),"_queue",[]),_defineProperty$3(_assertThisInitialized$2(t),"_alive",[]),_defineProperty$3(_assertThisInitialized$2(t),"_currentTask",null),_defineProperty$3(_assertThisInitialized$2(t),"_finnalUrl",""),_defineProperty$3(_assertThisInitialized$2(t),"_config",void 0),t._config=getConfig(e),t._config.loaderType!==LoaderType.XHR&&FetchLoader.isSupported()||(t.type=LoaderType.XHR),t.log=e.logger,t}return _createClass$3(r,[{key:"isFetch",value:function(){return this.type===LoaderType.FETCH}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&isPlainObject(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&isPlainObject(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var r=new Task(this.type,n);return r.loader.on(EVENT.REAL_TIME_SPEED,(function(e){t.emit(EVENT.REAL_TIME_SPEED,e)})),this._queue.push(r),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),r.promise}},{key:"cancel",value:(t=_asyncToGenerator$1(_regeneratorRuntime$1().mark((function e(){var t;return _regeneratorRuntime$1().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,sleep();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FetchLoader.isSupported()}}]),r}(),DEFAULT_PCDN_CHANGE_CNT=2,NUM_1024=1024,AdaptPCDN=function(){return _createClass$4((function e(t,n,r,i){var a=this;_classCallCheck$4(this,e),this.config=e.getDefaultConfig(),Object.keys(i).map((function(e){void 0!==i[e]&&null!==i[e]&&(a.config[e]=i[e])})),this.duration=r,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}),[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var r=e.estPlayTime,i=r;e.estPTcontrol&&(i=Math.min(r,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNInFactor,o=e.minBandwidth,l=e.maxPCDNInBuffer,d=e.minPCDNInBuffer,U=a*Math.max((null==t?void 0:t.avgSpeedPCDN)*NUM_1024||0,o),c=n>0?(1-U/n)*i:0;return this.curPCDNInBuffer=Math.min(l,Math.max(d,c)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var r=e.estPlayTime,i=r;e.estPTcontrol&&(i=Math.min(r,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNOutFactor,o=e.minBandwidth,l=e.maxPCDNOutBuffer,d=e.minPCDNOutBuffer,U=a*Math.max((null==t?void 0:t.avgSpeedPCDN)*NUM_1024||0,o),c=n>0?(1-U/n)*i:0;return this.curPCDNOutBuffer=Math.min(l,Math.max(d,c)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,r=this.curPCDNInBuffer,i=this.player,a=(null==i?void 0:i.bufferedPoint)||null,o=a&&a.end?a.end-i.currentTime:0;t?o>r+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:o>=r&&this.PCDNChangeCnt<DEFAULT_PCDN_CHANGE_CNT&&this.PCDNChangeCnt++;return this.PCDNChangeCnt}}],[{key:"getDefaultConfig",value:function(){return{PCDNBufferControl:!1,PCDNCntControl:!1,estPTcontrol:!1,minPCDNInBuffer:8,maxPCDNInBuffer:12,minPCDNOutBuffer:3,maxPCDNOutBuffer:6,safePCDNInFactor:.1,safePCDNOutFactor:.4,alpha:.5,estPlayTime:12,minBandwidth:1e6}}}])}(),PCDN_NODE_MAP=new Map,PCDN=function(){function e(t,n,r,i){var a,o=this;_classCallCheck$4(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(o.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new NetLoader(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(a=this.options)&&void 0!==a&&null!==(a=a.adaptPCDNConfig)&&void 0!==a&&a.PCDNBufferControl&&(this.pcdnAdapt=new AdaptPCDN(n,r,i,this.options.adaptPCDNConfig))}return _createClass$4(e,[{key:"isOpenAdaptPCDN",get:function(){return!!this.pcdnAdapt}},{key:"curPCDNInBuffer",get:function(){return this.pcdnAdapt.curPCDNInBuffer}},{key:"getPCDNInBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNInBuffer()}},{key:"curPCDNOutBuffer",get:function(){return this.pcdnAdapt.curPCDNOutBuffer}},{key:"getPCDNOutBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNOutBuffer()}},{key:"curPCDNChangeCnt",get:function(){return this.pcdnAdapt.PCDNChangeCnt}},{key:"getPCDNChangeCnt",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNChangeCnt()}},{key:"updatePCDNBitrate",value:function(e){var t;return null===(t=this.pcdnAdapt)||void 0===t?void 0:t.updateBitrate(e)}},{key:"resetTrackeArgs",value:function(e){this.trackeArgs={fid:null,trace_id:null,req_times:(null==e?void 0:e.req_times)||0,resp_times:(null==e?void 0:e.resp_times)||0,token:null,node_num:this.options.node_num,client_info:this.options.client_info}}},{key:"getPCDNNode",value:function(e,t,n){var r,i=getByteRate$1(t),a=PCDN_NODE_MAP.get(genKey(e,i)),o=new createPublicPromise;return null==a||!a.nodes||(null==a||null===(r=a.nodes)||void 0===r?void 0:r.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){o.resolve(e)})).catch((function(e){o.reject(e)})):(a.fromCache=!0,o.resolve(a)),o}},{key:"removePCDNNode",value:function(e,t,n){var r=getByteRate$1(t),i=PCDN_NODE_MAP.get(genKey(e,r)),a=null==i?void 0:i.nodes;a&&(n?i.nodes=a.filter((function(e){return e&&n.indexOf(e.url)<0})):a.shift(),PCDN_NODE_MAP.set(genKey(e,r),i)),a&&a.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function t(n,r,i){var a,o,l,d,U,c,F,s,Q,u,R,B,h,p,S,V,f;return _regeneratorRuntime$2().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new createPublicPromise,r){t.next=5;break}r=this._lastFileInfo,t.next=15;break;case 5:if(r.byterate=getByteRate$1(r.bitrate),this.options.trackerOptions&&Object.assign(r,this.options.trackerOptions),this._lastFileInfo=Object.assign({},r,{byterate:r.byterate}),!((null==(l=PCDN_NODE_MAP.get(genKey(r.vid,r.byterate)))||null===(o=l.nodes)||void 0===o?void 0:o.length)>0)){t.next=13;break}return l.fromCache=!0,a.resolve(l),t.abrupt("return",a);case 13:delete r.bitrate,this._lastFileInfo=r;case 15:if(r){t.next=18;break}return a.resolve(null),t.abrupt("return",a);case 18:if(d=!1,U=genKey(r.vid,r.byterate),this._lastRetFileKey!==U&&(this.resetTrackeArgs(),d=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||d){t.next=24;break}return a.resolve(null),t.abrupt("return",a);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=U,r.sfid?r.version=1:r.vid&&(r.version=2),this.options.withReferer&&(r.with_referer=this.options.withReferer),c=Object.assign(this.options.productConfig,{file_info:r},this.trackeArgs,{req_id:i}),F=JSON.stringify(c),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return a.resolve(null),t.abrupt("return",a);case 33:return this.loader||(this.loader=new NetLoader(this.options)),this.trackeArgs.req_times+=1,t.prev=35,e.pcdn_tracker_request_cnt++,t.next=39,this.loader.load(n||this.options.trackerUrl,{body:F});case 39:s=t.sent,Q=null,s&&(this.trackeArgs.resp_times+=1,R=8*r.byterate,s.done&&null!==(u=s.data)&&void 0!==u&&u.Result?(B=s.data.Result,(Q=B.nodes)&&Q.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,Q.map((function(e){e.vid=r.vid,e.bitrate=R})),h=B.fid,p=B.trace_id,S=B.req_id,V={nodes:Q,fid:h,vid:r.vid,trace_id:p,req_id:S,bitrate:R},f=genKey(r.vid,r.byterate),PCDN_NODE_MAP.set(f,V),this.trackeArgs.fid=B.fid,this.trackeArgs.trace_id=B.trace_id,this.trackeArgs.token=B.token,a.resolve(V)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,a.reject(s))),t.next=49;break;case 44:t.prev=44,t.t0=t.catch(35),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",t.t0),a.reject(t.t0);case 49:return t.abrupt("return",a);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,r){return n.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var t=e.pcdn_tracker_request_cnt,n=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:t,pcdn_tracker_failed_cnt:t-n}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:LoaderType.FETCH,responseType:ResponseType.JSON,mode:"cors",method:"POST",retry:0,retryDelay:3e3,timeout:5e3,node_num:5,client_info:null,maxCnt:30,withReferer:0,NULLNodeTimeStep:6e4,ErrorTimeStep:15e3}}},{key:"gainPCDNNode",value:(t=_asyncToGenerator$2(_regeneratorRuntime$2().mark((function t(n,r,i,a){var o,l,d,U,c,F,s;return _regeneratorRuntime$2().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.getDefaultConfig(),Object.keys(r).map((function(e){void 0!==r[e]&&null!==r[e]&&(o[e]=r[e])})),a&&a.app_id||console.error("productConfig must has"),l=new createPublicPromise,i?(i.byterate=getByteRate$1(i.bitrate),this.options.trackerOptions&&Object.assign(i,this.options.trackerOptions),delete i.bitrate):l.reject("video fileInfo need set"),d=Object.assign(a,{file_info:i},{node_num:(null==r?void 0:r.node_num)||3}),U=JSON.stringify(d),c=new NetLoader(o),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,c.load(n,{body:U});case 12:(s=t.sent).done&&(null===(F=s.data)||void 0===F||null===(F=F.Result)||void 0===F||null===(F=F.nodes)||void 0===F?void 0:F.length)>0&&e.pcdn_tracker_success_cnt++,l.resolve(s),t.next=20;break;case 17:t.prev=17,t.t0=t.catch(8),l.reject((null===t.t0||void 0===t.t0?void 0:t.t0.message)||"get pcdnNode error");case 20:return t.abrupt("return",l);case 21:case"end":return t.stop()}}),t,this,[[8,17]])}))),function(e,n,r,i){return t.apply(this,arguments)})}]);var t,n}();function genKey(e,t){return"".concat(e,"-").concat(t)}function getByteRate$1(e){return Math.floor(e/8)}_defineProperty$4(PCDN,"pcdn_tracker_request_cnt",0),_defineProperty$4(PCDN,"pcdn_tracker_success_cnt",0);var SHARED_EVENTS=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(SHARED_EVENTS||{}),DESCRIPTORS=descriptors,isArray2=isArray$4,$TypeError=TypeError,getOwnPropertyDescriptor3=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(e,t){if(isArray2(e)&&!getOwnPropertyDescriptor3(e,"length").writable)throw $TypeError("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t},$$6=_export,toObject=toObject$e,toAbsoluteIndex=toAbsoluteIndex$7,toIntegerOrInfinity=toIntegerOrInfinity$b,lengthOfArrayLike=lengthOfArrayLike$g,setArrayLength=arraySetLength,doesNotExceedSafeInteger=doesNotExceedSafeInteger$2,arraySpeciesCreate=arraySpeciesCreate$3,createProperty=createProperty$5,deletePropertyOrThrow=deletePropertyOrThrow$3,arrayMethodHasSpeciesSupport=arrayMethodHasSpeciesSupport$5,HAS_SPECIES_SUPPORT=arrayMethodHasSpeciesSupport("splice"),max=Math.max,min=Math.min;$$6({target:"Array",proto:!0,forced:!HAS_SPECIES_SUPPORT},{splice:function(e,t){var n,r,i,a,o,l,d=toObject(this),U=lengthOfArrayLike(d),c=toAbsoluteIndex(e,U),F=arguments.length;for(0===F?n=r=0:1===F?(n=0,r=U-c):(n=F-2,r=min(max(toIntegerOrInfinity(t),0),U-c)),doesNotExceedSafeInteger(U+n-r),i=arraySpeciesCreate(d,r),a=0;a<r;a++)(o=c+a)in d&&createProperty(i,a,d[o]);if(i.length=r,n<r){for(a=c;a<U-r;a++)l=a+n,(o=a+r)in d?d[l]=d[o]:deletePropertyOrThrow(d,l);for(a=U;a>U-r+n;a--)deletePropertyOrThrow(d,a-1)}else if(n>r)for(a=U-r;a>c;a--)l=a+n-1,(o=a+r-1)in d?d[l]=d[o]:deletePropertyOrThrow(d,l);for(a=0;a<n;a++)d[a+c]=arguments[a+2];return setArrayLength(d,U-r+n),i}});var _excluded$4=["bitrate","definition"],util={};function _typeOf(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}function combineMediaData(e){var t=Object.values(e);if(t.sort((function(e,t){return e.range[0]-t.range[0]})),0===t.length)return{};for(var n,r=0,i=0,a=new Uint8Array,o=0,l=t;o<l.length;o++){var d=l[o],U=d.range[0],c=d.range[1];if(r>0){if(i+1!==U)break;a=concatUint8Array(a,new Uint8Array(d.res))}else a=concatUint8Array(a,new Uint8Array(d.res));r=U,i=c,n=d}var F=_slicedToArray$1(n.cacheKey.split("#"),9),s=F[0],Q=F[1],u=F[2],R=F[3],B=F[4],h=F[5],p=F[6],S=F[7],V=F[8],f=t[0].range[0],y={vid:s,mediaType:Q,codecType:u,vtype:R,definition:B,start:h,end:p,fileId:"video"===Q?S:V,range:[f,i],bitrate:S},m=util.generateRequestUniqueKey(y);return delete n.cacheKey,_defineProperty$7({},m,_objectSpread2$5(_objectSpread2$5({},n),{},{res:a.buffer,range:[f,i],memory:a.buffer.byteLength}))}function splitMediaData(e){for(var t={},n=0,r=Object.keys(e);n<r.length;n++){var i=r[n],a=e[i],o=i.split("#"),l=o[1],d=o[4],U=o[7],c="video"===l?d:U;t[c]||(t[c]={}),t[c][i]=a}return t}util.ArrayBufferToString=function(e){for(var t="",n=new Uint8Array(e),r=0;r<n.length;r++)t+=String.fromCharCode(n[r]);return t},util.StringToArrayBuffer=function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return t},util.Base64ToHex=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var r=[],i=0;i<n.length;i++)r.push(n.charCodeAt(i));return new Uint8Array(r).buffer}for(var a="",o=0;o<n.length;o++)a+="0".concat(n.charCodeAt(o).toString(16)).substr(-2);return a},util.HexToBase64=function(e){for(var t="",n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")},util.padStart=function(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l},util.durationConvert=function(e){var t=0,n=0,r=0;return(e=e.slice(e.indexOf("PT")+2)).indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M"))),r=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")<0?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M")))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(n=parseFloat(e.slice(0,e.indexOf("M"))),r=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")<0&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),r=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?r=parseFloat(e.slice(0,e.indexOf("S"))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")<0&&(n=parseFloat(e.slice(0,e.indexOf("M")))),3600*t+60*n+r},util.preFixInterge=function(e,t){return(Array(t).join(0)+e).slice(-t)},util.toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e.push(util.padStart(Number(t).toString(16),2,0))})),e},util.sum=function(){for(var e=0,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e+=t})),e},util.toUTF8=function(e){for(var t=encodeURIComponent(e),n=unescape(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r.buffer},util.fromHex=function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=parseInt(e.substr(n,2),16);return t},util.fromCharCode=function(e){for(var t="",n=0;n<e.length;n+=16e3){var r=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,r)}return t},util.toBase64=function(e,t){var n=util.fromCharCode(e);t=void 0===t||t;var r=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?r:r.replace(/=*$/,"")},util.str2hex=function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},util.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},util.stringToBuffer=function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e[n]+e[n+1],16));return new Uint8Array(t)},util.round=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(t))},util.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},util.offInDestroy=function(e,t,n,r){e.once(r,(function i(){e.off(t,n),e.off(r,i)}))},util.on=function(e,t,n,r){if(r)e.on(t,n),util.offInDestroy(e,t,n,r);else{var i=function(r){n(r),e.off(t,i)};e.on(t,i)}},util.once=function(e,t,n,r){if(r)e.once(t,n),util.offInDestroy(e,t,n,r);else{var i=function(r){n(r),e.off(t,i)};e.once(t,i)}},util.promisePolyfill=function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)},util.transformHeaders=function(e,t){var n=Object.assign({},e);return Object.keys(t).forEach((function(r){var i=t[r];e&&e[r]&&(n[i]=e[r],delete n[r])})),n},util.generateRequestUniqueKey=function(e){var t=e.vid,n=e.start,r=e.end,i=e.mediaType,a=e.definition,o=e.codecType,l=e.vtype,d=e.bitrate,U=e.fileId,c=e.range;if(c&&c.length>0?(n=c[0],r=c[1]):(n=n||0,r=r||0),o="hevc"===o?"h265":o||"h264",l=l||VTYPES$1.DASH,!t||!i)return null;var F=a?"".concat(t,"#").concat(i,"#").concat(o,"#").concat(l,"#").concat(a,"#").concat(n,"#").concat(r):"".concat(t,"#").concat(i,"#").concat(o,"#").concat(l,"##").concat(n,"#").concat(r,"#").concat(d);return U?"".concat(F,"#").concat(U):F},util.getDefinition=function(e){if(!e)return null;var t=e.split("#");return t.length>2?t[2]:null},util.exchangeListUrl=function(e){if(e&&0!==e.length)for(var t=0;t<e.length;t++)util.exchangeUrl(e[t])},util.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var t=e.main_url,n=e.backup_url_1,r=t.split("?");2===r.length&&-1===n.indexOf("?")?(e.main_url="".concat(n,"?").concat(r[1]),e.backup_url_1=r[0]):(e.main_url=n,e.backup_url_1=t)}},util.validateFragment=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{var n=new Uint8Array(e,4,4),r=String.fromCharCode.apply(null,n);if(2===t.length){var i=t[1]-t[0]+1;if(!(e.byteLength===i))return}if("moof"!==r&&"styp"!==r&&"ftyp"!==r)return!1}catch(e){return!1}return!0}return!1},util.validateUrlRange=function(e,t){if((e=e||[]).length>0&&t)for(var n=0;n<e.length;n++){var r=e[n];if(/([0-9.\-A-Za-z]+)/.test(r)&&t.indexOf(r)>-1)return!0}return!1},util.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},util.getBitrateItem=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=t,a=util.getSelectorList(e,n);return i.getSuitableBitrate?i.getSuitableBitrate(a,r):i.bitRateAdapter.select(a)},util.getSelectorList=function(e,t){for(var n=e.dynamic_video_list,r=[],i=0;i<n.length;i++){var a=n[i],o=a.bitrate,l=a.definition,d=_objectWithoutProperties$4(a,_excluded$4);a.isExtra||r.push(_objectSpread2$5({bitrate:o,definition:l,duration:t,mediaType:"video"},d))}return r},util.typeof=_typeOf,util.getHostFromUrl=function(e){if("String"!==_typeOf(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},util.checkValidTopBox=function(e){var t=util.getTopBoxType(e);return"moof"===t||"styp"===t},util.getTopBoxType=function(e){if(util.isArrayBuffer(e)){var t=e.subarray(4,8);return String.fromCharCode.apply(null,t)}return null},util.isArrayBuffer=function(e){return e instanceof ArrayBuffer||e instanceof Uint8Array},util.getBufferData=function(e,t){var n=0,r=0,i=0,a=0,o=0;if(!e||0===e.length)return{beforeBufLen:n,afterBufLen:r,beforeLastBuffEnd:i,afterFirstBuffEnd:a,afterFirstBuffStart:o};a=1/0,o=1/0;for(var l=0,d=e.length;l<d;l++){var U=e.end(l),c=e.start(l),F=U-c;U<t?(n+=F,i=U):c<=t&&t<=U?(n+=t-c,r+=U-t):(o=Math.min(c,o),a=Math.min(U,a),r+=F)}return{beforeBufLen:n,afterBufLen:r,beforeLastBuffEnd:i,afterFirstBuffEnd:a}},util.combinePreloadData=function(e){for(var t={},n={},r={},i=0,a=Object.keys(e);i<a.length;i++){var o,l,d=a[i],U=e[d];if(U.isInitSegment)r[d]=U;else U.rangeEnd===(null===(o=U.range)||void 0===o?void 0:o[1])&&U.rangeStart===(null===(l=U.range)||void 0===l?void 0:l[0])?r[d]=U:"audio"===U.mediaType?t[d]=U:"video"===U.mediaType&&(n[d]=U),U.cacheKey=d}for(var c=splitMediaData(t),F=0,s=Object.keys(c);F<s.length;F++){var Q=s[F];Object.assign(r,combineMediaData(c[Q]))}for(var u=splitMediaData(n),R=0,B=Object.keys(u);R<B.length;R++){var h=B[R];Object.assign(r,combineMediaData(u[h]))}return r};const util$1=util;var global$1=global$C,globalIsFinite=global$1.isFinite,numberIsFinite$1=Number.isFinite||function(e){return"number"==typeof e&&globalIsFinite(e)},$$5=_export,numberIsFinite=numberIsFinite$1;$$5({target:"Number",stat:!0},{isFinite:numberIsFinite});var $$4=_export,call=functionCall;$$4({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return call(URL.prototype.toString,this)}});var isImplemented$1,hasRequiredIsImplemented,eventEmitter={exports:{}},d$1={exports:{}},_undefined$1=void 0,is$4=function(e){return e!==_undefined$1&&null!==e},isValue$4=is$4,possibleTypes={object:!0,function:!0,undefined:!0},is$3=function(e){return!!isValue$4(e)&&hasOwnProperty.call(possibleTypes,typeof e)},isObject$2=is$3,is$2=function(e){if(!isObject$2(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(e){return!1}},isPrototype=is$2,is$1=function(e){if("function"!=typeof e)return!1;if(!hasOwnProperty.call(e,"length"))return!1;try{if("number"!=typeof e.length)return!1;if("function"!=typeof e.call)return!1;if("function"!=typeof e.apply)return!1}catch(e){return!1}return!isPrototype(e)},isFunction=is$1,classRe=/^\s*class[\s{/}]/,functionToString=Function.prototype.toString,is2=function(e){return!!isFunction(e)&&!classRe.test(functionToString.call(e))},isImplemented$2=function(){var e,t=Object.assign;return"function"==typeof t&&(t(e={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")};function requireIsImplemented(){return hasRequiredIsImplemented?isImplemented$1:(hasRequiredIsImplemented=1,isImplemented$1=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}})}var shim$2,hasRequiredShim$2,keys5,hasRequiredKeys,validValue,hasRequiredValidValue,shim$1,hasRequiredShim$1,noop=function(){},_undefined=noop(),isValue$3=function(e){return e!==_undefined&&null!==e};function requireShim$2(){if(hasRequiredShim$2)return shim$2;hasRequiredShim$2=1;var e=isValue$3,t=Object.keys;return shim$2=function(n){return t(e(n)?Object(n):n)}}function requireKeys(){return hasRequiredKeys?keys5:(hasRequiredKeys=1,keys5=requireIsImplemented()()?Object.keys:requireShim$2())}function requireValidValue(){if(hasRequiredValidValue)return validValue;hasRequiredValidValue=1;var e=isValue$3;return validValue=function(t){if(!e(t))throw new TypeError("Cannot use null or undefined");return t}}function requireShim$1(){if(hasRequiredShim$1)return shim$1;hasRequiredShim$1=1;var e=requireKeys(),t=requireValidValue(),n=Math.max;return shim$1=function(r,i){var a,o,l,d=n(arguments.length,2);for(r=Object(t(r)),l=function(e){try{r[e]=i[e]}catch(e){a||(a=e)}},o=1;o<d;++o)e(i=arguments[o]).forEach(l);if(void 0!==a)throw a;return r},shim$1}var shim,hasRequiredShim,assign$1=isImplemented$2()?Object.assign:requireShim$1(),isValue$2=isValue$3,forEach4=Array.prototype.forEach,create2=Object.create,process=function(e,t){var n;for(n in e)t[n]=e[n]},normalizeOptions=function(e){var t=create2(null);return forEach4.call(arguments,(function(e){isValue$2(e)&&process(Object(e),t)})),t},str="razdwatrzy",isImplemented=function(){return"function"==typeof str.contains&&(!0===str.contains("dwa")&&!1===str.contains("foo"))};function requireShim(){if(hasRequiredShim)return shim;hasRequiredShim=1;var e=String.prototype.indexOf;return shim=function(t){return e.call(this,t,arguments[1])>-1},shim}var contains$1=isImplemented()?String.prototype.contains:requireShim(),isValue$1=is$4,isPlainFunction=is2,assign2=assign$1,normalizeOpts=normalizeOptions,contains=contains$1,d=d$1.exports=function(e,t){var n,r,i,a,o;return arguments.length<2||"string"!=typeof e?(a=t,t=e,e=null):a=arguments[2],isValue$1(e)?(n=contains.call(e,"c"),r=contains.call(e,"e"),i=contains.call(e,"w")):(n=i=!0,r=!1),o={value:t,configurable:n,enumerable:r,writable:i},a?assign2(normalizeOpts(a),o):o};d.gs=function(e,t,n){var r,i,a,o;return"string"!=typeof e?(a=n,n=t,t=e,e=null):a=arguments[3],isValue$1(t)?isPlainFunction(t)?isValue$1(n)?isPlainFunction(n)||(a=n,n=void 0):n=void 0:(a=t,t=n=void 0):t=void 0,isValue$1(e)?(r=contains.call(e,"c"),i=contains.call(e,"e")):(r=!0,i=!1),o={get:t,set:n,configurable:r,enumerable:i},a?assign2(normalizeOpts(a),o):o};var dExports=d$1.exports,validCallable=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e};!function(e,t){var n,r,i,a,o,l,d,U=dExports,c=validCallable,F=Function.prototype.apply,s=Function.prototype.call,Q=Object.create,u=Object.defineProperty,R=Object.defineProperties,B=Object.prototype.hasOwnProperty,h={configurable:!0,enumerable:!1,writable:!0};r=function(e,t){var r,a;return c(t),a=this,n.call(this,e,r=function(){i.call(a,e,r),F.call(t,this,arguments)}),r.__eeOnceListener__=t,this},a=function(e){var t,n,r,i,a;if(B.call(this,"__ee__")&&(i=this.__ee__[e]))if("object"==typeof i){for(n=arguments.length,a=new Array(n-1),t=1;t<n;++t)a[t-1]=arguments[t];for(i=i.slice(),t=0;r=i[t];++t)F.call(r,this,a)}else switch(arguments.length){case 1:s.call(i,this);break;case 2:s.call(i,this,arguments[1]);break;case 3:s.call(i,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,a=new Array(n-1),t=1;t<n;++t)a[t-1]=arguments[t];F.call(i,this,a)}},o={on:n=function(e,t){var n;return c(t),B.call(this,"__ee__")?n=this.__ee__:(n=h.value=Q(null),u(this,"__ee__",h),h.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:r,off:i=function(e,t){var n,r,i,a;if(c(t),!B.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(r=n[e]))for(a=0;i=r[a];++a)i!==t&&i.__eeOnceListener__!==t||(2===r.length?n[e]=r[a?0:1]:r.splice(a,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},emit:a},l={on:U(n),once:U(r),off:U(i),emit:U(a)},d=R({},l),e.exports=t=function(e){return null==e?Q(d):R(Object(e),l)},t.methods=o}(eventEmitter,eventEmitter.exports);var eventEmitterExports=eventEmitter.exports,EventEmitter=getDefaultExportFromCjs(eventEmitterExports),isValue=isValue$3,map3={function:!0,object:!0},isObject$1=function(e){return isValue(e)&&map3[typeof e]||!1},isObject=isObject$1,validObject=function(e){if(!isObject(e))throw new TypeError(e+" is not an Object");return e},value=validObject,hasOwnProperty$1=Object.prototype.hasOwnProperty,allOff=function(e){var t,n=arguments[1];if(value(e),void 0===n)hasOwnProperty$1.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=hasOwnProperty$1.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}},allOff$1=getDefaultExportFromCjs(allOff),index_min={exports:{}};!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==commonjsGlobal?commonjsGlobal:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r=function(e){return e&&e.Math==Math&&e},i=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a={},o=function(e){try{return!!e()}catch(e){return!0}},l=!o((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),d={},U={}.propertyIsEnumerable,c=Object.getOwnPropertyDescriptor,F=c&&!U.call({1:2},1);d.f=F?function(e){var t=c(this,e);return!!t&&t.enumerable}:U;var s=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},Q={}.toString,u=function(e){return Q.call(e).slice(8,-1)},R=u,B="".split,h=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?B.call(e,""):Object(e)}:Object,p=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},S=h,V=p,f=function(e){return S(V(e))},y=function(e){return"object"==typeof e?null!==e:"function"==typeof e},m=y,E=function(e,t){if(!m(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!m(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!m(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!m(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},Z=p,J=function(e){return Object(Z(e))},b=J,W={}.hasOwnProperty,k=function(e,t){return W.call(b(e),t)},T=y,v=i.document,N=T(v)&&T(v.createElement),g=function(e){return N?v.createElement(e):{}},C=g,I=!l&&!o((function(){return 7!=Object.defineProperty(C("div"),"a",{get:function(){return 7}}).a})),_=l,D=d,x=s,L=f,M=E,G=k,X=I,w=Object.getOwnPropertyDescriptor;a.f=_?w:function(e,t){if(e=L(e),t=M(t,!0),X)try{return w(e,t)}catch(e){}if(G(e,t))return x(!D.f.call(e,t),e[t])};var P={},O=y,$=function(e){if(!O(e))throw TypeError(String(e)+" is not an object");return e},Y=l,K=I,j=$,A=E,H=Object.defineProperty;P.f=Y?H:function(e,t,n){if(j(e),t=A(t,!0),j(n),K)try{return H(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var z=P,q=s,ee=l?function(e,t,n){return z.f(e,t,q(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=i,re=ee,ie=function(e,t){try{re(ne,e,t)}catch(n){ne[e]=t}return t},ae=ie,oe="__core-js_shared__",le=i[oe]||ae(oe,{}),de=le,Ue=Function.toString;"function"!=typeof de.inspectSource&&(de.inspectSource=function(e){return Ue.call(e)});var ce=de.inspectSource,Fe=ce,se=i.WeakMap,Qe="function"==typeof se&&/native code/.test(Fe(se)),ue={exports:{}},Re=le;(ue.exports=function(e,t){return Re[e]||(Re[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Be,he,pe,Se=ue.exports,Ve=0,fe=Math.random(),ye=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Ve+fe).toString(36)},me=ye,Ee=Se("keys"),Ze=function(e){return Ee[e]||(Ee[e]=me(e))},Je={},be=Qe,We=y,ke=ee,Te=k,ve=le,Ne=Ze,ge=Je,Ce="Object already initialized",Ie=i.WeakMap;if(be||ve.state){var _e=ve.state||(ve.state=new Ie),De=_e.get,xe=_e.has,Le=_e.set;Be=function(e,t){if(xe.call(_e,e))throw new TypeError(Ce);return t.facade=e,Le.call(_e,e,t),t},he=function(e){return De.call(_e,e)||{}},pe=function(e){return xe.call(_e,e)}}else{var Me=Ne("state");ge[Me]=!0,Be=function(e,t){if(Te(e,Me))throw new TypeError(Ce);return t.facade=e,ke(e,Me,t),t},he=function(e){return Te(e,Me)?e[Me]:{}},pe=function(e){return Te(e,Me)}}var Ge={set:Be,get:he,has:pe,enforce:function(e){return pe(e)?he(e):Be(e,{})},getterFor:function(e){return function(t){var n;if(!We(t)||(n=he(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Xe=i,we=ee,Pe=k,Oe=ie,$e=ce,Ye=Ge.get,Ke=Ge.enforce,je=String(String).split("String");(te.exports=function(e,t,n,r){var i,a=!!r&&!!r.unsafe,o=!!r&&!!r.enumerable,l=!!r&&!!r.noTargetGet;"function"==typeof n&&("string"!=typeof t||Pe(n,"name")||we(n,"name",t),(i=Ke(n)).source||(i.source=je.join("string"==typeof t?t:""))),e!==Xe?(a?!l&&e[t]&&(o=!0):delete e[t],o?e[t]=n:we(e,t,n)):o?e[t]=n:Oe(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&Ye(this).source||$e(this)}));var Ae=te.exports,He=i,ze=i,qe=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?qe(He[e])||qe(ze[e]):He[e]&&He[e][t]||ze[e]&&ze[e][t]},tt={},nt=Math.ceil,rt=Math.floor,it=function(e){return isNaN(e=+e)?0:(e>0?rt:nt)(e)},at=it,ot=Math.min,lt=function(e){return e>0?ot(at(e),9007199254740991):0},dt=it,Ut=Math.max,ct=Math.min,Ft=function(e,t){var n=dt(e);return n<0?Ut(n+t,0):ct(n,t)},st=f,Qt=lt,ut=Ft,Rt=function(e){return function(t,n,r){var i,a=st(t),o=Qt(a.length),l=ut(r,o);if(e&&n!=n){for(;o>l;)if((i=a[l++])!=i)return!0}else for(;o>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},Bt={includes:Rt(!0),indexOf:Rt(!1)},ht=k,pt=f,St=Bt.indexOf,Vt=Je,ft=function(e,t){var n,r=pt(e),i=0,a=[];for(n in r)!ht(Vt,n)&&ht(r,n)&&a.push(n);for(;t.length>i;)ht(r,n=t[i++])&&(~St(a,n)||a.push(n));return a},yt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mt=ft,Et=yt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return mt(e,Et)};var Zt={};Zt.f=Object.getOwnPropertySymbols;var Jt=tt,bt=Zt,Wt=$,kt=et("Reflect","ownKeys")||function(e){var t=Jt.f(Wt(e)),n=bt.f;return n?t.concat(n(e)):t},Tt=k,vt=kt,Nt=a,gt=P,Ct=o,It=/#|\.prototype\./,_t=function(e,t){var n=xt[Dt(e)];return n==Mt||n!=Lt&&("function"==typeof t?Ct(t):!!t)},Dt=_t.normalize=function(e){return String(e).replace(It,".").toLowerCase()},xt=_t.data={},Lt=_t.NATIVE="N",Mt=_t.POLYFILL="P",Gt=_t,Xt=i,wt=a.f,Pt=ee,Ot=Ae,$t=ie,Yt=function(e,t){for(var n=vt(t),r=gt.f,i=Nt.f,a=0;a<n.length;a++){var o=n[a];Tt(e,o)||r(e,o,i(t,o))}},Kt=Gt,jt=function(e,t){var n,r,i,a,o,l=e.target,d=e.global,U=e.stat;if(n=d?Xt:U?Xt[l]||$t(l,{}):(Xt[l]||{}).prototype)for(r in t){if(a=t[r],i=e.noTargetGet?(o=wt(n,r))&&o.value:n[r],!Kt(d?r:l+(U?".":"#")+r,e.forced)&&void 0!==i){if(typeof a==typeof i)continue;Yt(a,i)}(e.sham||i&&i.sham)&&Pt(a,"sham",!0),Ot(n,r,a,e)}};function At(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function Ht(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){At(a,r,i,o,l,"next",e)}function l(e){At(a,r,i,o,l,"throw",e)}o(void 0)}))}}function zt(e,t,n){return t=rn(t),function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,on()?Reflect.construct(t,n||[],rn(e).constructor):t.apply(e,n))}function qt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function en(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Un(r.key),r)}}function tn(e,t,n){return t&&en(e.prototype,t),n&&en(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function nn(e,t,n){return(t=Un(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rn(e){return(rn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function an(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&dn(e,t)}function on(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(on=function(){return!!e})()}function ln(){ln=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",d=a.toStringTag||"@@toStringTag";function U(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{U({},"")}catch(e){U=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var a=t&&t.prototype instanceof h?t:h,o=Object.create(a.prototype),l=new T(r||[]);return i(o,"_invoke",{value:J(e,n,l)}),o}function F(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var s="suspendedStart",Q="suspendedYield",u="executing",R="completed",B={};function h(){}function p(){}function S(){}var V={};U(V,o,(function(){return this}));var f=Object.getPrototypeOf,y=f&&f(f(v([])));y&&y!==n&&r.call(y,o)&&(V=y);var m=S.prototype=h.prototype=Object.create(V);function E(e){["next","throw","return"].forEach((function(t){U(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(i,a,o,l){var d=F(e[i],e,a);if("throw"!==d.type){var U=d.arg,c=U.value;return c&&"object"==typeof c&&r.call(c,"__await")?t.resolve(c.__await).then((function(e){n("next",e,o,l)}),(function(e){n("throw",e,o,l)})):t.resolve(c).then((function(e){U.value=e,o(U)}),(function(e){return n("throw",e,o,l)}))}l(d.arg)}var a;i(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function J(t,n,r){var i=s;return function(a,o){if(i===u)throw Error("Generator is already running");if(i===R){if("throw"===a)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var l=r.delegate;if(l){var d=b(l,r);if(d){if(d===B)continue;return d}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===s)throw i=R,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=u;var U=F(t,n,r);if("normal"===U.type){if(i=r.done?R:Q,U.arg===B)continue;return{value:U.arg,done:r.done}}"throw"===U.type&&(i=R,r.method="throw",r.arg=U.arg)}}}function b(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,b(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),B;var a=F(i,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,B;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,B):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,B)}function W(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function v(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(typeof t+" is not iterable")}return p.prototype=S,i(m,"constructor",{value:S,configurable:!0}),i(S,"constructor",{value:p,configurable:!0}),p.displayName=U(S,d,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,U(e,d,"GeneratorFunction")),e.prototype=Object.create(m),e},t.awrap=function(e){return{__await:e}},E(Z.prototype),U(Z.prototype,l,(function(){return this})),t.AsyncIterator=Z,t.async=function(e,n,r,i,a){void 0===a&&(a=Promise);var o=new Z(c(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},E(m),U(m,d,"Generator"),U(m,o,(function(){return this})),U(m,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=v,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(k),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return l.type="throw",l.arg=t,n.next=r,i&&(n.method="next",n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],l=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var d=r.call(o,"catchLoc"),U=r.call(o,"finallyLoc");if(d&&U){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(d){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!U)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,B):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),B},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),B}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:v(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),B}},t}function dn(e,t){return(dn=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function Un(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function cn(e){return(cn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fn(e){var t="function"==typeof Map?new Map:void 0;return Fn=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(on())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&dn(i,n.prototype),i}(e,arguments,rn(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),dn(n,e)},Fn(e)}jt({global:!0},{globalThis:i});var sn,Qn,un=u,Rn=Array.isArray||function(e){return"Array"==un(e)},Bn=E,hn=P,pn=s,Sn=function(e,t,n){var r=Bn(t);r in e?hn.f(e,r,pn(0,n)):e[r]=n},Vn=et("navigator","userAgent")||"",fn=Vn,yn=i.process,mn=yn&&yn.versions,En=mn&&mn.v8;En?Qn=(sn=En.split("."))[0]<4?1:sn[0]+sn[1]:fn&&(!(sn=fn.match(/Edge\/(\d+)/))||sn[1]>=74)&&(sn=fn.match(/Chrome\/(\d+)/))&&(Qn=sn[1]);var Zn=Qn&&+Qn,Jn=Zn,bn=o,Wn=!!Object.getOwnPropertySymbols&&!bn((function(){return!String(Symbol())||!Symbol.sham&&Jn&&Jn<41})),kn=Wn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Tn=i,vn=k,Nn=ye,gn=Wn,Cn=kn,In=Se("wks"),_n=Tn.Symbol,Dn=Cn?_n:_n&&_n.withoutSetter||Nn,xn=function(e){return vn(In,e)&&(gn||"string"==typeof In[e])||(gn&&vn(_n,e)?In[e]=_n[e]:In[e]=Dn("Symbol."+e)),In[e]},Ln=y,Mn=Rn,Gn=xn("species"),Xn=function(e,t){var n;return Mn(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Mn(n.prototype)?Ln(n)&&null===(n=n[Gn])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},wn=o,Pn=Zn,On=xn("species"),$n=function(e){return Pn>=51||!wn((function(){var t=[];return(t.constructor={})[On]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Yn=jt,Kn=o,jn=Rn,An=y,Hn=J,zn=lt,qn=Sn,er=Xn,tr=$n,nr=Zn,rr=xn("isConcatSpreadable"),ir=9007199254740991,ar="Maximum allowed index exceeded",or=nr>=51||!Kn((function(){var e=[];return e[rr]=!1,e.concat()[0]!==e})),lr=tr("concat"),dr=function(e){if(!An(e))return!1;var t=e[rr];return void 0!==t?!!t:jn(e)};Yn({target:"Array",proto:!0,forced:!or||!lr},{concat:function(e){var t,n,r,i,a,o=Hn(this),l=er(o,0),d=0;for(t=-1,r=arguments.length;t<r;t++)if(dr(a=-1===t?o:arguments[t])){if(d+(i=zn(a.length))>ir)throw TypeError(ar);for(n=0;n<i;n++,d++)n in a&&qn(l,d,a[n])}else{if(d>=ir)throw TypeError(ar);qn(l,d++,a)}return l.length=d,l}});var Ur,cr=ft,Fr=yt,sr=Object.keys||function(e){return cr(e,Fr)},Qr=P,ur=$,Rr=sr,Br=l?Object.defineProperties:function(e,t){ur(e);for(var n,r=Rr(t),i=r.length,a=0;i>a;)Qr.f(e,n=r[a++],t[n]);return e},hr=et("document","documentElement"),pr=$,Sr=Br,Vr=yt,fr=Je,yr=hr,mr=g,Er="prototype",Zr="script",Jr=Ze("IE_PROTO"),br=function(){},Wr=function(e){return"<"+Zr+">"+e+"</"+Zr+">"},kr=function(){try{Ur=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t,n;kr=Ur?function(e){e.write(Wr("")),e.close();var t=e.parentWindow.Object;return e=null,t}(Ur):(t=mr("iframe"),n="java"+Zr+":",t.style.display="none",yr.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(Wr("document.F=Object")),e.close(),e.F);for(var r=Vr.length;r--;)delete kr[Er][Vr[r]];return kr()};fr[Jr]=!0;var Tr=Object.create||function(e,t){var n;return null!==e?(br[Er]=pr(e),n=new br,br[Er]=null,n[Jr]=e):n=kr(),void 0===t?n:Sr(n,t)},vr=Tr,Nr=P,gr=xn("unscopables"),Cr=Array.prototype;null==Cr[gr]&&Nr.f(Cr,gr,{configurable:!0,value:vr(null)});var Ir,_r,Dr,xr={},Lr=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Mr=k,Gr=J,Xr=Lr,wr=Ze("IE_PROTO"),Pr=Object.prototype,Or=Xr?Object.getPrototypeOf:function(e){return e=Gr(e),Mr(e,wr)?e[wr]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Pr:null},$r=o,Yr=Or,Kr=ee,jr=k,Ar=xn("iterator"),Hr=!1;[].keys&&("next"in(Dr=[].keys())?(_r=Yr(Yr(Dr)))!==Object.prototype&&(Ir=_r):Hr=!0),(null==Ir||$r((function(){var e={};return Ir[Ar].call(e)!==e})))&&(Ir={}),jr(Ir,Ar)||Kr(Ir,Ar,(function(){return this}));var zr={IteratorPrototype:Ir,BUGGY_SAFARI_ITERATORS:Hr},qr=P.f,ei=k,ti=xn("toStringTag"),ni=function(e,t,n){e&&!ei(e=n?e:e.prototype,ti)&&qr(e,ti,{configurable:!0,value:t})},ri=zr.IteratorPrototype,ii=Tr,ai=s,oi=ni,li=xr,di=function(){return this},Ui=y,ci=$,Fi=function(e){if(!Ui(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},si=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,r){return ci(n),Fi(r),t?e.call(n,r):n.__proto__=r,n}}():void 0),Qi=jt,ui=function(e,t,n){var r=t+" Iterator";return e.prototype=ii(ri,{next:ai(1,n)}),oi(e,r,!1),li[r]=di,e},Ri=Or,Bi=si,hi=ni,pi=ee,Si=Ae,Vi=xr,fi=zr.IteratorPrototype,yi=zr.BUGGY_SAFARI_ITERATORS,mi=xn("iterator"),Ei="keys",Zi="values",Ji="entries",bi=function(){return this},Wi=function(e,t,n,r,i,a,o){ui(n,t,r);var l,d,U,c=function(e){if(e===i&&R)return R;if(!yi&&e in Q)return Q[e];switch(e){case Ei:case Zi:case Ji:return function(){return new n(this,e)}}return function(){return new n(this)}},F=t+" Iterator",s=!1,Q=e.prototype,u=Q[mi]||Q["@@iterator"]||i&&Q[i],R=!yi&&u||c(i),B="Array"==t&&Q.entries||u;if(B&&(l=Ri(B.call(new e)),fi!==Object.prototype&&l.next&&(Ri(l)!==fi&&(Bi?Bi(l,fi):"function"!=typeof l[mi]&&pi(l,mi,bi)),hi(l,F,!0))),i==Zi&&u&&u.name!==Zi&&(s=!0,R=function(){return u.call(this)}),Q[mi]!==R&&pi(Q,mi,R),Vi[t]=R,i)if(d={values:c(Zi),keys:a?R:c(Ei),entries:c(Ji)},o)for(U in d)(yi||s||!(U in Q))&&Si(Q,U,d[U]);else Qi({target:t,proto:!0,forced:yi||s},d);return d},ki=f,Ti=function(e){Cr[gr][e]=!0},vi=xr,Ni=Ge,gi=Wi,Ci="Array Iterator",Ii=Ni.set,_i=Ni.getterFor(Ci),Di=gi(Array,"Array",(function(e,t){Ii(this,{type:Ci,target:ki(e),index:0,kind:t})}),(function(){var e=_i(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values");vi.Arguments=vi.Array,Ti("keys"),Ti("values"),Ti("entries");var xi="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,Li=Ae,Mi=function(e,t,n){for(var r in t)Li(e,r,t[r],n);return e},Gi=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},Xi=it,wi=lt,Pi=function(e){if(void 0===e)return 0;var t=Xi(e),n=wi(t);if(t!==n)throw RangeError("Wrong length or index");return n},Oi=Math.abs,$i=Math.pow,Yi=Math.floor,Ki=Math.log,ji=Math.LN2,Ai=J,Hi=Ft,zi=lt,qi=function(e){for(var t=Ai(this),n=zi(t.length),r=arguments.length,i=Hi(r>1?arguments[1]:void 0,n),a=r>2?arguments[2]:void 0,o=void 0===a?n:Hi(a,n);o>i;)t[i++]=e;return t},ea=i,ta=l,na=xi,ra=ee,ia=Mi,aa=o,oa=Gi,la=it,da=lt,Ua=Pi,ca={pack:function(e,t,n){var r,i,a,o=new Array(n),l=8*n-t-1,d=(1<<l)-1,U=d>>1,c=23===t?$i(2,-24)-$i(2,-77):0,F=e<0||0===e&&1/e<0?1:0,s=0;for((e=Oi(e))!=e||e===1/0?(i=e!=e?1:0,r=d):(r=Yi(Ki(e)/ji),e*(a=$i(2,-r))<1&&(r--,a*=2),(e+=r+U>=1?c/a:c*$i(2,1-U))*a>=2&&(r++,a/=2),r+U>=d?(i=0,r=d):r+U>=1?(i=(e*a-1)*$i(2,t),r+=U):(i=e*$i(2,U-1)*$i(2,t),r=0));t>=8;o[s++]=255&i,i/=256,t-=8);for(r=r<<t|i,l+=t;l>0;o[s++]=255&r,r/=256,l-=8);return o[--s]|=128*F,o},unpack:function(e,t){var n,r=e.length,i=8*r-t-1,a=(1<<i)-1,o=a>>1,l=i-7,d=r-1,U=e[d--],c=127&U;for(U>>=7;l>0;c=256*c+e[d],d--,l-=8);for(n=c&(1<<-l)-1,c>>=-l,l+=t;l>0;n=256*n+e[d],d--,l-=8);if(0===c)c=1-o;else{if(c===a)return n?NaN:U?-1/0:1/0;n+=$i(2,t),c-=o}return(U?-1:1)*n*$i(2,c-t)}},Fa=Or,sa=si,Qa=tt.f,ua=P.f,Ra=qi,Ba=ni,ha=Ge.get,pa=Ge.set,Sa="ArrayBuffer",Va="DataView",fa="prototype",ya="Wrong index",ma=ea[Sa],Ea=ma,Za=ea[Va],Ja=Za&&Za[fa],ba=Object.prototype,Wa=ea.RangeError,ka=ca.pack,Ta=ca.unpack,va=function(e){return[255&e]},Na=function(e){return[255&e,e>>8&255]},ga=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Ca=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Ia=function(e){return ka(e,23,4)},_a=function(e){return ka(e,52,8)},Da=function(e,t){ua(e[fa],t,{get:function(){return ha(this)[t]}})},xa=function(e,t,n,r){var i=Ua(n),a=ha(e);if(i+t>a.byteLength)throw Wa(ya);var o=ha(a.buffer).bytes,l=i+a.byteOffset,d=o.slice(l,l+t);return r?d:d.reverse()},La=function(e,t,n,r,i,a){var o=Ua(n),l=ha(e);if(o+t>l.byteLength)throw Wa(ya);for(var d=ha(l.buffer).bytes,U=o+l.byteOffset,c=r(+i),F=0;F<t;F++)d[U+F]=c[a?F:t-F-1]};if(na){if(!aa((function(){ma(1)}))||!aa((function(){new ma(-1)}))||aa((function(){return new ma,new ma(1.5),new ma(NaN),ma.name!=Sa}))){for(var Ma,Ga=(Ea=function(e){return oa(this,Ea),new ma(Ua(e))})[fa]=ma[fa],Xa=Qa(ma),wa=0;Xa.length>wa;)(Ma=Xa[wa++])in Ea||ra(Ea,Ma,ma[Ma]);Ga.constructor=Ea}sa&&Fa(Ja)!==ba&&sa(Ja,ba);var Pa=new Za(new Ea(2)),Oa=Ja.setInt8;Pa.setInt8(0,2147483648),Pa.setInt8(1,2147483649),!Pa.getInt8(0)&&Pa.getInt8(1)||ia(Ja,{setInt8:function(e,t){Oa.call(this,e,t<<24>>24)},setUint8:function(e,t){Oa.call(this,e,t<<24>>24)}},{unsafe:!0})}else Ea=function(e){oa(this,Ea,Sa);var t=Ua(e);pa(this,{bytes:Ra.call(new Array(t),0),byteLength:t}),ta||(this.byteLength=t)},Za=function(e,t,n){oa(this,Za,Va),oa(e,Ea,Va);var r=ha(e).byteLength,i=la(t);if(i<0||i>r)throw Wa("Wrong offset");if(i+(n=void 0===n?r-i:da(n))>r)throw Wa("Wrong length");pa(this,{buffer:e,byteLength:n,byteOffset:i}),ta||(this.buffer=e,this.byteLength=n,this.byteOffset=i)},ta&&(Da(Ea,"byteLength"),Da(Za,"buffer"),Da(Za,"byteLength"),Da(Za,"byteOffset")),ia(Za[fa],{getInt8:function(e){return xa(this,1,e)[0]<<24>>24},getUint8:function(e){return xa(this,1,e)[0]},getInt16:function(e){var t=xa(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=xa(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Ca(xa(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Ca(xa(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return Ta(xa(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return Ta(xa(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){La(this,1,e,va,t)},setUint8:function(e,t){La(this,1,e,va,t)},setInt16:function(e,t){La(this,2,e,Na,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){La(this,2,e,Na,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){La(this,4,e,ga,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){La(this,4,e,ga,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){La(this,4,e,Ia,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){La(this,8,e,_a,t,arguments.length>2?arguments[2]:void 0)}});Ba(Ea,Sa),Ba(Za,Va);var $a={ArrayBuffer:Ea,DataView:Za},Ya=et,Ka=P,ja=l,Aa=xn("species"),Ha=function(e){var t=Ya(e),n=Ka.f;ja&&t&&!t[Aa]&&n(t,Aa,{configurable:!0,get:function(){return this}})},za=Ha,qa="ArrayBuffer",eo=$a[qa];jt({global:!0,forced:i[qa]!==eo},{ArrayBuffer:eo}),za(qa);var to=J,no=sr;jt({target:"Object",stat:!0,forced:o((function(){no(1)}))},{keys:function(e){return no(to(e))}});var ro={};ro[xn("toStringTag")]="z";var io="[object z]"===String(ro),ao=io,oo=u,lo=xn("toStringTag"),Uo="Arguments"==oo(function(){return arguments}()),co=ao?oo:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),lo))?n:Uo?oo(t):"Object"==(r=oo(t))&&"function"==typeof t.callee?"Arguments":r},Fo=co,so=io?{}.toString:function(){return"[object "+Fo(this)+"]"};io||Ae(Object.prototype,"toString",so,{unsafe:!0});var Qo=i.Promise,uo=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},Ro=xr,Bo=xn("iterator"),ho=Array.prototype,po=function(e){return void 0!==e&&(Ro.Array===e||ho[Bo]===e)},So=uo,Vo=function(e,t,n){if(So(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},fo=co,yo=xr,mo=xn("iterator"),Eo=function(e){if(null!=e)return e[mo]||e["@@iterator"]||yo[fo(e)]},Zo=$,Jo=$,bo=po,Wo=lt,ko=Vo,To=Eo,vo=function(e){var t=e.return;if(void 0!==t)return Zo(t.call(e)).value},No=function(e,t){this.stopped=e,this.result=t},go=function(e,t,n){var r,i,a,o,l,d,U,c=n&&n.that,F=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_ITERATOR),Q=!(!n||!n.INTERRUPTED),u=ko(t,c,1+F+Q),R=function(e){return r&&vo(r),new No(!0,e)},B=function(e){return F?(Jo(e),Q?u(e[0],e[1],R):u(e[0],e[1])):Q?u(e,R):u(e)};if(s)r=e;else{if("function"!=typeof(i=To(e)))throw TypeError("Target is not iterable");if(bo(i)){for(a=0,o=Wo(e.length);o>a;a++)if((l=B(e[a]))&&l instanceof No)return l;return new No(!1)}r=i.call(e)}for(d=r.next;!(U=d.call(r)).done;){try{l=B(U.value)}catch(e){throw vo(r),e}if("object"==typeof l&&l&&l instanceof No)return l}return new No(!1)},Co=xn("iterator"),Io=!1;try{var _o=0,Do={next:function(){return{done:!!_o++}},return:function(){Io=!0}};Do[Co]=function(){return this},Array.from(Do,(function(){throw 2}))}catch(e){}var xo,Lo,Mo,Go=function(e,t){if(!t&&!Io)return!1;var n=!1;try{var r={};r[Co]=function(){return{next:function(){return{done:n=!0}}}},e(r)}catch(e){}return n},Xo=$,wo=uo,Po=xn("species"),Oo=function(e,t){var n,r=Xo(e).constructor;return void 0===r||null==(n=Xo(r)[Po])?t:wo(n)},$o=/(?:iphone|ipod|ipad).*applewebkit/i.test(Vn),Yo="process"==u(i.process),Ko=i,jo=o,Ao=Vo,Ho=hr,zo=g,qo=$o,el=Yo,tl=Ko.location,nl=Ko.setImmediate,rl=Ko.clearImmediate,il=Ko.process,al=Ko.MessageChannel,ol=Ko.Dispatch,ll=0,dl={},Ul="onreadystatechange",cl=function(e){if(dl.hasOwnProperty(e)){var t=dl[e];delete dl[e],t()}},Fl=function(e){return function(){cl(e)}},sl=function(e){cl(e.data)},Ql=function(e){Ko.postMessage(e+"",tl.protocol+"//"+tl.host)};nl&&rl||(nl=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return dl[++ll]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},xo(ll),ll},rl=function(e){delete dl[e]},el?xo=function(e){il.nextTick(Fl(e))}:ol&&ol.now?xo=function(e){ol.now(Fl(e))}:al&&!qo?(Mo=(Lo=new al).port2,Lo.port1.onmessage=sl,xo=Ao(Mo.postMessage,Mo,1)):Ko.addEventListener&&"function"==typeof postMessage&&!Ko.importScripts&&tl&&"file:"!==tl.protocol&&!jo(Ql)?(xo=Ql,Ko.addEventListener("message",sl,!1)):xo=Ul in zo("script")?function(e){Ho.appendChild(zo("script"))[Ul]=function(){Ho.removeChild(this),cl(e)}}:function(e){setTimeout(Fl(e),0)});var ul,Rl,Bl,hl,pl,Sl,Vl,fl,yl={set:nl,clear:rl},ml=/web0s(?!.*chrome)/i.test(Vn),El=i,Zl=a.f,Jl=yl.set,bl=$o,Wl=ml,kl=Yo,Tl=El.MutationObserver||El.WebKitMutationObserver,vl=El.document,Nl=El.process,gl=El.Promise,Cl=Zl(El,"queueMicrotask"),Il=Cl&&Cl.value;Il||(ul=function(){var e,t;for(kl&&(e=Nl.domain)&&e.exit();Rl;){t=Rl.fn,Rl=Rl.next;try{t()}catch(e){throw Rl?hl():Bl=void 0,e}}Bl=void 0,e&&e.enter()},bl||kl||Wl||!Tl||!vl?gl&&gl.resolve?((Vl=gl.resolve(void 0)).constructor=gl,fl=Vl.then,hl=function(){fl.call(Vl,ul)}):hl=kl?function(){Nl.nextTick(ul)}:function(){Jl.call(El,ul)}:(pl=!0,Sl=vl.createTextNode(""),new Tl(ul).observe(Sl,{characterData:!0}),hl=function(){Sl.data=pl=!pl}));var _l=Il||function(e){var t={fn:e,next:void 0};Bl&&(Bl.next=t),Rl||(Rl=t,hl()),Bl=t},Dl={},xl=uo,Ll=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=xl(t),this.reject=xl(n)};Dl.f=function(e){return new Ll(e)};var Ml,Gl,Xl,wl,Pl=$,Ol=y,$l=Dl,Yl=i,Kl="object"==typeof window,jl=jt,Al=i,Hl=et,zl=Qo,ql=Ae,ed=Mi,td=si,nd=ni,rd=Ha,id=y,ad=uo,od=Gi,ld=ce,dd=go,Ud=Go,cd=Oo,Fd=yl.set,sd=_l,Qd=function(e,t){if(Pl(e),Ol(t)&&t.constructor===e)return t;var n=$l.f(e);return(0,n.resolve)(t),n.promise},ud=function(e,t){var n=Yl.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},Rd=Dl,Bd=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},hd=Ge,pd=Gt,Sd=Kl,Vd=Yo,fd=Zn,yd=xn("species"),md="Promise",Ed=hd.get,Zd=hd.set,Jd=hd.getterFor(md),bd=zl&&zl.prototype,Wd=zl,kd=bd,Td=Al.TypeError,vd=Al.document,Nd=Al.process,gd=Rd.f,Cd=gd,Id=!!(vd&&vd.createEvent&&Al.dispatchEvent),_d="function"==typeof PromiseRejectionEvent,Dd="unhandledrejection",xd=!1,Ld=pd(md,(function(){var e=ld(Wd)!==String(Wd);if(!e&&66===fd)return!0;if(fd>=51&&/native code/.test(Wd))return!1;var t=new Wd((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[yd]=n,!(xd=t.then((function(){}))instanceof n)||!e&&Sd&&!_d})),Md=Ld||!Ud((function(e){Wd.all(e).catch((function(){}))})),Gd=function(e){var t;return!(!id(e)||"function"!=typeof(t=e.then))&&t},Xd=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;sd((function(){for(var r=e.value,i=1==e.state,a=0;n.length>a;){var o,l,d,U=n[a++],c=i?U.ok:U.fail,F=U.resolve,s=U.reject,Q=U.domain;try{c?(i||(2===e.rejection&&$d(e),e.rejection=1),!0===c?o=r:(Q&&Q.enter(),o=c(r),Q&&(Q.exit(),d=!0)),o===U.promise?s(Td("Promise-chain cycle")):(l=Gd(o))?l.call(o,F,s):F(o)):s(r)}catch(e){Q&&!d&&Q.exit(),s(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&Pd(e)}))}},wd=function(e,t,n){var r,i;Id?((r=vd.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),Al.dispatchEvent(r)):r={promise:t,reason:n},!_d&&(i=Al["on"+e])?i(r):e===Dd&&ud("Unhandled promise rejection",n)},Pd=function(e){Fd.call(Al,(function(){var t,n=e.facade,r=e.value;if(Od(e)&&(t=Bd((function(){Vd?Nd.emit("unhandledRejection",r,n):wd(Dd,n,r)})),e.rejection=Vd||Od(e)?2:1,t.error))throw t.value}))},Od=function(e){return 1!==e.rejection&&!e.parent},$d=function(e){Fd.call(Al,(function(){var t=e.facade;Vd?Nd.emit("rejectionHandled",t):wd("rejectionhandled",t,e.value)}))},Yd=function(e,t,n){return function(r){e(t,r,n)}},Kd=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,Xd(e,!0))},jd=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Td("Promise can't be resolved itself");var r=Gd(t);r?sd((function(){var n={done:!1};try{r.call(t,Yd(jd,n,e),Yd(Kd,n,e))}catch(t){Kd(n,t,e)}})):(e.value=t,e.state=1,Xd(e,!1))}catch(t){Kd({done:!1},t,e)}}};if(Ld&&(kd=(Wd=function(e){od(this,Wd,md),ad(e),Ml.call(this);var t=Ed(this);try{e(Yd(jd,t),Yd(Kd,t))}catch(e){Kd(t,e)}}).prototype,(Ml=function(e){Zd(this,{type:md,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=ed(kd,{then:function(e,t){var n=Jd(this),r=gd(cd(this,Wd));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=Vd?Nd.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Xd(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),Gl=function(){var e=new Ml,t=Ed(e);this.promise=e,this.resolve=Yd(jd,t),this.reject=Yd(Kd,t)},Rd.f=gd=function(e){return e===Wd||e===Xl?new Gl(e):Cd(e)},"function"==typeof zl&&bd!==Object.prototype)){wl=bd.then,xd||(ql(bd,"then",(function(e,t){var n=this;return new Wd((function(e,t){wl.call(n,e,t)})).then(e,t)}),{unsafe:!0}),ql(bd,"catch",kd.catch,{unsafe:!0}));try{delete bd.constructor}catch(e){}td&&td(bd,kd)}jl({global:!0,wrap:!0,forced:Ld},{Promise:Wd}),nd(Wd,md,!1),rd(md),Xl=Hl(md),jl({target:md,stat:!0,forced:Ld},{reject:function(e){var t=gd(this);return t.reject.call(void 0,e),t.promise}}),jl({target:md,stat:!0,forced:Ld},{resolve:function(e){return Qd(this,e)}}),jl({target:md,stat:!0,forced:Md},{all:function(e){var t=this,n=gd(t),r=n.resolve,i=n.reject,a=Bd((function(){var n=ad(t.resolve),a=[],o=0,l=1;dd(e,(function(e){var d=o++,U=!1;a.push(void 0),l++,n.call(t,e).then((function(e){U||(U=!0,a[d]=e,--l||r(a))}),i)})),--l||r(a)}));return a.error&&i(a.value),n.promise},race:function(e){var t=this,n=gd(t),r=n.reject,i=Bd((function(){var i=ad(t.resolve);dd(e,(function(e){i.call(t,e).then(n.resolve,r)}))}));return i.error&&r(i.value),n.promise}});var Ad=$,Hd=function(){var e=Ad(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},zd=Ae,qd=$,eU=o,tU=Hd,nU="toString",rU=RegExp.prototype,iU=rU[nU],aU=eU((function(){return"/a/b"!=iU.call({source:"a",flags:"b"})})),oU=iU.name!=nU;(aU||oU)&&zd(RegExp.prototype,nU,(function(){var e=qd(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in rU)?tU.call(e):n)}),{unsafe:!0});var lU,dU={exports:{}},UU=xi,cU=l,FU=i,sU=y,QU=k,uU=co,RU=ee,BU=Ae,hU=P.f,pU=Or,SU=si,VU=xn,fU=ye,yU=FU.Int8Array,mU=yU&&yU.prototype,EU=FU.Uint8ClampedArray,ZU=EU&&EU.prototype,JU=yU&&pU(yU),bU=mU&&pU(mU),WU=Object.prototype,kU=WU.isPrototypeOf,TU=VU("toStringTag"),vU=fU("TYPED_ARRAY_TAG"),NU=UU&&!!SU&&"Opera"!==uU(FU.opera),gU=!1,CU={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},IU={BigInt64Array:8,BigUint64Array:8},_U=function(e){if(!sU(e))return!1;var t=uU(e);return QU(CU,t)||QU(IU,t)};for(lU in CU)FU[lU]||(NU=!1);if((!NU||"function"!=typeof JU||JU===Function.prototype)&&(JU=function(){throw TypeError("Incorrect invocation")},NU))for(lU in CU)FU[lU]&&SU(FU[lU],JU);if((!NU||!bU||bU===WU)&&(bU=JU.prototype,NU))for(lU in CU)FU[lU]&&SU(FU[lU].prototype,bU);if(NU&&pU(ZU)!==bU&&SU(ZU,bU),cU&&!QU(bU,TU))for(lU in gU=!0,hU(bU,TU,{get:function(){return sU(this)?this[vU]:void 0}}),CU)FU[lU]&&RU(FU[lU],vU,lU);var DU={NATIVE_ARRAY_BUFFER_VIEWS:NU,TYPED_ARRAY_TAG:gU&&vU,aTypedArray:function(e){if(_U(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(SU){if(kU.call(JU,e))return e}else for(var t in CU)if(QU(CU,lU)){var n=FU[t];if(n&&(e===n||kU.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(cU){if(n)for(var r in CU){var i=FU[r];if(i&&QU(i.prototype,e))try{delete i.prototype[e]}catch(e){}}bU[e]&&!n||BU(bU,e,n?t:NU&&mU[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var r,i;if(cU){if(SU){if(n)for(r in CU)if((i=FU[r])&&QU(i,e))try{delete i[e]}catch(e){}if(JU[e]&&!n)return;try{return BU(JU,e,n?t:NU&&JU[e]||t)}catch(e){}}for(r in CU)!(i=FU[r])||i[e]&&!n||BU(i,e,t)}},isView:function(e){if(!sU(e))return!1;var t=uU(e);return"DataView"===t||QU(CU,t)||QU(IU,t)},isTypedArray:_U,TypedArray:JU,TypedArrayPrototype:bU},xU=i,LU=o,MU=Go,GU=DU.NATIVE_ARRAY_BUFFER_VIEWS,XU=xU.ArrayBuffer,wU=xU.Int8Array,PU=!GU||!LU((function(){wU(1)}))||!LU((function(){new wU(-1)}))||!MU((function(e){new wU,new wU(null),new wU(1.5),new wU(e)}),!0)||LU((function(){return 1!==new wU(new XU(2),1,void 0).length})),OU=it,$U=function(e){var t=OU(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},YU=function(e,t){var n=$U(e);if(n%t)throw RangeError("Wrong offset");return n},KU=J,jU=lt,AU=Eo,HU=po,zU=Vo,qU=DU.aTypedArrayConstructor,ec=Vo,tc=h,nc=J,rc=lt,ic=Xn,ac=[].push,oc=function(e){var t=1==e,n=2==e,r=3==e,i=4==e,a=6==e,o=7==e,l=5==e||a;return function(d,U,c,F){for(var s,Q,u=nc(d),R=tc(u),B=ec(U,c,3),h=rc(R.length),p=0,S=F||ic,V=t?S(d,h):n||o?S(d,0):void 0;h>p;p++)if((l||p in R)&&(Q=B(s=R[p],p,u),e))if(t)V[p]=Q;else if(Q)switch(e){case 3:return!0;case 5:return s;case 6:return p;case 2:ac.call(V,s)}else switch(e){case 4:return!1;case 7:ac.call(V,s)}return a?-1:r||i?i:V}},lc={forEach:oc(0),map:oc(1),filter:oc(2),some:oc(3),every:oc(4),find:oc(5),findIndex:oc(6),filterOut:oc(7)},dc=y,Uc=si,cc=function(e,t,n){var r,i;return Uc&&"function"==typeof(r=t.constructor)&&r!==n&&dc(i=r.prototype)&&i!==n.prototype&&Uc(e,i),e},Fc=jt,sc=i,Qc=l,uc=PU,Rc=DU,Bc=$a,hc=Gi,pc=s,Sc=ee,Vc=lt,fc=Pi,yc=YU,mc=E,Ec=k,Zc=co,Jc=y,bc=Tr,Wc=si,kc=tt.f,Tc=function(e){var t,n,r,i,a,o,l=KU(e),d=arguments.length,U=d>1?arguments[1]:void 0,c=void 0!==U,F=AU(l);if(null!=F&&!HU(F))for(o=(a=F.call(l)).next,l=[];!(i=o.call(a)).done;)l.push(i.value);for(c&&d>2&&(U=zU(U,arguments[2],2)),n=jU(l.length),r=new(qU(this))(n),t=0;n>t;t++)r[t]=c?U(l[t],t):l[t];return r},vc=lc.forEach,Nc=Ha,gc=P,Cc=a,Ic=cc,_c=Ge.get,Dc=Ge.set,xc=gc.f,Lc=Cc.f,Mc=Math.round,Gc=sc.RangeError,Xc=Bc.ArrayBuffer,wc=Bc.DataView,Pc=Rc.NATIVE_ARRAY_BUFFER_VIEWS,Oc=Rc.TYPED_ARRAY_TAG,$c=Rc.TypedArray,Yc=Rc.TypedArrayPrototype,Kc=Rc.aTypedArrayConstructor,jc=Rc.isTypedArray,Ac="BYTES_PER_ELEMENT",Hc="Wrong length",zc=function(e,t){for(var n=0,r=t.length,i=new(Kc(e))(r);r>n;)i[n]=t[n++];return i},qc=function(e,t){xc(e,t,{get:function(){return _c(this)[t]}})},eF=function(e){var t;return e instanceof Xc||"ArrayBuffer"==(t=Zc(e))||"SharedArrayBuffer"==t},tF=function(e,t){return jc(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},nF=function(e,t){return tF(e,t=mc(t,!0))?pc(2,e[t]):Lc(e,t)},rF=function(e,t,n){return!(tF(e,t=mc(t,!0))&&Jc(n)&&Ec(n,"value"))||Ec(n,"get")||Ec(n,"set")||n.configurable||Ec(n,"writable")&&!n.writable||Ec(n,"enumerable")&&!n.enumerable?xc(e,t,n):(e[t]=n.value,e)};Qc?(Pc||(Cc.f=nF,gc.f=rF,qc(Yc,"buffer"),qc(Yc,"byteOffset"),qc(Yc,"byteLength"),qc(Yc,"length")),Fc({target:"Object",stat:!0,forced:!Pc},{getOwnPropertyDescriptor:nF,defineProperty:rF}),dU.exports=function(e,t,n){var r=e.match(/\d+$/)[0]/8,i=e+(n?"Clamped":"")+"Array",a="get"+e,o="set"+e,l=sc[i],d=l,U=d&&d.prototype,c={},F=function(e,t){xc(e,t,{get:function(){return e=t,(n=_c(this)).view[a](e*r+n.byteOffset,!0);var e,n},set:function(e){return i=t,a=e,l=_c(this),n&&(a=(a=Mc(a))<0?0:a>255?255:255&a),void l.view[o](i*r+l.byteOffset,a,!0);var i,a,l},enumerable:!0})};Pc?uc&&(d=t((function(e,t,n,a){return hc(e,d,i),Ic(Jc(t)?eF(t)?void 0!==a?new l(t,yc(n,r),a):void 0!==n?new l(t,yc(n,r)):new l(t):jc(t)?zc(d,t):Tc.call(d,t):new l(fc(t)),e,d)})),Wc&&Wc(d,$c),vc(kc(l),(function(e){e in d||Sc(d,e,l[e])})),d.prototype=U):(d=t((function(e,t,n,a){hc(e,d,i);var o,l,U,c=0,s=0;if(Jc(t)){if(!eF(t))return jc(t)?zc(d,t):Tc.call(d,t);o=t,s=yc(n,r);var Q=t.byteLength;if(void 0===a){if(Q%r)throw Gc(Hc);if((l=Q-s)<0)throw Gc(Hc)}else if((l=Vc(a)*r)+s>Q)throw Gc(Hc);U=l/r}else U=fc(t),o=new Xc(l=U*r);for(Dc(e,{buffer:o,byteOffset:s,byteLength:l,length:U,view:new wc(o)});c<U;)F(e,c++)})),Wc&&Wc(d,$c),U=d.prototype=bc(Yc)),U.constructor!==d&&Sc(U,"constructor",d),Oc&&Sc(U,Oc,i),c[i]=d,Fc({global:!0,forced:d!=l,sham:!Pc},c),Ac in d||Sc(d,Ac,r),Ac in U||Sc(U,Ac,r),Nc(i)}):dU.exports=function(){};var iF=dU.exports;iF("Uint8",(function(e){return function(t,n,r){return e(this,t,n,r)}})),iF("Uint16",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var aF=J,oF=Ft,lF=lt,dF=Math.min,UF=[].copyWithin||function(e,t){var n=aF(this),r=lF(n.length),i=oF(e,r),a=oF(t,r),o=arguments.length>2?arguments[2]:void 0,l=dF((void 0===o?r:oF(o,r))-a,r-i),d=1;for(a<i&&i<a+l&&(d=-1,a+=l-1,i+=l-1);l-- >0;)a in n?n[i]=n[a]:delete n[i],i+=d,a+=d;return n},cF=UF,FF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("copyWithin",(function(e,t){return cF.call(FF(this),e,t,arguments.length>2?arguments[2]:void 0)}));var sF=lc.every,QF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("every",(function(e){return sF(QF(this),e,arguments.length>1?arguments[1]:void 0)}));var uF=qi,RF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("fill",(function(e){return uF.apply(RF(this),arguments)}));var BF=DU.aTypedArrayConstructor,hF=Oo,pF=lc.filter,SF=function(e,t){for(var n=hF(e,e.constructor),r=0,i=t.length,a=new(BF(n))(i);i>r;)a[r]=t[r++];return a},VF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("filter",(function(e){var t=pF(VF(this),e,arguments.length>1?arguments[1]:void 0);return SF(this,t)}));var fF=lc.find,yF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("find",(function(e){return fF(yF(this),e,arguments.length>1?arguments[1]:void 0)}));var mF=lc.findIndex,EF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("findIndex",(function(e){return mF(EF(this),e,arguments.length>1?arguments[1]:void 0)}));var ZF=lc.forEach,JF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("forEach",(function(e){ZF(JF(this),e,arguments.length>1?arguments[1]:void 0)}));var bF=Bt.includes,WF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("includes",(function(e){return bF(WF(this),e,arguments.length>1?arguments[1]:void 0)}));var kF=Bt.indexOf,TF=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("indexOf",(function(e){return kF(TF(this),e,arguments.length>1?arguments[1]:void 0)}));var vF=i,NF=DU,gF=Di,CF=xn("iterator"),IF=vF.Uint8Array,_F=gF.values,DF=gF.keys,xF=gF.entries,LF=NF.aTypedArray,MF=NF.exportTypedArrayMethod,GF=IF&&IF.prototype[CF],XF=!!GF&&("values"==GF.name||null==GF.name),wF=function(){return _F.call(LF(this))};MF("entries",(function(){return xF.call(LF(this))})),MF("keys",(function(){return DF.call(LF(this))})),MF("values",wF,!XF),MF(CF,wF,!XF);var PF=DU.aTypedArray,OF=[].join;(0,DU.exportTypedArrayMethod)("join",(function(e){return OF.apply(PF(this),arguments)}));var $F=o,YF=function(e,t){var n=[][e];return!!n&&$F((function(){n.call(null,t||function(){throw 1},1)}))},KF=f,jF=it,AF=lt,HF=YF,zF=Math.min,qF=[].lastIndexOf,es=!!qF&&1/[1].lastIndexOf(1,-0)<0,ts=HF("lastIndexOf"),ns=es||!ts?function(e){if(es)return qF.apply(this,arguments)||0;var t=KF(this),n=AF(t.length),r=n-1;for(arguments.length>1&&(r=zF(r,jF(arguments[1]))),r<0&&(r=n+r);r>=0;r--)if(r in t&&t[r]===e)return r||0;return-1}:qF,rs=ns,is=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("lastIndexOf",(function(e){return rs.apply(is(this),arguments)}));var as=lc.map,os=Oo,ls=DU.aTypedArray,ds=DU.aTypedArrayConstructor;(0,DU.exportTypedArrayMethod)("map",(function(e){return as(ls(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(ds(os(e,e.constructor)))(t)}))}));var Us=uo,cs=J,Fs=h,ss=lt,Qs=function(e){return function(t,n,r,i){Us(n);var a=cs(t),o=Fs(a),l=ss(a.length),d=e?l-1:0,U=e?-1:1;if(r<2)for(;;){if(d in o){i=o[d],d+=U;break}if(d+=U,e?d<0:l<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=U)d in o&&(i=n(i,o[d],d,a));return i}},us={left:Qs(!1),right:Qs(!0)},Rs=us.left,Bs=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("reduce",(function(e){return Rs(Bs(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var hs=us.right,ps=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("reduceRight",(function(e){return hs(ps(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var Ss=DU.aTypedArray,Vs=DU.exportTypedArrayMethod,fs=Math.floor;Vs("reverse",(function(){for(var e,t=this,n=Ss(t).length,r=fs(n/2),i=0;i<r;)e=t[i],t[i++]=t[--n],t[n]=e;return t}));var ys=lt,ms=YU,Es=J,Zs=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("set",(function(e){Zs(this);var t=ms(arguments.length>1?arguments[1]:void 0,1),n=this.length,r=Es(e),i=ys(r.length),a=0;if(i+t>n)throw RangeError("Wrong length");for(;a<i;)this[t+a]=r[a++]}),o((function(){new Int8Array(1).set({})})));var Js=Oo,bs=DU.aTypedArray,Ws=DU.aTypedArrayConstructor,ks=[].slice;(0,DU.exportTypedArrayMethod)("slice",(function(e,t){for(var n=ks.call(bs(this),e,t),r=Js(this,this.constructor),i=0,a=n.length,o=new(Ws(r))(a);a>i;)o[i]=n[i++];return o}),o((function(){new Int8Array(1).slice()})));var Ts=lc.some,vs=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("some",(function(e){return Ts(vs(this),e,arguments.length>1?arguments[1]:void 0)}));var Ns=DU.aTypedArray,gs=[].sort;(0,DU.exportTypedArrayMethod)("sort",(function(e){return gs.call(Ns(this),e)}));var Cs=lt,Is=Ft,_s=Oo,Ds=DU.aTypedArray;(0,DU.exportTypedArrayMethod)("subarray",(function(e,t){var n=Ds(this),r=n.length,i=Is(e,r);return new(_s(n,n.constructor))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,Cs((void 0===t?r:Is(t,r))-i))}));var xs=DU,Ls=o,Ms=i.Int8Array,Gs=xs.aTypedArray,Xs=xs.exportTypedArrayMethod,ws=[].toLocaleString,Ps=[].slice,Os=!!Ms&&Ls((function(){ws.call(new Ms(1))}));Xs("toLocaleString",(function(){return ws.apply(Os?Ps.call(Gs(this)):Gs(this),arguments)}),Ls((function(){return[1,2].toLocaleString()!=new Ms([1,2]).toLocaleString()}))||!Ls((function(){Ms.prototype.toLocaleString.call([1,2])})));var $s=DU.exportTypedArrayMethod,Ys=o,Ks=i.Uint8Array,js=Ks&&Ks.prototype||{},As=[].toString,Hs=[].join;Ys((function(){As.call({})}))&&(As=function(){return Hs.call(this)});var zs=js.toString!=As;$s("toString",As,zs);var qs={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},eQ=lc.forEach,tQ=YF("forEach")?[].forEach:function(e){return eQ(this,e,arguments.length>1?arguments[1]:void 0)},nQ=i,rQ=qs,iQ=tQ,aQ=ee;for(var oQ in rQ){var lQ=nQ[oQ],dQ=lQ&&lQ.prototype;if(dQ&&dQ.forEach!==iQ)try{aQ(dQ,"forEach",iQ)}catch(e){dQ.forEach=iQ}}var UQ=i,cQ=qs,FQ=Di,sQ=ee,QQ=xn,uQ=QQ("iterator"),RQ=QQ("toStringTag"),BQ=FQ.values;for(var hQ in cQ){var pQ=UQ[hQ],SQ=pQ&&pQ.prototype;if(SQ){if(SQ[uQ]!==BQ)try{sQ(SQ,uQ,BQ)}catch(e){SQ[uQ]=BQ}if(SQ[RQ]||sQ(SQ,RQ,hQ),cQ[hQ])for(var VQ in FQ)if(SQ[VQ]!==FQ[VQ])try{sQ(SQ,VQ,FQ[VQ])}catch(e){SQ[VQ]=FQ[VQ]}}}var fQ={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,r,a,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var l=new i(r,a||e,o),d=n?n+t:t;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],l]:e._events[d].push(l):(e._events[d]=l,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,a=r.length,o=new Array(a);i<a;i++)o[i]=r[i].fn;return o},l.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},l.prototype.emit=function(e,t,r,i,a,o){var l=n?n+e:e;if(!this._events[l])return!1;var d,U,c=this._events[l],F=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),F){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,i),!0;case 5:return c.fn.call(c.context,t,r,i,a),!0;case 6:return c.fn.call(c.context,t,r,i,a,o),!0}for(U=1,d=new Array(F-1);U<F;U++)d[U-1]=arguments[U];c.fn.apply(c.context,d)}else{var s,Q=c.length;for(U=0;U<Q;U++)switch(c[U].once&&this.removeListener(e,c[U].fn,void 0,!0),F){case 1:c[U].fn.call(c[U].context);break;case 2:c[U].fn.call(c[U].context,t);break;case 3:c[U].fn.call(c[U].context,t,r);break;case 4:c[U].fn.call(c[U].context,t,r,i);break;default:if(!d)for(s=1,d=new Array(F-1);s<F;s++)d[s-1]=arguments[s];c[U].fn.apply(c[U].context,d)}}return!0},l.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},l.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},l.prototype.removeListener=function(e,t,r,i){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var l=this._events[a];if(l.fn)l.fn!==t||i&&!l.once||r&&l.context!==r||o(this,a);else{for(var d=0,U=[],c=l.length;d<c;d++)(l[d].fn!==t||i&&!l[d].once||r&&l[d].context!==r)&&U.push(l[d]);U.length?this._events[a]=1===U.length?U[0]:U:o(this,a)}return this},l.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l}(fQ);var yQ=n(fQ.exports),mQ=jt,EQ=f,ZQ=[].join,JQ=h!=Object,bQ=YF("join",",");mQ({target:"Array",proto:!0,forced:JQ||!bQ},{join:function(e){return ZQ.call(EQ(this),void 0===e?",":e)}});var WQ=lc.map;jt({target:"Array",proto:!0,forced:!$n("map")},{map:function(e){return WQ(this,e,arguments.length>1?arguments[1]:void 0)}});var kQ=jt,TQ=y,vQ=Rn,NQ=Ft,gQ=lt,CQ=f,IQ=Sn,_Q=xn,DQ=$n("slice"),xQ=_Q("species"),LQ=[].slice,MQ=Math.max;kQ({target:"Array",proto:!0,forced:!DQ},{slice:function(e,t){var n,r,i,a=CQ(this),o=gQ(a.length),l=NQ(e,o),d=NQ(void 0===t?o:t,o);if(vQ(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!vQ(n.prototype)?TQ(n)&&null===(n=n[xQ])&&(n=void 0):n=void 0,n===Array||void 0===n))return LQ.call(a,l,d);for(r=new(void 0===n?Array:n)(MQ(d-l,0)),i=0;l<d;l++,i++)l in a&&IQ(r,i,a[l]);return r.length=i,r}});var GQ=p,XQ="[\t\n\v\f\r \u2028\u2029\ufeff]",wQ=RegExp("^"+XQ+XQ+"*"),PQ=RegExp(XQ+XQ+"*$"),OQ=function(e){return function(t){var n=String(GQ(t));return 1&e&&(n=n.replace(wQ,"")),2&e&&(n=n.replace(PQ,"")),n}},$Q={start:OQ(1),end:OQ(2),trim:OQ(3)},YQ=l,KQ=i,jQ=Gt,AQ=Ae,HQ=k,zQ=u,qQ=cc,eu=E,tu=o,nu=Tr,ru=tt.f,iu=a.f,au=P.f,ou=$Q.trim,lu="Number",du=KQ[lu],Uu=du.prototype,cu=zQ(nu(Uu))==lu,Fu=function(e){var t,n,r,i,a,o,l,d,U=eu(e,!1);if("string"==typeof U&&U.length>2)if(43===(t=(U=ou(U)).charCodeAt(0))||45===t){if(88===(n=U.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(U.charCodeAt(1)){case 66:case 98:r=2,i=49;break;case 79:case 111:r=8,i=55;break;default:return+U}for(o=(a=U.slice(2)).length,l=0;l<o;l++)if((d=a.charCodeAt(l))<48||d>i)return NaN;return parseInt(a,r)}return+U};if(jQ(lu,!du(" 0o1")||!du("0b1")||du("+0x1"))){for(var su,Qu=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof Qu&&(cu?tu((function(){Uu.valueOf.call(n)})):zQ(n)!=lu)?qQ(new du(Fu(t)),n,Qu):Fu(t)},uu=YQ?ru(du):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),Ru=0;uu.length>Ru;Ru++)HQ(du,su=uu[Ru])&&!HQ(Qu,su)&&au(Qu,su,iu(du,su));Qu.prototype=Uu,Uu.constructor=Qu,AQ(KQ,lu,Qu)}var Bu={},hu=o;function pu(e,t){return RegExp(e,t)}Bu.UNSUPPORTED_Y=hu((function(){var e=pu("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),Bu.BROKEN_CARET=hu((function(){var e=pu("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var Su,Vu,fu=Hd,yu=Bu,mu=Se,Eu=RegExp.prototype.exec,Zu=mu("native-string-replace",String.prototype.replace),Ju=Eu,bu=(Su=/a/,Vu=/b*/g,Eu.call(Su,"a"),Eu.call(Vu,"a"),0!==Su.lastIndex||0!==Vu.lastIndex),Wu=yu.UNSUPPORTED_Y||yu.BROKEN_CARET,ku=void 0!==/()??/.exec("")[1];(bu||ku||Wu)&&(Ju=function(e){var t,n,r,i,a=this,o=Wu&&a.sticky,l=fu.call(a),d=a.source,U=0,c=e;return o&&(-1===(l=l.replace("y","")).indexOf("g")&&(l+="g"),c=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(d="(?: "+d+")",c=" "+c,U++),n=new RegExp("^(?:"+d+")",l)),ku&&(n=new RegExp("^"+d+"$(?!\\s)",l)),bu&&(t=a.lastIndex),r=Eu.call(o?n:a,c),o?r?(r.input=r.input.slice(U),r[0]=r[0].slice(U),r.index=a.lastIndex,a.lastIndex+=r[0].length):a.lastIndex=0:bu&&r&&(a.lastIndex=a.global?r.index+r[0].length:t),ku&&r&&r.length>1&&Zu.call(r[0],n,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)})),r});var Tu=Ju;jt({target:"RegExp",proto:!0,forced:/./.exec!==Tu},{exec:Tu});var vu=Ae,Nu=Tu,gu=o,Cu=xn,Iu=ee,_u=Cu("species"),Du=RegExp.prototype,xu=!gu((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),Lu="$0"==="a".replace(/./,"$0"),Mu=Cu("replace"),Gu=!!/./[Mu]&&""===/./[Mu]("a","$0"),Xu=!gu((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),wu=function(e,t,n,r){var i=Cu(e),a=!gu((function(){var t={};return t[i]=function(){return 7},7!=""[e](t)})),o=a&&!gu((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[_u]=function(){return n},n.flags="",n[i]=/./[i]),n.exec=function(){return t=!0,null},n[i](""),!t}));if(!a||!o||"replace"===e&&(!xu||!Lu||Gu)||"split"===e&&!Xu){var l=/./[i],d=n(i,""[e],(function(e,t,n,r,i){var o=t.exec;return o===Nu||o===Du.exec?a&&!i?{done:!0,value:l.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),{REPLACE_KEEPS_$0:Lu,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Gu}),U=d[0],c=d[1];vu(String.prototype,e,U),vu(Du,i,2==t?function(e,t){return c.call(e,this,t)}:function(e){return c.call(e,this)})}r&&Iu(Du[i],"sham",!0)},Pu=it,Ou=p,$u=function(e){return function(t,n){var r,i,a=String(Ou(t)),o=Pu(n),l=a.length;return o<0||o>=l?e?"":void 0:(r=a.charCodeAt(o))<55296||r>56319||o+1===l||(i=a.charCodeAt(o+1))<56320||i>57343?e?a.charAt(o):r:e?a.slice(o,o+2):i-56320+(r-55296<<10)+65536}},Yu={codeAt:$u(!1),charAt:$u(!0)},Ku=Yu.charAt,ju=function(e,t,n){return t+(n?Ku(e,t).length:1)},Au=u,Hu=Tu,zu=function(e,t){var n=e.exec;if("function"==typeof n){var r=n.call(e,t);if("object"!=typeof r)throw TypeError("RegExp exec method returned something other than an Object or null");return r}if("RegExp"!==Au(e))throw TypeError("RegExp#exec called on incompatible receiver");return Hu.call(e,t)},qu=$,eR=lt,tR=p,nR=ju,rR=zu;wu("match",1,(function(e,t,n){return[function(t){var n=tR(this),r=null==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var i=qu(e),a=String(this);if(!i.global)return rR(i,a);var o=i.unicode;i.lastIndex=0;for(var l,d=[],U=0;null!==(l=rR(i,a));){var c=String(l[0]);d[U]=c,""===c&&(i.lastIndex=nR(a,eR(i.lastIndex),o)),U++}return 0===U?null:d}]}));var iR=J,aR=Math.floor,oR="".replace,lR=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,dR=/\$([$&'`]|\d{1,2})/g,UR=wu,cR=$,FR=lt,sR=it,QR=p,uR=ju,RR=function(e,t,n,r,i,a){var o=n+e.length,l=r.length,d=dR;return void 0!==i&&(i=iR(i),d=lR),oR.call(a,d,(function(a,d){var U;switch(d.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(o);case"<":U=i[d.slice(1,-1)];break;default:var c=+d;if(0===c)return a;if(c>l){var F=aR(c/10);return 0===F?a:F<=l?void 0===r[F-1]?d.charAt(1):r[F-1]+d.charAt(1):a}U=r[c-1]}return void 0===U?"":U}))},BR=zu,hR=Math.max,pR=Math.min;UR("replace",2,(function(e,t,n,r){var i=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=r.REPLACE_KEEPS_$0,o=i?"$":"$0";return[function(n,r){var i=QR(this),a=null==n?void 0:n[e];return void 0!==a?a.call(n,i,r):t.call(String(i),n,r)},function(e,r){if(!i&&a||"string"==typeof r&&-1===r.indexOf(o)){var l=n(t,e,this,r);if(l.done)return l.value}var d=cR(e),U=String(this),c="function"==typeof r;c||(r=String(r));var F=d.global;if(F){var s=d.unicode;d.lastIndex=0}for(var Q=[];;){var u=BR(d,U);if(null===u)break;if(Q.push(u),!F)break;""===String(u[0])&&(d.lastIndex=uR(U,FR(d.lastIndex),s))}for(var R,B="",h=0,p=0;p<Q.length;p++){u=Q[p];for(var S=String(u[0]),V=hR(pR(sR(u.index),U.length),0),f=[],y=1;y<u.length;y++)f.push(void 0===(R=u[y])?R:String(R));var m=u.groups;if(c){var E=[S].concat(f,V,U);void 0!==m&&E.push(m);var Z=String(r.apply(void 0,E))}else Z=RR(S,U,V,f,m,r);V>=h&&(B+=U.slice(h,V)+Z,h=V+S.length)}return B+U.slice(h)}]}));var SR=DU.aTypedArrayConstructor;(0,DU.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(SR(this))(t);t>e;)n[e]=arguments[e++];return n}),PU);var VR=function(e){var t=0;for(t=0;0!==e;t++)e&=e-1;return t};function fR(e,t){return e^t}function yR(e,t,n){var r=e+VR(t)+n;return String.fromCharCode(255&r)}function mR(e,t,n){var r=e-VR(t)-n;return String.fromCharCode(255&r)}function ER(e){for(var t,n=e.length,r=0;r<n&&r!==n-1;r+=2)t=e[r],e[r]=e[r+1],e[r+1]=t;return e}function ZR(e,t){var n=85,r=250;ER(e);for(var i=0;i<e.length;i++){var a=e[i].charCodeAt(0),o=0===t?yR:mR;i%2==1?n=a=fR(n,o(a+r,i,21).charCodeAt(0)):r=a=fR(r,o(a+n,i,21).charCodeAt(0)),e[i]=String.fromCharCode(a)}return ER(e),e}function JR(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=function(e,t){var n,r=(e[0].charCodeAt(0)^e[1].charCodeAt(0)^e[2].charCodeAt(0))-"0".charCodeAt(0),i=t-r-1,a=new Array(r);for(n=r;n>0;n--)a[r-n]=String.fromCharCode(e[t-r-2].charCodeAt(0)^e[t-r-1].charCodeAt(0)^e[t-n].charCodeAt(0));return{convertKey:e.substring(1,i+1).split(""),convertLen:i,method:a.join(""),methodLen:r}}(e,t=t||e.length),a=i.convertKey,o=i.convertLen;switch(i.method){case"11":case"22":case"appdevice":case"webdevice":a=function(e,t,n){for(var r,i=85,a=250,o=0;o<t;o++){var l=e[o].charCodeAt(0);o%2==1?(r=i^l,i=l):(r=a^l,a=l),e[o]=0===n?mR(r,o,21):yR(r,o,21)}return e}(a,o,r);break;case"app_v2":case"web_v2":a=function(e,t){t=t||e.length;var n=85,r=250;ER(e);for(var i=0;i<t;i++){var a=e[i].charCodeAt(0),o=void 0,l=void 0;i%2==1?(l=fR(n,a),n=a,o=r):(l=fR(r,a),r=a,o=n);var d=yR(l,i,21).charCodeAt(0)-o;d<0&&(d+=256),e[i]=String.fromCharCode(d)}return ER(e),e}(a,o)}var l=o-((n=a[0])>="0"&&n<="9"?n.charCodeAt(0)-"0".charCodeAt(0):n>="a"&&n<="z"?n.charCodeAt(0)-"a".charCodeAt(0)+10:255)-1,d=new Array(l+1);d[l]="";var U=0;for(U=0;U<l;U++)d[U]=a[U+1];return d.join("")}var bR=tn((function e(){var t,n;qt(this,e);var r=new Promise((function(e,r){t=e,n=r}));return r.resolve=function(e){t(e),r.state="fulfilled"},r.reject=function(e){n(e),r.state="rejected",r.isBreak="DESTROYED"===e},r.state="pending",r}),[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]);function WR(e){var t=e||{},n=t.url,r=t.method,i=void 0===r?"GET":r,a=t.type,o=void 0===a?"arraybuffer":a,l=t.data,d=void 0===l?{}:l;return new Promise((function(e,t){var r=new window.XMLHttpRequest,a=i.toUpperCase(),l=[];if(Object.keys(d).map((function(e){l.push("k=".concat(d[e]))})),"GET"===a){var U="";U=n.indexOf("?")<0?"".concat(n,"?").concat(l.join("&")):(null==l?void 0:l.length)>0?"".concat(n,"&").concat(l.join("&")):n,r.open(a,U),o&&(r.responseType=o),r.send()}else{if("POST"!==a)throw new Error("xhr ".concat(a," is not supported"));r.open(a,n,!0),o&&(r.responseType=o),r.setRequestHeader("Content-Type","application/json"),r.send(JSON.stringify(d))}r.onload=function(){200===r.status||206===r.status?e(r):t(r)},r.onerror=function(){t(r)}}))}var kR,TR,vR,NR,gR,CR,IR,_R,DR=l,xR=P.f,LR=Function.prototype,MR=LR.toString,GR=/^\s*function ([^ (]*)/,XR="name";function wR(e){return PR.apply(this,arguments)}function PR(){return PR=Ht(ln().mark((function e(t){var n,r,i=arguments;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(i.length>1&&void 0!==i[1])||i[1],r=i.length>2&&void 0!==i[2]?i[2]:["encrypt","decrypt"],e.abrupt("return",new Promise((function(e,i){var a;"undefined"!=typeof crypto&&null!==(a=crypto)&&void 0!==a&&a.subtle?crypto.subtle.generateKey(t,n,r).then((function(t){e(t)})).catch((function(e){i(e)})):i(new Error(TR.WebCryptoNotSupport.msg))})));case 3:case"end":return e.stop()}}),e)}))),PR.apply(this,arguments)}function OR(){if("object"!==("undefined"==typeof crypto?"undefined":cn(crypto))||"[object crypto]"!==Object.prototype.toString.call(crypto).toLowerCase()||void 0===crypto.subtle)throw new vR(TR.WebCryptoNotSupport.code,TR.WebCryptoNotSupport.msg);return!0}function $R(e){for(var t=window.atob(e),n=new Uint8Array(t.length),r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n.buffer}function YR(e){return KR.apply(this,arguments)}function KR(){return(KR=Ht(ln().mark((function e(t){var n,r,i,a,o;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.data,r=t.privateKey,i=$R(n),OR(),e.prev=3,e.next=6,crypto.subtle.decrypt({name:"RSA-OAEP"},r,i);case 6:a=e.sent,e.next=12;break;case 9:throw e.prev=9,e.t0=e.catch(3),new vR(TR.PrivateKeyDecryptFail.code,"".concat(TR.PrivateKeyDecryptFail.msg,": ").concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||(null===e.t0||void 0===e.t0?void 0:e.t0.name)));case 12:return o=(new TextDecoder).decode(a),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,null,[[3,9]])})))).apply(this,arguments)}function jR(e){for(var t="",n=0;n<e.length;n+=16e3){var r=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,r)}return t}DR&&!(XR in LR)&&xR(LR,XR,{configurable:!0,get:function(){try{return MR.call(this).match(GR)[1]}catch(e){return""}}}),function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),U=2*parseInt(e.slice(32,40),16);for(i=40;i<U+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var c=U+40,F=parseInt(e.slice(c,c+4),16);for(c+=4,i=0;i<F;++i){var s=r(e,c);c+=2*s[0];for(var Q="",u=0;u<s[1];++u){var R=r(e,c);Q+=String.fromCharCode(a^R[1]),c+=2*R[0]}l.push(Q)}t.p=null,function e(t,n,r,i,a){var d,U,c,F,s,Q=-1,u=[],R=[0,null],B=null,h=[n];for(U=Math.min(n.length,r),c=0;c<U;++c)h.push(n[c]);h.p=i;for(var p=[];;)try{switch(o[t++]){case 37:u[++Q]=!1;break;case 60:u[++Q]=null;break;case 12:d=o[t++],u[++Q]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],u[++Q]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=l[d];break;case 67:u[++Q]=void 0;break;case 32:u[++Q]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,Q=Q-d+1,U=u.slice(Q,Q+d),u[Q]=U;break;case 65:u[++Q]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],u[Q][U]=c;break;case 48:for(U=o[t++],c=o[t++],F=h;U>0;--U)F=F.p;u[++Q]=F[c];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],u[Q]=u[Q][U];break;case 57:U=u[Q--],u[Q]=u[Q][U];break;case 52:for(U=o[t++],c=o[t++],F=h;U>0;--U)F=F.p;F[c]=u[Q--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],F=u[Q--],c[U]=F;break;case 35:U=u[Q--],c=u[Q--],F=u[Q--],c[U]=F;break;case 45:for(U=o[t++],c=o[t++],F=h,F=h;U>0;--U)F=F.p;u[++Q]=F,u[++Q]=c;break;case 51:U=u[Q--],u[Q]-=U;break;case 9:U=u[Q--],F=(c=u[Q--])[U]++,u[++Q]=F;break;case 8:U=u[Q--],u[Q]=u[Q]===U;break;case 0:U=u[Q--],u[Q]=u[Q]<U;break;case 44:U=u[Q--],u[Q]=u[Q]>U;break;case 68:u[Q]=!u[Q];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?--Q:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?t+=d:--Q;break;case 69:U=u[Q--],(c=u[Q--])[U]=u[Q];break;case 1:U=u[Q--],u[Q]=u[Q]instanceof U;break;case 26:u[Q]=void 0;break;case 7:u[Q]=typeof u[Q];break;case 20:d=o[t++],U=u[Q--],(c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[U,d,h],c._u=e,u[++Q]=c;break;case 13:d=o[t++],U=u[Q--],(F=[c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=h,c._v=[U,d,F],c._u=e,u[++Q]=c;break;case 40:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=p[p.length-1])[1]=t+d;break;case 58:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=p[p.length-1])&&!U[1]?(U[0]=3,U.push(t)):p.push([1,0,t]),t+=d;break;case 33:throw U=u[Q--];case 62:if(c=(U=p.pop())[0],F=R[0],1===c)t=U[1];else if(0===c)if(0===F)t=U[1];else{if(1!==F)throw R[1];if(!B)return R[1];t=B[1],a=B[2],h=B[3],p=B[4],u[++Q]=R[1],R=[0,null],B=B[0]}else t=U[2],U[0]=0,p.push(U);break;case 24:for(U=u[Q--],c=null;F=p.pop();)if(2===F[0]||3===F[0]){c=F;break}if(c)R=[1,U],t=c[2],c[0]=0,p.push(c);else{if(!B)return U;t=B[1],a=B[2],h=B[3],p=B[4],u[++Q]=U,R=[0,null],B=B[0]}break;case 50:Q-=d=o[t++],c=u.slice(Q+1,Q+d+1),U=u[Q--],F=u[Q--],U._u===e?(U=U._v,B=[B,t,a,h,p],t=U[0],null==F&&(F=function(){return this}()),a=F,(h=[c].concat(c)).length=Math.min(U[1],d)+1,h.p=U[2],p=[]):(s=U.apply(F,c),u[++Q]=s);break;case 53:for(d=o[t++],F=[void 0],s=d;s>0;--s)F[s]=u[Q--];c=u[Q--],s=new(U=Function.bind.apply(c,F)),u[++Q]=s;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=u[Q--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,U=u[Q--],u[Q]===U&&(--Q,t+=d);break;case 19:--Q;break;case 2:U=u[Q],u[++Q]=U;break;default:throw new Error("ioe")}}catch(e){for(R=[0,null];(d=p.pop())&&!d[0];);if(!d){e:for(;B;){for(U=B[4];d=U.pop();)if(d[0])break e;B=B[0]}if(!B)throw e;t=B[1],a=B[2],h=B[3],p=B[4],B=B[0]}1===(U=d[0])?(t=d[2],d[0]=0,p.push(d),u[++Q]=e):2===U?(t=d[2],d[0]=0,p.push(d),R=[3,e]):(t=d[3],d[0]=2,p.push(d),u[++Q]=e)}}(d,[],0,t,n)}("504B01018bd91e220000055c231fdb8a000005f60f00003000010f0001230f00023000010f0003230f00043000010f000523300001184b0000004314023400023c30020c3000023000013202133c30020f3000023201183c30030e203001023202133c30030d2030010230000229000132033400033000013000033b00063000031830021135003400043c300212410f000c27000d0f000e27000f300003270010410f00112700120f00132700144130000127001529000002260016300002320127001729000127001827001932010226001a4b000000da14013201022600244b0000015e1400320113300004183000013c081200073000010c001a083800060c001a1d000630000126001b340002300002070f001c0838000f3003010226001d300002320134000230000238002130000226001e30010139300102393400033001040226001f3000033201131d00203c30031b0f00203001010f00213001020f00223205133001040226002332001343183c30031b0f00203001010f00213001020f002432051330010402260023320013431830010202260025203000003202183c30020a3c3002083200022600264b000001b80d063201320134010230010202260025203000003202183c3004083200022600274b000001cf0d013001003202180c013801683000012600283000010f0029450c002400320c052400800c0824008f0c092400930c0c2400b90c0d2400bd0c0f2400d20c162401160c172401210f002a24011b131d01213002011200030f002b34020130020238000b0c093000013b00281d01043002013700033002033700033002044438000b0c083000013b00281d00e60c053000013b00283c30061730020130020330020432031830000126002c3402020c093000013b00281d00ba3006000f002d3501213002050f0004084438000b0c0d3000013b00281d009b0c0c3000013b00283c30061930020230020632021830000126002c34020230020238000b0c0f3000013b00281d006c3006000f002e3501213c3006103c300602300202320132013402073002034438000b0c163000013b00281d003f414127002f34020830020730020826002f30020323300001022600300f0031300208320218300001022600300f0031300207320218300001022600323200181dfe93431830010302260025203000003202183c30020a3c3002083200022600264b000003760d023201320134010330010302260025203000003202183c3004083200022600274b0000038d0d013001003202180c0138009a3000012600283000010f0029450c002400190c0224003e0c042400580c0624006c0f002a240066131d006c30020144120004300202444438000b0c023000013b00281d0052300001022600300f00313002013202180c043000013b00283c3006134130020127001930020226003327003332011830000126002c340201300001022600300f0031300201320218300001022600323200181dff6143183a00043400023e280074300203070f0034083800060f00341d00093c30020930020332010f00350837000b300203260036070f003708380044300203260038300204022600390c000c610c730c6d0c010c000c000c00320835013400013000013002032600380138001330020326003a300001350130020326003a01183e25183001013c083800223a00043400063e28001830020537000e3002050226003b0f003c320144443401013e30000026003d3400033002063000030c012c3800093000030c01331d00020c0035013400040c0134000530000530000300380019300000300005393000043000050c0133232d000509131dffdd30010137000630020726003e3700253002072d00024526003e022600253000020f003f30000129000202260016300004320132021343184b0000006e14033401174b0000018014063401184b0000018e14003400024b0000033e14023401194b0000034c14003400034b0000042e140034011a4b000004ae140134011b3c3400013c4b0000000014013001141200014132013401144141151c212700060f000727000827000941151c222700060f000a27000827000b3401153c4b0000002214013c30010b30010032013201340116431800401080d480d380c680c980c380c680d580c380f880c280c980c480d580de80d780d31080f480f380e680e980e380e680f580e380f880e280e980e480f580fe80f780f30f80d780d580ce80d180c680d380c280f880c280c980c480d580de80d780d30f80f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f31780d780d580ce80d180c680d380c280f880c280c980c480d580de80d780d380f880d280d780c080d580c680c380c21780f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f380f880f280f780e080f580e680e380e20480c480c880c380c22580f080c280c5808780c480d580de80d780d380c880c080d580c680d780cf80de808780e680f780ee808780ce80d4808780c980c880d3808780d480d280d780d780c880d580d380c280c30380ca80d480c01380f080c280c580e480d580de80d780d380c880e980c880d380f480d280d780d780c880d580d31d80e380c280c480d580de80d780d380ce80c880c9808780c580de808780f580f480e6808a80e880e680e280f7808780c180c680ce80cb80c280c31580f780d580ce80d180c680d380c280ec80c280de80e380c280c480d580de80d780d380e180c680ce80cb0480cd80d480c880c90480d380de80d780c20480f780e880f480f30680ca80c280d380cf80c880c30380d280d580cb02809580950880c380d580ca80f880d380de80d780c2038095808980970780d180c280d580d480ce80c880c90380d180ce80c30680c480c880c980c480c680d30480cc80ce80c380d40f80cb80ce80c480c280c980d480c280f880d580c280d680d280c280d480d30480c380c680d380c60480d380cf80c280c90880d580c280d480d780c880c980d480c20680d480d380d580ce80c980c00580d780c680d580d480c20d80d780cb80c680de80f880cb80ce80c480c280c980d480c280d40780d580c280d480c880cb80d180c21b80c080c280d380f480c280c480d580c280d380ec80c280de80e580de80ec80ce80c3808780c280c980c3808b808780d180ce80c3808b05808b808780cc80ce80c30d80d580c280d480d780c880c980d480c2808780c980d280cb80cb0680d580c280cd80c280c480d30580c480c680d380c480cf0580c680d780d780cb80de0480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c3000480d480c280c980d33580d480cf80c880d280cb80c3808780d780d580c880d180ce80c380c2808780d480c280c480d580c280d380ec80c280de808780c880d5808780d180ce80c3808b808780cc80c280de80ee80c3808780c680c980c3808780cb80ce80c480c280c980d480c280f280d580cb1880c080c280d380ec80c280de80f180c680cb80d280c2809d808780d480cc808780ce80d4808780c280ca80d780d380de0980c480cb80c280c680d580ec80c280de80d40680c680c580d580d280d780d30680d580c280d380d280d580c90480d480d380c880d70a80d780d580ce80d180c680d380c280ec80c280de0980d280c980c380c280c180ce80c980c280c30680c880c580cd80c280c480d30b80ce80c980d480d380c680c980d380ce80c680d380c20880c180d280c980c480d380ce80c880c90680ea80c880c380d280cb80c20280c880c10880ee80c980d480d380c680c980c480c20780c080c280d380ee80d380c280ca0c80d480c280c480d580c280d380cc80c280de80cb80c880c00680cb80c280c980c080d380cf0380cb80c880c00d80fc80ff80e080f480c280c480d580c280d380cc80c280de80fa",{0:Error,1:JSON,get 2(){return atob},3:WebAssembly,4:Uint8Array,get 5(){return localStorage},6:Array,get 7(){return console},get 8(){return ln},get 9(){return cn},get 10(){return Ht},get 11(){return Fn},get 12(){return an},get 13(){return zt},get 14(){return qt},get 15(){return tn},get 16(){return JR},get 17(){return bR},get 18(){return WR},get 19(){return YR},get 20(){return kR},set 20(e){kR=e},get 21(){return TR},set 21(e){TR=e},get 22(){return vR},set 22(e){vR=e},get 23(){return NR},set 23(e){NR=e},get 24(){return gR},set 24(e){gR=e},get 25(){return CR},set 25(e){CR=e},get 26(){return IR},set 26(e){IR=e},get 27(){return _R},set 27(e){_R=e}},void 0);var AR,HR,zR,qR,eB,tB,nB,rB,iB=(AR="vodTimestampSalt",HR=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},zR=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},qR=function(e){return HR(AR).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(HR).map(qR).map(zR).join("")}),aB=(nB="vodTimestampSalt",rB=function(e){return(t=nB,t.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,t){return e^t}),e);var t},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(rB).map((function(e){return String.fromCharCode(e)})).join("")}),oB={str2hex:function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},Base64ToHex:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var r=[],i=0;i<n.length;i++)r.push(n.charCodeAt(i));return new Uint8Array(r).buffer}for(var a="",o=0;o<n.length;o++)a+="0".concat(n.charCodeAt(o).toString(16)).substr(-2);return a},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===t.indexOf(e)){var r=parseInt(aB(t.slice(e.length))),i=(new Date).getTime()-r;if(i>0&&i<=1e3*n)return!0;_R("UnionInfo timestamp expire!!!")}else _R("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(iB((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,r=0;r<e.length;r++)n=e[r],t.push(String.fromCharCode(n));return t.join("")},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},fromCharCode:jR,fromHex:function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=window.parseInt(e.substr(n,2),16);return t},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),r=new Uint8Array(n.length),i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r.buffer},toBase64:function(e,t){var n=jR(e);t=void 0===t||t;var r=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?r:r.replace(/=*$/,"")}};e.EVENT_EME=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),U=2*parseInt(e.slice(32,40),16);for(i=40;i<U+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var c=U+40,F=parseInt(e.slice(c,c+4),16);for(c+=4,i=0;i<F;++i){var s=r(e,c);c+=2*s[0];for(var Q="",u=0;u<s[1];++u){var R=r(e,c);Q+=String.fromCharCode(a^R[1]),c+=2*R[0]}l.push(Q)}t.p=null,function e(t,n,r,i,a){var d,U,c,F,s,Q=-1,u=[],R=null,B=[n];for(U=Math.min(n.length,r),c=0;c<U;++c)B.push(n[c]);B.p=i;for(var h=[];;)try{switch(o[t++]){case 37:u[++Q]=!1;break;case 60:u[++Q]=null;break;case 12:d=o[t++],u[++Q]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],u[++Q]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=l[d];break;case 67:u[++Q]=void 0;break;case 32:u[++Q]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,Q=Q-d+1,U=u.slice(Q,Q+d),u[Q]=U;break;case 65:u[++Q]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],u[Q][U]=c;break;case 48:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;u[++Q]=F[c];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],u[Q]=u[Q][U];break;case 57:U=u[Q--],u[Q]=u[Q][U];break;case 52:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;F[c]=u[Q--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],F=u[Q--],c[U]=F;break;case 35:U=u[Q--],c=u[Q--],F=u[Q--],c[U]=F;break;case 45:for(U=o[t++],c=o[t++],F=B,F=B;U>0;--U)F=F.p;u[++Q]=F,u[++Q]=c;break;case 9:U=u[Q--],F=(c=u[Q--])[U]++,u[++Q]=F;break;case 8:U=u[Q--],u[Q]=u[Q]===U;break;case 54:U=u[Q--],u[Q]=u[Q]!==U;break;case 68:u[Q]=!u[Q];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?--Q:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?t+=d:--Q;break;case 69:U=u[Q--],(c=u[Q--])[U]=u[Q];break;case 26:u[Q]=void 0;break;case 25:U=u[Q--],F=delete(c=u[Q--])[U],u[++Q]=F;break;case 20:d=o[t++],U=u[Q--],(c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[U,d,B],c._u=e,u[++Q]=c;break;case 13:d=o[t++],U=u[Q--],(F=[c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=B,c._v=[U,d,F],c._u=e,u[++Q]=c;break;case 33:throw U=u[Q--];case 24:for(U=u[Q--],c=null;F=h.pop();)if(2===F[0]||3===F[0]){c=F;break}if(c)t=c[2],c[0]=0,h.push(c);else{if(!R)return U;t=R[1],a=R[2],B=R[3],h=R[4],u[++Q]=U,R=R[0]}break;case 50:Q-=d=o[t++],c=u.slice(Q+1,Q+d+1),U=u[Q--],F=u[Q--],U._u===e?(U=U._v,R=[R,t,a,B,h],t=U[0],null==F&&(F=function(){return this}()),a=F,(B=[c].concat(c)).length=Math.min(U[1],d)+1,B.p=U[2],h=[]):(s=U.apply(F,c),u[++Q]=s);break;case 53:for(d=o[t++],F=[void 0],s=d;s>0;--s)F[s]=u[Q--];c=u[Q--],s=new(U=Function.bind.apply(c,F)),u[++Q]=s;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=u[Q--])||(t+=d);break;case 19:--Q;break;case 2:U=u[Q],u[++Q]=U;break;default:throw new Error("ioe")}}catch(e){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;R;){for(U=R[4];d=U.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],B=R[3],h=R[4],R=R[0]}1===(U=d[0])?(t=d[2],d[0]=0,h.push(d),u[++Q]=e):2===U?(t=d[2],d[0]=0,h.push(d)):(t=d[3],d[0]=2,h.push(d),u[++Q]=e)}}(d,[],0,t,n)}("504B01018bd91e2200000fbc231fdb8a00000ff20f00013000010f0002230f00033000010f0004230f00053000010f0005230f00063000010f000623300001184b0000012d14013400023c30020f3000023000013202133c300211300002410f002d27002f4b000008be0d02270033410f003427002f4b0000097f0d01270033410f003527002f4b00000a120d00270033410f002927002f4b00000a500d01270033410f002427002f4b00000a700d01270033410f004b27002f4b00000b6a0d00270033410f001a27002f4b00000b6c0d03270033410f005227002f4b00000c020d01270033410f005327002f4b00000c140d01270033410f005627002f4b00000cb60d01270033410f002527002f4b00000ce40d01270033410f007a27002f4b00000f100d01270033410f008227002f4b00000fad0d0027003329000d3202183c300312203001023202133c3003102030010232023400020f00073000023b0008413000023b00090c001a3000023b000a3003153000023b00003c3000023b000b0c003000023b000c30030035000226000d32000226000e0c2432013000023b000f4b000001c914013000023b002c2900003000023b001b3000020226002d3000013201133000020226002e0f000330000226002c3202133000021830010234000230000226000b3400033001023400043000034438000243183001022600080f0010083800330f001134000530040102260012410f0013290001270014320134000630040230041402260015300006320135013400071d054f3001022600080f0016083800b90f001734000530000137000b30040230000126001835011200993004020c000c000c000c430c700c730c730c680c000c000c000c001500ed1500ef15008b1500a90c791500d60c4a1500ce1500a31500c80c271500dc1500d50c1d0c211500ed0c000c000c000c230c080c010c120c100c330c330c330c330c330c330c330c330c330c330c330c330c000c000c000c000c1a0c0a0c690c6e0c740c650c720c740c720c750c730c740c220c010c2a29004335013400071d04893001022600080f00190838047c0f001734000530000137000b300402300001260018350112045f3004020c000c000c020c260c700c730c730c680c000c000c000c0015009a0c041500f00c791500980c400c421500861500ab1500921500e60c5b1500e01500880c5f1500950c000c000c020c060c060c020c000c000c010c000c010c001500fc0c010c3c0c000c570c000c520c000c4d0c000c480c000c450c000c410c000c440c000c450c000c520c000c200c000c780c000c6d0c000c6c0c000c6e0c000c730c000c3d0c000c220c000c680c000c740c000c740c000c700c000c3a0c000c2f0c000c2f0c000c730c000c630c000c680c000c650c000c6d0c000c610c000c730c000c2e0c000c6d0c000c690c000c630c000c720c000c6f0c000c730c000c6f0c000c660c000c740c000c2e0c000c630c000c6f0c000c6d0c000c2f0c000c440c000c520c000c4d0c000c2f0c000c320c000c300c000c300c000c370c000c2f0c000c300c000c330c000c2f0c000c500c000c6c0c000c610c000c790c000c520c000c650c000c610c000c640c000c790c000c480c000c650c000c610c000c640c000c650c000c720c000c220c000c200c000c760c000c650c000c720c000c730c000c690c000c6f0c000c6e0c000c3d0c000c220c000c340c000c2e0c000c300c000c2e0c000c300c000c2e0c000c300c000c220c000c3e0c000c3c0c000c440c000c410c000c540c000c410c000c3e0c000c3c0c000c500c000c520c000c4f0c000c540c000c450c000c430c000c540c000c490c000c4e0c000c460c000c4f0c000c3e0c000c3c0c000c4b0c000c450c000c590c000c4c0c000c450c000c4e0c000c3e0c000c310c000c360c000c3c0c000c2f0c000c4b0c000c450c000c590c000c4c0c000c450c000c4e0c000c3e0c000c3c0c000c410c000c4c0c000c470c000c490c000c440c000c3e0c000c410c000c450c000c530c000c430c000c540c000c520c000c3c0c000c2f0c000c410c000c4c0c000c470c000c490c000c440c000c3e0c000c3c0c000c2f0c000c500c000c520c000c4f0c000c540c000c450c000c430c000c540c000c490c000c4e0c000c460c000c4f0c000c3e0c000c3c0c000c4b0c000c490c000c440c000c3e0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c4d0c000c7a0c000c410c000c410c000c410c000c410c000c410c000c410c000c3d0c000c3d0c000c3c0c000c2f0c000c4b0c000c490c000c440c000c3e0c000c3c0c000c430c000c480c000c450c000c430c000c4b0c000c530c000c550c000c4d0c000c3e0c000c410c000c310c000c350c000c420c000c590c000c570c000c440c000c340c000c710c000c730c000c490c000c3d0c000c3c0c000c2f0c000c430c000c480c000c450c000c430c000c4b0c000c530c000c550c000c4d0c000c3e0c000c3c0c000c2f0c000c440c000c410c000c540c000c410c000c3e0c000c3c0c000c2f0c000c570c000c520c000c4d0c000c480c000c450c000c410c000c440c000c450c000c520c000c3e0c0029022635013400073000040226001a30000330000426000830000426001b32030226001c4b000007b914004b000008a2140032020226001c4b000008af14004b000008b11400320213431830010326001d2d0001453c081200073000010c001a083800060c001a1d00093000010226001e3200340002300002443800093005030f001f350121300103260020022600213000023201133001042600080f00100838002930040130010426000f39340003300002022600220f00233001040226002430000332013202131d00553001042600080f00160838001f300002022600220f00233001042600250226002630010432013202131d00293001042600080f00190838001c300002022600220f002330010426002502260026300104320132021330000202260027300105300107260028320218300104022600290f002a3201184318300104022600290f002b3201183000013c363700073000010c001a363700063000012600303800150f0010203b00083000012600303003012026000f233000013c363700073000010c001a3637000630000126003038000a0f0010203b00081d005b3000013c363700073000010c001a363700063000012600313800140f0016203b0008300001260031203b00091d002c3000013c363700073000010c001a363700063000012600323800110f0019203b0008300001260032203b0009300002370008300002200f000045134318202600003004150838007f202600080f00100837000e3003012026000f392d0002453c363700073000020c001a3637000830000220260000393800293003012026000f3920260000393003012026000f39300001233003012026000f3930041519131d002520260009202600003938001920260009300415392026000930000123202600093004151913300001203b00004318410f00110f0036290002270037410f003827003929000127003a410f003b270039410f003c270039410f003d27003929000327003e290001203b001b4318300404022600010f003f30000132021320022600400f00013000013202134318203400024b00000a7c140118290000340002290000340003300505022600093001013201022600414b00000aea1401320113413000022700093400043005010226001230000432013400053000012600470226004830051402260049300005320132010226001c4b00000b5b14004b00000b5d1400320213431830020130000139340002300614022600423000013201340003300614022600423000023201340004410f00432700443006140226004530000325320227000030061402260045300004253202270046340005300102022600213000053201133001030226002130000526000032011343184318300202022600290f004a3201184318203400042026000a12000630000126001d3800112026000a1200093004060226004c3200183004070226004d30000230000332020226001c4b00000bd114014b00000bdb140032020226001c4b00000be814014b00000bf514003202203b000a2026000a183000010226004e320018300104022600290f004f32011830010102260050300001320118300104022600290f0051320118300001203b000b2900003000013b002043180f005434000230040826005538008f200226005630000132013400033004082600553500340004300004022600573000030f00583202340005300005380015300005022600593000020f005a32020c00391d00013c340006300006380015300006022600593000020f005b32020c00391d00013c340007300007380015300007022600593000020f005c32020c00391d00013c3400083000083800023c183000011830040926005d0226005e3c300402300001350132023400023c30040a3c30040b30000232013201340003300003182034000230040c35003400033000030226005f0f0060202600092600613202134b00000d1d14003000033b00783000030226007932001343183001032600620c04083801163001012600233400013001032600633400023001022600080f0019083800333005010226006430010326006332013400020f0007022600653000022600660f0067320202260065300002260068320134000230000244380043300102022600400f0006410f0007022600653001022600092600610f006932020226006530010326006a0f006b32020226006530010326006c320127006d320213431830050c35003400033001012600473000033b006e0f006f3000033b0070253000033b00713000030226005f0f00723c30050930000232013202133001022600080f001908380010300003022600730f00740f00583202134b00000e4114003000033b0078300003022600793001020226007a300001320132011343183001032600620c04083800c130010326006a1500c83638003d300202022600400f0006410f0007022600653001020f007532020226006530010326006a0f006b32020226006530010326006c320127006d3202134318300202022600400f00054130020226000c27006d3202133002020f000c09133002022600080f0019083800153002020226005330010326006332013400011d000e300602300103260063350134000130010326006e02260048300001320102260076300604260001022600263006040f007732023201134318202600080f0019083800893c34000230040d350034000330040e300001350134000430040926005d0226005e3c3000043202340005300003022600573000050f007b32023400063000060226007c0f007d32010c00393800333000060226007c0f007e32010c003926007f0c003926008034000730000738000f3004080226008130000732013400021d0004300001183000021830040230000135011820022600833200133c203b000b43180f00003401153c4b000000001401300116120001413201340116413400013c4b0000002c14013001133201340002300002340117431800840380cc80ce80c30580c280d580d580c880d50580e280f580f580e880f50980c280c980c480d580de80d780d380c280c30980e280e980e480f580fe80f780f380e280e31380e480e380ea80f880eb80ee80e480e280e980f480e280f880f480f280e480e480e280f480f41180e480e380ea80f880eb80ee80e480e280e980f480e280f880e280f580f580e880f5000980cc80c280de80f480de80d480d380c280ca0480cc80c280de80d40d80c280c980d480d280d580c280f780d580c880ca80ce80d480c20580d180ce80c380c280c80b80cb80ce80c480c280c980d480c280f480d380c280d70780c080c280d380f380ce80ca80c20880d380c880f480d380d580ce80c980c00f80c480cb80c280c680d580ec80c280de80f480d380c880d580c280ee80c30f80c880d580c0808980d08094808980c480cb80c280c680d580cc80c280de0680cc80c280de80ce80c380d40980d480d380d580ce80c980c080ce80c180de2080978096809580948093809280918090809f809e80c680c580c480c380c280c180978096809580948093809280918090809f809e80c680c580c480c380c280c10480cc80ce80c380d40680d380c880f280f380e1809f1280c480c880ca808980d080ce80c380c280d180ce80c980c2808980c680cb80d780cf80c60480c480c280c980c40880ce80c980ce80d380e380c680d380c61780c480c880ca808980ca80ce80c480d580c880d480c880c180d3808980d780cb80c680de80d580c280c680c380de1680c280c980d480d280d580c280ea80c280c380ce80c680ec80c280de80d480e480d580c280c680d380c280c30780c880d780d380ce80c880c980d40480d380cf80c280c90980ca80c280c380ce80c680ec80c280de80d40d80c480d580c280c680d380c280f480c280d480d480ce80c880c91980e180c680ce80cb80c280c3808780d380c8808780c480d580c280c680d380c2808780d480c280d480d480ce80c880c980890880d480c280d480d480ce80c880c980d40480d780d280d480cf1080c680c380c380e280d180c280c980d380eb80ce80d480d380c280c980c280d50780ca80c280d480d480c680c080c21180d280d780c380c680d380c280f480c280d480d480ce80c880c980e180d280c980c41380cb80ce80c480c280c980d480c280f580c280d680d280c280d480d380f580c280c680c380de0480c580ce80c980c30f80c080c280c980c280d580c680d380c280f580c280d680d280c280d480d30680c580d280c180c180c280d50480c580c680ce80cb2f808780c180c680ce80cb80c280c3808780d380c8808780c280c980d480d280d580c2808780ea80c280c380ce80c680ec80c280de80d4808780c880c9808780ef80f380ea80eb80ea80c280c380ce80c680e280cb80c280ca80c280c980d31c808780e180c680ce80cb80c280c3808780d380c8808780c080c280c980c280d580c680d380c2808780d580c280d680d280c280d480d380890d80c280c980c480d580de80d780d380ef80c680c980c380cb80c20980d280d780c380c680d380c280e380d580ca0280c880c90380cc80c280de0980c480cb80c280c680d580ec80c280de80d40880d080ce80c380c280d180ce80c980c20980d780cb80c680de80d580c280c680c380de0580d180c680cb80d280c20980d280d780c380c680d380c280ec80ce80c30a80d480c280d380e880d780d380ce80c880c980d40480d080c280c580ca0d80ce80c980ce80d380e380c680d380c680f380de80d780c280d41d80c680d280c380ce80c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580ca80d7809380c68089809380978089809580850b80c480c880c980d380c280c980d380f380de80d780c21180c680d280c380ce80c880e480c680d780c680c580ce80cb80ce80d380ce80c280d41f80d180ce80c380c280c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580c680d180c4809680898093809580c48097809680c280852480d180ce80c380c280c8808880ca80d78093809c808780c480c880c380c280c480d4809a808580cf80c280d180968089809680898091808980eb8096809580978089809e809780851880d180ce80c380c280c8808880d080c280c580ca809c808780c480c880c380c280c480d4809a808580d180d7809f80851180d180ce80c380c280c880e480c680d780c680c580ce80cb80ce80d380ce80c280d40580fc80e280ea80e280fa0480c280ca80ce80d30780c180c880d580e280c680c480cf0780c180d580c880ca80ef80c280df0380c880c480d30380cc80d380de0880d380c880e580c680d480c2809180930180cc0680d380c680d580c080c280d30680d280d780c380c680d380c21380f480d380d580ce80c980c080f380c880e680d580d580c680de80e580d280c180c180c280d51e808780ea80c280c380ce80c680ec80c280de80f480c280d480d480ce80c880c9808780d280d780c380c680d380c2808780c180c680ce80cb80c280c30a80cc80c280de80d480e480cf80c680c980c080c20780d580c280d480c880cb80d180c21b80d580c280d680d280c280d480d380ea80c280c380ce80c680ec80c280de80f480de80d480d380c280ca80e680c480c480c280d480d40f80c480d580c280c680d380c280ea80c280c380ce80c680ec80c280de80d425808780e180c680ce80cb80c280c3808780d380c8808780d580c280d680d280c280d480d3808780cc80c280de808780d480de80d480d380c280ca808780c680c480c480c280d480d480890c80d480c280d380ea80c280c380ce80c680ec80c280de80d422808780c180c680ce80cb80c280c3808780d380c8808780c480d580c280c680d380c2808780ea80c280c380ce80c680ec80c280de80d4808780c880c580cd80c280c480d30880d480c280d380d280d780e280ea80e21380d780c680d580d480c280f480c280d580d180c280d580f580c280d480d780c880c980d480c22a80cf80d380d380d780d4809d8088808880d480c480cf80c280ca80c680d4808980df80ca80cb80d480c880c680d7808980c880d580c0808880d480c880c680d7808880c280c980d180c280cb80c880d780c280880980e380e880ea80f780c680d580d480c280d50c80d280ce80c980d380f380c880f480d380d580ce80c980c00f80d780c680d580d480c280e180d580c880ca80f480d380d580ce80c980c00880d380c280df80d3808880df80ca80cb1680c080c280d380e280cb80c280ca80c280c980d380d480e580de80f380c680c080e980c680ca80c280e980f40880e280c980d180c280cb80c880d780c20480e580c880c380de0580e180c680d280cb80d30c80c180d580c880ca80e480cf80c680d580e480c880c380c20580c680d780d780cb80de0480c880d780c280c90380e080e280f30980d480c280d580d180c280d580f280f580eb0a80d580c280c680c380de80f480d380c680d380c20880d580c280d480d780c880c980d480c20580d780c680d580d480c20680c480c880c980c480c680d31580cb80ce80c480c280c980d480c280e680c480d680d280ce80d480ce80d380ce80c880c980f280d580cb12809880e280df80d780d580c280d480d480f780cb80c680de80f380c880cc80c280c9809a0580d380c880cc80c280c923808780d580c280d680d280c280d480d3808780c180c680ce80cb80c280c38086808780ad808780878087808780878087808780878087808780d480d380c680d380d280d4809d0680d480d380c680d380d280d40c808780d480d380c680d380d280d480f380c280df80d3809d0a80d480d380c680d380d280d480f380c280df80d30480c380c680d380c60a80cc80c280de80f480c280d480d480ce80c880c90b80c680d580d580c680de80c580d280c180c180c280d50c80d580c280d480d780c880c980d480c280f380de80d780c20f80d080ce80d380cf80e480d580c280c380c280c980d380ce80c680cb80d40480f780e880f480f31080d480c280d380f580c280d680d280c280d480d380ef80c280c680c380c280d50c80e480c880c980d380c280c980d3808a80d380de80d780c227808780d580c280d680d280c280d480d3808780c180c680ce80cb80c280c38086808780ad8087808780878087808780878087808780878087808780878087808780d480d380c680d380d280d4809d0580c480c680d380c480cf0f80d280d780c380c680d380c2808f808e808780c180c680ce80cb80c280c31280c880c980d580c280c680c380de80d480d380c680d380c280c480cf80c680c980c080c20480d480c280c980c31c80c080c280d380eb80ce80c480c280c980d480c280f580c280d680d280c280d480d380e180d580c880ca80ea80c280d480d480c680c080c20f80c680d780d780cb80ce80c480c680d380ce80c880c9808880df80ca80cb1480c080c280d380e280cb80c280ca80c280c980d380d480e580de80f380c680c080e980c680ca80c21380f780cb80c680de80f580c280c680c380de80ec80c280de80ea80c280d480d480c680c080c20980e480cf80c680cb80cb80c280c980c080c20a80c480cf80ce80cb80c380e980c880c380c280d40980c980c880c380c280f180c680cb80d280c20480c680d380c880c50780c380c280d480d380d580c880de1280d580c280ca80c880d180c280e680cb80cb80eb80ce80d480d380c280c980c280d580d4",{0:Date,1:JSON,2:Uint8Array,3:Error,get 4(){return console},5:Object,6:Promise,get 7(){return navigator},get 8(){return window},9:String,10:decodeURIComponent,get 11(){return escape},get 12(){return XMLHttpRequest},get 13(){return DOMParser},14:Uint16Array,get 15(){return an},get 16(){return zt},get 17(){return tn},get 18(){return qt},get 19(){return yQ},get 20(){return oB},get 21(){return eB},set 21(e){eB=e},get 22(){return e.EVENT_EME},set 22(t){e.EVENT_EME=t},get 23(){return tB},set 23(e){tB=e}},void 0);var lB,dB,UB=tB,cB=y,FB=u,sB=xn("match"),QB=l,uB=i,RB=Gt,BB=cc,hB=P.f,pB=tt.f,SB=function(e){var t;return cB(e)&&(void 0!==(t=e[sB])?!!t:"RegExp"==FB(e))},VB=Hd,fB=Bu,yB=Ae,mB=o,EB=Ge.enforce,ZB=Ha,JB=xn("match"),bB=uB.RegExp,WB=bB.prototype,kB=/a/g,TB=/a/g,vB=new bB(kB)!==kB,NB=fB.UNSUPPORTED_Y;if(QB&&RB("RegExp",!vB||NB||mB((function(){return TB[JB]=!1,bB(kB)!=kB||bB(TB)==TB||"/a/i"!=bB(kB,"i")})))){for(var gB=function(e,t){var n,r=this instanceof gB,i=SB(e),a=void 0===t;if(!r&&i&&e.constructor===gB&&a)return e;vB?i&&!a&&(e=e.source):e instanceof gB&&(a&&(t=VB.call(e)),e=e.source),NB&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var o=BB(vB?new bB(e,t):bB(e,t),r?this:WB,gB);return NB&&n&&(EB(o).sticky=!0),o},CB=function(e){e in gB||hB(gB,e,{configurable:!0,get:function(){return bB[e]},set:function(t){bB[e]=t}})},IB=pB(bB),_B=0;IB.length>_B;)CB(IB[_B++]);WB.constructor=gB,gB.prototype=WB,yB(uB,"RegExp",gB)}ZB("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),U=2*parseInt(e.slice(32,40),16);for(i=40;i<U+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var c=U+40,F=parseInt(e.slice(c,c+4),16);for(c+=4,i=0;i<F;++i){var s=r(e,c);c+=2*s[0];for(var Q="",u=0;u<s[1];++u){var R=r(e,c);Q+=String.fromCharCode(a^R[1]),c+=2*R[0]}l.push(Q)}t.p=null,function e(t,n,r,i,a){var d,U,c,F,s,Q=-1,u=[],R=null,B=[n];for(U=Math.min(n.length,r),c=0;c<U;++c)B.push(n[c]);B.p=i;for(var h=[];;)try{switch(o[t++]){case 63:u[++Q]=!0;break;case 37:u[++Q]=!1;break;case 60:u[++Q]=null;break;case 12:d=o[t++],u[++Q]=d<<24>>24;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],u[++Q]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=l[d];break;case 67:u[++Q]=void 0;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,Q=Q-d+1,U=u.slice(Q,Q+d),u[Q]=U;break;case 48:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;u[++Q]=F[c];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],u[Q]=u[Q][U];break;case 57:U=u[Q--],u[Q]=u[Q][U];break;case 52:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;F[c]=u[Q--];break;case 45:for(U=o[t++],c=o[t++],F=B,F=B;U>0;--U)F=F.p;u[++Q]=F,u[++Q]=c;break;case 28:u[Q]=-u[Q];break;case 8:U=u[Q--],u[Q]=u[Q]===U;break;case 54:U=u[Q--],u[Q]=u[Q]!==U;break;case 44:U=u[Q--],u[Q]=u[Q]>U;break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?--Q:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?t+=d:--Q;break;case 69:U=u[Q--],(c=u[Q--])[U]=u[Q];break;case 26:u[Q]=void 0;break;case 7:u[Q]=typeof u[Q];break;case 20:d=o[t++],U=u[Q--],(c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[U,d,B],c._u=e,u[++Q]=c;break;case 24:for(U=u[Q--],c=null;F=h.pop();)if(2===F[0]||3===F[0]){c=F;break}if(c)t=c[2],c[0]=0,h.push(c);else{if(!R)return U;t=R[1],a=R[2],B=R[3],h=R[4],u[++Q]=U,R=R[0]}break;case 50:Q-=d=o[t++],c=u.slice(Q+1,Q+d+1),U=u[Q--],F=u[Q--],U._u===e?(U=U._v,R=[R,t,a,B,h],t=U[0],null==F&&(F=function(){return this}()),a=F,(B=[c].concat(c)).length=Math.min(U[1],d)+1,B.p=U[2],h=[]):(s=U.apply(F,c),u[++Q]=s);break;case 53:for(d=o[t++],F=[void 0],s=d;s>0;--s)F[s]=u[Q--];c=u[Q--],s=new(U=Function.bind.apply(c,F)),u[++Q]=s;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=u[Q--])||(t+=d);break;case 19:--Q;break;case 2:U=u[Q],u[++Q]=U;break;default:throw new Error("ioe")}}catch(e){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;R;){for(U=R[4];d=U.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],B=R[3],h=R[4],R=R[0]}1===(U=d[0])?(t=d[2],d[0]=0,h.push(d),u[++Q]=e):2===U?(t=d[2],d[0]=0,h.push(d)):(t=d[3],d[0]=2,h.push(d),u[++Q]=e)}}(d,[],0,t,n)}("504B01018bd91e22000002f7231fdb8a000003433f340002300202022600023000013201380019300001022600034b0000009d140230000232023400021d006d3c3002030f0004022600053c3002043001013201022600063002030f00070f000835020f00093202022600063002030f000a0f000835020f000b32020f000c32023201340003300001070f000d083800183000030226000e3001020226000f300001320132011d000125340002300002183000013700093c30030c3000023201183000002600100c002c3700083000000c003943363800093000000c00391d000125340001300205070f001136380007300205181d003730000137000c3002060f001239070f00113638000b3002060f001239181d00173002060f001339070f0011363800083002060f0013391843183000002600100c002c3700083000000c003943363800093000000c00391d000125340001300207070f001136380007300207181d001d30000137000c3002060f001439070f0011363800083002060f0014391843183000002600100c002c3700083000000c003943363800093000000c00391d0001253400013c30020d30000132013400023c30020e300001320134000325340004300002370003300003380062290000340005300003380020300005022600153000033201133000050226001530000326000026001632011330000238002030000502260015300002320113300005022600153000022600002600173201133c30020c30000532013800043f34000430000418290000340001300208070f0011363800a930000102260015300208260000260018320113300001022600153002092600002600193201133000010226001530020826000026001a32011330020a070f00113637004530020b2d0002453c081200073000020c001a0812000c30000226001b2d0002453c081200073000020c001a083800060c001a1d000c3000020226001c0f001d32010c011c0838000d3000010226001530020a3201133000010226001530020b26001e3201133000012600100c00083800043f1d00093c30020c3000013201184b00000000140134010c4b000000ad140034010d4b0000011c140034010e4b00000171140034010f4b0000022314003401103001002600002600013400013001012600002600013400024318001f0980d780d580c880d380c880d380de80d780c20880d380c880f480d380d580ce80c980c00780ce80d480e680d580d580c680de0680d580c280c380d280c480c20180f90680c480c880c980c480c680d30780d580c280d780cb80c680c480c21480fc8089808d808c809880f9808380dc80da808f808e80db80fc80fb80fa80fb808880fb80fb80fa0180c00380fb808380812f80d380c880f480d380d580ce80c980c080db808f80c180d280c980c480d380ce80c880c9808e8089808d8098808f8098809a80fb80fb80fb808f808e80db808780c180c880d580878089808c8098808f8098809a80fb80fb80fb80fa808e05808380968089808d80980180830880c180d280c980c480d380ce80c880c90480d380c280d480d30480c480c680cb80cb0680cb80c280c980c080d380cf0980d280c980c380c280c180ce80c980c280c31280ea80c680c980c680c080c280c380ea80c280c380ce80c680f480c880d280d580c480c21180f080c280c580ec80ce80d380ea80c280c380ce80c680f480c880d280d580c480c21380ea80c680c980c680c080c280c380f480c880d280d580c480c280e580d280c180c180c280d50480d780d280d480cf0c80c680d780d780c280c980c380e580d280c180c180c280d50f80c680c380c380f480c880d280d580c480c280e580d280c180c180c280d50680d280d780c380c680d380c20d80c480d580c280c680d380c280f480c280d480d480ce80c880c91080c680c380c380e280d180c280c980d380eb80ce80d480d380c280c980c280d50980d280d480c280d580e680c080c280c980d30780ce80c980c380c280df80e880c10880e280cb80c280c480d380d580c880c91b80d580c280d680d280c280d480d380ea80c280c380ce80c680ec80c280de80f480de80d480d380c280ca80e680c480c480c280d480d4",{0:Object,1:Function,2:Array,3:RegExp,4:String,get 5(){return"undefined"!=typeof MediaSource?MediaSource:void 0},get 6(){return self},get 7(){return"undefined"!=typeof SourceBuffer?SourceBuffer:void 0},get 8(){return"undefined"!=typeof MediaKeySession?MediaKeySession:void 0},get 9(){return MediaKeys},get 10(){return"undefined"!=typeof atob?atob:void 0},get 11(){return navigator},get 12(){return e.isNativeFunction},set 12(t){e.isNativeFunction=t},get 13(){return lB},set 13(e){lB=e},get 14(){return dB},set 14(e){dB=e},get 15(){return e.checkMSEValid},set 15(t){e.checkMSEValid=t},get 16(){return e.checkEMEValid},set 16(t){e.checkEMEValid=t}},void 0);var DB={exports:{}},xB=!o((function(){return Object.isExtensible(Object.preventExtensions({}))})),LB=Je,MB=y,GB=k,XB=P.f,wB=xB,PB=ye("meta"),OB=0,$B=Object.isExtensible||function(){return!0},YB=function(e){XB(e,PB,{value:{objectID:"O"+ ++OB,weakData:{}}})},KB=DB.exports={REQUIRED:!1,fastKey:function(e,t){if(!MB(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!GB(e,PB)){if(!$B(e))return"F";if(!t)return"E";YB(e)}return e[PB].objectID},getWeakData:function(e,t){if(!GB(e,PB)){if(!$B(e))return!0;if(!t)return!1;YB(e)}return e[PB].weakData},onFreeze:function(e){return wB&&KB.REQUIRED&&$B(e)&&!GB(e,PB)&&YB(e),e}};LB[PB]=!0;var jB=DB.exports,AB=jt,HB=i,zB=Gt,qB=Ae,eh=jB,th=go,nh=Gi,rh=y,ih=o,ah=Go,oh=ni,lh=cc,dh=P.f,Uh=Tr,ch=Mi,Fh=Vo,sh=Gi,Qh=go,uh=Wi,Rh=Ha,Bh=l,hh=jB.fastKey,ph=Ge.set,Sh=Ge.getterFor,Vh={getConstructor:function(e,t,n,r){var i=e((function(e,a){sh(e,i,t),ph(e,{type:t,index:Uh(null),first:void 0,last:void 0,size:0}),Bh||(e.size=0),null!=a&&Qh(a,e[r],{that:e,AS_ENTRIES:n})})),a=Sh(t),o=function(e,t,n){var r,i,o=a(e),d=l(e,t);return d?d.value=n:(o.last=d={index:i=hh(t,!0),key:t,value:n,previous:r=o.last,next:void 0,removed:!1},o.first||(o.first=d),r&&(r.next=d),Bh?o.size++:e.size++,"F"!==i&&(o.index[i]=d)),e},l=function(e,t){var n,r=a(e),i=hh(t);if("F"!==i)return r.index[i];for(n=r.first;n;n=n.next)if(n.key==t)return n};return ch(i.prototype,{clear:function(){for(var e=a(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,Bh?e.size=0:this.size=0},delete:function(e){var t=this,n=a(t),r=l(t,e);if(r){var i=r.next,o=r.previous;delete n.index[r.index],r.removed=!0,o&&(o.next=i),i&&(i.previous=o),n.first==r&&(n.first=i),n.last==r&&(n.last=o),Bh?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=a(this),r=Fh(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!l(this,e)}}),ch(i.prototype,n?{get:function(e){var t=l(this,e);return t&&t.value},set:function(e,t){return o(this,0===e?0:e,t)}}:{add:function(e){return o(this,e=0===e?0:e,e)}}),Bh&&dh(i.prototype,"size",{get:function(){return a(this).size}}),i},setStrong:function(e,t,n){var r=t+" Iterator",i=Sh(t),a=Sh(r);uh(e,t,(function(e,t){ph(this,{type:r,target:e,state:i(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),Rh(t)}};!function(e,t,n){var r=-1!==e.indexOf("Map"),i=-1!==e.indexOf("Weak"),a=r?"set":"add",o=HB[e],l=o&&o.prototype,d=o,U={},c=function(e){var t=l[e];qB(l,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(i&&!rh(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return i&&!rh(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(i&&!rh(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(zB(e,"function"!=typeof o||!(i||l.forEach&&!ih((function(){(new o).entries().next()})))))d=n.getConstructor(t,e,r,a),eh.REQUIRED=!0;else if(zB(e,!0)){var F=new d,s=F[a](i?{}:-0,1)!=F,Q=ih((function(){F.has(1)})),u=ah((function(e){new o(e)})),R=!i&&ih((function(){for(var e=new o,t=5;t--;)e[a](t,t);return!e.has(-0)}));u||((d=t((function(t,n){nh(t,d,e);var i=lh(new o,t,d);return null!=n&&th(n,i[a],{that:i,AS_ENTRIES:r}),i}))).prototype=l,l.constructor=d),(Q||R)&&(c("delete"),c("has"),r&&c("get")),(R||s)&&c(a),i&&l.clear&&delete l.clear}U[e]=d,AB({global:!0,forced:d!=o},U),oh(d,e),i||n.setStrong(d,e,r)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Vh);var fh=Yu.charAt,yh=Ge,mh=Wi,Eh="String Iterator",Zh=yh.set,Jh=yh.getterFor(Eh);mh(String,"String",(function(e){Zh(this,{type:Eh,string:String(e),index:0})}),(function(){var e,t=Jh(this),n=t.string,r=t.index;return r>=n.length?{value:void 0,done:!0}:(e=fh(n,r),t.index+=e.length,{value:e,done:!1})}));var bh=$,Wh=uo,kh=function(){for(var e,t=bh(this),n=Wh(t.delete),r=!0,i=0,a=arguments.length;i<a;i++)e=n.call(t,arguments[i]),r=r&&e;return!!r};jt({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return kh.apply(this,arguments)}});var Th=function(e){return Map.prototype.entries.call(e)},vh=$,Nh=Vo,gh=Th,Ch=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=vh(this),n=gh(t),r=Nh(e,arguments.length>1?arguments[1]:void 0,3);return!Ch(n,(function(e,n,i){if(!r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Ih=et,_h=$,Dh=uo,xh=Vo,Lh=Oo,Mh=Th,Gh=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=_h(this),n=Mh(t),r=xh(e,arguments.length>1?arguments[1]:void 0,3),i=new(Lh(t,Ih("Map"))),a=Dh(i.set);return Gh(n,(function(e,n){r(n,e,t)&&a.call(i,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var Xh=$,wh=Vo,Ph=Th,Oh=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=Xh(this),n=Ph(t),r=wh(e,arguments.length>1?arguments[1]:void 0,3);return Oh(n,(function(e,n,i){if(r(n,e,t))return i(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var $h=$,Yh=Vo,Kh=Th,jh=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=$h(this),n=Kh(t),r=Yh(e,arguments.length>1?arguments[1]:void 0,3);return jh(n,(function(e,n,i){if(r(n,e,t))return i(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Ah=$,Hh=Th,zh=function(e,t){return e===t||e!=e&&t!=t},qh=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return qh(Hh(Ah(this)),(function(t,n,r){if(zh(n,e))return r()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ep=$,tp=Th,np=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return np(tp(ep(this)),(function(t,n,r){if(n===e)return r(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var rp=et,ip=$,ap=uo,op=Vo,lp=Oo,dp=Th,Up=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=ip(this),n=dp(t),r=op(e,arguments.length>1?arguments[1]:void 0,3),i=new(lp(t,rp("Map"))),a=ap(i.set);return Up(n,(function(e,n){a.call(i,r(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var cp=et,Fp=$,sp=uo,Qp=Vo,up=Oo,Rp=Th,Bp=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=Fp(this),n=Rp(t),r=Qp(e,arguments.length>1?arguments[1]:void 0,3),i=new(up(t,cp("Map"))),a=sp(i.set);return Bp(n,(function(e,n){a.call(i,e,r(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),i}});var hp=$,pp=uo,Sp=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=hp(this),n=pp(t.set),r=0;r<arguments.length;)Sp(arguments[r++],n,{that:t,AS_ENTRIES:!0});return t}});var Vp=$,fp=uo,yp=Th,mp=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=Vp(this),n=yp(t),r=arguments.length<2,i=r?void 0:arguments[1];if(fp(e),mp(n,(function(n,a){r?(r=!1,i=a):i=e(i,a,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),r)throw TypeError("Reduce of empty map with no initial value");return i}});var Ep=$,Zp=Vo,Jp=Th,bp=go;jt({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=Ep(this),n=Jp(t),r=Zp(e,arguments.length>1?arguments[1]:void 0,3);return bp(n,(function(e,n,i){if(r(n,e,t))return i()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Wp=$,kp=uo;jt({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=Wp(this),r=arguments.length;kp(t);var i=n.has(e);if(!i&&r<3)throw TypeError("Updating absent value");var a=i?n.get(e):kp(r>2?arguments[2]:void 0)(e,n);return n.set(e,t(a,e,n)),n}});var Tp={exports:{}};Tp.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function n(e,t){var n=e[0],r=e[1],i=e[2],a=e[3];r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[0]-680876936|0)<<7|n>>>25)+r|0)&r|~n&i)+t[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&r)+t[2]+606105819|0)<<17|i>>>15)+a|0)&a|~i&n)+t[3]-1044525330|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[4]-176418897|0)<<7|n>>>25)+r|0)&r|~n&i)+t[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&r)+t[6]-1473231341|0)<<17|i>>>15)+a|0)&a|~i&n)+t[7]-45705983|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[8]+1770035416|0)<<7|n>>>25)+r|0)&r|~n&i)+t[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&r)+t[10]-42063|0)<<17|i>>>15)+a|0)&a|~i&n)+t[11]-1990404162|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&i|~r&a)+t[12]+1804603682|0)<<7|n>>>25)+r|0)&r|~n&i)+t[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&r)+t[14]-1502002290|0)<<17|i>>>15)+a|0)&a|~i&n)+t[15]+1236535329|0)<<22|r>>>10)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[1]-165796510|0)<<5|n>>>27)+r|0)&i|r&~i)+t[6]-1069501632|0)<<9|a>>>23)+n|0)&r|n&~r)+t[11]+643717713|0)<<14|i>>>18)+a|0)&n|a&~n)+t[0]-373897302|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[5]-701558691|0)<<5|n>>>27)+r|0)&i|r&~i)+t[10]+38016083|0)<<9|a>>>23)+n|0)&r|n&~r)+t[15]-660478335|0)<<14|i>>>18)+a|0)&n|a&~n)+t[4]-405537848|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[9]+568446438|0)<<5|n>>>27)+r|0)&i|r&~i)+t[14]-1019803690|0)<<9|a>>>23)+n|0)&r|n&~r)+t[3]-187363961|0)<<14|i>>>18)+a|0)&n|a&~n)+t[8]+1163531501|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r&a|i&~a)+t[13]-1444681467|0)<<5|n>>>27)+r|0)&i|r&~i)+t[2]-51403784|0)<<9|a>>>23)+n|0)&r|n&~r)+t[7]+1735328473|0)<<14|i>>>18)+a|0)&n|a&~n)+t[12]-1926607734|0)<<20|r>>>12)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[5]-378558|0)<<4|n>>>28)+r|0)^r^i)+t[8]-2022574463|0)<<11|a>>>21)+n|0)^n^r)+t[11]+1839030562|0)<<16|i>>>16)+a|0)^a^n)+t[14]-35309556|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[1]-1530992060|0)<<4|n>>>28)+r|0)^r^i)+t[4]+1272893353|0)<<11|a>>>21)+n|0)^n^r)+t[7]-155497632|0)<<16|i>>>16)+a|0)^a^n)+t[10]-1094730640|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[13]+681279174|0)<<4|n>>>28)+r|0)^r^i)+t[0]-358537222|0)<<11|a>>>21)+n|0)^n^r)+t[3]-722521979|0)<<16|i>>>16)+a|0)^a^n)+t[6]+76029189|0)<<23|r>>>9)+i|0,r=((r+=((i=((i+=((a=((a+=((n=((n+=(r^i^a)+t[9]-640364487|0)<<4|n>>>28)+r|0)^r^i)+t[12]-421815835|0)<<11|a>>>21)+n|0)^n^r)+t[15]+530742520|0)<<16|i>>>16)+a|0)^a^n)+t[2]-995338651|0)<<23|r>>>9)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[0]-198630844|0)<<6|n>>>26)+r|0)|~i))+t[7]+1126891415|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[14]-1416354905|0)<<15|i>>>17)+a|0)|~n))+t[5]-57434055|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[12]+1700485571|0)<<6|n>>>26)+r|0)|~i))+t[3]-1894986606|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[10]-1051523|0)<<15|i>>>17)+a|0)|~n))+t[1]-2054922799|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[8]+1873313359|0)<<6|n>>>26)+r|0)|~i))+t[15]-30611744|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[6]-1560198380|0)<<15|i>>>17)+a|0)|~n))+t[13]+1309151649|0)<<21|r>>>11)+i|0,r=((r+=((a=((a+=(r^((n=((n+=(i^(r|~a))+t[4]-145523070|0)<<6|n>>>26)+r|0)|~i))+t[11]-1120210379|0)<<10|a>>>22)+n|0)^((i=((i+=(n^(a|~r))+t[2]+718787259|0)<<15|i>>>17)+a|0)|~n))+t[9]-343485551|0)<<21|r>>>11)+i|0,e[0]=n+e[0]|0,e[1]=r+e[1]|0,e[2]=i+e[2]|0,e[3]=a+e[3]|0}function r(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function i(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function a(e){var t,i,a,o,l,d,U=e.length,c=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=U;t+=64)n(c,r(e.substring(t-64,t)));for(i=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<i;t+=1)a[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(c,a),t=0;t<16;t+=1)a[t]=0;return o=(o=8*U).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(o[2],16),d=parseInt(o[1],16)||0,a[14]=l,a[15]=d,n(c,a),c}function o(e){var t,r,a,o,l,d,U=e.length,c=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=U;t+=64)n(c,i(e.subarray(t-64,t)));for(r=(e=t-64<U?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<r;t+=1)a[t>>2]|=e[t]<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(c,a),t=0;t<16;t+=1)a[t]=0;return o=(o=8*U).toString(16).match(/(.*?)(.{0,8})$/),l=parseInt(o[2],16),d=parseInt(o[1],16)||0,a[14]=l,a[15]=d,n(c,a),c}function l(e){var n,r="";for(n=0;n<4;n+=1)r+=t[e>>8*n+4&15]+t[e>>8*n&15];return r}function d(e){var t;for(t=0;t<e.length;t+=1)e[t]=l(e[t]);return e.join("")}function U(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function c(e,t){var n,r=e.length,i=new ArrayBuffer(r),a=new Uint8Array(i);for(n=0;n<r;n+=1)a[n]=e.charCodeAt(n);return t?a:i}function F(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function s(e,t,n){var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e)),r.set(new Uint8Array(t),e.byteLength),n?r:r.buffer}function Q(e){var t,n=[],r=e.length;for(t=0;t<r-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function u(){this.reset()}return d(a("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,r){var i,a,o,l,d=this.byteLength,U=t(n,d),c=d;return r!==e&&(c=t(r,d)),U>c?new ArrayBuffer(0):(i=c-U,a=new ArrayBuffer(i),o=new Uint8Array(a),l=new Uint8Array(this,U,i),o.set(l),a)}}(),u.prototype.append=function(e){return this.appendBinary(U(e)),this},u.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,i=this._buff.length;for(t=64;t<=i;t+=64)n(this._hash,r(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},u.prototype.end=function(e){var t,n,r=this._buff,i=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<i;t+=1)a[t>>2]|=r.charCodeAt(t)<<(t%4<<3);return this._finish(a,i),n=d(this._hash),e&&(n=Q(n)),this.reset(),n},u.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},u.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},u.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},u.prototype._finish=function(e,t){var r,i,a,o=t;if(e[o>>2]|=128<<(o%4<<3),o>55)for(n(this._hash,e),o=0;o<16;o+=1)e[o]=0;r=(r=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(r[2],16),a=parseInt(r[1],16)||0,e[14]=i,e[15]=a,n(this._hash,e)},u.hash=function(e,t){return u.hashBinary(U(e),t)},u.hashBinary=function(e,t){var n=d(a(e));return t?Q(n):n},u.ArrayBuffer=function(){this.reset()},u.ArrayBuffer.prototype.append=function(e){var t,r=s(this._buff.buffer,e,!0),a=r.length;for(this._length+=e.byteLength,t=64;t<=a;t+=64)n(this._hash,i(r.subarray(t-64,t)));return this._buff=t-64<a?new Uint8Array(r.buffer.slice(t-64)):new Uint8Array(0),this},u.ArrayBuffer.prototype.end=function(e){var t,n,r=this._buff,i=r.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<i;t+=1)a[t>>2]|=r[t]<<(t%4<<3);return this._finish(a,i),n=d(this._hash),e&&(n=Q(n)),this.reset(),n},u.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},u.ArrayBuffer.prototype.getState=function(){var e=u.prototype.getState.call(this);return e.buff=F(e.buff),e},u.ArrayBuffer.prototype.setState=function(e){return e.buff=c(e.buff,!0),u.prototype.setState.call(this,e)},u.ArrayBuffer.prototype.destroy=u.prototype.destroy,u.ArrayBuffer.prototype._finish=u.prototype._finish,u.ArrayBuffer.hash=function(e,t){var n=d(o(new Uint8Array(e)));return t?Q(n):n},u}();var vp=n(Tp.exports),Np="KekHelper",gp="-----BEGIN PUBLIC KEY-----",Cp="-----END PUBLIC KEY-----";function Ip(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function _p(e){return new Uint8Array(e.split("").map((function(e){return e.charCodeAt(0)})))}function Dp(e,t,n){return xp.apply(this,arguments)}function xp(){return(xp=Ht(ln().mark((function e(t,n,r){var i,a,o,l;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=_p(t),e.next=3,crypto.subtle.importKey("pkcs8",i,{name:r.name,hash:r.hash},!0,["decrypt"]);case 3:return a=e.sent,o=_p(n),e.next=7,crypto.subtle.importKey("spki",o,{name:r.name,hash:r.hash},!0,["encrypt"]);case 7:return l=e.sent,e.abrupt("return",{privateKey:a,publicKey:l});case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Lp(){return Mp.apply(this,arguments)}function Mp(){return(Mp=Ht(ln().mark((function e(){var t,n,r,i,a,o,l,d,U,c,F,s,Q,u,R,B,h,p;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t={name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},n=null,r="",i="",a="",l=/kek=localstorage/gi.test("object"===("undefined"==typeof location?"undefined":cn(location))?location.href:""),e.prev=7,d=performance.now(),!(U=l?localStorage.getItem("player_keypair"):null)){e.next=23;break}if(!((c=JSON.parse(U))&&c.privateKey&&c.publicKey)){e.next=23;break}return _R(Np,"Found key pair in local storage",c),r=c.privateKey,i=c.publicKey,a=atob(c.publicKey.replace(gp,"").replace(Cp,"").replace(/\s/g,"")),o=atob(c.privateKey.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\s/g,"")),e.next=20,Dp(o,a,t);case 20:n=e.sent,F=performance.now(),_R(Np,"importKeyPair took ".concat(F-d," milliseconds"));case 23:e.next=28;break;case 25:e.prev=25,e.t0=e.catch(7),_R(Np,"importKeyPair error:",e.t0);case 28:if(n){e.next=46;break}return s=performance.now(),e.next=32,wR(t);case 32:return n=e.sent,e.next=35,crypto.subtle.exportKey("pkcs8",n.privateKey);case 35:return Q=e.sent,u=Ip(Q),r=window.btoa(u),e.next=40,crypto.subtle.exportKey("spki",n.publicKey);case 40:R=e.sent,a=Ip(R),i=window.btoa(a),B=performance.now(),_R(Np,"keyPair generated, took ".concat(B-s," milliseconds")),l&&localStorage.setItem("player_keypair",JSON.stringify({privateKey:r,publicKey:i}));case 46:return h="".concat(gp,"\n").concat(i,"\n").concat(Cp),_R(Np,"Public key (PEM format): \n".concat(h)),p=btoa(ZR(a.split("")).join("")),_R(Np,"drmKeK: ".concat(p)),e.abrupt("return",{keyPair:n,drmKeK:p});case 51:case"end":return e.stop()}}),e,null,[[7,25]])})))).apply(this,arguments)}var Gp={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};function Xp(e,t){return wp.apply(this,arguments)}function wp(){return(wp=Ht(ln().mark((function e(t,n){var r,i,a,o,l;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.iv,i=n.tagLength,a=n.data,o=null,t=oB.StringToArrayBuffer(t),a=oB.Base64ToHex(a,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",t,"AES-GCM",!0,["encrypt","decrypt"]);case 7:l=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),"importKey: ".concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||e.t0);case 13:return e.prev=13,e.next=16,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(r),tagLength:i},l,a);case 16:o=e.sent,e.next=30;break;case 19:if(e.prev=19,e.t1=e.catch(13),"OperationError"!==String(e.t1)){e.next=25;break}throw"Wrong Password.";case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw"Invalid Key";case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(o));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Pp(e,t){return Op.apply(this,arguments)}function Op(){return(Op=Ht(ln().mark((function e(t,n){var r,i,a,o,l,d,U;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.iv,i=n.tagLength,a=n.data,o=btoa(oB.ArrayBufferToString(r)),l=Gp.codec.base64.toBits(o),d=Gp.codec.utf8String.toBits(t),U=new Gp.cipher.aes(d),e.abrupt("return",Gp.codec.utf8String.fromBits(Gp.mode.gcm.decrypt(U,Gp.codec.base64.toBits(a),l,[],i)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Gp.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,r,i,a,o=this._tables[0][4],l=this._tables[1],d=e.length,U=1;if(4!==d&&6!==d&&8!==d)throw new Gp.exception.invalid("invalid aes key size");for(this._key=[i=e.slice(0),a=[]],t=d;t<4*d+28;t++)r=i[t-1],(t%d==0||8===d&&t%d==4)&&(r=o[r>>>24]<<24^o[r>>16&255]<<16^o[r>>8&255]<<8^o[255&r],t%d==0&&(r=r<<8^r>>>24^U<<24,U=U<<1^283*(U>>7))),i[t]=i[t-d]^r;for(n=0;t;n++,t--)r=i[3&n?t:t-4],a[n]=t<=4||n<4?r:l[0][o[r>>>24]]^l[1][o[r>>16&255]]^l[2][o[r>>8&255]]^l[3][o[255&r]]},Gp.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,t,n,r,i,a,o,l,d=this._tables[0],U=this._tables[1],c=d[4],F=U[4],s=[],Q=[];for(e=0;e<256;e++)Q[(s[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!c[t];t^=r||1,n=Q[n]||1)for(a=(a=n^n<<1^n<<2^n<<3^n<<4)>>8^255&a^99,c[t]=a,F[a]=t,l=16843009*s[i=s[r=s[t]]]^65537*i^257*r^16843008*t,o=257*s[a]^16843008*a,e=0;e<4;e++)d[e][t]=o=o<<24^o>>>8,U[e][a]=l=l<<24^l>>>8;for(e=0;e<5;e++)d[e]=d[e].slice(0),U[e]=U[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new Gp.exception.invalid("invalid aes block size");var n,r,i,a,o=this._key[t],l=e[0]^o[0],d=e[t?3:1]^o[1],U=e[2]^o[2],c=e[t?1:3]^o[3],F=o.length/4-2,s=4,Q=[0,0,0,0],u=this._tables[t],R=u[0],B=u[1],h=u[2],p=u[3],S=u[4];for(a=0;a<F;a++)n=R[l>>>24]^B[d>>16&255]^h[U>>8&255]^p[255&c]^o[s],r=R[d>>>24]^B[U>>16&255]^h[c>>8&255]^p[255&l]^o[s+1],i=R[U>>>24]^B[c>>16&255]^h[l>>8&255]^p[255&d]^o[s+2],c=R[c>>>24]^B[l>>16&255]^h[d>>8&255]^p[255&U]^o[s+3],s+=4,l=n,d=r,U=i;for(a=0;a<4;a++)Q[t?3&-a:a]=S[l>>>24]<<24^S[d>>16&255]<<16^S[U>>8&255]<<8^S[255&c]^o[s++],n=l,l=d,d=U,U=c,c=n;return Q}},Gp.bitArray={bitSlice:function(e,t,n){return e=Gp.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:Gp.bitArray.clamp(e,n-t)},extract:function(e,t,n){var r=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-r^e[t/32+1|0]>>>r:e[t/32|0]>>>r)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],r=Gp.bitArray.getPartial(n);return 32===r?e.concat(t):Gp.bitArray._shiftRight(t,r,0|n,e.slice(0,e.length-1))},bitLength:function(e){var t,n=e.length;return 0===n?0:(t=e[n-1],32*(n-1)+Gp.bitArray.getPartial(t))},clamp:function(e,t){if(32*e.length<t)return e;var n=(e=e.slice(0,Math.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=Gp.bitArray.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:function(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,t){if(Gp.bitArray.bitLength(e)!==Gp.bitArray.bitLength(t))return!1;var n,r=0;for(n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r},_shiftRight:function(e,t,n,r){var i,a,o;for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(i=0;i<e.length;i++)r.push(n|e[i]>>>t),n=e[i]<<32-t;return a=e.length?e[e.length-1]:0,o=Gp.bitArray.getPartial(a),r.push(Gp.bitArray.partial(t+o&31,t+o>32?n:r.pop(),1)),r},_xor4:function(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]},byteswapM:function(e){var t,n;for(t=0;t<e.length;++t)n=e[t],e[t]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return e}},Gp.codec.utf8String={fromBits:function(e){var t,n,r="",i=Gp.bitArray.bitLength(e);for(t=0;t<i/8;t++)3&t||(n=e[t/4]),r+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(r))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],r=0;for(t=0;t<e.length;t++)r=r<<8|e.charCodeAt(t),3&~t||(n.push(r),r=0);return 3&t&&n.push(Gp.bitArray.partial(8*(3&t),r)),n}},Gp.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var r,i="",a=0,o=Gp.codec.base64._chars,l=0,d=Gp.bitArray.bitLength(e);for(n&&(o=o.substr(0,62)+"-_"),r=0;6*i.length<d;)i+=o.charAt((l^e[r]>>>a)>>>26),a<6?(l=e[r]<<6-a,a+=26,r++):(l<<=6,a-=6);for(;3&i.length&&!t;)i+="=";return i},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,r,i=[],a=0,o=Gp.codec.base64._chars,l=0;for(t&&(o=o.substr(0,62)+"-_"),n=0;n<e.length;n++){if((r=o.indexOf(e.charAt(n)))<0)throw new Gp.exception.invalid("this isn't base64!");a>26?(a-=26,i.push(l^r>>>a),l=r<<32-a):l^=r<<32-(a+=6)}return 56&a&&i.push(Gp.bitArray.partial(56&a,l,1)),i}},Gp.codec.base64url={fromBits:function(e){return Gp.codec.base64.fromBits(e,1,1)},toBits:function(e){return Gp.codec.base64.toBits(e,1)}},Gp.mode.gcm={name:"gcm",encrypt:function(e,t,n,r,i){var a,o=t.slice(0),l=Gp.bitArray;return i=i||128,r=r||[],a=Gp.mode.gcm._ctrMode(!0,e,o,r,n,i),l.concat(a.data,a.tag)},decrypt:function(e,t,n,r,i){var a,o,l=t.slice(0),d=Gp.bitArray,U=d.bitLength(l);if(r=r||[],(i=i||128)<=U?(o=d.bitSlice(l,U-i),l=d.bitSlice(l,0,U-i)):(o=l,l=[]),a=Gp.mode.gcm._ctrMode(!1,e,l,r,n,i),!d.equal(a.tag,o))throw new Gp.exception.corrupt("gcm: tag doesn't match");return a.data},_galoisMultiply:function(e,t){var n,r,i,a,o,l=Gp.bitArray._xor4;for(i=[0,0,0,0],a=t.slice(0),n=0;n<128;n++){for(!!(e[Math.floor(n/32)]&1<<31-n%32)&&(i=l(i,a)),o=!!(1&a[3]),r=3;r>0;r--)a[r]=a[r]>>>1|(1&a[r-1])<<31;a[0]=a[0]>>>1,o&&(a[0]=a[0]^225<<24)}return i},_ghash:function(e,t,n){var r,i,a=n.length;for(r=t.slice(0),i=0;i<a;i+=4)r[0]^=4294967295&n[i],r[1]^=4294967295&n[i+1],r[2]^=4294967295&n[i+2],r[3]^=4294967295&n[i+3],r=Gp.mode.gcm._galoisMultiply(r,e);return r},_ctrMode:function(e,t,n,r,i,a){var o,l,d,U,c,F,s,Q,u,R,B,h,p=Gp.bitArray;for(u=n.length,R=p.bitLength(n),B=p.bitLength(r),h=p.bitLength(i),o=t.encrypt([0,0,0,0]),96===h?(l=i.slice(0),l=p.concat(l,[1])):(l=Gp.mode.gcm._ghash(o,[0,0,0,0],i),l=Gp.mode.gcm._ghash(o,l,[0,0,Math.floor(h/4294967296),4294967295&h])),d=Gp.mode.gcm._ghash(o,[0,0,0,0],r),F=l.slice(0),s=d.slice(0),e||(s=Gp.mode.gcm._ghash(o,d,n)),c=0;c<u;c+=4)F[3]++,U=t.encrypt(F),n[c]^=U[0],n[c+1]^=U[1],n[c+2]^=U[2],n[c+3]^=U[3];return n=p.clamp(n,R),e&&(s=Gp.mode.gcm._ghash(o,d,n)),Q=[Math.floor(B/4294967296),4294967295&B,Math.floor(R/4294967296),4294967295&R],s=Gp.mode.gcm._ghash(o,s,Q),U=t.encrypt(l),s[0]^=U[0],s[1]^=U[1],s[2]^=U[2],s[3]^=U[3],{tag:p.bitSlice(s,0,a),data:n}}};var $p,Yp={webCryptoDecrypt:Xp,decrypt:($p=Ht(ln().mark((function e(t,n){var r,i;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(r=crypto)&&void 0!==r&&r.subtle){e.next=7;break}return e.next=4,Pp(t,n);case 4:i=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,Xp(t,n);case 10:i=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Pp(t,n);case 17:i=e.sent;case 18:return e.abrupt("return",i);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,t){return $p.apply(this,arguments)})};function Kp(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),U=2*parseInt(e.slice(32,40),16);for(i=40;i<U+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var c=U+40,F=parseInt(e.slice(c,c+4),16);for(c+=4,i=0;i<F;++i){var s=r(e,c);c+=2*s[0];for(var Q="",u=0;u<s[1];++u){var R=r(e,c);Q+=String.fromCharCode(a^R[1]),c+=2*R[0]}l.push(Q)}return t.p=null,function e(t,n,r,i,a){var d,U,c,F,s,Q=-1,u=[],R=null,B=[n];for(U=Math.min(n.length,r),c=0;c<U;++c)B.push(n[c]);B.p=i;for(var h=[];;)try{switch(o[t++]){case 63:u[++Q]=!0;break;case 37:u[++Q]=!1;break;case 60:u[++Q]=null;break;case 12:d=o[t++],u[++Q]=d<<24>>24;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],u[++Q]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=l[d];break;case 67:u[++Q]=void 0;break;case 32:u[++Q]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,Q=Q-d+1,U=u.slice(Q,Q+d),u[Q]=U;break;case 65:u[++Q]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],u[Q][U]=c;break;case 48:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;u[++Q]=F[c];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],u[Q]=u[Q][U];break;case 57:U=u[Q--],u[Q]=u[Q][U];break;case 52:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;F[c]=u[Q--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],F=u[Q--],c[U]=F;break;case 35:U=u[Q--],c=u[Q--],F=u[Q--],c[U]=F;break;case 45:for(U=o[t++],c=o[t++],F=B,F=B;U>0;--U)F=F.p;u[++Q]=F,u[++Q]=c;break;case 71:U=u[Q--],u[Q]+=U;break;case 28:u[Q]=-u[Q];break;case 8:U=u[Q--],u[Q]=u[Q]===U;break;case 54:U=u[Q--],u[Q]=u[Q]!==U;break;case 44:U=u[Q--],u[Q]=u[Q]>U;break;case 68:u[Q]=!u[Q];break;case 55:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?--Q:t+=d;break;case 18:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,u[Q]?t+=d:--Q;break;case 69:U=u[Q--],(c=u[Q--])[U]=u[Q];break;case 26:u[Q]=void 0;break;case 7:u[Q]=typeof u[Q];break;case 20:d=o[t++],U=u[Q--],(c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[U,d,B],c._u=e,u[++Q]=c;break;case 13:d=o[t++],U=u[Q--],(F=[c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=B,c._v=[U,d,F],c._u=e,u[++Q]=c;break;case 33:throw U=u[Q--];case 24:for(U=u[Q--],c=null;F=h.pop();)if(2===F[0]||3===F[0]){c=F;break}if(c)t=c[2],c[0]=0,h.push(c);else{if(!R)return U;t=R[1],a=R[2],B=R[3],h=R[4],u[++Q]=U,R=R[0]}break;case 50:Q-=d=o[t++],c=u.slice(Q+1,Q+d+1),U=u[Q--],F=u[Q--],U._u===e?(U=U._v,R=[R,t,a,B,h],t=U[0],null==F&&(F=function(){return this}()),a=F,(B=[c].concat(c)).length=Math.min(U[1],d)+1,B.p=U[2],h=[]):(s=U.apply(F,c),u[++Q]=s);break;case 53:for(d=o[t++],F=[void 0],s=d;s>0;--s)F[s]=u[Q--];c=u[Q--],s=new(U=Function.bind.apply(c,F)),u[++Q]=s;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=u[Q--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,U=u[Q--],u[Q]===U&&(--Q,t+=d);break;case 19:--Q;break;case 2:U=u[Q],u[++Q]=U;break;default:throw new Error("ioe")}}catch(e){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;R;){for(U=R[4];d=U.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],B=R[3],h=R[4],R=R[0]}1===(U=d[0])?(t=d[2],d[0]=0,h.push(d),u[++Q]=e):2===U?(t=d[2],d[0]=0,h.push(d)):(t=d[3],d[0]=2,h.push(d),u[++Q]=e)}}(d,[],0,t,n)}e.TRANSFORM_IV=void 0,e.transformUnionKey=void 0,function(e,t,n){function r(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var i,a=0,o=[],l=[];for(i=0;i<4;++i)a+=(3&parseInt(e.slice(8+2*i,10+2*i),16))<<2*i;var d=parseInt(e.slice(16,24),16),U=2*parseInt(e.slice(32,40),16);for(i=40;i<U+40;i+=2)o.push(parseInt(e.slice(i,i+2),16));var c=U+40,F=parseInt(e.slice(c,c+4),16);for(c+=4,i=0;i<F;++i){var s=r(e,c);c+=2*s[0];for(var Q="",u=0;u<s[1];++u){var R=r(e,c);Q+=String.fromCharCode(a^R[1]),c+=2*R[0]}l.push(Q)}t.p=null,function e(t,n,r,i,a){var d,U,c,F,s,Q=-1,u=[],R=null,B=[n];for(U=Math.min(n.length,r),c=0;c<U;++c)B.push(n[c]);B.p=i;for(var h=[];;)try{switch(o[t++]){case 60:u[++Q]=null;break;case 12:d=o[t++],u[++Q]=d<<24>>24;break;case 21:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=d<<16>>16;break;case 75:d=((d=((d=o[t++])<<8)+o[t++])<<8)+o[t++],u[++Q]=(d<<8)+o[t++];break;case 15:d=(o[t]<<8)+o[t+1],t+=2,u[++Q]=l[d];break;case 67:u[++Q]=void 0;break;case 32:u[++Q]=a;break;case 41:d=(o[t]<<8)+o[t+1],t+=2,Q=Q-d+1,U=u.slice(Q,Q+d),u[Q]=U;break;case 65:u[++Q]={};break;case 39:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],u[Q][U]=c;break;case 48:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;u[++Q]=F[c];break;case 38:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],u[Q]=u[Q][U];break;case 52:for(U=o[t++],c=o[t++],F=B;U>0;--U)F=F.p;F[c]=u[Q--];break;case 59:d=(o[t]<<8)+o[t+1],t+=2,U=l[d],c=u[Q--],F=u[Q--],c[U]=F;break;case 69:U=u[Q--],(c=u[Q--])[U]=u[Q];break;case 20:d=o[t++],U=u[Q--],(c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[U,d,B],c._u=e,u[++Q]=c;break;case 13:d=o[t++],U=u[Q--],(F=[c=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=B,c._v=[U,d,F],c._u=e,u[++Q]=c;break;case 24:for(U=u[Q--],c=null;F=h.pop();)if(2===F[0]||3===F[0]){c=F;break}if(c)t=c[2],c[0]=0,h.push(c);else{if(!R)return U;t=R[1],a=R[2],B=R[3],h=R[4],u[++Q]=U,R=R[0]}break;case 50:Q-=d=o[t++],c=u.slice(Q+1,Q+d+1),U=u[Q--],F=u[Q--],U._u===e?(U=U._v,R=[R,t,a,B,h],t=U[0],null==F&&(F=function(){return this}()),a=F,(B=[c].concat(c)).length=Math.min(U[1],d)+1,B.p=U[2],h=[]):(s=U.apply(F,c),u[++Q]=s);break;case 53:for(d=o[t++],F=[void 0],s=d;s>0;--s)F[s]=u[Q--];c=u[Q--],s=new(U=Function.bind.apply(c,F)),u[++Q]=s;break;case 29:t+=2+(d=(d=(o[t]<<8)+o[t+1])<<16>>16);break;case 56:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,(U=u[Q--])||(t+=d);break;case 36:d=(d=(o[t]<<8)+o[t+1])<<16>>16,t+=2,U=u[Q--],u[Q]===U&&(--Q,t+=d);break;case 19:--Q;break;case 2:U=u[Q],u[++Q]=U;break;default:throw new Error("ioe")}}catch(e){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;R;){for(U=R[4];d=U.pop();)if(d[0])break e;R=R[0]}if(!R)throw e;t=R[1],a=R[2],B=R[3],h=R[4],R=R[0]}1===(U=d[0])?(t=d[2],d[0]=0,h.push(d),u[++Q]=e):2===U?(t=d[2],d[0]=0,h.push(d)):(t=d[3],d[0]=2,h.push(d),u[++Q]=e)}}(d,[],0,t,n)}("504B01018bd91e22000000d9231fdb8a0000011a30010102260001203000003202183c3002013c3002023200022600024b000000380d023201320134010130010102260001203000003202183c3004023200022600034b0000004f0d013001003202180c013800833000012600043000010f0005450c002400140c032400460c0524005a0f0006240054131d005a3006040226000730020232013402030c033000013b0004300603022600083002034130020127000930060527000a15008027000b32021830000126000c3402043000010226000d0f000e3002043202183000010226000f3200181dff7843184b0000000014023401064b0000000e14003400013001000c5b0c680c450c4b15009c1500ab1500ee0c471500ca0c041500f40c0529000c3501260000340105431800100680c580d280c180c180c280d50580c680d780d780cb80de0480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30480cf80c680d480cf0780c380c280c480d580de80d780d30480c380c680d380c60280ce80d10980d380c680c080eb80c280c980c080d380cf0480d480c280c980d30680c680c580d580d280d780d30680d580c280d380d280d580c90480d480d380c880d7",{0:Uint8Array,get 1(){return Ht},get 2(){return ln},get 3(){return Yp},get 4(){return vp},get 5(){return e.TRANSFORM_IV},set 5(t){e.TRANSFORM_IV=t},get 6(){return e.transformUnionKey},set 6(t){e.transformUnionKey=t}},void 0);var jp="volcvui",Ap=new Map,Hp=new Map,zp=void 0,qp=function(){function t(n){var r;return qt(this,t),(r=zt(this,t)).EMEError=function(t){r.emit(e.EVENT_EME.ERROR,t)},r.encryptHandle=function(){var t;null===(t=r.eme)||void 0===t||t.emit(e.EVENT_EME.ENCRYPTED)},r.config=qp.defaultConfig,r.updateConfig(n),r.config.isEncrypt=!!(r.config.kid||r.config.drm||r.config.secretKey||r.config.drmKeyToken||r.config.keyValue),r.on(e.EVENT_EME.ENCRYPTED,r.encryptHandle),r}return an(t,yQ),tn(t,[{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];_R.apply(void 0,[e].concat(n))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&(t.config[n]=e[n])})),this.log("set config",JSON.stringify(this.config))}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,t,n){var r=this,i=this.config,a=e||i.kid,o=t||i.playDomain||"";o.indexOf("//")<0&&(o="//".concat(o));var l=n||i.drmKeyToken||"",d=oB.isBase64(l)?window.atob(l):l,U="".concat(o,"?").concat(d,"&PlayAuthIds=").concat(a,"&ssl=true");d.indexOf("DrmType=")<0&&(U+="&DrmType=".concat(i.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",i.vid,U);var c=Promise.withResolvers(),F=c.promise,s=c.resolve,Q=c.reject;return WR({type:"json",method:"GET",url:U}).then((function(e){var t,n,a=e.response;if("string"==typeof a&&(a=JSON.parse(a)),a&&null!==(t=a)&&void 0!==t&&t.Result&&(null===(n=a.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var o=a.Result.PlayAuthInfoList[0].PlayAuthContent;r.log("getSecretKeyByToken end, vid,",i.vid,",res,",JSON.stringify(a)),s(o)}else Q(new Error("getSecretKeyByToken end, vid, ".concat(i.vid,", response null")))})).catch((function(e){Q(e)})),F}},{key:"getLicense",value:function t(){return Kp("504B01018bd91e220000031e231fdb8a000003a13c30030332000226000b4b000000220d013001003c0c050c202900022900013204180c013802f530000126000c3000010f000d450c002400460c032400670c0a2401060c0b24010a0c132401e10c162401f00c172401f40c192401fa0c1a2401fb0c202402560c252402880c2724028e0c2924029a0f000e240294131d029a410f000f270010252700113402010c033000013b000c3004010226001230020130040a3202183004012600002d020245133002022600132d020345133002022600142d020445133004041200033002031200033002041200093004012600002600154438000b0c273000013b000c1d02290c053000013b000d3004012600002600151200033002043402073002031200093004043700033004054438000b0c0b3000013b000c1d01f10c0a3000013b000c3c3005043004033002033004043004053004063005053206183000012600163402073004043700093002072d0205453c363700073002050c001a3637000630020526001738000d300207260017300404391d00033002073402083004012600002d020a451330020a2600182d020b451330020a2600192d020c45133004010226001a320034020d3002084437000d3004012600002600142d0208451330020b37000330020d3700183005060226001b30020d26001c30020d26001d30020c32034438000b0c193000013b000c1d011a300507070f001e084438000b0c163000013b000c1d01030c133000013b000c3c30050730020830020d26001d3202183000012600163402090c173000013b000c1d00d73005080f001f3501210c1a3000013b000c1d00c33002083402093004043700093002072d0206453c363700073002060c001a36370006300206260017380016300209300207260017300404233002073002013b00153002093002013b00143f3002013b00113c3004093002013201130c253000013b000c1d005d0c203000013b000d300001020f0020390c0532013000013b0021253002013b00113000012600213002013b00223c30040a3002013201130c293000013b000c1d001b3f3002013b00113c300409300201320113300001022600233200181dfd064318203400012026000034000230000226000134000330000226000234000430000226000334000530000226000434000630010102260005320034000730000726000634000830000726000734000930000726000834000a300101022600073200022600093c3001023c30010332000226000a4b000000000d00320132013201133000081800240680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0780c380d580ca80f380de80d780c20d80d080ce80d380cf80f580c280d480c880cb80d180c280d580d40780d780d580c880ca80ce80d480c20780d580c280d480c880cb80d180c20680d580c280cd80c280c480d30480d380cf80c280c90480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30a80c080c280d380eb80ce80c480c280c980d480c20680ca80c280d380cf80c880c30780d480d280c480c480c280d480d41780f880d380d580de80e080c280d380f480c280c480d580c280d380ec80c280de80e580de80f380c880cc80c280c90980d480c280c480d580c280d380ec80c280de0880cc80c280de80f180c680cb80d280c20380c380d580ca0480d480c280c980d30980c480cb80c280c680d580ec80c280de80d40f80d280d480c280f280c980ce80c880c980ee80c980c180c880e380f580ea1780cc80c280de80f380c880cc80c280c980e280df80d780ce80d580c280c380e380d280d580c680d380ce80c880c90d80f880c080c280d380f280c980ce80c880c980ee80c980c180c81580c480cf80c280c480cc80f280c980ce80c880c980ee80c980c180c880e280df80d780ce80d580c280c30780d280c980ce80c880c980ee80e30980d280c980ce80c880c980ee80c980c180c80880c180d280c980c480d380ce80c880c94980f380cf80c28087808580d380d580c680c980d480c180c880d580ca80f280c980ce80c880c980ec80c280de8085808780d480cf80c880d280cb80c3808780c580c2808780d780d580c880d180ce80c380c280c3808780ce80c9808780c480c880c980c180ce80c080d280d580c680d380ce80c880c9808780c680d4808780c6808780c180d280c980c480d380ce80c880c90580c480c680d380c480cf0280d380970580c280d580d580c880d50480d480d380c880d7",{get 0(){return t},1:Promise,get 2(){return Ht},get 3(){return ln},get 4(){return gR},get 5(){return zp},get 6(){return oB},get 7(){return void 0!==e.transformUnionKey?e.transformUnionKey:void 0},8:Error,9:arguments},this)}},{key:"_tryGetSecretKeyByToken",value:(r=Ht(ln().mark((function e(t,n){var r,i,a,o;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.config,i=r.kid,a=r.drmKeyToken,o=r.playDomain,!(i&&a&&o)){e.next=14;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(i,o,a);case 5:this.config.secretKey=e.sent,t.success=!0,e.next=14;break;case 9:e.prev=9,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n(t);case 14:case"end":return e.stop()}}),e,this,[[2,9]])}))),function(e,t){return r.apply(this,arguments)})},{key:"updateKid",value:function e(t){return Kp("504B01018bd91e2200000000231fdb8a000000172026000037000d2026000002260001300102320113431800020380c280ca80c20980d280d780c380c680d380c280ec80ce80c3",{get 0(){return e},1:arguments,2:t},this)}},{key:"getLicenseSecret",value:function t(){return Kp("504B01018bd91e220000032c231fdb8a0000048a3001010226000c30020226000b30000132021343183001010226000c30020226000d30000132021343183c30030732000226001e4b0000004c0d013001003c0c0b0c1e2900022900013204180c013802d930000126001f3000010f0020450c002400410c032400620c052400890c0a2400e00c0b2400e40c0f2401150c102401190c172401d10c182401d50c192401ee0c1e2402510c232402830f002124027d131d0283410f0022270023252700243402010c033000013b001f3004010226002530020130040f320218300201260024443700063002012600264438000b0c053000013b001f1d023e300001022600270f002832011830040126000026002934020230020244370004300407444438000b0c0b3000013b001f1d020b3004043700033004054438000b0c0b3000013b001f1d01f30c0a3000013b001f3c3005083004031200030f002a30040430040532031830000126002b3402020c0b3000013b002030040830050926002c084438000b0c103000013b001f1d01ab0c0f3000013b001f3c30050a30020230050b32021830000126002b3402023004063800273004073800093004073402021d00183002023800123c30050c3c30050d300202320132013402023004012600002d0203451330020326002d2d0204451330020326002e2d020545133004010226002f320034020630020437000330020637001830050e0226003030020626003130020626003230020532034438000b0c193000013b001f1d01003004063700033002024438000b0c183000013b001f1d00e80c173000013b001f3c30050f30020230020626003232021830000126002b34020230050e0226003330051002260034300206260032320132013002013b003530040638003d414127003634020730040412000330051134020830020230020726003630020823300401260007022600173002073201130c001a3002013b00291d00093002023002013b00293f3002013b00243c30040e3002013201130c233000013b001f1d00410c1e3000013b0020300001020f0037390c0b32013000013b0038253002013b00243000012600383002013b00263c30040f300201320113300001022600393200181dfd2243182034000120260000340002300002260001340003300002260002340004300002260003340005300002260004340006300002260005340007300002260006340008202600002600043800bf3001013500203b000720260007022600083001022600092026000a320213202600070226000830010226000b4b000000001401320213202600070226000830010226000d4b0000001514013202132026000026000e34000930000437000330000938005b30010326000f260010022600113200022600120f001332010c011c2c3800060f00141d00030f001534000a3c3001044130000a4130000930000447270016320334000b202600070226001730000b3201133001050226001832001830010502260019320034000c30000c26001a34000d30000c26001834000e30000c26001b34000f3001050226001832000226001c3c3001063c30010732000226001d4b0000002a0d003201320132011330000d18003a0680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0680d280d480c280e280ea80e20880cc80c280de80f180c680cb80d280c20780c380d580ca80f380de80d780c20380c280ca80c20280c880c90580e280f580f580e880f50880e280ea80e280e280d580d580c880d51380e480e380ea80f880eb80ee80e480e280e980f480e280f880f480f280e480e480e280f480f40480c280ca80ce80d31180e480e380ea80f880eb80ee80e480e280e980f480e280f880e280f580f580e880f51380ce80c980d380c280d580d380d580d280d480d380f480c280d580d180c280d580f280f580eb0980c980c680d180ce80c080c680d380c880d50980d280d480c280d580e680c080c280c980d31180d380c880eb80c880c480c680cb80c280eb80c880d080c280d580e480c680d480c20780ce80c980c380c280df80e880c10680c480cf80d580c880ca80c20880d080ce80c380c280d180ce80c980c20980d780cb80c680de80d580c280c680c380de0980d480c280d580d180c280d580f280f580eb0980d280d780c380c680d380c280e380d580ca0780d580c280d480c880cb80d180c20d80d080ce80d380cf80f580c280d480c880cb80d180c280d580d40780d780d580c880ca80ce80d480c20680d580c280cd80c280c480d30480d380cf80c280c90480ca80c680d580cc0480d080d580c680d70480c980c280df80d30480d780d580c280d10380c280c980c30a80c080c280d380eb80ce80c480c280c980d480c20680ca80c280d380cf80c880c30780d480d280c480c480c280d480d41780f880d380d580de80e080c280d380f480c280c480d580c280d380ec80c280de80e580de80f380c880cc80c280c90580c280d580d580c880d50680c680c580d580d280d780d30680d580c280d380d280d580c90980d480c280c480d580c280d380ec80c280de000480d480c280c980d31780f780f580ee80f180e680f380e280f880e280e980e480f580fe80f780f380f880f280f780e080f580e680e380e20f80d280d480c280f280c980ce80c880c980ee80c980c180c880e380f580ea1780cc80c280de80f380c880cc80c280c980e280df80d780ce80d580c280c380e380d280d580c680d380ce80c880c90d80f880c080c280d380f280c980ce80c880c980ee80c980c180c81580c480cf80c280c480cc80f280c980ce80c880c980ee80c980c180c880e280df80d780ce80d580c280c30780d280c980ce80c880c980ee80e30980d280c980ce80c880c980ee80c980c180c81380f480d380d580ce80c980c080f380c880e680d580d580c680de80e580d280c180c180c280d50480cf80c680d480cf0a80c380c280c480d580de80d780d380ec80c280de0980c480cb80c280c680d580ec80c280de80d40580c480c680d380c480cf0280d380970480d480d380c880d7",{get 0(){return t},get 1(){return UB},get 2(){return e.EVENT_EME},get 3(){return window},get 4(){return nn},5:Promise,get 6(){return Ht},get 7(){return ln},get 8(){return NR},get 9(){return kR},get 10(){return CR},get 11(){return zp},get 12(){return JR},get 13(){return atob},get 14(){return oB},get 15(){return e.transformUnionKey},get 16(){return vp},get 17(){return eB},18:arguments},this)}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,r=e.getLicenseUrl,i=e.drmKeyToken,a=e.playDomain,o=e.secretKey;return r&&n?NR(t||"",n,r):i&&n&&a?this.getSecretKeyByToken(n,a,i):o||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function e(){return Kp("504B01018bd91e2200000000231fdb8a0000004d202600003400013000012600013400023000012600023400033000012600033400043000012600043400053000012600053400063c30010130000230000530000330000430000630010232061800060680c480c880c980c180ce80c00380d180ce80c30380cc80ce80c30d80c080c280d380eb80ce80c480c280c980d480c280f280d580cb0980d480c280c480d580c280d380ec80c280de0780c380d580ca80f380de80d780c2",{get 0(){return e},get 1(){return gR},get 2(){return zp},3:arguments},this)}},{key:"_getUnionInfo",value:function(){var e=this.config,t=e.drmType,n=e.sessionId;if(!e.useUnionInfoDRM||!n)return null;var r=t===kR.PRIVATE_ENCRYPT_UPGRADE?Hp:Ap;if(!r.get(n))throw new Error('The "sessionId" '.concat(n," for unionInfo is not valid"));return r.get(n)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:void 0,kid:void 0,getLicenseUrl:"",secretKey:void 0,drm:void 0,drmType:void 0,vid:"",useUnionInfoDRM:!1,transformUnionKey:void 0,drmKeyToken:void 0,keyTokenExpiredDuration:void 0,playDomain:void 0,sessionId:jp,useEME:!0,intertrustServerURL:void 0}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:jp,n=oB.getUnionInfo(e);return Ap.set(t,{unionID:e,unionInfo:n}),n}},{key:"generateEncryptInfo",value:(n=Ht(ln().mark((function e(){var t,n,r,i,a,o,l=arguments;return ln().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=l.length>0&&void 0!==l[0]?l[0]:"",n=l.length>1&&void 0!==l[1]?l[1]:jp,e.next=4,Lp();case 4:return r=e.sent,i=r.drmKeK,a=r.keyPair,o=oB.getUnionInfo(t),Hp.set(n,{unionID:t,unionInfo:o}),zp=a,e.abrupt("return",{sessionId:n,unionInfo:o,drmKeK:i});case 11:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})}]);var n,r}(),eS=qp;eS.isWebAssemblySupported=IR,e.XGSecretKey=eS,e.aes4js=Yp,e.util=oB}(index_min.exports);var index_minExports=index_min.exports,Errors=_createClass$8((function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};_classCallCheck$8(this,e);var i="number"==typeof n?n:void 0;r.playerVersion="3.5.29-rc.1",this.errorType=t,this.errorCode=i||ERR_CODE[t][n]||ERR_CODE[t],this.ext=r}));Errors.DUR_PARSE_ERROR=9201,Errors.SEG_PARSE_ERROR=9202,Errors.INIT_SEGMENT_ERROR=9203,Errors.MPD_INIT_ERROR=9204,Errors.SEGMENT_CONTENT_ERROR=9205,Errors.BACK_URL_FAIL=9206,Errors.MSE_OPEN_TIMEOUT=9207;const Errors$1=Errors;var CodecsItem=_createClass$8((function e(t,n,r,i,a,o){_classCallCheck$8(this,e),this.type=t,this.codecs=n,this.visualEntryBox=r,this.configurationBox=i,this.types=a,this.logCodeType=o})),CodecsTypes={AVC:"avc",AV1:"av1",HEVC:"hevc",H265:"h265",H264:"h264",BYTEVC1:"bytevc1",H266:"h266",BYTEVC2:"bytevc2",BVC2:"bvc2"},CodecsConfigMap=_defineProperty$7(_defineProperty$7(_defineProperty$7(_defineProperty$7(_defineProperty$7(_defineProperty$7({},CodecsTypes.AVC,new CodecsItem("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),CodecsTypes.AV1,new CodecsItem("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),CodecsTypes.HEVC,new CodecsItem("hevc","hev1.1.6.L120.90","hvc1","hvcC",["h265"],"h265")),CodecsTypes.BYTEVC1,new CodecsItem("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),CodecsTypes.BVC2,new CodecsItem("bvc2","bvc2.1.6.L93.B0","bvc2","bvc2",["h266"],"h266")),CodecsTypes.BYTEVC2,new CodecsItem("bvc2","bvc2.1.6.L93.B0","bvc2","bvc2",["bytevc2","h266"],"h266"));function getTypeByCodecs(e){for(var t=Object.keys(CodecsConfigMap),n=0;n<t.length;n++){var r=t[n];if(CodecsConfigMap[r].codecs===e)return r}return null}function _classCallCheck$2(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$2(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$2(r.key),r)}}function _createClass$2(e,t,n){return t&&_defineProperties$2(e.prototype,t),n&&_defineProperties$2(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$2(e,t,n){return(t=_toPropertyKey$2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPrimitive$2(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$2(e){var t=_toPrimitive$2(e,"string");return"symbol"==typeof t?t:String(t)}var TrackType={VIDEO:"video",AUDIO:"audio",METADATA:"metadata"},VideoCodecType={AVC:"avc",HEVC:"hevc",VVCC:"vvcC"},AudioCodecType={AAC:"aac",G711PCMA:"g7110a",G711PCMU:"g7110m"},VideoTrack=function(){function e(){_classCallCheck$2(this,e),_defineProperty$2(this,"id",1),_defineProperty$2(this,"type",TrackType.VIDEO),_defineProperty$2(this,"codecType",VideoCodecType.AVC),_defineProperty$2(this,"pid",-1),_defineProperty$2(this,"hvcC",void 0),_defineProperty$2(this,"codec",""),_defineProperty$2(this,"timescale",0),_defineProperty$2(this,"formatTimescale",0),_defineProperty$2(this,"sequenceNumber",0),_defineProperty$2(this,"baseMediaDecodeTime",0),_defineProperty$2(this,"baseDts",0),_defineProperty$2(this,"duration",0),_defineProperty$2(this,"warnings",[]),_defineProperty$2(this,"samples",[]),_defineProperty$2(this,"pps",[]),_defineProperty$2(this,"sps",[]),_defineProperty$2(this,"vps",[]),_defineProperty$2(this,"fpsNum",0),_defineProperty$2(this,"fpsDen",0),_defineProperty$2(this,"sarRatio",[]),_defineProperty$2(this,"width",0),_defineProperty$2(this,"height",0),_defineProperty$2(this,"nalUnitSize",4),_defineProperty$2(this,"present",!1),_defineProperty$2(this,"isVideoEncryption",!1),_defineProperty$2(this,"isAudioEncryption",!1),_defineProperty$2(this,"isVideo",!0),_defineProperty$2(this,"kid",null),_defineProperty$2(this,"pssh",null),_defineProperty$2(this,"ext",void 0)}return _createClass$2(e,[{key:"reset",value:function(){this.sequenceNumber=this.width=this.height=this.fpsDen=this.fpsNum=this.duration=this.baseMediaDecodeTime=this.timescale=0,this.codec="",this.present=!1,this.pid=-1,this.pps=[],this.sps=[],this.vps=[],this.sarRatio=[],this.samples=[],this.warnings=[],this.hvcC=null}},{key:"exist",value:function(){return!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),AudioTrack=function(){function e(){_classCallCheck$2(this,e),_defineProperty$2(this,"id",2),_defineProperty$2(this,"type",TrackType.AUDIO),_defineProperty$2(this,"codecType",AudioCodecType.AAC),_defineProperty$2(this,"pid",-1),_defineProperty$2(this,"codec",""),_defineProperty$2(this,"sequenceNumber",0),_defineProperty$2(this,"sampleDuration",0),_defineProperty$2(this,"timescale",0),_defineProperty$2(this,"formatTimescale",0),_defineProperty$2(this,"baseMediaDecodeTime",0),_defineProperty$2(this,"duration",0),_defineProperty$2(this,"warnings",[]),_defineProperty$2(this,"samples",[]),_defineProperty$2(this,"baseDts",0),_defineProperty$2(this,"sampleSize",16),_defineProperty$2(this,"sampleRate",0),_defineProperty$2(this,"channelCount",0),_defineProperty$2(this,"objectType",0),_defineProperty$2(this,"sampleRateIndex",0),_defineProperty$2(this,"config",[]),_defineProperty$2(this,"present",!1),_defineProperty$2(this,"isVideoEncryption",!1),_defineProperty$2(this,"isAudioEncryption",!1),_defineProperty$2(this,"kid",null),_defineProperty$2(this,"ext",void 0)}return _createClass$2(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.timescale=0,this.sampleDuration=0,this.sampleRate=0,this.channelCount=0,this.baseMediaDecodeTime=0,this.present=!1,this.pid=-1,this.codec="",this.samples=[],this.config=[],this.warnings=[]}},{key:"exist",value:function(){return!!(this.sampleRate&&this.channelCount&&this.codec&&this.codecType===AudioCodecType.AAC)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),isBrowser="undefined"!=typeof window,ua=isBrowser&&navigator.userAgent.toLocaleLowerCase(),isFirefox=isBrowser&&ua.includes("firefox"),isAndroid=isBrowser&&ua.includes("android"),AAC=function(){function e(){_classCallCheck$2(this,e)}return _createClass$2(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var r=t.length,i=0;i+2<r&&(255!==t[i]||240!=(246&t[i+1]));)i++;if(!(i>=r)){var a=i,o=[],l=(60&t[i+2])>>>2,d=e.FREQ[l];if(!d)throw new Error("Invalid sampling index: ".concat(l));for(var U,c,F=1+((192&t[i+2])>>>6),s=(1&t[i+2])<<2|(192&t[i+3])>>>6,Q=e._getConfig(l,s,F),u=Q.config,R=Q.codec,B=0,h=e.getFrameDuration(d);i+7<r;)if(255===t[i]&&240==(246&t[i+1])){if(r-i<(c=(3&t[i+3])<<11|t[i+4]<<3|(224&t[i+5])>>5))break;U=2*(1&~t[i+1]),o.push({pts:n+B*h,data:t.subarray(i+7+U,i+c)}),B++,i+=c}else i++;return{skip:a,remaining:i>=r?void 0:t.subarray(i),frames:o,samplingFrequencyIndex:l,sampleRate:d,objectType:F,channelCount:s,codec:R,config:u,originCodec:"mp4a.40.".concat(F)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,r=(7&t[0])<<1|t[1]>>>7,i=(120&t[1])>>>3,a=e.FREQ[r];if(a){var o=e._getConfig(r,i,n);return{samplingFrequencyIndex:r,sampleRate:a,objectType:n,channelCount:i,config:o.config,codec:o.codec,originCodec:"mp4a.40.".concat(n)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,t,n){var r,i,a=[];return isFirefox?e>=6?(r=5,i=e-3):(r=2,i=e):isAndroid?(r=2,i=e):(r=2===n||5===n?n:5,i=e,e>=6?i=e-3:1===t&&(r=2,i=e)),a[0]=r<<3,a[0]|=(14&e)>>1,a[1]=(1&e)<<7,a[1]|=t<<3,5===r&&(a[1]|=(14&i)>>1,a[2]=(1&i)<<7,a[2]|=8,a[3]=0),{config:a,codec:"mp4a.40.".concat(r)}}},{key:"getSilentFrame",value:function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}();_defineProperty$2(AAC,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var MAX_SIZE=Math.pow(2,32);function readBig16(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function readBig24(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<16)+(e[t+1]<<8)+(e[t+2]||0)}function readBig32(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function readInt32(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t)}function readBig64(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return readBig32(e,t)*MAX_SIZE+readBig32(e,t+4)}function readInt64(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(e.buffer,e.byteOffset,e.byteLength);return n.getUint32(t)<<32|n.getUint32(t+4)}function getAvcCodec(e){for(var t,n="avc1.",r=0;r<3;r++)(t=e[r].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}var ExpGolomb=function(){function e(t){if(_classCallCheck$2(this,e),_defineProperty$2(this,"_bytesAvailable",void 0),_defineProperty$2(this,"_bitsAvailable",0),_defineProperty$2(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return _createClass$2(e,[{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,t=Math.min(4,this._bytesAvailable);if(0===t)throw new Error("No bytes available");var n=new Uint8Array(4);n.set(this._data.subarray(e,e+t)),this._word=new DataView(n.buffer).getUint32(0),this._bitsAvailable=8*t,this._bytesAvailable-=t}},{key:"bitsPos",value:function(){return 8*this._bytesAvailable-this._bitsAvailable}},{key:"bitsLeft",value:function(){return 8*this._data.length-this.bitsPos()}},{key:"byteAligned",value:function(){return 0===this.bitsPos()||this.bitsPos()%8==0}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var t=Math.floor(e/8);e-=8*t,this._bytesAvailable-=t,this._loadWord(),this._word<<=e,this._bitsAvailable-=e}}},{key:"readBits",value:function(e){if(e>32)throw new Error("Cannot read more than 32 bits");var t=Math.min(this._bitsAvailable,e),n=this._word>>>32-t;return this._bitsAvailable-=t,this._bitsAvailable>0?this._word<<=t:this._bytesAvailable>0&&this._loadWord(),(t=e-t)>0&&this._bitsAvailable?n<<t|this.readBits(t):n}},{key:"skipLZ",value:function(){var e;for(e=0;e<this._bitsAvailable;++e)if(0!=(this._word&2147483648>>>e))return this._word<<=e,this._bitsAvailable-=e,e;return this._loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"skipScalingList",value:function(e){for(var t=8,n=8,r=0;r<e;r++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),StreamReader=function(){function e(t){_classCallCheck$2(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return _createClass$2(e,[{key:"readUint8",value:function(){return this._buffer[this._offset++]}},{key:"readUint16",value:function(){return this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint32",value:function(){return this._buffer[this._offset++]<<24|this._buffer[this._offset++]<<16|this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint8Array",value:function(e){var t=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,t}},{key:"streamRead1Bytes",value:function(){this._heldBits=this.readUint8(),this._numHeldBits=8}},{key:"streamRead2Bytes",value:function(){this._heldBits=this.readUint16(),this._numHeldBits=16}},{key:"extractBits",value:function(e){var t=this._heldBits>>this._numHeldBits-e&(1<<e)-1;return this._numHeldBits-=e,t}}]),e}(),VVC=function(){function e(){_classCallCheck$2(this,e)}return _createClass$2(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new StreamReader(t),r=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var i,a,o,l,d,U,c,F,s=n.extractBits(2)+1,Q=n.extractBits(1),u={};Q&&(n.streamRead2Bytes(),l=n.extractBits(2),d=n.extractBits(3),a=n.extractBits(3),o=n.extractBits(2),n.extractBits(6),u=e.parseVVCPTLRecord(n,a),i=n.readUint16(),U=n.readUint16(),c=n.readUint16(),F=n.readUint16());for(var R=n.readUint8(),B=[],h=[],p=[],S=null,V=0;V<R;V++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var f=n.extractBits(5),y=1;13!==f&&12!==f&&(y=n.readUint16());for(var m=0;m<y;m++){var E=n.readUint16();switch(f){case 14:B.push(n.readUint8Array(E));break;case 15:var Z=n.readUint8Array(E);S||(S=e.parseSPS(e.removeEPB(Z))),h.push(Z);break;case 16:p.push(n.readUint8Array(E))}}}return{data:t,configurationVersion:r,codec:"bvc2.1.6.L93.B0",nalUnitSize:s,ptlPresentFlag:Q,olsIdx:i,numSublayers:a,constantFrameRate:o,chromaFormatIdc:l,bitDepthLumaMinus8:d,ptlRecord:u,width:U,height:c,sampleRate:F,numOfArrays:R,vps:B,sps:h,pps:p,spsParsed:S}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),r=e.extractBits(7),i=e.extractBits(1),a=e.readUint8();e.streamRead1Bytes();var o=e.extractBits(1),l=e.extractBits(1),d=new Uint8Array(n);if(n){for(var U=0;U<n-1;U++){var c=e.extractBits(6);e.streamRead1Bytes();var F=e.extractBits(2);d[U]=c<<2|F}d[n-1]=e.extractBits(6)}else e.extractBits(6);var s=[];if(t>1){e.streamRead1Bytes();for(var Q=0,u=t-2;u>=0;--u){Q|=e.extractBits(1)<<u}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var B=t-2;B>=0;--B)Q&1<<B&&(s[B]=e.readUint8())}var h=e.readUint8(),p=[];if(h)for(var S=0;S<h;S++)p.push(e.readUint32());return{generalProfileIdc:r,generalTierFlag:i,generalLevelIdc:a,ptlFrameOnlyConstraintFlag:o,ptlMultilayerEnabledFlag:l,generalConstraintInfo:d,subLayerLevelIdc:s,generalSubProfileIdc:p,ptlNumSubProfiles:h,numBytesConstraintInfo:n}}},{key:"getAvccNals",value:function(e){for(var t=[];e.position<e.length-4;){var n=e.dataview.getInt32(e.dataview.position);if(!(e.length-e.position>=n))break;var r=e.buffer.slice(e.position,e.position+4);e.skip(4);var i=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:r,body:i})}return t}},{key:"analyseNal",value:function(e){var t=(248&e.body[1])>>3;switch(e.type=t,t){case 23:case 24:break;case 7:case 8:e.key=!0;break;case 14:e.vps=!0;break;case 15:e.sps=!0;break;case 16:e.pps=!0;break;case 17:e.aps=!0}}},{key:"removeEPB",value:function(e){for(var t=e.byteLength,n=[],r=1;r<t-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(n.push(r+2),r+=2):r++;if(!n.length)return e;var i=t-n.length,a=new Uint8Array(i),o=0;for(r=0;r<i;o++,r++)o===n[0]&&(o++,n.shift()),a[r]=e[o];return a}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new ExpGolomb(t);n.readUByte(),n.readUByte(),n.skipBits(4);var r=n.readBits(4),i=n.readBits(3),a=n.readBits(2),o=420;a<=3&&(o=[0,420,422,444][a]),n.readBits(2),n.readBits(1);var l=e._parseProfileTierLevel(n,1,i);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:i,spsVideoParameterSetId:r,chromaFormatIdc:a,chromaFormat:o,ptlInfo:l}}},{key:"_parseProfileTierLevel",value:function(t,n,r){var i,a=t.readBits(7),o=t.readBits(1),l=t.readBits(8),d=t.readBits(1),U=t.readBits(1);n&&(i=e._parseGeneralConstraintsInfo(t));for(var c=r-1,F=[],s=[],Q=[],u=c;u>=0;--u)F[u]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=c;R>=0;--R)F[R]&&(s[R]=t.readUByte());if(n)for(var B=t.readUByte(),h=0;h<B;h++)Q[h]=t.readBits(32);return{generalProfileIdc:a,generalTierFlag:o,generalLevelIdc:l,ptlFrameOnlyConstraintFlag:d,ptlMultilayerEnabledFlag:U,ptlSublayerLevelPresentFlags:F,ptlSublayerLevelIdcs:s,ptlSubProfileIdcs:Q,gciInfo:i}}},{key:"_parseGeneralConstraintsInfo",value:function(e){var t=e.readBits(1);if(t){e.skipBits(71);var n=e.readBits(8);n&&e.skipBits(n)}var r=8-e.bitsPos()%8;return e.skipBits(r),{gciPresentFlag:t}}}]),e}(),MP4Parser=function(){function e(){_classCallCheck$2(this,e)}return _createClass$2(e,null,[{key:"findBox",value:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=[];if(!t)return i;for(var a=0,o="",l=0;t.length>7;){if(a=readBig32(t),o=String.fromCharCode.apply(null,t.subarray(4,8)),l=8,1===a?(a=readBig64(t,8),l+=8):a||(a=t.length),!n[0]||o===n[0]){var d=t.subarray(0,a);if(!(n.length<2))return e.findBox(d.subarray(l),n.slice(1),r+l);i.push({start:r,size:a,headerSize:l,type:o,data:d})}r+=a,t=t.subarray(a)}return i}},{key:"tfhd",value:function(e){return parseBox(e,!0,(function(e,t){e.trackId=readBig32(t);var n=4,r=1&e.flags,i=2&e.flags,a=8&e.flags,o=16&e.flags,l=32&e.flags;r&&(n+=4,e.baseDataOffset=readBig32(t,n),n+=4),i&&(e.sampleDescriptionIndex=readBig32(t,n),n+=4),a&&(e.defaultSampleDuration=readBig32(t,n),n+=4),o&&(e.defaultSampleSize=readBig32(t,n),n+=4),l&&(e.defaultSampleFlags=readBig32(t,n))}))}},{key:"sidx",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;e.reference_ID=readBig32(t,n),n+=4,e.timescale=readBig32(t,n),n+=4,0===e.version?(e.earliest_presentation_time=readBig32(t,n),n+=4,e.first_offset=readBig32(t,n),n+=4):(e.earliest_presentation_time=readBig64(t,n),n+=8,e.first_offset=readBig64(t,n),n+=8),n+=2,e.references=[];var r=readBig16(t,n);n+=2;for(var i=0;i<r;i++){var a={};e.references.push(a);var o=readBig32(t,n);n+=4,a.reference_type=o>>31&1,a.referenced_size=2147483647&o,a.subsegment_duration=readBig32(t,n),o=readBig32(t,n+=4),n+=4,a.starts_with_SAP=o>>31&1,a.SAP_type=o>>28&7,a.SAP_delta_time=268435455&o}}))}},{key:"moov",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],r)[0]),t.trak=e.findBox(n,["trak"],r).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],r)[0])}))}},{key:"mvhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=readBig32(t,16),e.duration=readBig64(t,20),n+=28):(e.timescale=readBig32(t,8),e.duration=readBig32(t,12),n+=16),e.nextTrackId=readBig32(t,n+76)}))}},{key:"trak",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],r)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],r)[0]),t.edts=e.edts(e.findBox(n,["edts"],r)[0])}))}},{key:"tkhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=readBig32(t,16),e.duration=readBig64(t,24),n+=32):(e.trackId=readBig32(t,8),e.duration=readBig32(t,16),n+=20),e.width=readBig32(t,n+52),e.height=readBig32(t,n+56)}))}},{key:"mdia",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],r)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],r)[0]),t.minf=e.minf(e.findBox(n,["minf"],r)[0])}))}},{key:"edts",value:function(t){return parseBox(t,!1,(function(t,n,r){t.elst=e.elst(e.findBox(n,["elst"],r)[0])}))}},{key:"elst",value:function(e){return parseBox(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var r=0,i=readBig32(t,r);r+=4;for(var a=0;a<i;a++){var o={};e.entries.push(o),1===e.version?(o.segment_duration=readBig64(t,r),r+=8,o.media_time=readInt64(t,r),r+=8):(o.segment_duration=readBig32(t,r),r+=4,o.media_time=readInt32(t,r),r+=4),o.media_rate_integer=readBig16(t,r),r+=2,o.media_rate_fraction=readBig16(t,n),r+=2}}))}},{key:"mdhd",value:function(e){return parseBox(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=readBig32(t,16),e.duration=readBig64(t,20),n+=28):(e.timescale=readBig32(t,8),e.duration=readBig32(t,12),n+=16);var r=readBig16(t,n);e.language=String.fromCharCode(96+(r>>10&31),96+(r>>5&31),96+(31&r))}))}},{key:"hdlr",value:function(e){return parseBox(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],r)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],r)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],r)[0])}))}},{key:"vmhd",value:function(e){return parseBox(e,!0,(function(e,t){e.graphicsmode=readBig16(t),e.opcolor=[readBig16(t,2),readBig16(t,4),readBig16(t,6)]}))}},{key:"smhd",value:function(e){return parseBox(e,!0,(function(e,t){e.balance=readBig16(t)}))}},{key:"stbl",value:function(t){return parseBox(t,!1,(function(t,n,r){var i,a,o;t.stsd=e.stsd(e.findBox(n,["stsd"],r)[0]),t.stts=e.stts(e.findBox(n,["stts"],r)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],r)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],r)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],r)[0]),t.stco=e.stco(e.findBox(n,["stco"],r)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],r)[0]),t.stco=t.co64);var l=null===(i=t.stsd.entries[0])||void 0===i||null===(a=i.sinf)||void 0===a||null===(o=a.schi)||void 0===o?void 0:o.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],r)[0]),t.senc=e.senc(e.findBox(n,["senc"],r)[0],l)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return parseBox(e,!0,(function(e,n){var r=0,i=readBig32(n,r);r+=4,e.samples=[];for(var a=0;a<i;a++){for(var o={InitializationVector:[]},l=0;l<t;l++)o.InitializationVector[l]=n[r+l];if(r+=t,2&e.flags){o.subsamples=[];var d=readBig16(n,r);r+=2;for(var U=0;U<d;U++){var c={};c.BytesOfClearData=readBig16(n,r),r+=2,c.BytesOfProtectedData=readBig32(n,r),r+=4,o.subsamples.push(c)}}e.samples.push(o)}}))}},{key:"pssh",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=[],r=[],i=0,a=0;a<16;a++)r.push(toHex(t[i+a]));if(i+=16,e.version>0){var o=readBig32(t,i);i+=4;for(var l=0;l<(""+o).length;l++)for(var d=0;d<16;d++){var U=t[i];i+=1,n.push(toHex(U))}}var c=readBig32(t,i);e.data_size=c,i+=4,e.kid=n,e.system_id=r,e.buffer=t}))}},{key:"bvc2",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.vvcC=e.bv2C(e.findBox(a,["bv2C"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"bv2C",value:function(e){return parseBox(e,!1,(function(e,t,n){var r=VVC.parseVVCDecoderConfigurationRecord(t);for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i])}))}},{key:"stsd",value:function(t){return parseBox(t,!0,(function(t,n,r){t.entryCount=readBig32(n),t.entries=e.findBox(n.subarray(4),[],r+4).map((function(t){switch(t.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(t);case"hvc1":case"hev1":return e.hvc1(t);case"bvc2":return e.bvc2(t);case"mp4a":return e.mp4a(t);case"alaw":case"ulaw":return e.alaw(t);case"enca":return parseBox(t,!1,(function(t,n,r){t.channelCount=readBig16(n,16),t.samplesize=readBig16(n,18),t.sampleRate=readBig32(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],r)[0]),t.esds=e.esds(e.findBox(n,["esds"],r)[0])}));case"encv":return parseBox(t,!1,(function(t,n,r){t.width=readBig16(n,24),t.height=readBig16(n,26),t.horizresolution=readBig32(n,28),t.vertresolution=readBig32(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],r)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],r)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],r)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],r)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return parseBox(e,!1,(function(e,t){var n=6;e.default_IsEncrypted=t[n],n+=1,e.default_IV_size=t[n],n+=1,e.default_KID=[];for(var r=0;r<16;r++)e.default_KID.push(toHex(t[n])),n+=1}))}},{key:"schi",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tenc=e.tenc(e.findBox(n,["tenc"],r)[0])}))}},{key:"sinf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.schi=e.schi(e.findBox(n,["schi"],r)[0]),t.frma=e.frma(e.findBox(n,["frma"],r)[0])}))}},{key:"frma",value:function(e){return parseBox(e,!1,(function(e,t){e.data_format="";for(var n=0;n<4;n++)e.data_format+=String.fromCharCode(t[n])}))}},{key:"avc1",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.avcC=e.avcC(e.findBox(a,["avcC"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"avcC",value:function(e){return parseBox(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=getAvcCodec([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,r=0;r<e.spsLength;r++){var i=readBig16(t,n);n+=2,e.sps.push(t.subarray(n,n+i)),n+=i}e.ppsLength=t[n],n+=1,e.pps=[];for(var a=0;a<e.ppsLength;a++){var o=readBig16(t,n);n+=2,e.pps.push(t.subarray(n,n+=o)),n+=o}}))}},{key:"hvc1",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseVisualSampleEntry(t,n),a=n.subarray(i);r+=i,t.hvcC=e.hvcC(e.findBox(a,["hvcC"],r)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],r)[0])}))}},{key:"hvcC",value:function(e){return parseBox(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var r=n[1];t.generalProfileSpace=r>>6,t.generalTierFlag=(32&r)>>5,t.generalProfileIdc=31&r,t.generalProfileCompatibility=readBig32(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=readBig16(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var i=23,a=0,o=0,l=0,d=0;d<t.numOfArrays;d++){a=63&n[i],o=readBig16(n,i+1),i+=3;for(var U,c=[],F=0;F<o;F++)l=readBig16(n,i),i+=2,c.push(n.subarray(i,i+l)),i+=l;if(32===a)(U=t.vps).push.apply(U,c);else if(33===a){var s;(s=t.sps).push.apply(s,c)}else if(34===a){var Q;(Q=t.pps).push.apply(Q,c)}}}))}},{key:"pasp",value:function(e){return parseBox(e,!1,(function(e,t){e.hSpacing=readBig32(t),e.vSpacing=readBig32(t,4)}))}},{key:"mp4a",value:function(t){return parseBox(t,!1,(function(t,n,r){var i=parseAudioSampleEntry(t,n);t.esds=e.esds(e.findBox(n.subarray(i),["esds"],r+i)[0])}))}},{key:"esds",value:function(e){return parseBox(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,r=0,i=0,a=0;t.length;){for(a=t[n=0],r=t[n+1],n+=2;128&r;)i=(127&r)<<7,r=t[n],n+=1;if(i+=127&r,3===a)t=t.subarray(n+3);else{if(4!==a){if(5===a){var o=e.config=t.subarray(n,n+i),l=(248&o[0])>>3;return 31===l&&o.length>=2&&(l=32+((7&o[0])<<3)+((224&o[1])>>5)),e.objectType=l,e.codec+=l.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(t[n].toString(16)+".").padStart(3,"0"),t=t.subarray(n+13)}}}))}},{key:"alaw",value:function(e){return parseBox(e,!1,(function(e,t){parseAudioSampleEntry(e,t)}))}},{key:"stts",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=[],i=4,a=0;a<n;a++)r.push({count:readBig32(t,i),delta:readBig32(t,i+4)}),i+=8;e.entryCount=n,e.entries=r}))}},{key:"ctts",value:function(e){return parseBox(e,!0,(function(e,t){var n=readBig32(t),r=[],i=4;if(1===e.version)for(var a=0;a<n;a++)r.push({count:readBig32(t,i),offset:readBig32(t,i+4)}),i+=8;else for(var o=0;o<n;o++)r.push({count:readBig32(t,i),offset:-(1+~readBig32(t,i+4))}),i+=8;e.entryCount=n,e.entries=r}))}},{key:"stsc",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]={firstChunk:readBig32(t,i),samplesPerChunk:readBig32(t,i+4),sampleDescriptionIndex:readBig32(t,i+8)},i+=12;e.entryCount=n,e.entries=r}))}},{key:"stsz",value:function(e){return parseBox(e,!0,(function(e,t){var n=readBig32(t),r=readBig32(t,4),i=new Array(r);if(!n)for(var a=8,o=0;o<r;o++)i[o]=readBig32(t,a),a+=4;e.sampleSize=n,e.sampleCount=r,e.entrySizes=i}))}},{key:"stco",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig32(t,i),i+=4;e.entryCount=n,e.entries=r}))}},{key:"co64",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig64(t,i),i+=8;e.entryCount=n,e.entries=r}))}},{key:"stss",value:function(e){return parseBox(e,!0,(function(e,t){for(var n=readBig32(t),r=new Array(n),i=4,a=0;a<n;a++)r[a]=readBig32(t,i),i+=4;e.entryCount=n,e.entries=r}))}},{key:"moof",value:function(t){return parseBox(t,!1,(function(t,n,r){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],r)[0]),t.traf=e.findBox(n,["traf"],r).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return parseBox(e,!0,(function(e,t){e.sequenceNumber=readBig32(t)}))}},{key:"traf",value:function(t){return parseBox(t,!1,(function(t,n,r){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],r)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],r)[0]),t.trun=e.trun(e.findBox(n,["trun"],r)[0])}))}},{key:"trun",value:function(e){return parseBox(e,!0,(function(e,t){var n=e.version,r=e.flags,i=t.length,a=e.sampleCount=readBig32(t),o=4;if(i>o&&1&r&&(e.dataOffset=-(1+~readBig32(t,o)),o+=4),i>o&&4&r&&(e.firstSampleFlags=readBig32(t,o),o+=4),i>o){var l;e.samples=new Array(a);for(var d=0;d<a;d++)l={},256&r&&(l.duration=readBig32(t,o),o+=4),512&r&&(l.size=readBig32(t,o),o+=4),1024&r&&(l.flags=readBig32(t,o),o+=4),2048&r&&(l.cts=n?-(1+~readBig32(t,o+4)):readBig32(t,o),o+=4),e.samples[d]=l}}))}},{key:"tfdt",value:function(e){return parseBox(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=readBig64(t):e.baseMediaDecodeTime=readBig32(t)}))}},{key:"probe",value:function(t){return!!e.findBox(t,["ftyp"])}},{key:"parseSampleFlags",value:function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}},{key:"moovToTrack",value:function(e,t,n){var r,i,a=e.trak;if(a&&a.length){var o=a.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),l=a.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(o&&t){var d,U,c,F,s,Q,u,R,B=t,h=null===(d=o.tkhd)||void 0===d?void 0:d.trackId;null!=h&&(B.id=o.tkhd.trackId),B.tkhdDuration=o.tkhd.duration,B.mvhdDurtion=e.mvhd.duration,B.mvhdTimecale=e.mvhd.timescale,B.timescale=B.formatTimescale=o.mdia.mdhd.timescale,B.duration=o.mdia.mdhd.duration||B.mvhdDurtion/B.mvhdTimecale*B.timescale,null!==(U=o.edts)&&void 0!==U&&U.elst&&(B.editList=o.edts.elst,B.editListApplied=o.editListApplied);var p,S,V,f,y,m,E,Z,J=o.mdia.minf.stbl.stsd.entries[0];if(B.width=J.width,B.height=J.height,J.pasp&&(B.sarRatio=[J.pasp.hSpacing,J.pasp.vSpacing]),J.hvcC)B.codecType=VideoCodecType.HEVC,B.codec=J.hvcC.codec,B.vps=J.hvcC.vps,B.sps=J.hvcC.sps,B.pps=J.hvcC.pps,B.hvcC=J.hvcC.data;else if(J.avcC)B.codec=J.avcC.codec,B.sps=J.avcC.sps,B.pps=J.avcC.pps;else{if(!J.vvcC)throw new Error("unknown video stsd entry");B.codecType=VideoCodecType.VVCC,B.codec=J.vvcC.codec,B.sps=J.vvcC.sps,B.pps=J.vvcC.pps,B.vps=J.vvcC.vps,B.vvcC=J.vvcC.data}if(B.present=!0,B.ext={},B.ext.stss=null===(c=o.mdia)||void 0===c||null===(F=c.minf)||void 0===F||null===(s=F.stbl)||void 0===s?void 0:s.stss,B.ext.ctts=null===(Q=o.mdia)||void 0===Q||null===(u=Q.minf)||void 0===u||null===(R=u.stbl)||void 0===R?void 0:R.ctts,J&&"encv"===J.type)B.isVideoEncryption=!0,J.default_KID=null===(p=J.sinf)||void 0===p||null===(S=p.schi)||void 0===S?void 0:S.tenc.default_KID,J.default_IsEncrypted=null===(V=J.sinf)||void 0===V||null===(f=V.schi)||void 0===f?void 0:f.tenc.default_IsEncrypted,J.default_IV_size=null===(y=J.sinf)||void 0===y||null===(m=y.schi)||void 0===m?void 0:m.tenc.default_IV_size,B.videoSenc=o.mdia.minf.stbl.senc&&o.mdia.minf.stbl.senc.samples,J.data_format=null===(E=J.sinf)||void 0===E||null===(Z=E.frma)||void 0===Z?void 0:Z.data_format,B.useEME=e.useEME,B.kidValue=e.kidValue,B.pssh=e.pssh,B.encv=J}if(l&&n){var b,W,k,T,v,N,g,C,I,_,D=n,x=null===(b=l.tkhd)||void 0===b?void 0:b.trackId;null!=x&&(D.id=l.tkhd.trackId),D.tkhdDuration=l.tkhd.duration,D.mvhdDurtion=e.mvhd.duration,D.mvhdTimecale=e.mvhd.timescale,D.timescale=D.formatTimescale=l.mdia.mdhd.timescale,D.duration=l.mdia.mdhd.duration||D.mvhdDurtion/D.mvhdTimecale*D.timescale,null!==(W=l.edts)&&void 0!==W&&W.elst&&(D.editList=l.edts.elst,D.editListApplied=l.editListApplied);var L,M,G,X,w,P,O,$,Y=l.mdia.minf.stbl.stsd.entries[0];switch(D.sampleSize=Y.sampleSize,D.sampleRate=Y.sampleRate,D.channelCount=Y.channelCount,D.present=!0,Y.type){case"alaw":D.codecType=D.codec=AudioCodecType.G711PCMA,D.sampleRate=8e3;break;case"ulaw":D.codecType=D.codec=AudioCodecType.G711PCMU,D.sampleRate=8e3;break;default:D.sampleDuration=AAC.getFrameDuration(D.sampleRate,D.timescale),D.sampleRateIndex=AAC.getRateIndexByRate(D.sampleRate),D.objectType=(null===(r=Y.esds)||void 0===r?void 0:r.objectType)||2,Y.esds&&(D.config=Array.from(Y.esds.config)),D.codec=(null===(i=Y.esds)||void 0===i?void 0:i.codec)||"mp4a.40.2"}if(D.sampleDuration=AAC.getFrameDuration(D.sampleRate,D.timescale),D.objectType=(null===(k=Y.esds)||void 0===k?void 0:k.objectType)||2,Y.esds&&(Y.esds.config?D.config=Array.from(Y.esds.config):console.warn("esds config is null")),D.codec=(null===(T=Y.esds)||void 0===T?void 0:T.codec)||"mp4a.40.2",D.sampleRateIndex=AAC.getRateIndexByRate(D.sampleRate),D.ext={},D.ext.stss=null===(v=l.mdia)||void 0===v||null===(N=v.minf)||void 0===N||null===(g=N.stbl)||void 0===g?void 0:g.stss,D.ext.ctts=null===(C=l.mdia)||void 0===C||null===(I=C.minf)||void 0===I||null===(_=I.stbl)||void 0===_?void 0:_.ctts,D.present=!0,Y&&"enca"===Y.type)D.isAudioEncryption=!0,Y.data_format=null===(L=Y.sinf)||void 0===L||null===(M=L.frma)||void 0===M?void 0:M.data_format,Y.default_KID=null===(G=Y.sinf)||void 0===G||null===(X=G.schi)||void 0===X?void 0:X.tenc.default_KID,Y.default_IsEncrypted=null===(w=Y.sinf)||void 0===w||null===(P=w.schi)||void 0===P?void 0:P.tenc.default_IsEncrypted,Y.default_IV_size=null===(O=Y.sinf)||void 0===O||null===($=O.schi)||void 0===$?void 0:$.tenc.default_IV_size,D.audioSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,D.useEME=e.useEME,D.kidValue=e.kidValue,D.enca=Y}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var K,j,A=null==t||null===(K=t.encv)||void 0===K?void 0:K.default_KID,H=null==n||null===(j=n.enca)||void 0===j?void 0:j.default_KID,z=A||H?(A||H).join(""):null;t&&(t.kid=z),n&&(n.kid=z)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var r,i=null==t||null===(r=t.samples)||void 0===r?void 0:r.length;return i?1024*i/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,r){var i={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),r&&(r.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var a=t.tfhd,o=t.tfdt,l=t.trun;if(a&&l){o&&(n&&n.id===a.trackId&&(n.baseMediaDecodeTime=o.baseMediaDecodeTime),r&&r.id===a.trackId&&(r.baseMediaDecodeTime=o.baseMediaDecodeTime));var d=a.defaultSampleSize||0,U=a.defaultSampleDuration||e.evaluateDefaultDuration(n,r,l.samples.length||l.sampleCount),c=l.dataOffset||0,F=0,s=-1;if(!l.samples.length&&l.sampleCount){i[a.trackId]=new Array(l.sampleCount);for(var Q=0;Q<l.sampleCount;Q++)i[a.trackId][Q]={offset:c,dts:F,duration:U,size:d},F+=U,c+=d}else i[a.trackId]=l.samples.map((function(e,t){return(e={offset:c,dts:F,pts:F+(e.cts||0),duration:e.duration||U,size:e.size||d,gopId:s,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(s++,e.gopId=s),F+=e.duration,c+=e.size,e}))}})),i}},{key:"moovToSamples",value:function(e){var t=e.trak;if(t&&t.length){var n=t.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),r=t.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(n||r){var i,a;if(n){var o,l,d=null===(o=n.mdia)||void 0===o||null===(l=o.minf)||void 0===l?void 0:l.stbl;if(!d)return;var U=d.stts,c=d.stsc,F=d.stsz,s=d.stco,Q=d.stss,u=d.ctts;if(!(U&&c&&F&&s&&Q))return;i=getSamples(U,c,F,s,u,Q)}if(r){var R,B,h,p=null===(R=r.mdia)||void 0===R||null===(B=R.minf)||void 0===B?void 0:B.stbl;if(!p)return;var S=null===(h=r.mdia.mdhd)||void 0===h?void 0:h.timescale,V=p.stts,f=p.stsc,y=p.stsz,m=p.stco;if(!(S&&V&&f&&y&&m))return;a=getSamples(V,f,y,m)}return{videoSamples:i,audioSamples:a}}}}}]),e}();function getSamples(e,t,n,r,i,a){var o,l,d,U=[],c=null==i?void 0:i.entries,F=t.entries,s=r.entries,Q=n.entrySizes,u=null==a?void 0:a.entries;u&&(o={},u.forEach((function(e){o[e-1]=!0}))),c&&(l=[],c.forEach((function(e){for(var t=e.count,n=e.offset,r=0;r<t;r++)l.push(n)})));var R=-1,B=0,h=0,p=0,S=0,V=0,f=F[0].samplesPerChunk,y=F[1]?F[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,r=e.delta,i=0;i<t;i++)d={dts:B,duration:r,size:Q[h]||n.sampleSize,offset:s[p]+V,index:h},u&&(d.keyframe=o[h],d.keyframe&&R++,d.gopId=R),l&&h<l.length&&(d.pts=d.dts+l[h]),U.push(d),B+=r,++h<f?V+=d.size:(p++,V=0,p>=y&&(S++,y=F[S+1]?F[S+1].firstChunk-1:1/0),f+=F[S].samplesPerChunk)})),U}function parseVisualSampleEntry(e,t){return e.dataReferenceIndex=readBig16(t,6),e.width=readBig16(t,24),e.height=readBig16(t,26),e.horizresolution=readBig32(t,28),e.vertresolution=readBig32(t,32),e.frameCount=readBig16(t,40),e.depth=readBig16(t,74),78}function parseAudioSampleEntry(e,t){return e.dataReferenceIndex=readBig16(t,6),e.channelCount=readBig16(t,16),e.sampleSize=readBig16(t,18),e.sampleRate=readBig32(t,24)/65536,28}function parseBox(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var r={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(r.version=e.data[e.headerSize],r.flags=readBig24(e.data,e.headerSize+1),r.headerSize+=4),n(r,e.data.subarray(r.headerSize),r.start+r.headerSize),r}}var padStart=function(e,t,n){for(var r=String(n),i=t>>0,a=Math.ceil(i/r.length),o=[],l=String(e);a--;)o.push(r);return o.join("").substring(0,i-l.length)+l},toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){e.push(padStart(Number(t).toString(16),2,0))})),e[0]};function getValue(e,t,n,r){return e[t]?r?r(e[t]):e[t]:n}var MPD=function(){function e(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2?arguments[2]:void 0;_classCallCheck$8(this,e),EventEmitter(this),this.url=t,this.options=r,this.dash=i,this.useSeparationMode=null===(n=this.dash.config)||void 0===n?void 0:n.useSeparationMode,this.mediaList={video:[],audio:[]},this.mediaList.audio.selectedIdx=0,this.retryMax=10,this.retry=0,this.type="live",this.isEnd=!1,this.duration=0,this.videoCodecType=null,this.videoCodecs=null,this.hasSync=!1,this._readyPromise=new ProxyPromise,this._loadStates={video:this._createLoadingState(),audio:this._createLoadingState()}}return _createClass$8(e,[{key:"_createLoadingState",value:function(){return{currentIndex:0,isLoading:!1}}},{key:"readyPromise",get:function(){return this._readyPromise}},{key:"setLoadingState",value:function(e,t){this._loadStates[e].isLoading=t}},{key:"calcVideoCodeType",value:function(e,t){if(e||t){var n=null;t?n=t.split(".")[0]:e&&(n=e.split(".")[0]);for(var r=Object.keys(CodecsConfigMap),i=0;i<r.length;i++){var a=r[i],o=CodecsConfigMap[a];if(o.types.concat(o.visualEntryBox).indexOf(n)>-1){this.videoCodecType=a,"hevc"===a?this.videoCodecType="h265":"bvc2"===a&&(this.videoCodecType="h266"),this.videoCodecs=o.codecs;break}}debug$1.log("mpd dataType:",e,"codecs:",t,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=CodecsTypes.AVC,this.videoCodecs=CodecsConfigMap[CodecsTypes.AVC].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function t(n){var r,i,a,o,l,d,U,c,F;return _regeneratorRuntime$4().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=this,i={TYPE:"LIVE",ENDLIST:""},a=[],t.prev=3,o=new NetLoader$1({}),t.next=7,o.load(n);case 7:if(l=t.sent,!(d=l.data)){t.next=21;break}if(U=e.parseMPD(d)){t.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(i,U),this._parseSegments(U,n),["video","audio"].forEach((function(e){r.mediaList[e].length>0&&(r.mediaList[e].selectedIdx="video"===e&&r.dash.selectedIdx||0,r.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===r.mediaList.video.length&&0===r.mediaList.audio.length&&(null===(c=r.dash)||void 0===c||c.emit("error",new Errors$1(ERR.MANIFEST,ERR.SUB_TYPES.DASH,{url:n,message:"NO_MEDIALIST fetch"}))),t.abrupt("return",{meta:i,segments:a});case 21:throw r.dash.emit("error",new Errors$1(ERR.MANIFEST,ERR.SUB_TYPES.DASH,{url:n,message:"mpd parse error"})),new Error("MPD_PARSE_ERROR");case 23:t.next=29;break;case 25:throw t.prev=25,t.t0=t.catch(3),r.dash.emit("error",new Errors$1(ERR.RUNTIME,Errors$1.MPD_INIT_ERROR,{httpCode:null===(F=t.t0.response)||void 0===F?void 0:F.status,url:n,message:null===t.t0||void 0===t.t0?void 0:t.t0.message})),new Error(t.t0);case 29:case"end":return t.stop()}}),t,this,[[3,25]])}))),function(e){return t.apply(this,arguments)})},{key:"_parseMeta",value:function(e,t){"static"===t.type&&(e.TYPE="VOD"),t.minBufferTime&&(e.minBufferTime=util$1.durationConvert(t.minBufferTime)),t.maxSegmentDuration&&(e.maxSegmentDuration=util$1.durationConvert(t.maxSegmentDuration)),t.mediaPresentationDuration&&(this.duration=util$1.durationConvert(t.mediaPresentationDuration));var n=t.Period[0];!this.duration&&n&&n.duration&&(this.duration=util$1.durationConvert(n.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,t,n,r,i){for(var a=parseFloat(e.timescale),o=parseFloat(e.duration),l=Math.round(o/a),d=parseInt(e.startNumber,10),U=d+Math.ceil(this.duration/l)-1,c=d;c<=U;c++){var F=l*(c-d),s=l*(c-d+1);c===U&&(l=this.duration-l*(U-d),s=this.duration),t.push({idx:c,start:Math.round(F),end:Math.round(s),url:r+e.media.replace("$RepresentationID$",n).replace("$Number%04d$",util$1.preFixInterge(c,4)),downloaded:0,segmentDuration:l,height:i})}}},{key:"_getVideoSegments",value:function(e){var t,n,r,i,a=e.bandwidth,o=e.id,l=e.baseURL,d=e.initSegment,U=e.mediaSegments,c=e.mimeType,F=e.codecs,s=e.width,Q=e.height,u=e.frameRate,R=e.sar,B=e.startWithSAP,h=e.timescale,p=e.duration,S=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var V=0;V<this.options.dynamic_video.dynamic_video_list.length;V++){var f=this.options.dynamic_video.dynamic_video_list[V];f.bitrate===a&&(t=f.size,n=f.definition,r=f.file_id,i=f.audio_file_id)}this.mediaList.video.push({id:o,baseURL:l,initSegment:l+d.replace("$RepresentationID$",o),inited:!1,mediaSegments:U,mimeType:c,codecs:F,width:s,height:Q,size:t,frameRate:u,sar:R,startWithSAP:B,bandwidth:a,timescale:h,duration:p,encrypted:S,definition:n,fileId:r,audioFileId:i})}},{key:"_getAudioSegments",value:function(e){var t,n=e.bandwidth,r=e.id,i=e.baseURL,a=e.initSegment,o=e.mediaSegments,l=e.mimeType,d=e.codecs,U=e.startWithSAP,c=e.timescale,F=e.duration,s=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var Q=0;Q<this.options.dynamic_video.dynamic_audio_list.length;Q++)this.options.dynamic_video.dynamic_audio_list[Q].bitrate===n&&(t=this.options.dynamic_video.dynamic_audio_list[Q].size);this.mediaList.audio.push({id:r,baseURL:i,initSegment:i+a.replace("$RepresentationID$",r),inited:!1,mediaSegments:o,mimeType:l,codecs:d,startWithSAP:U,bandwidth:n,size:t,timescale:c,duration:F,encrypted:s})}},{key:"_parseSegments",value:function(e,t){var n=this,r=[],i="";e.BaseURL&&(i=e.BaseURL[0]);var a=e.Period[0];a.AdaptationSet&&a.AdaptationSet.length>1&&a.AdaptationSet.forEach((function(e){var a="video/mp4",o="avc1.64001E",l="640",d="360",U="25",c="1:1",F="1",s="588633";e.mimeType&&("video/mp4"===(a=e.mimeType)?(o=e.codecs,l=parseFloat(e.width),d=parseFloat(e.height),U=parseFloat(e.frameRate),c=e.sar,F=e.startWithSAP,s=parseFloat(e.bandwidth),n.calcVideoCodeType(null,o)):"audio/mp4"===a&&(o=e.codecs,F=e.startWithSAP,s=parseFloat(e.bandwidth))),e.Representation.forEach((function(Q){r.indexOf(Q.id)>-1&&(Q.id=(parseInt(r[r.length-1],10)+1).toString()),r.push(Q.id);var u,R="",B=[],h=0,p=t.slice(0,t.lastIndexOf("/")+1)+i;"video/mp4"===(a=getValue(Q,"mimeType",a))?(Q.codecs&&(o=Q.codecs,n.calcVideoCodeType(null,o)),l=getValue(Q,"width",l,parseFloat),d=getValue(Q,"height",d,parseFloat),U=getValue(Q,"frameRate",U,parseFloat),c=getValue(Q,"sar",c)):"audio/mp4"===a&&(o=getValue(Q,"codecs",o)),F=getValue(Q,"startWithSAP",F),s=getValue(Q,"bandwidth",s,parseFloat),Q.BaseURL&&Q.BaseURL.length>0&&(p+=Q.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(u=e.SegmentTemplate[0]),Q.SegmentTemplate&&Q.SegmentTemplate.length>0&&(u=Q.SegmentTemplate[0]);var S=!1;(e.ContentProtection||Q.ContentProtection)&&(S=!0),u&&(R=u.initialization,h=parseFloat(u.duration),n._parseST(u,B,Q.id,p,d)),s=parseInt(s),"video/mp4"===a?n._getVideoSegments({id:Q.id,bandwidth:s,baseURL:p,initSegment:R,mediaSegments:B,mimeType:a,codecs:o,width:l,height:d,frameRate:U,sar:c,startWithSAP:F,timescale:0,duration:h,encrypted:S}):"audio/mp4"===a&&n._getAudioSegments({id:Q.id,baseURL:p,bandwidth:s,initSegment:R,mediaSegments:B,mimeType:a,codecs:o,startWithSAP:F,timescale:0,duration:h,encrypted:S})}))}))}},{key:"getCurrDefition",value:function(){var e,t=this.mediaList,n=t.video,r=t.audio,i={all:{},videoFileId:n[n.selectedIdx].fileId,audioFileId:r[r.selectedIdx].fileId},a=_createForOfIteratorHelper$3(n);try{for(a.s();!(e=a.n()).done;){var o=e.value;i.all[o.fileId]=o}}catch(e){a.e(e)}finally{a.f()}var l,d=_createForOfIteratorHelper$3(r);try{for(d.s();!(l=d.n()).done;){var U=l.value;i.all[U.fileId]=U}}catch(e){d.e(e)}finally{d.f()}return i}},{key:"init",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this;this.mediaList={video:[],audio:[]};var r=n.options;if(r.dynamic_video.dynamic_type&&"segment_template"!==r.dynamic_video.dynamic_type){n.dashType="segment_base";r.duration;var i,a=r.dynamic_video;if(["dynamic_video_list","dynamic_audio_list"].forEach((function(e){var i="dynamic_audio_list"===e,o=0;a[e].forEach((function(a,l){var d=parseInt(a.init_range.split("-")[0],10),U=parseInt(a.init_range.split("-")[1],10),c=parseInt(a.index_range.split("-")[0],10),F=parseInt(a.index_range.split("-")[1],10),s=a.first_segment_range,Q=s?[parseInt(s.split("-")[0],10),parseInt(s.split("-")[1],10)]:null;i||n.calcVideoCodeType(a.codec_type);var u=a.fileId||a.file_id,R="dynamic_audio_list"===e?"audio":"video",B="video"===R?t&&t.videoFileId:t&&t.audioFileId,h=t&&t.all,p=h&&h[u];u===B&&(n.mediaList[R].selectedIdx=l,p.wrapperData&&(p.wrapperData.newIdx=l),p.mediaSegments&&p.mediaSegments.forEach((function(e){e.selectedIdx=l}))),n.mediaList[R].push({id:(o++).toString(),baseURL:a.main_url,initSegment:a.main_url,initSegmentRange:[d,U],sidxRange:[c,F],firstMoofMdatRange:Q,inited:!1,hasSidx:!1,mediaSegments:p?p.mediaSegments:[],mimeType:i?"audio/mp4":"video/mp4",codecs:i?"mp4a.40.2":n.videoCodecs,width:a.vwidth,height:a.vheight,bandwidth:parseInt(a.bitrate),avg_bitrate:a.avg_bitrate,size:a.size,timescale:-1,duration:r.duration,encrypted:a.encrypt,kid:a.kid,definition:a.definition,sidxRes:void 0,fileId:a.file_id,audioFileId:a.audio_file_id,fallbackUrl:a.fallback_url,hasFallback:!1,backupUrl:a.backup_url_1,hasBackup:!1,wrapperData:p?p.wrapperData:null})}))})),n.type="vod",["video","audio"].forEach((function(e){n.mediaList[e].length>0&&(t||(n.mediaList[e].selectedIdx="video"===e&&n.dash.selectedIdx||0),"video"===e&&n.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===n.mediaList.video.length&&0===n.mediaList.audio.length)debug$1.log("medaiList is null",JSON.stringify(n.options.dynamic_video)),null===(i=n.dash)||void 0===i||i.emit("error",new Errors$1(ERR.MANIFEST,ERR.SUB_TYPES.DASH,{message:"NO_MEDIALIST"}));e&&n.emit("ready"),n._readyPromise.resolve()}else n.dashType="segment_template",n.fetch(r.dynamic_video.main_url).then((function(e){n.type=e.meta.TYPE.toLocaleLowerCase(),n.emit("ready"),n._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(e){n.mediaList[e]=[]})),n.retry++,n.retry,n.retryMax}))}},{key:"getSidx",value:function(e){var t,n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3?arguments[3]:void 0,o=this,l=o.mediaList[r][i],d=l.sidxRange[1];try{var U=e instanceof ArrayBuffer?e:e.buffer,c=new Uint8Array(U),F=String.fromCharCode.apply(null,c.subarray(4,8));if("sidx"!==F)throw debug$1.log("mpd sdix parse err"),new Error("topLevel ".concat(F,", index:").concat(i,", res:").concat(e.byteLength,", range:").concat(JSON.stringify(l.sidxRange)));var s=(t=MP4Parser.sidx(MP4Parser.findBox(new Uint8Array(U),[])[0])).timescale,Q=[],u=0,R=0,B=d+1,h=B-1,p=l.cancelFirstSegmentReq,S=l.firstMoofMdatRange;t.references.forEach((function(e,t){R+=e.subsegment_duration,h+=e.referenced_size,Q.push({idx:t+1,url:l.initSegment,start:Math.round(u/s),end:Math.round(R/s),startRaw:u/s,endRaw:R/s,range:[B,h],downloaded:!p&&S&&0===u?1:0,segmentDuration:Math.round(e.subsegment_duration/s),reference_type:e.reference_type,starts_with_SAP:e.starts_with_SAP,SAP_type:e.SAP_type,SAP_delta_time:e.SAP_delta_time,codecType:n.getCodecType(),mediaType:r,selectedIdx:i,fileId:l.fileId}),u=R+1,B=h+1})),Q[0].startTime_=0,l.mediaDuration=0,Q.forEach((function(e,t){l.mediaDuration+=e.segmentDuration,t>0&&(e.startTime_=Q[t-1].startTime_+Q[t-1].segmentDuration),t===Q.length-1&&a&&(e.end=a)})),l.hasSidx=!0,l.mediaSegments=Q,l.timescale=s,l.sidxRes=e}catch(e){if(o.sidxHanded)return;throw o.sidxHanded=!0,new Errors$1(ERR.DEMUX,ERR.SUB_TYPES.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error ".concat(r," err: ").concat(e.message)})}}},{key:"getCodecType",value:function(){return"bvc2"===this.videoCodecType?"h266":"hevc"===this.videoCodecType?"h265":this.videoCodecType?this.videoCodecType:"h264"}},{key:"checkInBuffered",value:function(e,t,n){return 0!==e.length&&this._inBufferd(t,n,e)}},{key:"_inBufferd",value:function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,i=0;i<n.length;i++){var a=n[i].start,o=n[i].end;if(!(t<a||e>o)&&(a-r<e&&t<o+r))return!0}return!1}},{key:"getBuffered",value:function(e){return this._getBuffered(e)}},{key:"_getBuffered",value:function(e){var t=this._getMseBuffered(e);if(!t||0===t.length)return[];for(var n=[],r=0;r<t.length;r++)n.push({start:t.start(r),end:t.end(r)});return n}},{key:"_getMseBuffered",value:function(e){var t,n,r,i=this.dash.mse;if(!i)return[];"[object Function]"===Object.prototype.toString.call(i.buffered)?t=this.dash.mse.buffered(e):t="video"===e?null===(n=i.timeline)||void 0===n||null===(n=n.videoRender)||void 0===n?void 0:n.buffered:null===(r=i.timeline)||void 0===r||null===(r=r.audioRender)||void 0===r?void 0:r.buffered;return t}},{key:"seek",value:function(e,t,n){return this._getMediaResultsSeparate(e,t,["video","audio"],n)}},{key:"setSegmentIndexByTime",value:function(e){this._setSegmentBySeek(e,"video"),this._setSegmentBySeek(e,"audio")}},{key:"getCurSegment",value:function(){for(var e=["video","audio"],t={},n=0;n<e.length;n++){var r,i=e[n],a=null===(r=this.mediaList[i][this.mediaList[i].selectedIdx])||void 0===r?void 0:r.mediaSegments;if(a){var o,l,d,U=this._loadStates[i].currentIndex;t[i]=a[U],debug$1.log("getCurSegment",i,null===(o=t[i])||void 0===o?void 0:o.idx,null===(l=t[i])||void 0===l?void 0:l.start,null===(d=t[i])||void 0===d?void 0:d.end,"idx",U,"len",a.length)}}return t}},{key:"getVideoFirstGop",value:function(){var e,t="video",n=null===(e=this.mediaList[t][this.mediaList[t].selectedIdx])||void 0===e?void 0:e.mediaSegments;return null==n?void 0:n[0]}},{key:"checkRemovedSegment",value:function(e){for(var t=["video","audio"],n={},r=0;r<t.length;r++){var i=t[r],a=e[i];if(a){var o=this._getBuffered(i);!this.checkInBuffered(o,a.startRaw,a.endRaw)&&(n[i]={remove:!0,start:a.startRaw,end:a.endRaw})}}return n}},{key:"_setSegmentBySeek",value:function(e,t){var n=this._findSegmentIndexByTime(t,e),r=n;n=this._adjustSegIndex(n,t),debug$1.log("_setSegmentBySeek",t,r,"newSeg",n),this.setNextSegmentIndex(t,n),this.setLoadingState(t,!1)}},{key:"_adjustSegIndex",value:function(e,t){var n,r=null===(n=this.mediaList[t][this.mediaList[t].selectedIdx])||void 0===n?void 0:n.mediaSegments;if(r&&r.length>0)for(var i=this._getBuffered(t),a=e;a<r.length;a++){var o=r[a];if(this._isItemBufferRemoved(t,i,o),0===(null==o?void 0:o.downloaded)){e=a;break}}return e}},{key:"setNextSegmentIndex",value:function(e,t){this._loadStates[e].currentIndex=t}},{key:"moveNextSegmentIndex",value:function(e,t){if(t-1===this._loadStates[e].currentIndex){var n=this._loadStates[e].currentIndex,r=this._adjustSegIndex(n+1,e);this._loadStates[e].currentIndex=r,n+1!==r&&debug$1.log("seekResult moveNextSegmentIndex mediaType",e,"segIdx",n+1,"segIdx",r)}}},{key:"_getMediaResultsSeparate",value:function(e,t,n,r){for(var i={},a=0;a<n.length;a++){var o,l=n[a];i[l]=[];var d=this._getCurBuffered(l),U=this._getBuffered(l),c=this._loadStates[l];if(!c.isLoading&&!(e+t<(null==d?void 0:d[1]))){var F=null===(o=this.mediaList[l][this.mediaList[l].selectedIdx])||void 0===o?void 0:o.mediaSegments;if(F&&0!==F.length&&!(c.currentIndex>=F.length)){var s=c.currentIndex,Q=F[s];if(Q){var u=Q.end-Q.start;if(0===(null==d?void 0:d[1])||(null==d?void 0:d[1])>0&&Q.start-d[1]>u+1){var R=this._findSegmentIndexByTime(l,e);if(R!==s-1||r){var B,h,p=R;(null==d?void 0:d[1])>0&&(p=this._adjustSegIndex(R,l),debug$1.log("getMediaResults adjust1",l,s,"new",R,"adjustIdx",p,"buf",null==d?void 0:d[1])),this.setNextSegmentIndex(l,p),Q=F[c.currentIndex],debug$1.log("getMediaResults",l,s,"new",R,"adjustIdx",p,"buf",null==d?void 0:d[1],"gap",(null===(B=Q)||void 0===B?void 0:B.start)-d[1],"mediaBuffers",JSON.stringify(U),"seg downloaded",null===(h=Q)||void 0===h?void 0:h.downloaded)}else debug$1.log("getMediaResults seq",l,"nsegIndex",R)}if(Q)if(Q.start-e>t)debug$1.log("outof time");else{var S=this.checkInBuffered(U,Q.startRaw,Q.endRaw);if(0===(null==d?void 0:d[1])&&S&&(debug$1.log("_getMediaResults buffer gap fix",l),c.currentIndex<F.length-1&&(c.currentIndex++,Q=F[c.currentIndex])),(null==d?void 0:d[1])>0&&Q.end<e){var V=Q.end;this._setSegmentBySeek(d[1],l),Q=F[c.currentIndex],debug$1.log("getMediaResults low",l,"curBuffers",d,"orgEnd",V,"newend",Q.end,"currentTime",e)}Q&&Q.downloaded===SEGMENT_STATE.NO_START&&i[l].push(Q)}}}}}return i}},{key:"_findSegmentIndexByTime",value:function(e,t){var n,r=null===(n=this.mediaList[e][this.mediaList[e].selectedIdx])||void 0===n?void 0:n.mediaSegments;if(r&&r.length>0){for(var i=0;i<r.length;i++){var a=r[i];if(t>=a.start&&t<a.end)return i}var o=r[r.length-1];if(Math.abs(t-(null==o?void 0:o.end))<.2)return r.length-1}return-1}},{key:"_getCurBuffered",value:function(e){var t,n=this._getMseBuffered(e);return Array.isArray(n)?[0,0]:null===(t=this.dash.player)||void 0===t?void 0:t.getBufferedRange(n)}},{key:"_isItemBufferRemoved",value:function(e,t,n){if(n&&n.downloaded===SEGMENT_STATE.APPEND)return!this.checkInBuffered(t,n.startRaw,n.endRaw)&&(debug$1.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to set false")),n.downloaded=SEGMENT_STATE.NO_START,!0);if(n&&n.downloaded===SEGMENT_STATE.NO_START&&this.checkInBuffered(t,n.startRaw,n.endRaw))return n.downloaded=SEGMENT_STATE.APPEND,debug$1.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to append")),!1;return!1}},{key:"clearBuffer",value:function(e,t,n){if(!(e>t)){debug$1.log("mpd clearBuffer ".concat(n," start:").concat(e," end:").concat(t));var r=this,i=n?[n]:["video","audio"];"vod"===r.type&&i.forEach((function(n){if(r.mediaList[n].length>0){var i=r.mediaList[n][r.mediaList[n].selectedIdx],a=[];i.mediaSegments.forEach((function(n,r){n.end<e||n.start>t||(n.downloaded=SEGMENT_STATE.NO_START,n.extRange=void 0,a.push(r))}));var o=a.length>0?a[0]:void 0,l=a.length>1?a[a.length-1]:o;debug$1.log("".concat(n," start:").concat(e," end:").concat(t,",\n startId:").concat(o," , endId:").concat(l,", segment downloaded set false"))}}))}}},{key:"isLastSegmentAndAppend",value:function(e,t){var n;if(!this.mediaList[e])return!0;var r=t-1,i=this.mediaList[e].selectedIdx,a=null===(n=this.mediaList[e][i])||void 0===n?void 0:n.mediaSegments;return!!a&&(!a[r]||this._isSegmentAppend(a[r])&&a.length-1===r)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===SEGMENT_STATE.APPEND}},{key:"isSegmentAppendFromIdx",value:function(e,t){var n;if(!this.mediaList[e])return{res:!0,emptyTrack:!0};var r=0,i=this.mediaList[e].selectedIdx,a=(null===(n=this.mediaList[e][i])||void 0===n?void 0:n.mediaSegments)||[];if(0===a.length)return{res:!0,emptySegments:!0};for(var o=0;o<a.length;o++)if(a[o].start<=t&&t<=a[o].end){r=o;break}a&&t>=a[a.length-1].end&&(r=a.length-1);var l=!0;if(a){for(var d=r;r<a.length&&a[d];d++)if(!this._isSegmentAppend(a[d])){l=!1;break}}else l=!1;return{res:l}}}],[{key:"parseMPD",value:function(e){var t;if("string"==typeof e&&(t=e),e instanceof ArrayBuffer){var n=new Uint8Array(e);t=String.fromCharCode.apply(null,n)}if(!t)return null;var r=performance.now();return t=t.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),debug$1.log("MPD cost",performance.now()-r),Xml2Json.parse(t)}}]);var t}();const MPD$1=MPD;var $$3=_export,fill3=arrayFill$1,addToUnscopables$1=addToUnscopables$4;$$3({target:"Array",proto:!0},{fill:fill3}),addToUnscopables$1("fill");var CACHE_TYPES=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(CACHE_TYPES||{}),PRELOAD_EVENTS=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(PRELOAD_EVENTS||{});function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,l=[],d=!0,U=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);d=!0);}catch(e){U=!0,i=e}finally{try{if(!d&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(U)throw i}}return l}}function ownKeys$1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2$1(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys$1(Object(n),!0).forEach((function(t){_defineProperty$1(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys$1(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _regeneratorRuntime(){_regeneratorRuntime=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function U(e,t,n,i){var a=t&&t.prototype instanceof s?t:s,o=Object.create(a.prototype),l=new Z(i||[]);return r(o,"_invoke",{value:f(e,n,l)}),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=U;var F={};function s(){}function Q(){}function u(){}var R={};d(R,a,(function(){return this}));var B=Object.getPrototypeOf,h=B&&B(B(J([])));h&&h!==t&&n.call(h,a)&&(R=h);var p=u.prototype=s.prototype=Object.create(R);function S(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function V(e,t){function i(r,a,o,l){var d=c(e[r],e,a);if("throw"!==d.type){var U=d.arg,F=U.value;return F&&"object"==typeof F&&n.call(F,"__await")?t.resolve(F.__await).then((function(e){i("next",e,o,l)}),(function(e){i("throw",e,o,l)})):t.resolve(F).then((function(e){U.value=e,o(U)}),(function(e){return i("throw",e,o,l)}))}l(d.arg)}var a;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){i(e,n,t,r)}))}return a=a?a.then(r,r):r()}})}function f(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return{value:void 0,done:!0}}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var l=y(o,n);if(l){if(l===F)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var d=c(e,t,n);if("normal"===d.type){if(r=n.done?"completed":"suspendedYield",d.arg===F)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(r="completed",n.method="throw",n.arg=d.arg)}}}function y(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,y(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),F;var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,F;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,F):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,F)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function J(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:b}}function b(){return{value:void 0,done:!0}}return Q.prototype=u,r(p,"constructor",{value:u,configurable:!0}),r(u,"constructor",{value:Q,configurable:!0}),Q.displayName=d(u,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===Q||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,u):(e.__proto__=u,d(e,l,"GeneratorFunction")),e.prototype=Object.create(p),e},e.awrap=function(e){return{__await:e}},S(V.prototype),d(V.prototype,o,(function(){return this})),e.AsyncIterator=V,e.async=function(t,n,r,i,a){void 0===a&&(a=Promise);var o=new V(U(t,n,r,i),a);return e.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(p),d(p,l,"Generator"),d(p,a,(function(){return this})),d(p,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=J,Z.prototype={constructor:Z,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=n.call(a,"catchLoc"),d=n.call(a,"finallyLoc");if(l&&d){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(l){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,F):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),F},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),F}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;E(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:J(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),F}},e}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function asyncGeneratorStep(e,t,n,r,i,a,o){try{var l=e[a](o),d=l.value}catch(e){return void n(e)}l.done?t(d):Promise.resolve(d).then(r,i)}function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){asyncGeneratorStep(a,r,i,o,l,"next",e)}function l(e){asyncGeneratorStep(a,r,i,o,l,"throw",e)}o(void 0)}))}}function _classCallCheck$1(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey$1(r.key),r)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty$1(e,t,n){return(t=_toPropertyKey$1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits$1(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf$1(e,t)}function _getPrototypeOf$1(e){return(_getPrototypeOf$1=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf$1(e,t){return(_setPrototypeOf$1=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _isNativeReflectConstruct$1(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function _objectWithoutPropertiesLoose$1(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function _objectWithoutProperties$1(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose$1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _assertThisInitialized$1(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn$1(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized$1(e)}function _createSuper(e){var t=_isNativeReflectConstruct$1();return function(){var n,r=_getPrototypeOf$1(e);if(t){var i=_getPrototypeOf$1(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return _possibleConstructorReturn$1(this,n)}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray$1(e,t)||_nonIterableRest()}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_unsupportedIterableToArray$1(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e))return _arrayLikeToArray$1(e)}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArray$1(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _unsupportedIterableToArray$1(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray$1(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray$1(e,t):void 0}}function _arrayLikeToArray$1(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _nonIterableSpread$1(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _createForOfIteratorHelper(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=_unsupportedIterableToArray$1(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw a}}}}function _toPrimitive$1(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey$1(e){var t=_toPrimitive$1(e,"string");return"symbol"==typeof t?t:String(t)}var VTYPES=function(e){return e.MP4="MP4",e.MP4_MSE_SOFT="MP4_MSE_SOFT",e.MP4_MSE="MP4_MSE",e.MP4_0="MP4_0",e.MP4_1="MP4_1",e.MP4_2="MP4_2",e.DASH="DASH",e.HLS="HLS",e}(VTYPES||{}),REAL_TIME_SPEED_EVENT="real_time_speed",LOAD_TYPE={CDN:"cdn",PCDN:"pcdn"};function getIDB(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}var idb=getIDB();const idb$1=idb;function isIndexedDBValid(){try{if(null==idb$1||!idb$1.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}function executeCallback(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function executeTwoCallbacks(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}function normalizeKey(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var dbContexts={},READ_ONLY="readonly",READ_WRITE="readwrite";function _deferReadiness(e){var t=dbContexts[e.name],n={};n.promise=new Promise((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function _advanceReadiness(e){var t=dbContexts[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function _rejectReadiness(e,t){var n=dbContexts[e.name].deferredOperations.pop();if(n)return n.reject(t),n.promise}function _getConnection(e,t){return new Promise((function(n,r){if(dbContexts[e.name]=dbContexts[e.name]||createDbContext(),e.db){if(!t)return n(e.db);_deferReadiness(e),e.db.close()}var i=[e.name];t&&i.push(e.version);var a=null==idb$1?void 0:idb$1.open.apply(idb$1,i);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(t.oldVersion," to\n version ").concat(t.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),a.onerror=function(e){e.preventDefault(),r(a.error)},a.onsuccess=function(){n(a.result),_advanceReadiness(e)}}))}function _getOriginalConnection(e){return _getConnection(e,!1)}function _getUpgradedConnection(e){return _getConnection(e,!0)}function _isUpgradeNeeded(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),r=e.version<e.db.version,i=e.version>e.db.version;if(r&&(e.version!==t&&console.warn('The database "'.concat(e.name,"\" can't be downgraded from version ").concat(e.db.version," to\n version ").concat(e.version,".")),e.version=e.db.version),i||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function _tryReconnect(e){_deferReadiness(e);for(var t=dbContexts[e.name],n=t.forages,r=0;r<n.length;r++){var i=n[r];i._dbInfo.db&&(i._dbInfo.db.close(),i._dbInfo.db=null)}return e.db=null,_getOriginalConnection(e).then((function(t){return e.db=t,_isUpgradeNeeded(e)?_getUpgradedConnection(e):t})).then((function(r){e.db=t.db=r;for(var i=0;i<n.length;i++)n[i]._dbInfo.db=r})).catch((function(t){throw _rejectReadiness(e,t),t}))}function createTransaction(e,t,n,r){void 0===r&&(r=1);try{var i=e.db.transaction(e.storeName,t);n(null,i)}catch(i){if(r>0&&(!e.db||"InvalidStateError"===i.name||"NotFoundError"===i.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===i.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),_getUpgradedConnection(e)})).then((function(){return _tryReconnect(e).then((function(){createTransaction(e,t,n,r-1)}))})).catch(n);n(i)}}function createDbContext(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}var AsyncStorage=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var t=this;t._defaultConfig=e;var n={db:null,name:"",version:""};if(e)for(var r in e)n[r]=e[r];var i=dbContexts[n.name];i||(i=createDbContext(),dbContexts[n.name]=i),i.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var a=[];function o(){return Promise.resolve()}for(var l=0;l<i.forages.length;l++){var d=i.forages[l];d!==t&&a.push(d._initReady().catch(o))}var U=i.forages.slice(0);return t._ready=Promise.all(a).then((function(){return n.db=i.db,_getOriginalConnection(n)})).then((function(e){return n.db=e,_isUpgradeNeeded(n,t._defaultConfig.version)?_getUpgradedConnection(n):e})).then((function(e){n.db=i.db=e,t._dbInfo=n;for(var r=0;r<U.length;r++){var a=U[r];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return isIndexedDBValid()}},{key:"getItem",value:function(e,t){var n=this;e=normalizeKey(e);var r=new Promise((function(t,r){n.ready().then((function(){createTransaction(n._dbInfo,READ_ONLY,(function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).get(e);o.onsuccess=function(){var e=o.result;void 0===e&&(e=null),t(e)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return executeCallback(r,t),r}},{key:"setItem",value:function(e,t,n){var r=this;e=normalizeKey(e);var i=new Promise((function(n,i){r.ready().then((function(){return r._dbInfo,t})).then((function(t){createTransaction(r._dbInfo,READ_WRITE,(function(a,o){if(a)return i(a);try{var l=o.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var d=l.put(t,e);o.oncomplete=function(){void 0===t&&(t=null),n(t)},o.onabort=o.onerror=function(){var e=d.error?d.error:d.transaction.error;i(e)}}catch(e){i(e)}}))})).catch(i)}));return executeCallback(i,n),i}},{key:"removeItem",value:function(e,t){var n=this;e=normalizeKey(e);var r=new Promise((function(t,r){n.ready().then((function(){createTransaction(n._dbInfo,READ_WRITE,(function(i,a){if(i)return r(i);try{var o=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){r(o.error)},a.onabort=function(){var e=o.error?o.error:o.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return executeCallback(r,t),r}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_WRITE,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){var e=a.error?a.error:a.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_ONLY,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){createTransaction(t._dbInfo,READ_ONLY,(function(r,i){if(r)return n(r);try{var a=i.objectStore(t._dbInfo.storeName).openCursor(),o=[];a.onsuccess=function(){var t=a.result;t?(o.push({key:t.key,value:t.value}),t.continue()):e(o)},a.onerror=function(){n(a.error)}}catch(e){n(e)}}))})).catch(n)}));return executeCallback(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=dbContexts[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return executeTwoCallbacks(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}]),e}();const IndexedDB=AsyncStorage;var MemoryCache=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,r="".concat(t,"_").concat(n);return this.key=r,window[r]&&"object"===_typeof(window[r])||(window[r]={}),this.store=window[r],Promise.resolve()}},{key:"getItem",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),this._internalPromise(t,n)}},{key:"getItemSync",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),t&&t(n),n}},{key:"setItem",value:function(e,t,n){return this.store[e]=t,this._internalPromise(n)}},{key:"removeItem",value:function(e,t){return delete this.store[e],this._internalPromise(t)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var t=Object.keys(this.store).length;return this._internalPromise(e,t)}},{key:"_internalPromise",value:function(e,t){var n=t?Promise.resolve(t):Promise.resolve();return executeCallback(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),r=0;r<n.length;r++){var i=n[r];t.push({key:i,value:this.store[i]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}]),e}();const MemoryCache$1=MemoryCache;var DefaultConfig$1={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},SPLIT="|",SESSION_KEY="__PRE_CACHE__KEYS",TIMESPLIT="$",MAX_CACHE=200,PreloadCache=function(){function e(t,n){_classCallCheck$1(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var r=n===CACHE_TYPES.MEMORY?MemoryCache$1:IndexedDB;this._cacheType=n,this._driver=new r,this._driver._initStorage(DefaultConfig$1).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?MAX_CACHE:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new ProxyPromise,this.init()}var t;return _createClass$1(e,[{key:"supportSync",value:function(){return this._cacheType===CACHE_TYPES.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=proxyLocalStorage$1.getItem(SESSION_KEY);if(e)for(var t=e.split(SPLIT),n=0;n<t.length;n++){var r=t[n],i=this._getCacheKeyInfos(r),a=i.time,o=i.cachedKey;this._allCachedKeys[o]=1,this._allCachedTimeKeys[o]=a}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split(TIMESPLIT);return 2===n.length&&(t=n[0],e=n[1]),{time:t,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var t=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var n=0;n<e.length;n++){var r=e[n].key,i=this._getCacheKeyInfos(r),a=i.time,o=i.cachedKey;this._allCachedKeys[o]=1,this._allCachedTimeKeys[o]=a,t.push(r)}var l=t.join(SPLIT);proxyLocalStorage$1.setItem(SESSION_KEY,l)}},{key:"init",value:function(){var e=this;this._driver.setItem("test","test").then((function(){})).catch((function(){e._hasIdbForbidden=!0})).finally((function(){e._driver.removeItem("test").catch((function(){})),e._hasIdbForbidden&&(e._driver=new MemoryCache$1,e._driver._initStorage(DefaultConfig$1)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._memory=0,this._cnt=0,this._driver.all().then((function(t){e._cachedLength=t.length;var n=t.length-e._maxCache,r=t;if(n>0){var i=t.slice(0,n);r=t.slice(n);for(var a=0;a<i.length;a++)e.removeItem(i[a].key).then((function(){}))}e._cnt=r.length;for(var o=0;o<r.length;o++){var l=r[o];if("object"===_typeof(l.value)){Object.values(l.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var d=e._getCacheKeyInfos(l.key).cachedKey;e._allCachedKeyMap[d]=Object.keys(l.value)}}e.writeCachedKeysToLocal(r)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,_toConsumableArray$1(t))})),e}},{key:"getItem",value:(t=_asyncToGenerator(_regeneratorRuntime().mark((function e(t,n,r){var i,a,o,l,d;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i=this.hasItem(t))&&r&&(a=this._allCachedKeyMap[t],i=(null==a?void 0:a.includes(r))||!1),i){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return o=this._getTimeKey(t),l=o.timeKey,e.next=7,this._driver.getItem(l,n);case 7:if(d=e.sent,!r){e.next=10;break}return e.abrupt("return",d[r]);case 10:return e.abrupt("return",d);case 11:case"end":return e.stop()}}),e,this)}))),function(e,n,r){return t.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var r=this.hasItem(e);if(r&&n){var i=this._allCachedKeyMap[e];r=(null==i?void 0:i.includes(n))||!1}if(!r)return!1;var a=this._getTimeKey(e).timeKey,o=this._driver.getItemSync(a,t);return n?o[n]:o}},{key:"setItem",value:function(e,t,n){var r=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var i=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=i;var a=this._genTimeKey(e,i);return n=n?function(){r._getAll(),n()}:function(){r._getAll()},this._driver.setItem(a,t,n)}},{key:"_getTimeKey",value:function(e){var t=this._allCachedTimeKeys[e],n=e;return t&&(n=this._genTimeKey(e,t)),{timeKey:n,time:t}}},{key:"_genTimeKey",value:function(e,t){return"".concat(t).concat(TIMESPLIT).concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,r=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],r}},{key:"hasItem",value:function(e){return!!this._allCachedKeys[e]}},{key:"clear",value:function(e){return this._driver.clear(e)}},{key:"length",value:function(e){return this._driver.length(e)}},{key:"setMaxCache",value:function(e){"number"==typeof e&&e>0&&(this._maxCache=e)}},{key:"getMemoryInfo",value:function(){return{memory:this._memory,cnt:this._cnt}}}]),e}();const PreloadCache$1=PreloadCache;var _excluded$3=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],_realTimeSpeed$1=0,Stats=function(){function e(t){var n=this;_classCallCheck$1(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){_realTimeSpeed$1=e.speed,n.emit(REAL_TIME_SPEED_EVENT,e)},this._manager=t}return _createClass$1(e,[{key:"setPreloadBandwidth",value:function(e,t){this._preload_bandwith_map.set(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._preload_bandwith_map.get(e)}},{key:"_updateLoadInfo",value:function(e,t,n){var r=this._pcdn_info_map.get(e);!r&&(r={}),r[t]||(r[t]={},r[t].loadLen=0),r[t].loadLen=r[t].loadLen+n,this._pcdn_info_map.set(e,r)}},{key:"getLoadInfoAndDelete",value:function(e){var t=this._pcdn_info_map.get(e);return this._pcdn_info_map.delete(e),t}},{key:"getPreloadUnuseInfo",value:function(){var e,t={},n=_createForOfIteratorHelper(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var r=_slicedToArray(e.value,2),i=r[0],a=r[1];if(this._usepreload_info.get(i))this._preload_bandwith_map.delete(i);else{var o=i.split("#"),l=o.length>0?o[0]:i;t[l]?(t[l].bw+=a.bw||0,t[l].pbw+=a.pbw||0):t[l]={vid:l,bw:a.bw||0,pbw:a.pbw||0,bitrate:a.bitrate||0,duration:a.duration||0}}}}catch(e){n.e(e)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,r=e.size,i=e.speed,a=e.cacheKey,o=e.vtype,l=e.duration,d=e.bitrate,U=_objectWithoutProperties$1(e,_excluded$3),c=this.getPreloadBandwidth(a)||{bw:0,pbw:0,vid:t,duration:l,bitrate:d};n&&n!==LOAD_TYPE.CDN?(c.pbw=c.pbw+r,this.emit("prf_data_size",_objectSpread2$1({vid:t,task_type:2,pcdn_size:r,pcdn_speed:i,vtype:o,bitrate:d,duration:l},U))):(c.bw=c.bw+r,this.emit("prf_data_size",_objectSpread2$1({vid:t,task_type:2,cdn_size:r,cdn_speed:i,vtype:o,duration:l,bitrate:d},U))),this.setPreloadBandwidth(a,c),this._updateRealTimeSpeed({speed:i,type:n||LOAD_TYPE.CDN}),this._updateLoadInfo(a,n,r)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return _realTimeSpeed$1}},{key:"emit",value:function(e,t){var n;null===(n=this._manager)||void 0===n||n.emit(e,t)}},{key:"destroy",value:function(){this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._manager=null}}]),e}();function getDefaultConfig(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:CACHE_TYPES.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}function checkIfStartPreload(e,t,n){if(!e)return!1;var r=getBufferedRange(e.buffered,e.currentTime),i=t.startPreloadControl,a=t.startPreloadMinBuffer,o=t.startPreloadMinPosTime,l=t.minBufferLength;if(i){var d=Math.max(r[1]-e.currentTime,0);if(d>a){if(e.currentTime>o||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",d,"startPreloadMinBuffer",a),!0}else if(e.currentTime+a+1>e.duration&&e.currentTime+d>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var U=e.duration>l+5?l:e.duration/2,c=Math.min(e.currentTime+l,e.duration),F=r[1]-c;if(e.currentTime>U&&F>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",U,"minCacheTime",c),!0}return!1}function checkIfCancelPreload(e,t,n){var r=t.endPreloadControl,i=t.endPreloadMinBuffer,a=t.startPreloadMinBuffer;if(!e)return!1;if(r){if(e.currentTime+a>=e.duration)return!1;var o=getBufferedRange(e.buffered,e.currentTime),l=Math.max(o[1]-e.currentTime,0);if(l<=i)return null==n||n("log","[checkIfCancelPreload] hit buffer:",l,"endPreloadMinBuffer:",i,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}function getBufferedRange(e,t){var n=[0,0];if(e)for(var r=0,i=e.length;r<i&&(n[0]=e.start(r),n[1]=e.end(r),!(n[0]<=t&&t<=n[1]));r++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function checkPlaying(e,t,n){for(var r=0;r<e.length;r++)if(n===e[r][t])return r;return-1}var _excluded$2=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],_DEBUGGER=!1,PreloaderManager=function(e){_inherits$1(d,EventEmitter$1);var t,n,r,i,a,o,l=_createSuper(d);function d(){var e;return _classCallCheck$1(this,d),(e=l.call(this))._loaders={},e._loaderInsts={},e._taskIntervalId=0,e._currentPreloadInst=null,e._preloadDataList=[],e._player=null,e._stepwise=!1,e._playingVids=[],e._isOpen=!0,e._userDefinition=null,e._startDefinition=null,e.onPreloadNext=_asyncToGenerator(_regeneratorRuntime().mark((function t(){var n,r,i,a,o,l,d,U,c,F,s,Q,u,R;return _regeneratorRuntime().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=_assertThisInitialized$1(e),a=i._preloadDataList,o=i._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(l=e.findPreloadItem(a,!1),d=null==l?void 0:l.data,l&&null!=d&&d.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,U=e.selectBeforeStart(d),e._filterMixPayload(d,U),e.setStartDefinition(null===(n=U)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(r=U)||void 0===r?void 0:r.vtype,U),c=e._getPreloaderKey(U||d)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",d),o.autoPreload&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(F=e._getLoaderInst(c)){t.next=23;break}if(s=e._getLoader(c)){t.next=22;break}return t.abrupt("return",!1);case 22:F=new s(_assertThisInitialized$1(e),e._config);case 23:return e._currentPreloadInst=F,e._currentPreloadInst.setData(d),e._emitEvtByStart(d),t.prev=26,e.log("log","loaderInst.start",c,e.getStartDefinition(),d),t.next=30,F.start(d,e.getStartDefinition());case 30:(Q=t.sent)&&Q.remove&&(u=a.indexOf(l))>-1&&a.splice(u,1),t.next=37;break;case 34:t.prev=34,t.t0=t.catch(26),e.log("error","preload data error!",t.t0);case 37:return t.prev=37,null===(R=e._currentPreloadInst)||void 0===R||R.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),t.finish(37);case 42:return t.abrupt("return",!0);case 43:case"end":return t.stop()}}),t,null,[[26,34,37,42]])}))),e._stats=new Stats(_assertThisInitialized$1(e)),e}return _createClass$1(d,[{key:"VTYPES",get:function(){return VTYPES}},{key:"player",get:function(){return this._player}},{key:"stepwise",get:function(){return this._stepwise}},{key:"realTimeSpeed",get:function(){return this._stats.realTimeSpeed}},{key:"currentPreloadInst",get:function(){return this._currentPreloadInst}},{key:"cacheInst",get:function(){return this._cacheInst}},{key:"preloadDataList",get:function(){return this._preloadDataList}},{key:"log",value:function(e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];_DEBUGGER&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(r))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=d.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var n=this._config,r=n.preloadMaxCacheCount,i=n.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new PreloadCache$1(r,i),this._selector=e.BitrateSelector,this.on(PRELOAD_EVENTS.PRELOAD_NEXT,this.onPreloadNext);for(var a=e.loaders,o=0;o<a.length;o++)this.registerLoader(a[o].vtype,a[o])}catch(e){this.log("register error",e)}}},{key:"registerLoader",value:function(e,t){e&&(this._loaders[e]&&this.log("warn","vtype:".concat(e," Preloader already exist")),this._loaders[e]=t,this._loaderInsts[e]=new t(this,this._config))}},{key:"_checkIfCanPreload",value:function(){if(null===this._currentPreloadInst&&this._preloadDataList.length>0){var e=this.findPreloadItem(this._preloadDataList),t=null==e?void 0:e.data;if(this._wipPreloadTask=e,e&&null!=t&&t.payload){if(!this._getPreloaderKey(t))return this.log("warn","need to set vtype"),this.stopCheckTask(),!1;var n=this._config.checkIfCanPreload;return n&&"function"==typeof n?n(t):this._config.autoCheckPreload?this._autoCheckPreload(t,e):(this.stopCheckTask(),!1)}}return!1}},{key:"_autoCheckPreload",value:function(e,t){return this._media?checkIfStartPreload(this._media,this._config,this.log):(this.log("warn","need set video"),!1)}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype.toUpperCase():""}},{key:"_sort",value:function(e){e.sort((function(e,t){return void 0===e.order&&void 0===t.order||"number"==typeof e.order&&"number"==typeof t.order&&e.order<t.order?-1:1}))}},{key:"_addPlayingVid",value:function(e,t){var n=this._playingVids,r=checkPlaying(this._playingVids,"playerId",e);r>-1?n[r].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return _objectSpread2$1({},t);var r=this.getUserSelectDefinition(),i=this.selectBitrate(null==e?void 0:e.payload,n,r),a=(null==i?void 0:i.vtype)||e.vtype,o=_objectSpread2$1(_objectSpread2$1({},i),{},{vtype:a});return e.targetDefinition=o,this.log("log","selectBeforeStart",null==e?void 0:e.vid,a,null==i?void 0:i.definition,null==e?void 0:e.payload,i),o}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var r=null;if(this._selector){var i,a,o;r=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(i=r)||void 0===i?void 0:i.vtype,null===(a=r)||void 0===a?void 0:a.definition,null===(o=r)||void 0===o?void 0:o.bitrate)}else{for(var l=-1,d=-1,U=0;U<e.length;U++){var c=e[U];n&&c.definition===n?l=U:t&&c.definition===t&&(d=U)}r=e[l>=0?l:d>=0?d:0]}return _objectSpread2$1({},r)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,r=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&checkIfCancelPreload(this._media,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),r.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var r;if(this.stepwise)"number"==typeof(null===(r=t.data)||void 0===r?void 0:r.stepIdx)&&t.data.stepIdx>-1&&t.data.stepIdx--;else 0!==n&&e.unshift(t);this._emitEvtByCancel(t.data),this._wipPreloadTask=void 0}}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=-1)}},{key:"getPreloadMetaByVid",value:function(e){for(var t=this.getAllCachedDataKeys(),n=[],r="",i=0;i<t.length;i++){var a=t[i],o=d.parseKey(a);o.vid===e&&(r=o.vtype,n.push(a))}if(0===n.length)return null;var l=this._getLoaderInst(r);return l?l.parseKey(n):null}},{key:"preloadNext",value:function(){this.onPreloadNext()}},{key:"_filterMixPayload",value:function(e,t){var n=t.vtype;if(n&&Array.isArray(e.payload)){var r=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||r}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(PRELOAD_EVENTS.PRELOAD_START,this._getEventPayload(e,t))}catch(e){this.log("warn","preload emit start error",null==e?void 0:e.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(PRELOAD_EVENTS.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(e){this.log("warn","preload emit cancel error",null==e?void 0:e.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,r=this._config,i=r.minBufferLength,a=r.startPreloadControl,o=r.startPreloadMinBuffer,l=r.startPreloadMinPosTime,d=r.endPreloadMinBuffer,U=r.endPreloadControl,c=getBufferedRange(t.video.buffered,t.currentTime),F=c[1]?c[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:c,bufferHead:F,currentTime:t.currentTime,minBufferLength:i,startPreloadControl:a,startPreloadMinBuffer:o,startPreloadMinPosTime:l,endPreloadControl:U,endPreloadMinBuffer:d}}},{key:"addPreloadList",value:(o=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=_createForOfIteratorHelper(t),e.prev=2,n.s();case 4:if((r=n.n()).done){e.next=10;break}return i=r.value,e.next=8,this._addData(i);case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:this._checkAutoTask();case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return o.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,r=-1,i=0;i<n.length;i++){if(e===n[i].data.vid){r=i;break}}if(r>-1){var a=n.splice(r,1);this.log("log","cancelPreloadByVid remove from list",a.length>0&&a[0].data.vid)}var o=this._currentPreloadInst,l=o?o.getData():null;this.log("log","_currentPreloadInst",l),l&&l.vid===e&&this.cancel(),t&&this._addPlayingVid(t,e)}},{key:"removePlayingId",value:function(e){var t=this._playingVids,n=checkPlaying(t,"playerId",e);if(n>-1){var r=t.splice(n,1);this.log("log","removePlayingId",r.length>0&&r[0].playerId)}}},{key:"addPreload",value:(a=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._addData(t);case 2:if(e.sent){e.next=5;break}return e.abrupt("return");case 5:this._sort(this._preloadDataList),this._checkAutoTask();case 7:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"_addData",value:(i=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i,a,o,l,d,U,c,F=this;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.data.vtype){e.next=3;break}return this.log("warn","vtype is null, can·t select loader"),e.abrupt("return",!1);case 3:if(n=t.data,r=this._getLoader(n.vtype)){e.next=8;break}return this.log("warn","the loader for ".concat(n.vtype," not registered")),e.abrupt("return",!1);case 8:if(i=this._playingVids,!((a=checkPlaying(i,"vid",t.data.vid))>=0)){e.next=14;break}return o=i[a],this.log("log","vid:".concat(o.vid," is already instantiated and loaded, playerId is ").concat(o.playerId)),e.abrupt("return");case 14:return l=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(d=e.sent)){e.next=22;break}if(!r.isUniqueCache(d)){e.next=22;break}return this.log("log","".concat(l," already exist in cache")),e.abrupt("return",!1);case 22:if(!this._currentPreloadInst){e.next=29;break}if(!(U=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:U,order:0})!==l){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(c=this._preloadDataList.filter((function(e){return F._getUniqueKey(e)===l})),this.log("log","addedItems",l,c),0!==c.length){e.next=35;break}return this._stepwise&&void 0===t.data.steps&&(t.data.steps=[0]),this._preloadDataList.push(t),e.abrupt("return",!0);case 35:return this.log("log","".concat(l," already exist in preloadList")),e.abrupt("return",!1);case 37:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?d.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,r=t.autoPreload;Promise.resolve().then((function(){r&&e.emit(PRELOAD_EVENTS.PRELOAD_NEXT),null!=n&&n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,n,r){var i=d.generateUniqueCacheKey(e);if(!n){var a=this._getLoader(e.vtype);if(!a)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=_defineProperty$1({},a.generateUniqueKey(e),t)}return this._cacheInst.setItem(i,t,r)}},{key:"getItem",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=d.generateUniqueCacheKey(e),i=this._getLoader(e.vtype);if(!i)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var a=t?"":i.generateUniqueKey(e);return this._cacheInst.getItem(r,n,a)}},{key:"getItemSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=d.generateUniqueCacheKey(e),i=this._getLoader(e.vtype);if(!i)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var a=t?"":i.generateUniqueKey(e);return this._cacheInst.getItemSync(r,n,a)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var n=d.generateUniqueCacheKey(e);return this._cacheInst.removeItem(n,t)}},{key:"getPreLoadData",value:(r=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){var n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(r=this._getLoaderInst(n))){e.next=7;break}return e.next=5,r.getPreLoadData(t);case 5:return i=e.sent,e.abrupt("return",i);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=e.vtype,n=this._getLoaderInst(t);return n?n.getPreLoadDataSync(e):null}},{key:"removeAll",value:function(){var e=this;this.getAllCachedDataKeys().forEach((function(t){var n=e.getPreloadMetaByVid(t.split("#")[0]);n&&e.removeItem(n,null)}))}},{key:"removeAllPreloadTask",value:function(){this.cancel(),this._preloadDataList=[],this._playingVids=[]}},{key:"disable",value:function(){this._isOpen=!1,this.stopCheckTask()}},{key:"enable",value:function(){this._isOpen=!0,this._config.autoCheck.enable&&!this._taskIntervalId&&this._preloadDataList.length>0&&this.startCheckTask()}},{key:"setUserSelectDefinition",value:function(e){this._userDefinition=e}},{key:"getUserSelectDefinition",value:function(){return this._userDefinition||null}},{key:"getStartDefinition",value:function(){return this._startDefinition}},{key:"setStartDefinition",value:function(e){this._startDefinition=e}},{key:"destroy",value:(n=_asyncToGenerator(_regeneratorRuntime().mark((function e(){var t,n,r,i;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._stats.destroy(),t=Object.keys(this._loaderInsts),n=0;case 3:if(!(n<t.length)){e.next=12;break}if(r=t[n],!(i=this._getLoaderInst(r))){e.next=9;break}return e.next=9,i.destroy();case 9:n++,e.next=3;break;case 12:this.removeAllListeners(),this._loaderInsts={},this._loaders={},this._playingVids=[],this.detachPlayer();case 17:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"cancel",value:(t=_asyncToGenerator(_regeneratorRuntime().mark((function e(){var t;return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._currentPreloadInst){e.next=4;break}return e.next=3,this._currentPreloadInst.cancel();case 3:null===(t=this._currentPreloadInst)||void 0===t||t.setData(null);case 4:this._currentPreloadInst=null;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"removeByPlayInst",value:function(e,t){for(var n=this._preloadDataList.length-1;n>-1;n--){var r=this._preloadDataList[n];if(r.data.vid===e&&r.playerId===t){this._preloadDataList.splice(n,1);break}}}},{key:"getAllCachedDataKeys",value:function(){var e;return(null===(e=this._cacheInst)||void 0===e?void 0:e.getAllCachedDataKeys())||[]}},{key:"getDataUniqueKey",value:function(e){var t=this._getLoader(e.vtype);return!!t&&t.generateUniqueKey(e)}},{key:"hasItemSameVid",value:function(e){var t=this._getLoader(e.vtype),n=this._getLoaderInst(e.vtype);if(t&&n){var r=t.generateUniqueKey(e);return n.hasItemSameVid(r)}return!1}},{key:"_getLoader",value:function(e){e=e||"";var t=this._loaders[e]||this._loaders[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"_getLoaderInst",value:function(e){e=e||"";var t=this._loaderInsts[e]||this._loaderInsts[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"getPreloadMemoryInfo",value:function(){return this._cacheInst.getMemoryInfo()}},{key:"attachPlayer",value:function(e){this._player=e,this._media=e.video||e.media}},{key:"detachPlayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&this._player!==e||(this._player=null,this._media=null)}},{key:"setPreloadBandwidth",value:function(e,t){this._stats.setPreloadBandwidth(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._stats.getPreloadBandwidth(e)}},{key:"getLoadInfoAndDelete",value:function(e){return this._stats.getLoadInfoAndDelete(e)}},{key:"getPreloadUnuseInfo",value:function(){return this._stats.getPreloadUnuseInfo()}},{key:"setUsePreloadInfo",value:function(e,t){this._stats.setUsePreloadInfo(e,t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,r=e.size,i=e.speed,a=e.cacheKey,o=e.vtype,l=e.duration,d=e.bitrate,U=_objectWithoutProperties$1(e,_excluded$2);this._stats.bwEventEmit(_objectSpread2$1({vid:t,loadType:n,size:r,speed:i,cacheKey:a,vtype:o,duration:l,bitrate:d},U))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var r=e.reduce((function(e,t){return void 0===t.data.stepIdx||"number"==typeof t.data.stepIdx&&"number"==typeof e.data.stepIdx&&t.data.stepIdx<e.data.stepIdx?t:e})),i=e.filter((function(e){return e.data.stepIdx===r.data.stepIdx}));if(i.length>1&&this._sort(i),t=i[0],!n){if("number"!=typeof t.data.stepIdx&&(t.data.stepIdx=-1),t.data.stepIdx++,Array.isArray(t.data.steps)&&t.data.stepIdx>=t.data.steps.length-1){var a=e.indexOf(t);e.splice(a,1)}t.data.stepIdx===1/0&&(t=void 0)}}else t=n?e[0]:e.shift();return t}},{key:"updateConfig",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._config=Object.assign({},d.getDefaultConfig(),e):Object.assign(this._config,e);var t=this._config.autoCheck;t&&!t.enable&&this.stopCheckTask(),t&&t.enable&&this.startCheckTask()}},{key:"preProcessUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this._config,r=n.preProcessUrl,i=n.preProcessUrlOptions;return"function"==typeof r?r(e,Object.assign({},i,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return getDefaultConfig()}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,r=e.vtype;return"".concat(t,"#").concat(n,"#").concat(r.toUpperCase())}},{key:"parseKey",value:function(e){if(!e)throw new Error("key ".concat(e," is empty"));var t=e.split("#");if(t.length<5)throw new Error("key ".concat(e," is not right format"));return{vid:t[0],mediaType:t[1],codecType:t[2],vtype:t[3],definition:t[4]}}},{key:"debugger",set:function(e){_DEBUGGER=!!e}}]),d}(),PreloaderBase=function(e){_inherits$1(o,EventEmitter$1);var t,n,r,i,a=_createSuper(o);function o(e,t){var n;return _classCallCheck$1(this,o),(n=a.call(this))._data=null,n.preloadManager=e,n._config=t,n.promisePolyfill(),n}return _createClass$1(o,[{key:"taskInProgress",get:function(){return!1}},{key:"stepwise",get:function(){return this.preloadManager.stepwise}},{key:"getRequestOption",value:function(e){var t=this._config,n=t.getRequestOptionsCallback,r=t.reqOptions,i={};return e?i=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):r||{}:i}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"selectBitrate",value:function(e,t,n){return this.preloadManager.selectBitrate(e,t,n)}},{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"getData",value:function(){return this._data}},{key:"setData",value:function(e){this._data=e}},{key:"start",value:(i=_asyncToGenerator(_regeneratorRuntime().mark((function e(t,n){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("start need implement, return Promise");case 1:case"end":return e.stop()}}),e)}))),function(e,t){return i.apply(this,arguments)})},{key:"cancel",value:(r=_asyncToGenerator(_regeneratorRuntime().mark((function e(){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("cancel need implement, cancel current preload request");case 1:case"end":return e.stop()}}),e)}))),function(){return r.apply(this,arguments)})},{key:"getPreLoadData",value:(n=_asyncToGenerator(_regeneratorRuntime().mark((function e(t){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getPreLoadData not implement");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){return null}},{key:"hasItemSameVid",value:function(e){return!0}},{key:"destroy",value:(t=_asyncToGenerator(_regeneratorRuntime().mark((function e(){return _regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){return PreloaderManager.parseKey(e[0])}}],[{key:"generateUniqueKey",value:function(e){throw new Error("generateUniqueCacheKey need implement, return string")}},{key:"vtype",get:function(){throw new Error("need vtype")}},{key:"isUniqueCache",value:function(e){return!0}}]),o}(),MODEL_TYPES={TOP:"TOP",FEED:"FEED"};function transformTopModel(e){e.duration=e.dashOpts.Data.Duration,e.dashOpts.dynamic_video=e.dashOpts.Data,e.dashOpts.dynamic_video.dynamic_video_list=[],e.dashOpts.dynamic_video.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type=e.dashOpts.Data.AdaptiveInfo.AdaptiveType,e.dashOpts.dynamic_video.main_url=e.dashOpts.Data.AdaptiveInfo.MainPlayUrl;for(var t=0;t<e.dashOpts.Data.PlayInfoList.length;t++){var n=e.dashOpts.Data.PlayInfoList[t],r={backup_url_1:n.BackupPlayUrl,bitrate:e.dashOpts.Data.VideoID?n.Bitrate:1e3*n.Bitrate,check_info:n.CheckInfo,codec_type:n.Codec,definition:n.Definition,encrypt:!(!n.PlayAuth||!n.PlayAuthID&&!n.PlayAuthId),file_hash:n.FileHash||n.Md5,file_id:n.FileID,index_range:n.IndexRange,init_range:n.InitRange,first_segment_range:n.FirstSegmentRange,kid:n.PlayAuthID||n.PlayAuthId,logo_type:n.Logo||n.LogoType,main_url:n.MainPlayUrl,preload_interval:n.PreloadInterval,preload_max_step:n.PreloadMaxStep,preload_min_step:n.PreloadMinStep,preload_size:n.PreloadSize,quality:n.Quality,size:n.Size,spade_a:n.PlayAuth,vheight:n.Height,vtype:n.Format,vwidth:n.Width};"video"===n.MediaType||"video"===n.FileType?e.dashOpts.dynamic_video.dynamic_video_list.push(r):"audio"!==n.MediaType&&"audio"!==n.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(r)}}function transformFeedModel(e){var t=e.dashOpts.dynamic_video=e.dashOpts.Data;t.video_duration=t.duration,t.dynamic_video_list=[],t.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type="segment_base";for(var n=t.playInfoList||t.payload,r=0;r<n.length;r++){var i,a,o,l=n[r];if(l.vtype.toUpperCase()===VTYPES$1.DASH)l.main_url=(null===(i=l.url[0])||void 0===i?void 0:i.src)||l.main_url,l.backup_url_1=(null===(a=l.url[1])||void 0===a?void 0:a.src)||l.backup_url_1,l.fallback_url=(null===(o=l.url[2])||void 0===o?void 0:o.src)||l.fallback_url,l.codec_type="bytevc1"===l.codecType?"h265":l.codecType,"video"===l.mediaType&&t.dynamic_video_list.push(JSON.parse(JSON.stringify(l))),"audio"===l.mediaType&&t.dynamic_audio_list.push(l)}}function selectAudio(e,t,n){var r,i=e.selectedIdx;n>-1&&(i=n);var a=null===(r=e[i])||void 0===r?void 0:r.audioFileId;if(!a)return-1;for(var o=0;o<t.length;o++)if(t[o].fileId===a)return o;return 0}var _excluded$1=["app_id","trackerUrl","sid","task_type"],PCDN_STATE={CLOSE:"close",OPEN:"open",FORBIDDEN:"forbidden"},REQ_TYPES={PCDN:1,CDN:0},TASK_TYPES={PLAY:1,DOWNLOAD:2};function isHTTPS(e){return/^http(s)?:\/\/.+/.test(e)}var DEFAULT_CONFIG$1={enterMinBuffer:10,minDuration:25,openPreloadPCDN:!1,outMaxBuffer:5,openPCDN:!1,trackerUrl:"https://vc-gate.ndcpp.com/sdk/get_peer",withReferer:1},PCDNService=function(){return _createClass$8((function e(t,n,r,i,a,o){_classCallCheck$8(this,e),this._pcdnNodes=null,this._cachedPcdn={},this._PCDNState=PCDN_STATE.CLOSE,this._retryInfo={},this._bitrate2file={},this._isOpenPCDN=!1,this._duration=0,this._vid="",this._tag="",this._isUseCDN=!1,this._lastPCDNUrl="",this.pcdn_download_request_cnt=0,this.pcdn_download_failed_cnt=0,this._PCDNSwitchCnt=0,this.pcdn_tracker_failed_cnt=0,this.pcdn_tracker_request_cnt=0,this._pcdnVVStat={try_req_node:0,req_node_succ:0,has_ret_node:0,conn_req_num:0,conn_fail_num:0,conn_jump_num:0,pSCCancelCnt:0},this._lastBitrateMap={},this._pcdnConfig=Object.assign({},DEFAULT_CONFIG$1,t),this._isOpenPCDN=n,this.updateConfig({vid:i,duration:r}),this._player=a,this._tag=o}),[{key:"getPCDNReqId",value:function(e){var t=e.uri||this._vid;return this._getPCDNReqIdBitrate(t,e.bitrate)}},{key:"_getPCDNReqIdBitrate",value:function(e,t){return e.slice(-20)+t}},{key:"_createFileInfo",value:function(e){var t=e.file_id||e.fileId,n=e.main_url||e.baseURL;isHTTPS(n)||(n=document.location.protocol+n);return{vid:this._vid,cdn_url:n,file_type:"dash",sfid:t,bitrate:e.bitrate,duration:Math.floor(this._duration||0),size:e.size}}},{key:"checkPCDN",value:(a=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o,l,d,U,c,F,s,Q,u;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._vid){e.next=3;break}return console&&console.warn("PCDN service need vid, vid is undefiend, pass vid by dashplugin"),e.abrupt("return");case 3:if(!((null===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN)&&this._isOpenPCDN&&this._duration>=this._pcdnConfig.minDuration&&t)){e.next=24;break}if(r=t.bitrate,!(i=this._cachedPcdn[r])){e.next=12;break}if(a=i.pcdnNodeList,o=i.pcdnTraceInfo,!(a&&a.length>0&&o)){e.next=12;break}return this._pcdnTraceInfo=o,e.abrupt("return");case 12:return l=this._pcdnConfig,d=l.app_id,U=l.trackerUrl,c=l.sid,F=l.task_type,s=_objectWithoutProperties$4(l,_excluded$1),Q=t.file_id||t.fileId,u=this._createFileInfo(t),this._bitrate2file[t.bitrate]=Q,this._pcdn?(debug$1.log(this._tag,"resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new PCDN(_objectSpread2$5({productConfig:{app_id:d,sid:c,task_type:F||TASK_TYPES.PLAY},trackerUrl:U},s),this._player,u.bitrate,u.duration),e.prev=17,e.next=20,this.getPCDNNode(t.bitrate,t);case 20:e.next=24;break;case 22:e.prev=22,e.t0=e.catch(17);case 24:case"end":return e.stop()}}),e,this,[[17,22]])}))),function(e){return a.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var t=util$1.getHostFromUrl(e);this._retryInfo[t]=!0}},{key:"_updateNodeList",value:function(e,t){var n=this;if(e&&e.nodes){var r,i={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(n._retryInfo,util$1.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},a=this._bitrate2file[t];if(null!==(r=e.fid)&&void 0!==r&&r.includes(a))this._cachedPcdn[t]=i,this._pcdnTraceInfo=i.pcdnTraceInfo,debug$1.log(this._tag,"_updateNodeList",JSON.stringify(this._cachedPcdn));else 8*getByteRate(t)===e.bitrate&&(this._cachedPcdn[t]=i,debug$1.log(this._tag,"_updateNodeList not file not match cachedFileid",a,"pcdnRet"))}}},{key:"isUpdateNode",value:function(e){var t=this._getNodeListByBitrate(e);return!t||!t.length}},{key:"selectedPCDN",value:function(e,t){var n;if(null===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN){if(this._PCDNState!==PCDN_STATE.FORBIDDEN&&!e){var r;if(this.isUsePCDN(t)){this._isUseCDN=!1;var i=this._getNodeListByBitrate(t);i&&(r=i[0].url,this._lastPCDNUrl!==r&&(this._lastPCDNUrl=r,this._pcdnVVStat.conn_req_num+=1),this.pcdn_download_request_cnt++)}else this._isUseCDN||(this._PCDNSwitchCnt++,this._pcdnVVStat.conn_jump_num+=1,this._PCDNSwitchCnt>=this._pcdnConfig.switchPCDNMaxCnt&&this.updatePCDNState(PCDN_STATE.FORBIDDEN,(function(){}))),this._isUseCDN=!0;return r}this._isUseCDN=!0}}},{key:"isUsePCDN",value:function(e){var t=this._getNodeListByBitrate(e);return this._PCDNState===PCDN_STATE.OPEN&&t&&t.length>0}},{key:"_getNodeListByBitrate",value:function(e){var t=this._cachedPcdn[e];return t?t.pcdnNodeList:null}},{key:"getPCDNInOUtBuffer",value:function(){var e,t,n,r=null===(e=this._pcdnConfig)||void 0===e?void 0:e.openPCDN,i=this._pcdnConfig,a=null===(t=this._pcdn)||void 0===t?void 0:t.getPCDNInBuffer(),o=null===(n=this._pcdn)||void 0===n?void 0:n.getPCDNOutBuffer(),l=a||(null==i?void 0:i.enterMinBuffer)||(null==i?void 0:i.minBuffer)||-1,d=o||(null==i?void 0:i.outMaxBuffer)||-1;return{PCDNInBuffer:r?l:-1,PCDNOutBuffer:r?d:-1}}},{key:"isOpenPCDN",value:function(e,t,n,r){var i;if(null===(i=this._pcdnConfig)||void 0===i?void 0:i.openPCDN){var a=this.getPCDNInOUtBuffer(),o=a.PCDNInBuffer,l=a.PCDNOutBuffer;e>=o?this._doOpenPCDN(t,r):e<l&&this.updatePCDNState(PCDN_STATE.CLOSE,n)}}},{key:"_emptyCancel",value:function(){}},{key:"_doOpenPCDN",value:(i=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.updatePCDNState(PCDN_STATE.OPEN,this._emptyCancel),null===(r=this._pcdn)||void 0===r||r.updatePCDNBitrate(t),!this.isUpdateNode(t)){e.next=5;break}return e.next=5,this.getPCDNNode(t,n);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"openPCDNForce",value:(r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(r=this._pcdnConfig)||void 0===r?void 0:r.openPCDN){e.next=3;break}return e.abrupt("return");case 3:return this._PCDNState=PCDN_STATE.OPEN,e.next=6,this.checkPCDN(n);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"updatePCDNState",value:(n=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==PCDN_STATE.FORBIDDEN){e.next=5;break}this._PCDNState=t,debug$1.log(this._tag,"updatePCDNState",PCDN_STATE.FORBIDDEN),e.next=16;break;case 5:if(this._PCDNState===PCDN_STATE.FORBIDDEN||this._PCDNState===t){e.next=16;break}if(this._isUseCDN||t!==PCDN_STATE.CLOSE||this._PCDNState===PCDN_STATE.CLOSE){e.next=14;break}return this._PCDNState=t,debug$1.log(this._tag,"updatePCDNState",PCDN_STATE.CLOSE),e.next=11,n();case 11:this._pcdnVVStat.pSCCancelCnt++,e.next=16;break;case 14:this._PCDNState=t,debug$1.log(this._tag,"updatePCDNState",t);case 16:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"getPCDNNode",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a,o,l,d,U,c,F;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:if(e.prev=2,i=n.mediaType,a=this._lastfetchNodeTime[i]||0,o=this._lastBitrateMap[i],!((l=Date.now())-a<this._pcdn.options.NULLNodeTimeStep&&o===t)){e.next=9;break}return e.abrupt("return");case 9:return this._lastfetchNodeTime[i]=l,this._lastBitrateMap[i]=t,d=this._getPCDNReqIdBitrate(this._vid,t),U=this._createFileInfo(n),e.next=15,this._pcdn.fetchPCDNNode(null,U,d);case 15:if(c=e.sent,F=this._getPCDNReqIdBitrate(this._vid,t),null==c||!c.req_id||F===c.req_id){e.next=20;break}return debug$1.log("getPCDNNode is not match curDefinition reqId",d,", pcdnRet.req_id",c.req_id),e.abrupt("return");case 20:c&&this._updateNodeList(c,t),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==c||null===(r=c.nodes)||void 0===r?void 0:r.length)>0?1:0,e.next=30;break;case 26:e.prev=26,e.t0=e.catch(2),this._pcdnVVStat.try_req_node+=1,console.log("err",e.t0);case 30:case"end":return e.stop()}}),e,this,[[2,26]])}))),function(e,n){return t.apply(this,arguments)})},{key:"removePCDNNode",value:(e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:return debug$1.log(this._tag,"removePCDNNode",t,n),this.pcdn_download_failed_cnt++,this._pcdnVVStat.conn_fail_num++,this._cachedPcdn[t]=null,e.next=8,this._pcdn.removePCDNNode(this._vid,t,n);case 8:case"end":return e.stop()}}),e,this)}))),function(t,n){return e.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=PCDN.pcdnReqCnt;return{pcdn_download_request_cnt:this.pcdn_download_request_cnt,pcdn_download_failed_cnt:this.pcdn_download_failed_cnt,pcdn_tracker_request_cnt:e.pcdn_tracker_request_cnt,pcdn_tracker_failed_cnt:e.pcdn_tracker_failed_cnt}}},{key:"pcdnVVStat",get:function(){var e;return Object.assign({},this._pcdnVVStat,{is_try_open:1,trace_id:null===(e=this._pcdnTraceInfo)||void 0===e?void 0:e.trace_id})}},{key:"updateConfig",value:function(e){var t=e.vid,n=e.duration;this._vid=t,this._duration=n,this._lastfetchNodeTime={audio:0,video:0},this._lastBitrateMap={audio:0,video:0}}}]);var e,t,n,r,i,a}();function getByteRate(e){return Math.floor(e/8)}var PCDNTrackService=function(){return _createClass$8((function e(t,n){_classCallCheck$8(this,e),this._mediaTypeToServiceType={audio:null,video:null},this._useSeparationMode=!1;var r=t.config,i=t.isOpenPCDN,a=t.videoDuration,o=t.uri,l=r.pcdnConfig,d=r.useSeparationMode;this._useSeparationMode=d,d?(this._mediaTypeToServiceType.video=this._createPCDNService(l,i,a,o,n,"video_PCDN"),this._mediaTypeToServiceType.audio=this._createPCDNService(l,i,a,o,n,"audio_PCDN")):this._pcdn=this._createPCDNService(l,i,a,o,n,"all_PCDN")}),[{key:"openPCDNForce",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this._getPCDNService(n.mediaType),e.next=3,r.openPCDNForce(t,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"_getPCDNService",value:function(e){return this._useSeparationMode?this._mediaTypeToServiceType[e]:this._pcdn}},{key:"checkPCDN",value:function(e){var t=this._getPCDNService(e.mediaType);null==t||t.checkPCDN(e)}},{key:"_createPCDNService",value:function(e,t,n,r,i,a){return new PCDNService(e,t,n,r,i,a)}},{key:"selectedPCDN",value:function(e,t,n){var r=this._getPCDNService(e);return null==r?void 0:r.selectedPCDN(t,n)}},{key:"isOpenPCDN",value:function(e,t,n,r,i){var a=this._getPCDNService(e);null==a||a.isOpenPCDN(t,n,r,i)}},{key:"setSetRetryInfo",value:function(e,t){var n=this._getPCDNService(e);null==n||n.setSetRetryInfo(t)}},{key:"removePCDNNode",value:(e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n,r){var i;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=this._getPCDNService(t),e.next=3,null==i?void 0:i.removePCDNNode(n,r);case 3:case"end":return e.stop()}}),e,this)}))),function(t,n,r){return e.apply(this,arguments)})},{key:"getPCDNInOUtBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",t=this._getPCDNService(e);return null==t?void 0:t.getPCDNInOUtBuffer()}},{key:"pcdnVVStat",get:function(){var e=this;if(!this._useSeparationMode)return this._pcdn.pcdnReqCnt;var t,n,r={};if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(t=this._mediaTypeToServiceType.video)||void 0===t?void 0:t.pcdnReqCnt)||(null===(n=this._mediaTypeToServiceType.audio)||void 0===n?void 0:n.pcdnReqCnt)||{};var i=this._mediaTypeToServiceType.video.pcdnReqCnt,a=this._mediaTypeToServiceType.audio.pcdnReqCnt;return Object.keys(i).forEach((function(t){r[t]=e._getValue(t,i)+e._getValue(t,a)})),r}},{key:"pcdnReqCnt",get:function(){var e,t,n,r,i=this;if(!this._useSeparationMode)return this._pcdn.pcdnVVStat;if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(n=this._mediaTypeToServiceType.video)||void 0===n?void 0:n.pcdnVVStat)||(null===(r=this._mediaTypeToServiceType.audio)||void 0===r?void 0:r.pcdnVVStat)||{};var a={},o=["is_try_open","trace_id"],l=null===(e=this._mediaTypeToServiceType.video)||void 0===e?void 0:e.pcdnVVStat,d=null===(t=this._mediaTypeToServiceType.audio)||void 0===t?void 0:t.pcdnVVStat;return Object.keys(l).forEach((function(e){o.includes(e)?a[e]=l[e]||d[e]:a[e]=i._getValue(e,l)+i._getValue(e,d)})),a}},{key:"_getValue",value:function(e,t){return t[e]||0}},{key:"updateConfig",value:function(e,t){this._getPCDNService(e).updateConfig(t)}}]);var e,t}(),DashPreloader=function(e){function t(e,n){var r;return _classCallCheck$8(this,t),(r=_callSuper$2(this,t,[e,n]))._loader=new Loader({loaderCount:1,loaderType:LoaderType$1.XHR},e,"preloader"),r._loader.on(REAL_TIME_SPEED_EVENT$1,(function(t){if((null==t?void 0:t.len)>0){var n,i,a=(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||LOAD_TYPE$1.CDN,o=Math.round(8*t.len*1e3/t.time/1024),l=null==t?void 0:t.priOptions.extData,d=l.cacheKey,U=null===(i=r._pendingItem)||void 0===i?void 0:i.duration,c={vid:l.vid,loadType:a,size:t.len,speed:o,cacheKey:d,vtype:VTYPES$1.DASH,duration:U,bitrate:l.bitrate,range:t.range,mediaType:l.mediaType,format:VTYPES$1.DASH,segmentDuration:null==l?void 0:l.segmentDuration};e.bwEventEmit(c)}})),r.options=n,r._pendingTask=null,r}return _inherits$5(t,PreloaderBase),_createClass$8(t,[{key:"_setItem",value:(d=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.vtype=VTYPES$1.DASH,e.next=3,this.preloadManager.getItem(t,!0);case 3:(r=e.sent)?(i=Object.assign({},r,n),i=util$1.combinePreloadData(i),this.preloadManager.setItem(t,i,!0)):this.preloadManager.setItem(t,n,!0);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return d.apply(this,arguments)})},{key:"_processItemUrl",value:function(e){this.preloadManager.preProcessUrl&&(e.main_url=this.preloadManager.preProcessUrl(e.main_url).url,e.backup_url_1=this.preloadManager.preProcessUrl(e.backup_url_1).url,e.fallback_url=this.preloadManager.preProcessUrl(e.fallback_url).url)}},{key:"_getDashContext",value:function(e){var t=this,n=e.payload;if("TOP"===e.playInfoType){var r={dashOpts:e.payload};transformTopModel(r),n=r.dashOpts.dynamic_video}if(Array.isArray(n)){var i={dashOpts:{Data:e,dynamic_video:e}};transformFeedModel(i),n=i.dashOpts.dynamic_video}return n.dynamic_video_list&&n.dynamic_video_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),n.dynamic_audio_list&&n.dynamic_audio_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),{dynamic_video:n}}},{key:"_getStartContext",value:function(){return{mediaInfos:{dynamic_video_list:[],dynamic_audio_list:[]},vtype:"",video:{segments:[]},audio:{segments:[]}}}},{key:"_cacheInitSegments",value:(l=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n,r,i){var a,o,l,d,U,c,F;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.mediaList.video||[],o=t.mediaList.audio||[],l=[],o&&o.length>0&&(d=this.makeInitBaseSegemntRequest(t,n.duration,"audio",o.selectedIdx,void 0,n.vid),l.push(d)),a&&a.length>0&&(U=this._calVideoItemIdx(a,i.bandwidth)||0,c=a[U].definition,F=this.makeInitBaseSegemntRequest(t,n.duration,"video",U,c,n.vid),l.push(F)),e.next=7,Promise.all(l);case 7:e.sent.forEach((function(e){"video"===e.data.mediaType&&(e.data.orgDefinition=i.orgDefinition),r[e.key]=e.data}));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n,r){return l.apply(this,arguments)})},{key:"start",value:(o=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a,o,l,d,U,c,F,s,Q,u,R,B,h,p,S,V,f,y,m,E,Z,J,b,W,k,T,v,N,g,C,I,_,D,x,L,M,G,X,w,P,O,$,Y,K,j,A,H,z,q=this;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Promise.withResolvers(),o=a.resolve,l=a.promise,d={},this._pendingTask={resolve:o,data:t,map:d},U=new ProxyPromise,c=this._getDashContext(t),F=new MPD$1("anytext",c,this),s=this._getStartContext(),Q=function(){s.mediaInfos.dynamic_video_list=F.mediaList.video||[],s.mediaInfos.dynamic_audio_list=F.mediaList.audio||[],U.resolve(s)},F.once("ready",Q),F.init(),e.next=12,U;case 12:if(this._pendingTask){e.next=16;break}return u=this.isStepWise(),o({remove:!u}),e.abrupt("return",l);case 16:if(R=new ProxyPromise,B=s.mediaInfos,h=this._getIdx(B.dynamic_video_list,n||t.defaultDefinition),p=B.dynamic_video_list[h]||B.dynamic_video_list[0],B.dynamic_video_list[h]&&F.mediaList.audio&&B.dynamic_audio_list.length>0&&(F.mediaList.video.selectedIdx=h,-1===(S=selectAudio(F.mediaList.video,F.mediaList.audio))&&(S=0),debug$1.log("audio definition preload",S),F.mediaList.audio.selectedIdx=S),t.dashType=F.dashType,null===(r=this.options)||void 0===r||null===(r=r.pcdnConfig)||void 0===r||!r.openPreloadPCDN||null===(i=this.options)||void 0===i||null===(i=i.pcdnConfig)||void 0===i||!i.openDASHPreloadPCDN||"segment_template"===F.dashType){e.next=38;break}if(V=this.options.pcdnConfig,!((f=c.dynamic_video.dynamic_video_list.filter((function(e){return e.definition===p.definition})))&&f.length>0)){e.next=38;break}if(y=f[0],m=y.duration,E=y.uri,this._pcdn?this._pcdn.updateConfig("video",{vid:E,duration:m}):(Z={pcdnConfig:V},this._pcdn=new PCDNTrackService({config:Z,isOpenPCDN:!0,videoDuration:m,uri:E},null)),!B.dynamic_video_list[h]){e.next=32;break}return p.bitrate||(p.bitrate=p.bandwidth),e.next=32,this._pcdn.openPCDNForce(p.bitrate||p.bandwidth,_objectSpread2$5({mediaType:"video"},p));case 32:if(!(F.mediaList.audio&&B.dynamic_audio_list.length>0)){e.next=38;break}return J=F.mediaList.audio,(b=J[J.selectedIdx]).bitrate||(b.bitrate=b.bandwidth),e.next=38,this._pcdn.openPCDNForce(b.bitrate||b.bandwidth,_objectSpread2$5({mediaType:"audio"},b));case 38:if(this._pendingItem=p,this._pendingItem.duration||(this._pendingItem.duration=t.duration),W={bandwidth:p.bitrate||p.bandwidth,time:t.startTime||0,orgDefinition:p.orgDefinition,hasSegmentRange:!1},k=[],T=this.isStepWise(),e.prev=43,C=void 0===t.video||0===(null===(v=t.video.segments)||void 0===v?void 0:v.length),void 0===t.stepIdx&&(t.stepIdx=0),void 0===t.steps&&(t.steps=[0]),T||(t.steps=[0]),0!==t.stepIdx&&!C){e.next=71;break}if("segment_template"!==F.dashType){e.next=54;break}this._calRequests(F,W,R,t,!0),R.resolve(),e.next=69;break;case 54:if(0!==t.stepIdx){e.next=68;break}if(x=!1,(null==(L=F.mediaList)||null===(I=L.video)||void 0===I?void 0:I.length)>0&&(null==L||null===(_=L.audio)||void 0===_?void 0:_.length)>0&&(x=L.video[L.video.selectedIdx].firstMoofMdatRange&&L.audio[L.audio.selectedIdx].firstMoofMdatRange),T||!x||null===(D=this.options)||void 0===D||!D.useSegmentRange){e.next=63;break}t.hasSegmentRange=!0,this._requestAcc(F,W,R,t),e.next=66;break;case 63:return e.next=65,this._cacheInitSegments(F,t,d,W);case 65:this._calRequests(F,W,R,t);case 66:e.next=69;break;case 68:R.resolve([]);case 69:e.next=72;break;case 71:R.resolve([]);case 72:return e.next=74,R;case 74:if(k=e.sent,0===(M=T?t.stepIdx:0)&&this._setItem(t,d),this._pendingTask){e.next=80;break}return o({remove:!T}),e.abrupt("return",l);case 80:T&&(w=t.steps.length,P=Math.max(null===(G=t.video)||void 0===G?void 0:G.segments.length,null===(X=t.audio)||void 0===X?void 0:X.segments.length),w<P&&($=new Array(P-w).fill(1),(O=t.steps).push.apply(O,_toConsumableArray$3($)))),Y=[null===(N=t.video)||void 0===N?void 0:N.segments[M],null===(g=t.audio)||void 0===g?void 0:g.segments[M]],K=(k||[]).concat(Y).filter((function(e){return Boolean(e)})),j=[],A=_createForOfIteratorHelper$3(K),e.prev=85,z=_regeneratorRuntime$4().mark((function e(){var n,r,i,a,o;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=H.value,r=n.url,i=n.range,a=n.extData,o=q._getData(r,i,a).then((function(e){if("video"===e.mediaType&&(e.orgDefinition=W.orgDefinition),!e.fromCache){var n=a.cacheKey;d[n]=e,debug$1.log("prelaoder setItem",t,d),q._setItem(t,d)}})),j.push(o);case 4:case"end":return e.stop()}}),e)})),A.s();case 88:if((H=A.n()).done){e.next=92;break}return e.delegateYield(z(),"t0",90);case 90:e.next=88;break;case 92:e.next=97;break;case 94:e.prev=94,e.t1=e.catch(85),A.e(e.t1);case 97:return e.prev=97,A.f(),e.finish(97);case 100:return e.next=102,Promise.all(j);case 102:e.next=107;break;case 104:e.prev=104,e.t2=e.catch(43),console.warn&&console.warn("catch no reqeuset",e.t2);case 107:return e.prev=107,o({remove:!T}),e.finish(107);case 110:return this._pendingTask=null,e.abrupt("return",l);case 112:case"end":return e.stop()}}),e,this,[[43,104,107,110],[85,94,97,100]])}))),function(e,t){return o.apply(this,arguments)})},{key:"isStepWise",value:function(){var e=this.options.openStepwiseType;return this.stepwise&&(void 0===e||e.toUpperCase()===VTYPES$1.DASH)}},{key:"_getIdx",value:function(e,t){var n=0;return e.forEach((function(e,r){e.definition===t&&(n=r)})),n}},{key:"_calRequests",value:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=[],o=t.bandwidth,l=e.mediaList.video||[],d=e.mediaList.audio||[],U=r.vid,c=e.videoCodecType;if(d&&d.length>0){var F=d.selectedIdx;d[F].codec_type=c;var s=this._calUrls(d[F],"audio",U,null,i,r);a=a.concat(s)}if(l&&l.length>0){var Q=l[this._calVideoItemIdx(l,o)||0];Q.codec_type=c;var u=this._calUrls(Q,"video",U,Q.definition,i,r);a=a.concat(u)}a.length,n.resolve(a)}},{key:"_getSplitGopRange",value:function(e,t,n){var r=e.segment,i=r.range;if(!e.isStep){var a=r.range[1],o=r.range[0];return{allRangeItems:[{item:r,range:i,segmentDuration:r.endRaw-r.startRaw,rangeEnd:a,rangeStart:o}],newSteps:t}}var l,d=[],U=[],c=_createForOfIteratorHelper$3(t);try{for(c.s();!(l=c.n()).done;){var F=l.value;if(F>=r.endRaw){U.push(r.endRaw);break}U.push(F)}}catch(e){c.e(e)}finally{c.f()}var s=void 0===this.options.needfixSizeSegment||this.options.needfixSizeSegment;s&&U.length>0&&U[U.length-1]<r.endRaw&&(U.push(r.endRaw),debug$1.log("repload change steps"));for(var Q=i[0],u=0,R=U.length,B=r.range[1],h=0,p=U;h<p.length;h++){var S,V=p[h],f=Q,y=s?u===U.length-1:V>=r.endRaw,m=Math.floor(V*n/8)+i[0]+1,E=y?null===(S=r.range)||void 0===S?void 0:S[1]:m-1;Q=E+1;var Z=E>=B;if(i=[f,Z?B:E],f>=E)break;d.push({item:r,range:i,segmentDuration:Z?r.endRaw:V,rangeEnd:r.range[1],rangeStart:r.range[0]}),u++}return u<R&&U.splice(u,R-u),{allRangeItems:d,newSteps:U}}},{key:"_recalcSteps",value:function(e,t){var n,r=0,i=!1,a=[],o=_createForOfIteratorHelper$3(t);try{for(o.s();!(n=o.n()).done;){var l=n.value,d=e[r],U=e[e.length-1],c=l.endRaw;if(l.startRaw<=d&&U<c&&!i)for(;r<e.length;)a.push({stepTime:e[r],segment:l,isStep:!0}),r++;else for(;r<e.length;){var F=e[r],s=e[r+1];if(!(F<l.endRaw&&s<l.endRaw)){r++,a.push({stepTime:l.endRaw,isStep:!1,segment:l}),i=!0;break}r++}if(r>=e.length)break}}catch(e){o.e(e)}finally{o.f()}return a}},{key:"_getRange",value:function(e,t){var n,r,i=e.mediaSegments,a=t.steps.map((function(e){return e+0})),o=this._recalcSteps(a,i),l=[],d="segment_template"===t.dashType;if((null===(n=t.steps)||void 0===n?void 0:n.length)>0&&(null===(r=t.steps)||void 0===r?void 0:r[0])>0&&!d)if(o[0].isStep){var U=this._getSplitGopRange(o[0],t.steps,e.bandwidth).allRangeItems;l.push.apply(l,_toConsumableArray$3(U))}else{var c,F=_createForOfIteratorHelper$3(o);try{for(F.s();!(c=F.n()).done;){var s=c.value,Q=this._getSplitGopRange(s,t.steps,e.bandwidth).allRangeItems;l.push.apply(l,_toConsumableArray$3(Q))}}catch(e){F.e(e)}finally{F.f()}}else{var u=o[0].segment,R=u.range,B=u.range[0],h=u.range[1];l.push({item:u,range:R,segmentDuration:u.endRaw-u.startRaw,rangeEnd:h,rangeStart:B})}return l}},{key:"_calUrls",value:function(e,n,r,i,a,o){var l=[];if(e){var d=e,U=d.avg_bitrate||d.bandwidth||d.bitrate,c=t.vtype;o[n]||(o[n]={initSegment:null,segments:[]});var F=o[n];if(a){var s,Q,u=[null===(s=d.initSegmentRange)||void 0===s?void 0:s[0],null===(Q=d.sidxRange)||void 0===Q?void 0:Q[1]],R={url:d.initSegment,range:u,extData:{cacheKey:util$1.generateRequestUniqueKey({vid:r,mediaType:n,codecType:d.codec_type,vtype:c,bitrate:U,fileId:d.fileId,range:u,definition:i}),vid:r,vtype:c,isInitSegment:!0,mediaType:n,useUrlRange:util$1.validateUrlRange(this.options.url_range_domains,d.initSegment),codecType:d.codec_type,range:u,bitrate:U,segmentDuration:0,checkPreload:!0}};l.push(R),F.initSegment=R}var B=[];if(o.hasSegmentRange){var h=d.firstMoofMdatRange[0],p=d.firstMoofMdatRange[1];B=[{item:{start:0,end:7,url:d.initSegment},range:[h,p],segmentDuration:7,rangeEnd:p,rangeStart:h}]}else B=this._getRange(e,o);var S,V=_createForOfIteratorHelper$3(B);try{for(V.s();!(S=V.n()).done;){var f=S.value,y=f.item,m=f.range,E=f.segmentDuration,Z=f.rangeEnd,J=f.rangeStart,b=util$1.generateRequestUniqueKey({vid:r,mediaType:n,codecType:d.codec_type,vtype:c,start:y.start,end:y.end,definition:i,bitrate:U,fileId:d.fileId,range:m});F.segments.push({url:y.url,range:m,extData:{cacheKey:b,vid:r,vtype:c,isInitSegment:!1,mediaType:n,useUrlRange:util$1.validateUrlRange(this.options.url_range_domains,y.url),codecType:d.codec_type,range:m,bitrate:U,segmentDuration:E,checkPreload:!0,rangeEnd:Z,rangeStart:J,fileId:d.fileId}})}}catch(e){V.e(e)}finally{V.f()}}return l}},{key:"_requestAcc",value:function(e,t,n,r){this._calRequests(e,t,n,r,!0)}},{key:"_calStartEnd",value:function(e,t){for(var n=-1,r=0;r<e.length;r++){var i=e[r],a=t||0;if(i.start>=a&&a<i.end){n=r;break}}return-1===n&&(n=0),n}},{key:"_calVideoItemIdx",value:function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r&&r.bandwidth===t)return n}return null}},{key:"_getData",value:(a=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(n,r,i){var a,o,l,d,U,c,F,s,Q,u,R,B;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,o=n,this._pcdn&&(l=i.mediaType,d=i.bitrate,(U=this._pcdn.selectedPCDN(l,!1,d))&&(n=U,i.isPCDN=!0,debug$1.log("preload _pcdn",U,i.mediaType,i.bitrate))),i.reqOptions=this.getRequestOption(null===(a=this._pendingTask)||void 0===a?void 0:a.data.reqOptions),e.next=6,this._loader.load(i.mediaType,n,r,i,!0);case 6:if(c=e.sent,!i.isPCDN||"error"!==c.res){e.next=13;break}return i.isPCDN=!1,e.next=11,this._loader.load(i.mediaType,o,r,i,!0);case 11:F=e.sent,c=F;case 13:return Q=(s=c).res,u=s.headers,R=s.status,B=s.fromCache,e.abrupt("return",{res:Q,headers:u,status:R,fromCache:B,memory:Q.byteLength,vtype:t.vtype,mediaType:i.mediaType,duration:i.segmentDuration,orgDefinition:void 0,range:r,rangeEnd:i.rangeEnd,rangeStart:i.rangeStart,fileId:i.fileId});case 17:return e.prev=17,e.t0=e.catch(0),console.log("preload get data error",e.t0),e.abrupt("return",{res:null});case 21:case"end":return e.stop()}}),e,this,[[0,17]])}))),function(e,t,n){return a.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,n,r,i,a,o){var l=this,d=new ProxyPromise,U=e.mediaList[r][i],c=[U.initSegmentRange[0],U.sidxRange[1]],F=U.initSegment,s=e.videoCodecType,Q=U.avg_bitrate||U.bandwidth||U.bitrate,u=t.vtype,R={checkPreload:!0,mediaType:r,vid:o,definition:a,useUrlRange:!1,timeout:-1,isInitSegment:!0,bitrate:Q,codecType:s,fileId:U.fileId,cacheKey:util$1.generateRequestUniqueKey({vid:o,codecType:s,mediaType:r,definition:a,vtype:u,bitrate:Q,fileId:U.fileId,range:c})};return this._getData(F,c,R).then((function(t){var a=t.res;a&&"error"!==a?l.handleInitData(a,c,U.sidxRange).then((function(a){if(a.sidxSegmentRes&&e.getSidx(a.sidxSegmentRes,r,i,n),util$1.validateFragment(a.initSegmentRes,c)){var l=Object.assign({},t,{vid:o,mediaType:r,isInitSegment:!0,vtype:u});d.resolve({key:R.cacheKey,data:l})}else d.reject({mediaType:r,index:i,initSegmentRange:c,url:F,rejected:!0})})).catch((function(){d.reject({mediaType:r,index:i,initSegmentRange:c,url:F,rejected:!0})})):d.reject({mediaType:r,index:i,initSegmentRange:c,url:F,rejected:!0})})).catch((function(){d.reject({mediaType:r,index:i,initSegmentRange:c,url:F,rejected:!0})})),d}},{key:"handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=new ProxyPromise;if(e instanceof ArrayBuffer){var i=0===t.length?e:e.slice(t[0],t[1]+1),a=null===n?null:e.slice(n[0],n[1]+1);r.resolve({initSegmentRes:i,sidxSegmentRes:a})}else;return r}},{key:"cancel",value:(i=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t,n,r,i;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._loader){e.next=3;break}return e.next=3,this._loader.cancel();case 3:this._pendingTask&&(t=this._pendingTask,n=t.data,r=t.map,i=this.isStepWise(),this._pendingTask.resolve({remove:!i}),Object.values(r).length>0&&this._setItem(n,r),this._pendingTask=null);case 4:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=util$1.generateRequestUniqueKey(e),r=this.preloadManager.getItemSync(e,t),i=this.preloadManager.getLoadInfoAndDelete(n);return _objectSpread2$5(_objectSpread2$5({cacheKey:n},r),{},{loadInfo:i})}},{key:"getPreLoadData",value:(r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>1&&void 0!==o[1]&&o[1],r=util$1.generateRequestUniqueKey(t),e.next=4,this.preloadManager.getItem(t,n);case 4:return i=e.sent,a=this.preloadManager.getLoadInfoAndDelete(r),e.abrupt("return",_objectSpread2$5(_objectSpread2$5({cacheKey:r},i),{},{loadInfo:a}));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"destroy",value:(n=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null===(t=this._loader)||void 0===t||t.destroy(),this._loader=null,this._pcdn&&(this._pcdn=null);case 3:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"parseKey",value:function(e){var t,n,r=_createForOfIteratorHelper$3(e);try{for(r.s();!(n=r.n()).done;){var i=n.value,a=PreloaderManager.parseKey(i);"audio"===a.mediaType?a.hasAudio=!0:(a.hasVideo=!0,t=Object.assign({},t,a))}}catch(e){r.e(e)}finally{r.f()}return t}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}}],[{key:"vtype",get:function(){return VTYPES$1.DASH}},{key:"isUniqueCache",value:function(e){return!!e&&4===Object.keys(e).length}},{key:"generateUniqueKey",value:function(e){return util$1.generateRequestUniqueKey(e)}}]);var n,r,i,a,o,l,d}();function getAllHeaders(e){if(window.Headers&&e instanceof Headers){var t,n={},r=_createForOfIteratorHelper$3(e);try{for(r.s();!(t=r.n()).done;){var i=t.value;n[i[0]]=i[1]}}catch(e){r.e(e)}finally{r.f()}return n}return e}DashPreloader.encryptUtils=isSupport;var LOADER_CONFIG={loaderCount:1,loaderType:LoaderType$1.FETCH,onProcessMinLen:5120,enableDynamicMinLen:!0};function isDataSatisfied(e,t){if(e.length>0)for(var n=0,r=!0,i=0;i<e.length;i++){var a=e[i];if(a>t){r=!1;break}if((n+=a)/e.length>t&&(r=!1),!r)return!1}return!0}var SatisfiedTime=4,_realTimeSpeed=0,Loader=function(){function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";_classCallCheck$8(this,e),EventEmitter(this),this._config=Object.assign({},LOADER_CONFIG,_objectSpread2$5({responseType:"arraybuffer"},t)),this._loaderCount=1,this._config.loaderCount>1&&console&&console.warn("only support loaderCount 1"),this._loaderType=this._config.loaderType||LoaderType$1.FETCH,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=n,t.openLog&&Logger$1.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var a=0;a<this._loaderCount;a++){var o=new Logger$1("".concat(i,"VideoLoader_").concat(a,"_").concat(this._config.vid),this._config.vid),l=new Logger$1("".concat(i,"AudioLoader_").concat(a,"_").concat(this._config.vid),this._config.vid),d=new NetLoader$1(_objectSpread2$5(_objectSpread2$5({},this._config),{},{logger:o,loaderType:this._loaderType})),U=new NetLoader$1(_objectSpread2$5(_objectSpread2$5({},this._config),{},{logger:l,loaderType:this._loaderType}));this._videoLoaders.push(d),this._audioLoaders.push(U),this._videoSpeeds=[],d.on(EVENT$1.REAL_TIME_SPEED,(function(e){_realTimeSpeed=e.speed,r._cacheSpeed(e)})),U.on(EVENT$1.REAL_TIME_SPEED,(function(e){_realTimeSpeed=e.speed,r._cacheSpeed(e)})),this._videoReqCosts=[]}this._moofVideoLoader=new NetLoader$1(_objectSpread2$5(_objectSpread2$5({},this._config),{},{loaderType:this._loaderType})),this._moofAudioLoader=new NetLoader$1(_objectSpread2$5(_objectSpread2$5({},this._config),{},{loaderType:this._loaderType})),this._isSupportUrlRange="fetch"===this._loaderType,this._preloadCacheDatas={},this._reqCost={cdn:{count:0,avg:0},pcdn:{count:0,avg:0}}}return _createClass$8(e,[{key:"_cacheProgress",value:function(e,t){var n=t[e];if(n&&n.range&&n.done){var r=util$1.generateRequestUniqueKey(_objectSpread2$5(_objectSpread2$5({},n.extData),{},{range:n.range}));if(!r)return;this._preloadCacheDatas[r]={duration:n.extData.segmentDuration,vtype:VTYPES$1.DASH,res:n.data.buffer,mediaType:e,memory:n.data.byteLength,range:n.range,fileId:n.extData.fileId,rangeEnd:n.extData.rangeEnd,rangeStart:n.extData.rangeStart},debug$1.log("cacheProgress",r,JSON.stringify(this._preloadCacheDatas[r]))}}},{key:"cachePreloadData",value:(o=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.vid){e.next=2;break}return e.abrupt("return");case 2:if(this._cacheProgress("video",n),this._cacheProgress("audio",n),t.vtype=DashPreloader.vtype,r=Object.keys(this._preloadCacheDatas).length,!(this._preloadManager&&r>0)){e.next=11;break}return e.next=9,this._preloadManager.getItem(t,!0);case 9:(i=e.sent)?(a=Object.assign({},i,this._preloadCacheDatas),a=util$1.combinePreloadData(a),this._preloadManager.setItem(t,a,!0)):this._preloadManager.setItem(t,this._preloadCacheDatas,!0);case 11:this._preloadCacheDatas={};case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"isSupportedProgress",value:function(){return 1===this._loaderCount&&"fetch"===this._loaderType}},{key:"_addCost",value:function(e){this._videoReqCosts.push(e),this._videoReqCosts.length>3&&this._videoReqCosts.shift()}},{key:"_addVideoSpeed",value:function(e){this._videoSpeeds.push(e),this._videoSpeeds.length>3&&this._videoSpeeds.shift()}},{key:"checkProgressSatisfied",value:function(e){var t=!1;if(navigator.connection&&navigator.connection.downlink){t=!0;var n=1e6*navigator.connection.downlink;return!(5*e/n>4)}if(!isDataSatisfied(this._videoReqCosts,SatisfiedTime))return!1;var r=this._videoSpeeds.map((function(t){return 1e3*t*5/e}));if(!isDataSatisfied(r,SatisfiedTime))return!1;if(!t&&0===r.length)try{try{var i=parseFloat(proxyLocalStorage$1.getItem(SPPED_CACHE))||0;if(0===i||1e3*i*5/e>SatisfiedTime)return!1}catch(e){}}catch(e){}return!0}},{key:"_cacheSpeed",value:function(t){var n,r=t.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(r),this.emit(EVENT$1.REAL_TIME_SPEED,_objectSpread2$5({speed:r,type:(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||LOAD_TYPE$2.CDN},t))}},{key:"_calCostTime",value:function(e,t){var n=this._reqCost[e?"pcdn":"cdn"];t<3*n.avg&&(n.count++,n.avg=(n.avg*(n.count-1)+t)/n.count)}},{key:"getReqCost",value:function(e){var t=this._reqCost[e];return(null==t?void 0:t.avg)||0}},{key:"load",value:(a=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n,r,i){var a,o,l,d,U,c,F,s,Q,u,R,B,h,p,S,V,f,y,m,E,Z,J,b,W,k,T,v,N=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=N.length>4&&void 0!==N[4]&&N[4],o=N.length>5&&void 0!==N[5]?N[5]:null,l=N.length>6&&void 0!==N[6]?N[6]:null,d=N.length>7&&void 0!==N[7]?N[7]:null,U=N.length>8&&void 0!==N[8]?N[8]:null,i.vtype=VTYPES$1.DASH,i.isPreload=a,i.range=r,c={start:i.start,end:i.end,bandwidth:i.bandwidth||i.bitrate,sequence:i.idx,fps:i.fps,mediaType:t,selectedIdx:i.selectedIdx,definition:i.definition,range:r.concat(),startRaw:i.startRaw,endRaw:i.endRaw},F=this._config.onProcessMinLen,this._enableDynamicMinLen&&c.bandwidth&&o&&(s=0===i.start?.5:1,F=Math.floor(c.bandwidth*s/8)),!this._preloadManager||!i.checkPreload){e.next=25;break}if(Q=util$1.nowTime(),u=null,!this._preloadManager.supportSync()){e.next=18;break}u=this._preloadManager.getPreLoadDataSync(i),e.next=21;break;case 18:return e.next=20,this._preloadManager.getPreLoadData(i);case 20:u=e.sent;case 21:if(!(u&&u.res instanceof ArrayBuffer)){e.next=25;break}return debug$1.log("changeState preload hit cache",u.cacheKey,"cost",util$1.nowTime()-Q,"ms","isPreload",a),o&&o(u.res,!0,{range:r,fromCache:!0},null,i),e.abrupt("return",{res:u.res,headers:u.headers,status:u.status,fromCache:!0,selectedIdx:i.selectedIdx,extData:c,orgDefinition:u.orgDefinition,cacheKey:u.cacheKey,duration:u.duration});case 25:if(R=i.isPCDN,B=!o||this._isSupportUrlRange,h=B&&(this._config.useUrlRange||i.useUrlRange||!1)&&!R,p=n,h&&r&&r.length>1&&(p="".concat(n+(n.split("?")[1]?"&":"?"),"range=").concat(r[0],"-").concat(r[1])),r&&0!==r.length&&!h||(r=void 0),S=performance.now(),debug$1.log(this._config.vid,"load res start:",JSON.stringify(i),"startTime",S,"userUrlRange",h,"onProgress",!!o,"onProcessMinLen",F),e.prev=33,f=this._getLoader(t,i)){e.next=37;break}return e.abrupt("return");case 37:return y=this._config.headers||{},m=i.reqOptions||{},e.next=41,f.load(p,_objectSpread2$5({range:r,onProgress:o,selectedIdx:i.selectedIdx,sequence:i.idx,initSegment:i.initSegment,onProcessMinLen:F,onCancel:l,timeout:d,onTimeout:U,headers:R?Object.assign({},y,{"X-Origin-Server-Host":i.cdnHost}):y,priOptions:{type:R?LOAD_TYPE$2.PCDN:LOAD_TYPE$2.CDN,extData:i}},m));case 41:if(E=e.sent){e.next=44;break}return e.abrupt("return",null);case 44:return"video"===t&&this._addCost((performance.now()-S)/1e3),Z=E.data,J=E.response,b={res:Z instanceof Uint8Array?Z.buffer:Z,headers:getAllHeaders(J.headers),status:J.status,duration:i.end-i.start||0,memory:Z.byteLength,vtype:DashPreloader.vtype,mediaType:t,costTime:0,range:r,isInitSegment:i.initSegment,fileId:i.fileId},W=performance.now()-S,debug$1.log("load res finish: ",JSON.stringify(i),"cost time",W,"ms","range",null===(V=b.headers)||void 0===V?void 0:V["content-range"]),this._calCostTime(R,W),i.checkPreload&&!Z.done&&(k=util$1.generateRequestUniqueKey(i),this._preloadCacheDatas[k]=b),e.abrupt("return",_objectSpread2$5(_objectSpread2$5({},b),{},{extData:c,selectedIdx:i.selectedIdx,isPCDN:R,costTime:W,url:n}));case 54:return e.prev=54,e.t0=e.catch(33),debug$1.log("loader error",{msg:e.t0.message}),e.abrupt("return",{res:"error",status:null===(T=e.t0.response)||void 0===T?void 0:T.status,header:getAllHeaders(null===(v=e.t0.response)||void 0===v?void 0:v.headers),error:e.t0,isPCDN:R,url:p,bitrate:i.bandwidth||c.bandwidth,costTime:-1});case 58:case"end":return e.stop()}}),e,this,[[33,54]])}))),function(e,t,n,r){return a.apply(this,arguments)})},{key:"_getLoader",value:function(e,t){var n="video"===e;if(t.moof)return n?this._moofVideoLoader:this._moofAudioLoader;if(t.initSegment){var r=n?this._moofVideoLoader:this._moofAudioLoader;if(r&&null!==r._currentTask)return r}if(n){var i=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),i}var a=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),a}},{key:"cancel",value:(i=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return n="video"===t?this._videoLoaders:this._audioLoaders,e.next=4,this.cancelLoaders(n);case 4:e.next=10;break;case 6:return e.next=8,this.cancelLoaders(this._audioLoaders);case 8:return e.next=10,this.cancelLoaders(this._videoLoaders);case 10:if(!this._moofVideoLoader){e.next=13;break}return e.next=13,this._moofVideoLoader.cancel();case 13:if(!this._moofAudioLoader){e.next=16;break}return e.next=16,this._moofAudioLoader.cancel();case 16:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"cancelLoaders",value:(r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=_createForOfIteratorHelper$3(t),e.prev=1,n.s();case 3:if((r=n.n()).done){e.next=9;break}return i=r.value,e.next=7,i.cancel();case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),n.e(e.t0);case 14:return e.prev=14,n.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[1,11,14,17]])}))),function(e){return r.apply(this,arguments)})},{key:"getCurrentTask",value:function(e){var t="video"===e,n=t?this._moofVideoLoader:this._moofAudioLoader,r=t?this._videoLoaders[0]:this._audioLoaders[0];return(null==n?void 0:n._currentTask)||(null==r?void 0:r._currentTask)}},{key:"cancelTasks",value:(n=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=o.length>1&&void 0!==o[1]&&o[1],i=(r="video"===t)?this._moofVideoLoader:this._moofAudioLoader,a=r?this._videoLoaders[0]:this._audioLoaders[0],!i){e.next=7;break}return e.next=7,this._filterTask(i,n);case 7:if(!a){e.next=10;break}return e.next=10,this._filterTask(a,n);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_filterTask",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a,o,l,d,U,c;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r=[],i=t._queue,n&&t._currentTask&&r.push(t._currentTask.cancel()),a=i.length-1;a>-1;a--)d=i[a],U=null===(o=d.priOptions)||void 0===o||null===(o=o.extData)||void 0===o?void 0:o.isInitSegment,c=null===(l=d.priOptions)||void 0===l||null===(l=l.extData)||void 0===l?void 0:l.isSlice,U||c||(r.push(d.cancel()),i.splice(a,1));return e.next=6,Promise.all(r);case 6:case"end":return e.stop()}}),e)}))),function(e,n){return t.apply(this,arguments)})},{key:"destroy",value:function(){this.cancel();for(var e=0;e<this._videoLoaders.length;e++){var t=this._videoLoaders[e];t&&t.removeAllListeners();var n=this._audioLoaders[e];n&&n.removeAllListeners()}this._moofAudioLoader&&this._moofAudioLoader.removeAllListeners(),this._moofVideoLoader&&this._moofVideoLoader.removeAllListeners(),this._audioLoaders=[],this._videoLoaders=[]}}],[{key:"currentSpeed",get:function(){return _realTimeSpeed}},{key:"historyAvspeed",get:function(){var t=e.historySpeed.reduce((function(e,t){return e+t}),0);return 0===e.historySpeed.length?0:t/e.historySpeed.length}}]);var t,n,r,i,a,o}();Loader.historySpeed=[];var $$2=_export;$$2({target:"Number",stat:!0},{isNaN:function(e){return e!=e}});var DynamicBufferService=function(){return _createClass$8((function e(t,n,r,i){_classCallCheck$8(this,e),this.adaptRangeRes=[],i&&(this.adaptRange=new GopAdaptRange(t,n,r,i))}),[{key:"push",value:function(e){var t;null===(t=this.adaptRangeRes)||void 0===t||t.push(e)}},{key:"pop",value:function(){var e;return null===(e=this.adaptRangeRes)||void 0===e?void 0:e.shift()}},{key:"updateBitrate",value:function(e){var t;null===(t=this.adaptRange)||void 0===t||t.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){var t,n=null===(t=this.adaptRange)||void 0===t?void 0:t.getAdaptCacheBuffer();return!Number.isNaN(n)&&n||(n=e),n}},{key:"destroy",value:function(){this.adaptRange=null,this.adaptRangeRes=[]}}])}();function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _callSuper(e,t,n){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,n||[],_getPrototypeOf(e).constructor):t.apply(e,n))}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,_toPropertyKey(r.key),r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ownKeys2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys2(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys2(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var n,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function _possibleConstructorReturn(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==typeof t?t:t+""}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}var _excluded=["module"],SPEED_CACHE="danger_d_speed";function convert32ToC64(e){var t=e.toString(16);return t.length<=8?{high:0,low:e}:{high:parseInt(t.substr(0,t.length-8),16),low:parseInt(t.substr(t.length-8),16)}}var DEFEALT_CONFIG={stall_penalty:11,switch_penalty:4,interval:1e3,startInterval:1e3,decodeUnderflowBuffer:1,decodeUnderflowMode:1,decodeUnderflowCount:1},BaseAbr=function(){return _createClass((function e(t,n,r,i){var a=this,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};_classCallCheck(this,e),this._wasmPromise=new ProxyPromise,this._hasDeviceInfoChanged=!0,this.uuid=(new Date).getTime().toString(36).slice(4),this._defaultMaxBitrate=0,this._underflowBitrate=0,this._minBitrate=1/0,this.config=t,this.segment_duration=i||5e3,this.logger=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];o.logger.apply(o,["abr(".concat(a.uuid,")::")].concat(t))},this.openLog=o.openLog,this.autoBitrateOpts=Object.assign({},DEFEALT_CONFIG,t.autoBitrateOpts),this.stall_penalty=this.autoBitrateOpts.stall_penalty,this.switch_penalty=this.autoBitrateOpts.switch_penalty,this.interval=this.autoBitrateOpts.interval;var l=t.progressTimer||1e3,d=this.autoBitrateOpts.startInterval||l;this.initInterval=.8*d,this._preloadMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateBitrate(n),this.updateMediaInfos(r,!1)}),[{key:"_onLoadWasm",value:function(){var e=this,t=this.autoBitrateOpts.module,n=this.autoBitrateOpts;n.module;var r=_objectWithoutProperties(n,_excluded),i=this.autoBitrateOpts.isClassic||!1;t&&(i?this.module=new t(_objectSpread2({promise:this._wasmPromise},r)):t(this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}}));return this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefinitionConfig=new Map,this._bitrateToDefinitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(e.dynamic_video_list.forEach((function(e){var n,r;null===(n=t._heightToDefinitionConfig)||void 0===n||n.set(e.height||e.vheight,e);var i,a=e.bandwidth||e.bitrate;(a<t._minBitrate&&(t._minBitrate=a),null===(r=t._bitrateToDefinitionConfig)||void 0===r||r.set(a,e),e.definition)&&(null===(i=t._definitionToDefitionConfig)||void 0===i||i.set(e.definition,e))})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition)),this.mediaInfos=e):n&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var t;return(null===(t=this._definitionToDefitionConfig)||void 0===t||null===(t=t.get(e))||void 0===t?void 0:t.bandwidth)||-1}},{key:"transformMediaInfo",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e,t=[],n=this.mediaInfos.dynamic_video_list,r=0;r<n.length;r++){var i=n[r];t.push({stream_id:"s".concat(r),bandwidth:i.bitrate||i.bandwidth,width:i.vwidth||i.width,height:i.vheight||i.height,codec:i.codecs||i.codec_type||"h264",frame_rate:Number(i.fps)||-1,segment_duration:this.segment_duration,definition:i.qualityType})}var a={v_adaptation:t},o=JSON.stringify(a);null===(e=this.module)||void 0===e||e.ccall("parseMPD","null",["string"],[o])}catch(e){}}else console.warn("mediaInfos is null")}},{key:"_getDefaultSpeed",value:function(e){var t=0,n=navigator.connection;if(n&&n.downlink)t=1024*n.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(proxyLocalStorage$1.getItem(SPEED_CACHE)||"")||0,this.logger("initSpeed connect",t)}catch(e){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){var t,n;null===(t=this.module)||void 0===t||null===(n=t._setDebugModel)||void 0===n||n.call(t,e)}},{key:"updateBitrate",value:function(e){var t,n,r=this;(this.bitrate=e,e>0)&&(this.module?null===(t=(n=this.module).updateBitrate)||void 0===t||t.call(n,e):this.readyPromise().then((function(){var t,n;null===(t=r.module)||void 0===t||null===(n=t.updateBitrate)||void 0===n||n.call(t,e)})))}},{key:"getPreloadBitrate",value:function(){return null}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t,n=window.devicePixelRatio||1;null===(t=this.module)||void 0===t||t._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),n,e||-1)}this._hasDeviceInfoChanged=!1}catch(e){console.log("_updateDeviceInfo")}}},{key:"readyPromise",value:function(){return this._wasmPromise}}])}();BaseAbr.SPPED_CACHE=SPEED_CACHE;var createTypedArrayConstructor=typedArrayConstructorExports;createTypedArrayConstructor("Int32",(function(e){return function(t,n,r){return e(this,t,n,r)}}));var ABR_EVENTS=function(e){return e.ABR_CHANGE="ABR_CHANGE_A",e.ABR_UPDATE_SPEC="ABR_UPDATE_SPEC",e.START_ABR="START_ABR",e.UPDATE_AUTO_DESC="UPDATE_AUTO_DESC",e.ABR_START_PROGRESS="ABR_START_PROGRESS",e.MAX_BUFFER_CHANGE="MAX_BUFFER_CHANGE",e.NEXT_SEGMENT_PREDICT="NEXT_SEGMENT_PREDICT",e.ABR_STAT="ABR_STAT",e.ABR_DEFINITION_REAL_CHANGE="ABR_DEFINITION_REAL_CHANGE",e.ABR_LIMIT_BITRATE="ABR_LIMIT_BITRATE",e}(ABR_EVENTS||{}),INIT_BIRTATE=0,AUTO_FLAG="__auto__",MIN_WAITING=200,AVG_ARGS={PLAYBACK_BITRATE:"avg_play_bitrate",DOWNLOAD_BITRATE:"avg_download_bitrate",DOWNLOAD_NETWORK_SPEED:"avg_download_speed",PREDICT_NETWORK_SPEED:"avg_predict_speed",BUFFER_LENGTH:"avg_buffer_length",QOE:"avg_qoe"},ABR=function(e){function t(e,n,r,i,a){var o,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};_classCallCheck(this,t),(o=_callSuper(this,t,[n,r,i,a,l]))._bufferRange=new Map,o._sortedBufferRange=[],o._lastCheckResolutionStamp=0,o._currentDefinition=null,o._isSeeking=!1,o._waitingStartTime=0,o._stallCount=0,o._seekState=0,o._stallState=0,o._videoCurrentTime=0,o._hasStart=!1,o._isPaused=!1,o._hasAddFragment=!1,o._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},o._bitrateSet=[],o._generalInfo={},o._currentInAbr=!1,o._hasCalcTimelineLog=!1,o._abr_play_info={start_play_time_ms:0,is_hint:0,playback_info:{internet_speed_record:[],play_bitrate_record:[],buffer_length_record:[],play_speed_record:[],qoe_record:[],qoe_a_record:[],qoe_b_record:[],qoe_c_record:[]}},o._tickCount=0,o._fps=30,o.startTime=performance.now(),o._prevDefinitionItem=null,o._currentItem=null,o._switchCount=0,o._switchBitrate=0,o._avgStatItems={},o._qoeArgs=[0,0,0,0],o._abrUsed=-1,o._abrAlwaysOn=1,o._preloadInfo=null,o._hasLogStartInfo=!1,o._hasExecuteAbrAlgo=!1,o._lastExecuteTimeInMs=0,o._isSegmentDrive=!1,o._prevCurrentTime=-1,o._abrChangeTimeMap={},o._underFlowDecodeCount=0,o._onSegmentPredict=function(e){if(o.isCurrentInAbr&&o._isSegmentDrive){var t=Math.floor(o.player.downloadSpeed);e.isInitSegment||"video"!==e.mediaType||o._loopAbr(t,e.start,e.fix?e.end:0,e)}},o._onPlay=function(){o._hasStart=!0,o.logger("onplay")},o._onSeeking=function(){var e,t;o._isSeeking=!0,o.player.currentTime<o._videoCurrentTime?o._seekState=-1:o._seekState=1,null===(e=o.module)||void 0===e||null===(t=e._updateSeekInfo)||void 0===t||t.call(e,o._seekState),o.logger("seekState",o._seekState)},o._onSeekEnd=function(){o._isSeeking=!1,o.checkRestart()},o._onWaiting=function(){if(!(o._isSeeking||o._waitingStartTime>0)){for(var e=o.player.video.buffered,t=o.player.currentTime,n=!0,r=0;r<e.length;r++){var i=e.start(r),a=e.end(r);if(i<=t&&t<a-(o.autoBitrateOpts.decodeUnderflowBuffer||1)&&o.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){o._underFlowDecodeCount++,n=!1;break}}var l=o._underFlowDecodeCount>=(o.autoBitrateOpts.decodeUnderflowCount||1),d=o._defaultMaxBitrate>0||o._underflowBitrate>0,U=1===o.autoBitrateOpts.decodeUnderflowMode&&o._isSegmentDrive;if(l&&(d||U)){var c=!0;if(U){var F=o._maxBitrate;o._maxBitrate=o._minBitrate,c=o._maxBitrate!==F}o.player.emit("ABR_LIMIT_BITRATE",{removed:c}),o._underflowBitrate>0&&(o._maxBitrate=o._underflowBitrate)}o._waitingStartTime=(new Date).getTime(),o._stallId=setTimeout((function(){var e,t;clearTimeout(o._stallId),o._stallCount++,o._stallState=1,null===(e=o.module)||void 0===e||null===(t=e.updateWaitingState)||void 0===t||t.call(e,n)}),MIN_WAITING)}},o._onPlaying=function(){o._waitingStartTime=0,o._stallState=0,clearTimeout(o._stallId),o.checkRestart()},o._onTimeUpdate=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(o._sortedBufferRange&&0!==o._sortedBufferRange.length&&o._currentInAbr&&o.player){o._videoCurrentTime=o.player.currentTime;var n=Date.now();if(!(n-o._lastCheckResolutionStamp<1e3&&0!==o._lastCheckResolutionStamp)||t){o._lastCheckResolutionStamp=n;for(var r=o.player.currentTime,i=0,a=o._sortedBufferRange.length-1,l=null;i<=a;){var d=Math.floor(i+(a-i)/2),U=o._sortedBufferRange[d];if(r<U.start)a=d-1;else{if(!(r>=U.end)){l=U;break}i=d+1}}if(l){var c,F=null===(c=o._bitrateToDefinitionConfig)||void 0===c?void 0:c.get(l.bandwidth),s=null==F?void 0:F.definition;if(o._currentDefinition===s&&!t||!s)return void(s||o.logger("error definition, mpd配置与接口配置不一致"));o._currentDefinition=s,o._prevDefinitionItem=o._currentItem,o._currentFps=F.fps,o._currentItem=F,o._emitAutoDescChange(s,!1,o._currentFps,F),o._prevDefinitionItem&&o._currentDefinition&&o._prevDefinitionItem.definition!==o._currentDefinition.definition&&o._emitDefinitionRealChange(l)}}}},o._onCanPlay=function(){o._currentInAbr&&o._currentDefinition&&(o._updateId=setTimeout((function(){clearTimeout(o._updateId),o._emitAutoDescChange(o._currentDefinition,!1,o._currentFps,o._currentItem)}),0))},o._onBufferRangeUpdate=function(e){if(void 0!==e.start){null===o._currentItem&&o._onTimeUpdate(null,!0);var t=e.start;o._hasAddFragment=!0,o._bufferRange.set(t,e);var n=_toConsumableArray(o._bufferRange.values());o._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),o.avgStat(AVG_ARGS.DOWNLOAD_BITRATE,e.bandwidth)}},o._onReplay=function(){o.checkRestart()},o._onEnded=function(){o.stop()},o._onError=function(){o.stop()},o.start=function(){if(o.logger("start"),o._isPaused=!1,!o._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());o._abr_play_info.is_hint=e?1:0}o._hasCalcTimelineLog=!0,o._loop()},o.stop=function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(o._abrAlwaysOn=-1),clearTimeout(o.timerId),o._isPaused=!0,o.logger("stop")},o.logger("constructor",n,r,i,a,o.bitrate),o.player=e,o.isOpenAutoDefi=!!o.autoBitrateOpts.isOpenAutoDefi,o._isSegmentDrive=1===o.autoBitrateOpts.abrDriveMode,o.onPlayRateChange=o._onPlayrateChange.bind(o),o._onWinSizeChange=debounce(o.onWinElemSizeChange.bind(o),1e3,!1),o._maxDefinition=o.autoBitrateOpts.maxDefinition||null,o._maxBitrate=-1,o.listeners=[{evt:"MAX_BUFFER_CHANGE",handler:o._onMaxBufferChange.bind(o)},{evt:"playbackrateChange",handler:o.onPlayRateChange},{evt:"replay",handler:o._onReplay},{evt:"ended",handler:o._onEnded},{evt:"error",handler:o._onError},{evt:"timeupdate",handler:o._onTimeUpdate},{evt:"addVideoBufferEnd",handler:o._onBufferRangeUpdate},{evt:"canplay",handler:o._onCanPlay},{evt:"play",handler:o._onPlay},{evt:"seeking",handler:o._onSeeking},{evt:"seeked",handler:o._onSeekEnd},{evt:"waiting",handler:o._onWaiting},{evt:"playing",handler:o._onPlaying},{evt:"video_resize",handler:o._onWinSizeChange},{evt:"NEXT_SEGMENT_PREDICT",handler:o._onSegmentPredict}],o.listeners.forEach((function(e){var t=e.evt,n=e.handler;o.player.on(t,n)})),o._abrMethod=o.autoBitrateOpts.method||0,o._loopInterval=o.initInterval,FpsDetection.install(),o._maxCacheTimeVideo=o.config.preloadTime||5,o._maxCacheTimeAudio=o._maxCacheTimeVideo;for(var d=Object.keys(AVG_ARGS),U=0;U<d.length;U++){var c=d[U],F=AVG_ARGS[c];o._avgStatItems[F]=new AvgStat}return o}return _inherits(t,BaseAbr),_createClass(t,[{key:"init",value:function(e){return this._mediaList=e,this.isOpenAutoDefi?this._onLoadWasm():this._wasmPromise.resolve(),this._wasmPromise}},{key:"execute",value:function(){return this.listenSize(),this.initFps(),this.onWinElemSizeChange(),this._execDecision()}},{key:"initFps",value:function(){this.fpsDetection=new FpsDetection,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){window.removeEventListener("resize",this._onWinSizeChange),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.media)||(null===(t=this.player)||void 0===t?void 0:t.video);if(n){var r=n.getBoundingClientRect();this._videoWidth=Math.floor(r.width),this._videoHeight=Math.floor(r.height),this._hasDeviceInfoChanged=!0}}},{key:"execTimeUpdate",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._onTimeUpdate(null,e)}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_emitAutoDescChange",value:function(e,t,n,r){var i;this.logger("[ABR],emitAutoDescChange, definition, ",e,",item,",r,",pre_item,",this._prevDefinitionItem),null===(i=this.player)||void 0===i||i.emit("UPDATE_AUTO_DESC",{definition:e,reset:t,fps:n,item:r,pre_item:this._prevDefinitionItem})}},{key:"_emitDefinitionRealChange",value:function(e){var t,n=0,r=e.start;this._abrChangeTimeMap[r]&&(this._abrChangeTimeMap[r]=0,delete this._abrChangeTimeMap[r],n=1),null===(t=this.player)||void 0===t||t.emit("ABR_DEFINITION_REAL_CHANGE",{orgDefinition:this._prevDefinitionItem.definition,orgBitrate:this._prevDefinitionItem.bitrate||this._prevDefinitionItem.bandwidth,currentDefinition:this._currentItem.definition,currentBitrate:this._currentItem.bitrate||this._currentItem.bandwidth,abrChange:n})}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_execDecision",value:function(){if(!this.isOpenAutoDefi)return INIT_BIRTATE;var e=INIT_BIRTATE;try{this.logger("exec decision"),this.updateSwitchInfo(),this.transformMediaInfo(),this.updateDeviceInfo();var t=!!this.autoBitrateOpts.isPlayAutoDefi;if(this.isOpenAutoDefi&&t){this._abrUsed=1;var n=this._getDefaultSpeed(this.player);this._isSegmentDrive||(e=this._loopAbr(n)),this.start(),this._changeLoopInterval(),this.logger("time start progress",(new Date).getTime()),this.logger("time costTime",performance.now()-this.startTime)}}catch(e){this.logger("decision error",e),this.logger("time costTime err",performance.now()-this.startTime)}return e}},{key:"_changeLoopInterval",value:function(){var e=this;this.startTimer&&(clearTimeout(this.startTimer),this.startTimer=null),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,e.startTimer&&clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}},{key:"_loop",value:function(){var e=this;this._isPaused||this._isSegmentDrive||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){var t,n=e.player,r=e.config;if(e._hasStart&&null!==(t=r.autoBitrateOpts)&&void 0!==t&&t.stillRunWhenPaused||!n.paused||!n.config.autoplay&&!e._hasStart){var i=e._hasAddFragment?void 0:e._getDefaultSpeed(n);e._loopAbr(i)}e._loop()}),this._loopInterval))}},{key:"checkRestart",value:function(){var e;null!==(e=this.config.autoBitrateOpts)&&void 0!==e&&e.autoRestartAbr&&this._currentInAbr&&this._isPaused&&this.start()}},{key:"updateDeviceInfo",value:function(){try{if(this.fpsDetection){var e=this.fpsDetection.fps;e!==this._fps&&(this._fps=e,this._hasDeviceInfoChanged=!0)}this._updateDeviceInfo(this._fps)}catch(e){}}},{key:"updateBufferInfo",value:function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=this.player.playbackRate,o=this.bufferLength;i>0&&(this.player&&(o=i-this.player.video.currentTime));var l=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===l&&(l=this._getDefaultSpeed(this.player),this.logger("initSpeed fix"));var d=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("downloadSpeed:",l,"buffer:",o,"maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"segmentBufferStart",r,"segmentBufferEnd",i),null===(t=this.module)||void 0===t||t._updateBufferInfo(a,this._maxCacheTimeAudio,this._maxCacheTimeVideo,o,this._isSegmentDrive?i:o,l,this._seekState,null===(n=this.player)||void 0===n?void 0:n.currentTime,this._stallState,d),this._seekState=0,this._eventInfo={internet_speed:l,buffer_length:o,last_bitrate:this.bitrate,play_speed:a},this.logger("playRate:",a,"buff:",o,"downloadSpeed:",l),{buffer:o,downloadSpeed:l}}},{key:"updateSwitchInfo",value:function(){var e,t,n=(new Date).getTime();this._openTimeMs=n,this._abr_play_info.start_play_time_ms=n;var r=(null===(e=this.player)||void 0===e?void 0:e.config.preloadTime)||50,i=convert32ToC64(n),a=this.autoBitrateOpts.noStallCheckTime||5,o=this.openLog;this.logger("openTime:",n,"this.logger",o),null===(t=this.module)||void 0===t||t._updateSwitchInfo(i.low,i.high,a,o,this.stall_penalty,this.switch_penalty);var l=this._mediaList.video,d=l.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=d.map((function(e,t){return{bitrate:e,codecs:l[t].codecs||l[t].codec_type||""}})),this._generalInfo={max_cache_time:r,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._preloadInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._preloadInfo=null)}catch(e){this.logger("updatePreloadCacheInfo",e),this._preloadInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_loopAbr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};this._tickCount++;var i=-1,a=[];if(!this.module||!this.player)return this.bitrate;try{var o,l=(new Date).getTime(),d=this.player;this.updateDeviceInfo();var U=this.updateBufferInfo(e,t,n),c=U.downloadSpeed,F=U.buffer;if(this.module.updateDropFrame&&d.video.getVideoPlaybackQuality){var s,Q=d.video.getVideoPlaybackQuality(),u=Q.droppedVideoFrames/Q.totalVideoFrames;null===(s=this.module)||void 0===s||s.updateDropFrame(u)}i=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var R=0;R<7;R++)a.push(this.module.HEAP32[i/Int32Array.BYTES_PER_ELEMENT+R]);var B=a[0],h=1===a[1];this._eventInfo.now_bitrate=B,this._eventInfo.local_time_ms=(new Date).getTime();var p=0;if(B!==this.bitrate&&0!==B||this.autoBitrateOpts.reportVerboseAbrLog){var S=this.player.currentTime;if(this.module.getStat){var V=this.module.getStat();d.emit("ABR_STAT",_objectSpread2(_objectSpread2({v_time:S,diff_current_position:-1===this._prevCurrentTime?0:S-this._prevCurrentTime,net_speed:8*c,costTime:(new Date).getTime()-l,download_time:null==r?void 0:r.costTime},V),{},{gop_size:null==r?void 0:r.gopSize,audio_buffer:null==r?void 0:r.audioBuffer})),this._abrChangeTimeMap[V.download_position]=1}this._prevCurrentTime=S}if(B!==this.bitrate&&0!==B){var f=this.bitrate;p=Math.abs(f-B);for(var y=[],m=(d.media||d.video).buffered,E=0;E<m.length;E++)y.push({start:m.start(E),end:m.end(E)});var Z=this._videoWidth||Number(this.config.width),J=this._videoHeight||Number(this.config.height),b=(new Date).getTime(),W={speed:"".concat(c," KB/s"),buffer_length:"".concat(F," s"),video_pos:d.currentTime,all_buffers:y,seek_state:this._seekState,stall_state:this._stallState,screen_width:Z,screen_height:J,dpr:window&&window.devicePixelRatio,playbackRate:d.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?b-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=b,this._hasExecuteAbrAlgo=!0,this.logger("abr predicate: ".concat(B,", prevBitrate: ").concat(f,","),"willStall: ".concat(h,", switchBitrate: ").concat(p)),this.updateBitrate(B),d.emit("ABR_CHANGE_A",f,B,h,JSON.stringify(W))}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:B,download_speed:c,screen_width:this._videoWidth||Number(this.config.width),screen_height:this._videoHeight||Number(this.config.height),device_pixel_ratio:window&&window.devicePixelRatio,screen_fps:this._fps,startup_method:this._abrMethod}),null===(o=this.player)||void 0===o||o.emit("ABR_LOOP"),this.onAbrLoop(c,a[2],p,a.slice(3))}catch(e){this.logger("abr error",e),console.error("loopAbr error",e)}finally{i>-1&&this.module._free(i)}return this.bitrate}},{key:"destroy",value:function(){var e,t=this;this.stop(),this.listeners.forEach((function(e){var n,r=e.evt,i=e.handler;null===(n=t.player)||void 0===n||n.off(r,i)})),this._maxBitrate=-1,this.player=null,this._heightToDefinitionConfig=null,this._bitrateToDefinitionConfig=null,this._bitrateToDefinitionConfig=null,this._bufferRange.clear(),this._sortedBufferRange=[],this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),this.startTimer&&clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),null===(e=this.fpsDetection)||void 0===e||e.stop()}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.getBufferedRange())||[],r=((null===(t=this.player)||void 0===t?void 0:t.video)||{currentTime:0}).currentTime,i=n[1]-Math.max(n[0],r),a=Math.max(0,i).toFixed(2);return parseFloat(a)}},{key:"downloadSpeed",get:function(){return Math.floor(this.player.downloadSpeed)}},{key:"nowBitrate",get:function(){return this.bitrate}},{key:"openTimeMs",get:function(){return this._openTimeMs}},{key:"isCurrentInAbr",get:function(){return this._currentInAbr},set:function(e){this._currentInAbr=e}},{key:"onAbrLoop",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=i,this._currentItem&&this.avgStat(AVG_ARGS.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(AVG_ARGS.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(AVG_ARGS.PREDICT_NETWORK_SPEED,n),this.avgStat(AVG_ARGS.BUFFER_LENGTH,this.bufferLength),this.avgStat(AVG_ARGS.QOE,this.getQoeRelValue(0)),r>0&&(this._switchCount++,this._switchBitrate+=r),this._abr_play_info.is_hint){var a=((new Date).getTime()-this.openTimeMs)/1e3;a=parseFloat(a.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([a,this.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([a,this.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([a,this.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([a,(null===(t=this.player)||void 0===t?void 0:t.playbackRate)||-1]),this._abr_play_info.playback_info.qoe_record.push([a,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([a,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([a,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([a,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,t){var n=this._avgStatItems[e];n&&n.add(t)}},{key:"getAbrPlayInfo",value:function(){return this._abr_play_info}},{key:"updateAbrMethod",value:function(e){this._abrMethod=e}},{key:"getAbrMethod",value:function(){return this._abrMethod}},{key:"updateSegmentDuration",value:function(e){var t;this.segment_duration=e,null!==(t=this.module)&&void 0!==t&&t.updateSegmentDuration&&this.module.updateSegmentDuration(e)}},{key:"getAbrVVStats",value:function(){for(var e={},t=Object.keys(AVG_ARGS),n=0;n<t.length;n++){var r=t[n],i=AVG_ARGS[r],a=this._avgStatItems[i];e[i]=a.avg()}return e.switch_counts=this._switchCount,e.avg_switch_bitrate=0===this._switchCount?0:this._switchBitrate/this._switchCount,e.abr_qoe=this.getQoeRelValue(0),e.abr_qoe_a=this.getQoeRelValue(1),e.abr_qoe_b=this.getQoeRelValue(2),e.abr_qoe_c=this.getQoeRelValue(3),e.abr_method=this._abrMethod,e.abr_used=this._abrUsed,e.abr_always_on=this._abrAlwaysOn,this.logger("abrVVStats",e),e}}])}(),AvgStat=function(){return _createClass((function e(){_classCallCheck(this,e),this.total=0,this.count=0}),[{key:"add",value:function(e){this.total+=e,this.count++}},{key:"avg",value:function(){if(0===this.count)return 0;var e=this.total/this.count;return Math.floor(e)}}])}(),CDM_LICENSE_ERROR=index_minExports.EVENT_EME.CDM_LICENSE_ERROR,CDM_LICENSE_SUCCESS=index_minExports.EVENT_EME.CDM_LICENSE_SUCCESS,DASH=function(){return _createClass$8((function e(t,n,r){var i,a=this;_classCallCheck$8(this,e),EventEmitter(this),this._pluginInst=n,this.__dash__=r;var o=n.config,l=n.player,d=n._kernal;this.kernal=d,this.mse=void 0,this.config=o,this.player=l,this.url=t,this.inited=!1,this.loadingTasks=[],this.keyValue=void 0,this.dynamic_video=this.config.dashOpts.dynamic_video,this.useEME=this.config.useEME,this.intertrustServerURL=this.config.intertrustServerURL,this.taskErrorList=[],this.defaultDefinition=this.config.defaultDefinition,this.selectedIdx=0,this.getLicenseUrl=this.config.getLicenseUrl,this.egleIds={},this._resetOptionDataLenInfo(),this._initStates={emitEncrypt:!1};var U=this.config,c=U.loader,F=U.reqOptions,s=U.vid;this.loader=new Loader(Object.assign({openLog:LOGOPEN,vid:s},c,F),this._pluginInst.preloadManager),this.loader.on(EVENT$1.REAL_TIME_SPEED,(function(e){a.player.emit(EVENT$1.REAL_TIME_SPEED,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var Q=this.config.duration||this.config.dashOpts.video_duration||this.config.dashOpts.dynamic_video.video_duration;this.config.duration=Q;var u="segment_base"===(null===(i=this.config.dashOpts)||void 0===i||null===(i=i.dynamic_video)||void 0===i?void 0:i.dynamic_type);this._vid=o.vid;var R=this.player.config.uri||o.vid;this._pcdnScv=new PCDNTrackService({config:o,isOpenPCDN:u,videoDuration:Q,uri:R},this.player),this._dynamicBufferService=new DynamicBufferService(this.player,0,Q,this.config.adaptRange),this._audioMetaReadyPromise=null,this._videoMetaReadyPromise=null,this._aduioMetaReady=!1,this._videoMetaReady=!1,this._resetProgressInfos(),this._appendBufferDelta={video:this._genEmptyBufferDelta(),audio:this._genEmptyBufferDelta()},this._lastAppendBufferEnd={video:{prevRangeEnd:0,prevItem:null},audio:{prevRangeEnd:0,prevItem:null}},this._preloadSegDatas={video:[],audio:[]},this._allCacheKeys=[],this._pendingAppnedDatas={video:[],audio:[]},this._extDataCache={video:null,audio:null}}),[{key:"_genEmptyBufferDelta",value:function(){return{delta:0,item:null,requestDelta:0,isPCDN:!1}}},{key:"_resetProgressInfos",value:function(){this._progressInfos={video:this._genEmptyProgressInfo(),audio:this._genEmptyProgressInfo()}}},{key:"_genEmptyProgressInfo",value:function(){return{data:new Uint8Array(0),range:null,extData:null,done:!1}}},{key:"cachePreloadData",value:function(){var e;null===(e=this.loader)||void 0===e||e.cachePreloadData({vid:this._vid,codecType:this.mpd.getCodecType()},this._progressInfos),this._progressInfos.video.done&&(this._progressInfos.video=this._genEmptyProgressInfo()),this._progressInfos.audio.done&&(this._progressInfos.audio=this._genEmptyProgressInfo())}},{key:"_updateLoadInfo",value:function(e,t){this.loadInfo||(this.loadInfo={}),this.loadInfo[e]||(this.loadInfo[e]={},this.loadInfo[e].size=0),this.loadInfo[e].size+=t}},{key:"_resetOptionDataLenInfo",value:function(){this._optionDataLenInfo={video:_defineProperty$7(_defineProperty$7({},REQ_TYPES.PCDN,{size:0}),REQ_TYPES.CDN,{size:0}),audio:_defineProperty$7(_defineProperty$7({},REQ_TYPES.PCDN,{size:0}),REQ_TYPES.CDN,{size:0})}}},{key:"getPCDNInOutBuffer",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNInOUtBuffer()}},{key:"updateDynamicBufferServiceBitrate",value:function(e){this._dynamicBufferService.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){return this._dynamicBufferService.getAdaptCacheBuffer(e)}},{key:"pushDynamicBufferServiceRes",value:function(e){this._dynamicBufferService.push(e)}},{key:"popDynamicBufferServiceRes",value:function(){var e;return(null===(e=this._dynamicBufferService)||void 0===e?void 0:e.pop())||{}}},{key:"getPCDNTraceInfo",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNTraceInfo()}},{key:"_abortAndRemove",value:(l=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n,r){var i,a,o,l,d,U,c,F,s=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=!(s.length>3&&void 0!==s[3])||s[3],o=(null===(i=this.player)||void 0===i?void 0:i.currentTime)||-1,l=n.startRaw<o&&o<n.endRaw,!a){e.next=6;break}return e.next=6,null===(d=this.loader)||void 0===d?void 0:d.cancelTasks(t,!0);case 6:l?this._appendBufferDelta&&((F=this._appendBufferDelta[t]).range&&n.range&&n.range[0]<F.range[1]&&F.range[1]<n.range[1]&&(n.extRange=[F.range[1],n.range[1]],this._extDataCache[t]=n),debug$1.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"extRange",JSON.stringify(n.extRange),"range",JSON.stringify(n.range),r),this._appendBufferDelta[t]=this._genEmptyBufferDelta()):(n.isSatisfied&&(debug$1.log("_abortAndRemove isSatisfied abort and clear"),null===(U=this.__dash__)||void 0===U||U.abort(t),null===(c=this.__dash__)||void 0===c||c.clearBufferDirect(t,n)),this.updateItemState(n),debug$1.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"from",r));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"onTimeUpdate",value:function(){if(this._appendBufferDelta){var e=this.config,t=e.usePCDNProgressiveCheck,n=e.progressiveTimeout,r=e.useCDNProgressiveCheck;if(t||r)for(var i=Object.keys(this._appendBufferDelta),a=util$1.nowTime(),o=0;o<i.length;o++){var l=i[o],d=this._appendBufferDelta[l],U=d.delta,c=d.requestDelta,F=d.item,s=d.isPCDN,Q=!1;if(t&&s&&(Q=!0),r&&!s&&(Q=!0),F&&Q){var u=this.player.playbackRate,R=U>0&&a-U>n,B=c>0&&a-c>1e3*(F.end-F.start)/u;(R||B)&&(debug$1.log("_abortAndRemove PCDN request cancel, progressiveTimeout",R,"requestTimeout",B,"segDuration",F.end-F.start,"s"),this.player&&this.player.emit("log",{type:"oneevent",end_type:R?"progressive_timeout":"pcdn_request_timeout"}),this._abortAndRemove(l,F,"pcdn onTimeUpdate",!0))}}}}},{key:"_emitAbrNextSegmentPredictEvt",value:function(e){var t;null===(t=this.player)||void 0===t||t.emit(ABR_EVENTS.NEXT_SEGMENT_PREDICT,e)}},{key:"getData",value:(o=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o,l,d,U,c,F,s,Q,u,R,B,h,p,S,V,f,y,m,E,Z,J=this,b=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=b.length>1&&void 0!==b[1]?b[1]:[],r=b.length>2?b[2]:void 0,a=b.length>4&&void 0!==b[4]&&b[4],o=b.length>5&&void 0!==b[5]?b[5]:null,l=b.length>6&&void 0!==b[6]?b[6]:null,d=b.length>7&&void 0!==b[7]?b[7]:null,U=b.length>8&&void 0!==b[8]?b[8]:null,c=(i=b.length>3&&void 0!==b[3]?b[3]:{}).isPCDN,F=c?REQ_TYPES.PCDN:REQ_TYPES.CDN,i.url=t,e.next=13,this.loader.load(r,t,n,i,a,o?function(e,t,a,l){var d=F;if(J._optionDataLenInfo){var U=J._optionDataLenInfo[r][d];if(e&&e.byteLength&&(U.size+=e.byteLength,U.range=n,U.extData=i),t&&!a.fromCache){var c=n[1]-n[0]+1,s=Date.now()-a.st;J._emitPrfDataSizeEvent(F,c,r,n,i,0,s),U.size=0,U.range=null,U.extData=null}if(i.checkPreload&&!a.fromCache&&J._progressInfos){var Q=J._progressInfos[r];Q.data=concatUint8Array(Q.data,e),Q.extData=i,null===Q.range?Q.range=a.range:Q.range[1]=Math.min((null==n?void 0:n[1])||1/0,a.range[1]),Q.done=t,t&&J.cachePreloadData()}t&&a.fromCache&&(i.fromCache=!0),o(e,t,a,l,i)}}:null,l,d,U);case 13:if(!((s=e.sent)&&s.res instanceof ArrayBuffer)){e.next=20;break}return Q=s.res,u=s.headers,R=s.status,B=s.fromCache,h=s.cacheKey,p=s.orgDefinition,S=s.duration,B?this.emitPreloadHit(h):this._emitPrfDataSizeEvent(F,s.res.byteLength,r,n,i,0,s.costTime),e.abrupt("return",{res:Q,headers:u,status:R,fromCache:B,orgDefinition:p,duration:S});case 20:s&&"error"===s.res&&(E=this._isAbort(null==s?void 0:s.error),Z=!0===(null==s||null===(V=s.error)||void 0===V?void 0:V.isTimeout),(!E||Z)&&this.player&&this.player.emit("source_error",{host:util$1.getHostFromUrl(null==s?void 0:s.url),src:null==s?void 0:s.url,errorCode:Z?ERR_CODE[ERR.NETWORK_TIMEOUT]:(null==s?void 0:s.status)||"networkError",message:Z?"timeout":null==s||null===(f=s.error)||void 0===f?void 0:f.message,range:n,headers:null==s?void 0:s.header,error:{msg:null==s||null===(y=s.error)||void 0===y?void 0:y.message,stack:null==s||null===(m=s.error)||void 0===m?void 0:m.stack},mediaType:r}));case 21:return e.abrupt("return",s);case 22:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,t,n,r,i){var a,o,l,d,U=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,F=Loader.currentSpeed,s=i.fileId,Q=i.definition,u=i.adaptItemParam,R=i.bitrate,B=i.first_gop,h=i.segmentDuration,p=i.start,S=i.end,V=i.url,f=(null===(a=this.player)||void 0===a?void 0:a.config.uri)||(null===(o=this.config)||void 0===o?void 0:o.vid),y="cdn";e===REQ_TYPES.CDN?null===(l=this.player)||void 0===l||l.emit("prf_data_size",_objectSpread2$5(_objectSpread2$5({vid:this._vid,task_type:1,cdn_size:t,mediaType:n,range:JSON.stringify(r),fileid:s,definition:Q,cdn_speed:F},u),{},{emitType:U,bitrate:R,format:"DASH",uri:f,first_gop:B,segmentDuration:h,costTime:c,start:p,end:S,url:V})):(y="pcdn",null===(d=this.player)||void 0===d||d.emit("prf_data_size",_objectSpread2$5(_objectSpread2$5({vid:this._vid,task_type:1,pcdn_size:t,mediaType:n,range:JSON.stringify(r),fileid:s,definition:Q,pcdn_speed:F},u),{},{emitType:U,bitrate:R,format:"DASH",uri:f,first_gop:B,segmentDuration:h,costTime:c,start:p,end:S,url:V})));this._updateLoadInfo(y,t)}},{key:"_getCryptInfos",value:function(){var e="",t="";if(this.dynamic_video.dynamic_video_list&&this.dynamic_video.dynamic_video_list.length>0){for(var n=0;n<this.dynamic_video.dynamic_video_list.length;n++)if(this.dynamic_video.dynamic_video_list[n].kid){e=this.dynamic_video.dynamic_video_list[n].kid,t=this.dynamic_video.dynamic_video_list[n].spade_a,this._videoEncryption=!0;break}}else if(this.dynamic_video.dynamic_audio_list)for(var r=0;r<this.dynamic_video.dynamic_audio_list.length;r++)if(this.dynamic_video.dynamic_audio_list[r].kid){e=this.dynamic_video.dynamic_audio_list[r].kid,t=this.dynamic_video.dynamic_audio_list[r].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:t}}},{key:"init",value:(a=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o,l,d,U;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:if(this._initStartMs=Date.now(),this.kernal.setNodeTime("initdash"),n=this._getCryptInfos(),r=n.keyId,i=n.spade_a,(a=this).config.usePlaySpade&&(a.config.secretKey=i),o=a.config,l=o.secretKey,d=o.drmKeyToken,U=o.playDomain,!(r||l||d&&U)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(r);case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(10),console.log("err",e.t0);case 18:return e.abrupt("return",a.initDash(t));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return a.apply(this,arguments)})},{key:"_initSecret",value:function(e){var t=this,n=new ProxyPromise,r=this.config,i=r.secretKey,a=r.drmKeyToken,o=r.playDomain,l=r.useUnionInfoDRM,d=r.keyTokenExpiredDuration,U=r.sessionId,c=r.drmType;if(this.player.plugins.drm)return n.resolve(),n;var F=new index_minExports.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:i,drmType:c,vid:this.config.vid||"",useUnionInfoDRM:l,drmKeyToken:a||this.config.keyToken,keyTokenExpiredDuration:d,playDomain:o,sessionId:U,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=F,F.getLicenseSecret().then((function(e){if(!t._pluginInst)return debug$1.log("getLicense callback destroy"),void n.reject("getLicense callback destroy");t.config.dashOpts&&t.useEME?(t._initEME(),null==F||F.setOptions(),null==F||F.setupEME(t.player.video)):(t.__dash__.crypto&&t.__dash__.crypto.updateValue(e),t.keyValue=!0),debug$1.encrypt("getLicense resolve"),n.resolve()})).catch((function(e){var r;debug$1.log("DRM_ERROR",e),n.reject("catch error"),!t._hasDestroyed&&t.emit("error",new Errors$1(ERR.DRM,(null===(r=e.error)||void 0===r?void 0:r.code)||ERR.SUB_TYPES.CUSTOM_LICENSE,{url:t.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),n}},{key:"_initEME",value:function(){var e=this;if(!index_minExports.checkEMEValid())return this.player.errorHandler(new Errors$1(ERR.MEDIA,ERR.SUB_TYPES.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(CDM_LICENSE_ERROR,(function(t){e.player&&e.player.emit("log",_objectSpread2$5({type:"oneevent",end_type:CDM_LICENSE_ERROR,ua:navigator.userAgent},t)),debug$1.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new Errors$1(ERR.DRM,ERR.SUB_TYPES.LICENSE,{message:"DRM接口失败".concat(t.data)}))})),this._secret.on(CDM_LICENSE_SUCCESS,(function(t){e.player&&e.player.emit("log",_objectSpread2$5({type:"oneevent",end_type:CDM_LICENSE_SUCCESS,ua:navigator.userAgent},t)),debug$1.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,t=this,n=t.config,r=this.mpd.mediaList.video,i=n.defaultDefinition?n.defaultDefinition.toString():null,a=this.player.preloader&&this.player.preloader.getPreloadMetaByVid(t.config.vid),o=!1;if(a&&a.definition){i=a.definition,o=!0;var l=this._pluginInst.preloadManager;if(l&&l.supportSync()){var d=this.mpd.getCodecType(),U=l.getPreLoadDataSync({vid:this._vid,codecType:d,vtype:VTYPES$1.DASH});delete U.cacheKey,delete U.loadInfo,this._allCacheKeys=Object.keys(U),this._allCacheKeys.forEach((function(t){var n,r,i,a=U[t];a&&!a.isInitSegment&&(null===(n=a.range)||void 0===n?void 0:n.length)>0&&(null===(r=a.range)||void 0===r?void 0:r[1])<a.rangeEnd&&(null===(i=e._preloadSegDatas[a.mediaType])||void 0===i||i.push(a))}))}debug$1.log("dashDefinition",t.config.vid,"hasPreload",i)}var c=this.player.config;if(!!c.userSelectDefinition&&c.focusUserDefinition&&(i!==c.userSelectDefinition.toString()&&o&&(o=!1,debug$1.log("dashDefinition",t.config.vid,"hasPreload",i,"change to userSelectDefinition",c.userSelectDefinition)),i=c.userSelectDefinition.toString()),this._pluginInst.bitRateAdapter&&!o){var F=this.player?c.userSelectDefinition:null,s=util$1.getBitrateItem(t.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,t.config.dashOpts.dynamic_video.duration,F);if(debug$1.log("[dashDefinition] onReady BitRateAdapter",t.config.vid,"item",s),s){i=s.definition.toString();var Q=t.config.dashOpts.dynamic_video.dynamic_video_list,u=null==Q?void 0:Q.filter((function(e){return e.definition===s.definition}))[0];u&&(u.fromType=s.fromType,u.orgDefinition=s.orgDefinition,u.type=s.type)}}debug$1.log("[dashDefinition] onReady",t.config.vid,"video definition",i);var R=!1;i&&r.forEach((function(t,n){t.definition.toString()===i.toString()&&(e.config.defaultDefinition=i.toString(),r.selectedIdx=n,R=!0)})),R||(r.selectedIdx=0),this.selectAudio()}},{key:"selectAudio",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.mpd.mediaList.video,r=this.mpd.mediaList.audio,i=selectAudio(n,r,e),a=i;return-1===a&&(a=0),t&&(r.selectedIdx=a),debug$1.log(this._vid,"audio definition",r.selectedIdx),i}},{key:"_initMSE",value:function(){var e=this;this.kernal.setNodeTime("initmse_sbopen");var t,n,r=Date.now(),i=this.mpd.mediaList.audio,a=this.mpd.mediaList.video,o={};if(this._hasAudio&&(o[MSE.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(i[i.selectedIdx].codecs,'"')}),this._hasVideo&&(o[MSE.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(a[a.selectedIdx].codecs,'"')}),this._hasVideo&&this._pluginInst.softVideo){var l=this.player.video;l.setPlayMode&&l.setPlayMode("VOD"),(t=l).url=URL.createObjectURL(new Blob),n=Promise.resolve()}else{if(this._secret&&!index_minExports.checkMSEValid())return void this.player.errorHandler(new Errors$1(ERR.MEDIA,ERR.SUB_TYPES.MSE_HIJACK,{message:"MSE被劫持"}));(n=(t=new MSE(void 0,{openLog:LOGOPEN})).bindMedia(this.player.video)).then((function(){if(e._pluginInst){e.kernal.setNodeTime("initmse_sbopendone"),e._mseOpenDone=!0,e._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:r,profile:!0});try{for(var n=Object.keys(o),i=0;i<n.length;i++){var a=n[i];t.createSource(a,o[a].codec)}}catch(t){debug$1.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:t.message})),e&&e.player&&e.player.errorHandler(new Errors$1(ERR.MEDIA,ERR.SUB_TYPES.MSE_ADD_SB,{line:329,message:"mse init fail"})),debug$1.log("mse init error",t,"player destroyed ? ",!(e&&e.player))}}else debug$1.log("open promise ready destroy")})).catch((function(e){console.log("openPromise catch",e)}))}return this.mse=t,n}},{key:"_addBuffer",value:function(e,t){var n=this,r=this;if(this._hasDestroyed)debug$1.log("addBuffer destroy");else if(this.mpd){var i=this.mpd.mediaList[t],a=this.mpd.mediaList[t];if(!(a.length<1)&&a[a.selectedIdx]&&a[a.selectedIdx].mimeType){var o=e;if(!o.initSegmentRes)return debug$1.log("initSegment null, task request error, stop"),void r.emit("error",new Errors$1(ERR.RUNTIME,Errors$1.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));r.__dash__&&r.__dash__._appendInitSegment(t,o,a.selectedIdx).then((function(){var e="video"===t?n._videoMetaReadyPromise:n._audioMetaReadyPromise;e&&(n.kernal.setNodeTime("initSegment ".concat(t," append")),e.resolve()),r.inited=!0;var a,o,l=i.selectedIdx;i.length>0&&(i[l].encrypted||i[l].kid)&&(n._hasEmitEncrypt||(n._hasEmitEncrypt=!0,r._secret&&r._secret.emit(index_minExports.EVENT_EME.ENCRYPTED),null===(a=r.player)||void 0===a||a.emit(index_minExports.EVENT_EME.ENCRYPTED)));"vod"===r.type&&(null===(o=r.__dash__)||void 0===o||o.loadData(0),r.emit("start_play"))})).catch((function(e){var t;n._hasCatchAppendError||(n._hasCatchAppendError=!0,null===(t=r.player)||void 0===t||t.errorHandler(new Errors$1(ERR.MEDIA,ERR.SUB_TYPES.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)})))}))}}else debug$1.log("addBuffer mpd empty")}},{key:"appendFirstSegment",value:function(e){var t=this,n=this._pendingAppnedDatas[e];if(n.length>0){for(var r=[],i=function(){var i=n[a];t.mse.isOpened?t.appendSegment(e,i.res,i.item,{},i.extData,!1,i.done):t._openPromise.then((function(){t.appendSegment(e,i.res,i.item,{},i.extData,!1,i.done)})),r.push(i.range)},a=0;a<n.length;a++)i();this._pendingAppnedDatas[e]=[],debug$1.log("appendFirstSegment",e,"ranges",r)}if(!("video"===e?this._videoMetaReady:this._audioMetaReady)){var o=function(){"video"===e?t._videoMetaReady=!0:t._audioMetaReady=!0};this.mse.isOpened?o():this._openPromise.then((function(){o()}))}}},{key:"initDash",value:(i=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return debug$1.log("dash.js init dash destroy"),e.abrupt("return");case 3:return this._pluginInst.info({msg:"dash init",data:"dash init",startMs:this._initStartMs,profile:!0}),this.kernal.setNodeTime("initdashdone"),n=this,this.kernal.setNodeTime("initmpd"),r=new MPD$1(t,n.config.dashOpts,n),n.mpd=r,r.init(),e.next=12,r.readyPromise;case 12:return this._onMPDReady(r),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"_createMoofSegment",value:function(e,t){var n=t.mediaList[e],r=n[n.selectedIdx].firstMoofMdatRange;if(r){var i;debug$1.log(null===(i=this.config)||void 0===i?void 0:i.vid,"createMoofSegment, mediaType",e);var a=new ProxyPromise;e===MSE.VIDEO?this._videoMetaReadyPromise=a:this._audioMetaReadyPromise=a;var o,l,d=_defineProperty$7({codecType:this.mpd.getCodecType(),range:r,url:n[n.selectedIdx].initSegment,idx:1,start:0,startRaw:0,moof:!0,checkPreload:!0,mediaType:e,selectedIdx:n.selectedIdx,fileId:n[n.selectedIdx].fileId,vid:this.config.vid,vtype:VTYPES$1.DASH,bitrate:n[n.selectedIdx].bandwidth,definition:n[n.selectedIdx].definition},"codecType",this.mpd.videoCodecType),U=util$1.generateRequestUniqueKey(_objectSpread2$5(_objectSpread2$5({},d),{},{range:r}));if(this._allCacheKeys.includes(U))debug$1.log(null===(o=this.config)||void 0===o?void 0:o.vid,"createMoofSegment mediaType",e,"hit cache, no moof request, use seq requset"),this._resetMoofSegmentDownloadState(e);else debug$1.log(null===(l=this.config)||void 0===l?void 0:l.vid,"createMoofSegment mediaType",e,"no cache, request moof request"),this._makeSegmentRequestByItem(d,e,{},!1,a)}}},{key:"_resetMoofSegmentDownloadState",value:function(e){var t=this.mpd;if(t&&t.mediaList){var n,r=t.mediaList[e];r[r.selectedIdx].cancelFirstSegmentReq=!0;var i=null===(n=r[r.selectedIdx].mediaSegments)||void 0===n?void 0:n[0];i&&(i.downloaded=SEGMENT_STATE.NO_START)}}},{key:"_onMPDReady",value:function(e){var t=this,n=Date.now();if(this._pluginInst){debug$1.log("mpd ready"),this.kernal.setNodeTime("initmpddone"),this._pluginInst.info({msg:"mpd ready",name:"mpd ready",startMs:n,profile:!0}),this.type=e.type;var r=e.mediaList.video,i=e.mediaList.audio;this._initDefaultDefinition();var a=!!(r.length>0&&r[r.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,o=!!(i.length>0&&i[i.selectedIdx]);this._hasVideo=a,this._hasAudio=o;var l=this._initMSE();if(l){this._pluginInst.setStartTimelineAttr("reqtime",util$1.nowTime()),this._openPromsie=l;var d=[],U=this.config?this.config.dashOpts.audioOnly:null;if(this.config&&!U&&r&&r.length>0&&r[r.selectedIdx]&&r[r.selectedIdx].initSegment){var c=this.__dash__._makeInitSegemntRequestWithRetry("video",r.selectedIdx,!0);c.then((function(e){t._addBufferSafe(e,MSE.VIDEO,l)})),d.push(c),this._createMoofSegment(MSE.VIDEO,e)}if(i[i.selectedIdx]&&i[i.selectedIdx].initSegment){var F=this.__dash__._makeInitSegemntRequestWithRetry("audio",i.selectedIdx,!0);F.then((function(e){t._addBufferSafe(e,MSE.AUDIO,l)})),d.push(F),this._createMoofSegment(MSE.AUDIO,e)}Promise.all(d).catch((function(e){t&&t.player&&t.player.errorHandler(e),debug$1.log("appendInitPromise error",e,"player destroyed ? ",!(t&&t.player))}))}}else debug$1.log("mpd ready destroy")}},{key:"_addBufferSafe",value:function(e,t,n){var r=this;this._mseOpenDone?this._addBuffer(e,t):n.then((function(){r._addBuffer(e,t)}))}},{key:"seek",value:function(e,t){var n,r,i,a=this,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,d=this,U=this.mpd.seek(t,l,e),c=this.popDynamicBufferServiceRes(),F=null===(n=d.mpd)||void 0===n||null===(n=n.mediaList)||void 0===n?void 0:n.video,s=null===(r=d.mpd)||void 0===r||null===(r=r.mediaList)||void 0===r?void 0:r.audio;if(d.mpd){var Q=!!(F.length>0&&F[F.selectedIdx]),u=!!(s.length>0&&s[s.selectedIdx]);if(Q&&u&&2*F[F.selectedIdx].mediaDuration<s[s.selectedIdx].mediaDuration)d._hastEmitDurErr||(d._hastEmitDurErr=!0,d.emit("error",new Errors$1(ERR.RUNTIME,Errors$1.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"})));else{var R={},B=["video","audio"];B.forEach((function(e){U[e]&&U[e].length>0&&(R[e]=[],U[e].forEach((function(t){var n=t.idx,r=t.start,i=t.end,a=t.downloaded,o=t.range;R[e].push({idx:n,start:r,end:i,downloaded:a,range:o})})))})),debug$1.log(null===(i=this.config)||void 0===i?void 0:i.vid,"currentTime",t,JSON.stringify(R)),(d.config.dashOpts&&d.config.dashOpts.audioOnly?["audio"]:B).forEach((function(e){U[e]&&U[e].length>0&&U[e].every((function(t){return a._makeSegmentRequestByItem(t,e,c,o)}))}))}}else debug$1.log("dash seek destroy")}},{key:"loadFirstVideoGop",value:function(){var e=this.mpd.getVideoFirstGop();e&&(debug$1.log("loadFirstVideoGop"),this._makeSegmentRequestByItem(e,MSE.VIDEO,{},!1,null,!1))}},{key:"_makeSegmentRequestByItem",value:function(e,t,n,r){var i=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this;if(e.downloaded===SEGMENT_STATE.APPEND||e.downloaded===SEGMENT_STATE.GOING)return!0;e.downloaded=SEGMENT_STATE.GOING;var d=Object.assign({},n,{load_tar_dur:e.end-e.start,load_dur:e.end-e.start});e.adaptItemParam=d;var U=this._videoEncryption||this._audioEncryption,c=!U||U&&this.useEME,F=l.config.useProgressiveAppend&&!this._pluginInst.softVideo&&c&&this.loader.isSupportedProgress(),s=0===e.start||r,Q=l.mpd.mediaList[t],u=Q[Q.selectedIdx],R=s&&this.loader.checkProgressSatisfied(u.bandwidth||u.bitrate),B=l.config.useProgressiveAppendAll,h=F&&(R||B);s&&debug$1.log("progressDownloaded match, config p ".concat(l.config.useProgressiveAppend,", \n progressDownloaded ").concat(F,", encEnableProgress :").concat(c,",\n useProgressiveAppendAll:").concat(B)),h&&0===e.start&&("video"===t?l._pluginInst.pvStartup=!0:l._pluginInst.paStartup=!0);var p=function(){e.downloaded!==SEGMENT_STATE.APPEND?(l.updateItemState(e,!1),debug$1.log("onCancel",e),l._removeFromList(e),l._setLoading(t,!1),h&&(null==l||l._abortAndRemove(t,e,"oncancel",!1))):debug$1.log("abr_log oncancel appended return",e)};e.isSatisfied=h,l._addToList(e),this._setLoading(t,!0,!1),e.requestTime=util$1.nowTime(),h?(debug$1.log("progressDownloaded, mediaType:".concat(t,",\n start:").concat(e.start,", bitrate:").concat(u.bandwidth||u.bitrate)),l.makeSegmentRequest(t,e,function(){var n=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function n(r,d,U,c,F){var s,Q,u;return _regeneratorRuntime$4().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,null!==(s=i._appendBufferDelta)&&void 0!==s&&s[t]&&((Q=i._appendBufferDelta[t]).delta=util$1.nowTime(),Q.item=e,Q.requestDelta||(Q.requestDelta=util$1.nowTime())),u=U.range||e.range,F.range=u,F.status=null==c?void 0:c.status,200!==F.status||"ftyp"!==util$1.getTopBoxType(r)){n.next=10;break}return n.next=8,i.loader.cancel(t);case 8:return l._onRequestFail({message:"response 200, cancel"},e,t),n.abrupt("return");case 10:a?(t===MSE.VIDEO?i._videoMetaReady:i._audioMetaReady)?(debug$1.log("createMoof metaPromise ready",t,u),l.appendSegment(t,r,e,{},F,!1,d,a)):(i._pendingAppnedDatas[t].push({range:u.concat(),res:r,item:JSON.parse(JSON.stringify(e)),extData:JSON.parse(JSON.stringify(F)),done:d}),debug$1.log("createMoof metaPromise not ready",t,u,r)):l.appendSegment(t,r,e,{},F,!1,d,a),!d&&U.range[1]>=e.range[1]&&(d=!0),d&&(e.extRange=void 0,l._removeFromList(e),i._setLoading(t,!1,o,e.idx),i._appendBufferDelta&&(i._appendBufferDelta[t]=i._genEmptyBufferDelta()),debug$1.log("mediaType",t,"item",e.idx,"done")),n.next=18;break;case 15:n.prev=15,n.t0=n.catch(0),i.__dash__?(i._abortAndRemove(t,e,"errorCatch"),l._onRequestFail(n.t0,e,t)):debug$1.log("__dash__ null, destroy");case 18:case"end":return n.stop()}}),n,null,[[0,15]])})));return function(e,t,r,i,a){return n.apply(this,arguments)}}(),p,a).catch((function(n){l._onRequestFail(n,e,t)}))):l.makeSegmentRequest(t,e,null,p).then((function(n){var r=n.res,i=n.headers,o=n.extData;debug$1.log("append ".concat(t," ").concat(e.start," ").concat(e.end)),l._setLoading(t,!1,!0,e.idx),l.appendSegment(t,r,e,i||{},o,!0,!0,a),l._removeFromList(e)}),null,a).catch((function(n){l._onRequestFail(n,e,t)})).finally((function(){l._setLoading(t,!1)}))}},{key:"_onRequestFail",value:function(e,t,n){var r,i;(t&&t.moof&&(debug$1.log("createMoof request fail, mediaType",n),this._resetMoofSegmentDownloadState(n)),this._setLoading(n,!1),this.updateItemState(t),this._removeFromList(t),e.isPCDN)&&(null===(r=this._pcdnScv)||void 0===r||r.setSetRetryInfo(n,e.url),null===(i=this._pcdnScv)||void 0===i||i.removePCDNNode(n,e.bitrate,e.url));if(this.mpd){var a=this.mpd.mediaList;debug$1.log("_onRequestFail",null==e?void 0:e.message,JSON.stringify(t));var o="video"===n?a.video:a.audio,l=o[o.selectedIdx],d=!this._isAbort(e.error)&&!e.isPCDN;!l.hasBackup&&l.backupUrl&&d?l.hasBackup=!0:l.fallbackUrl&&d&&(l.hasFallback=!0)}else debug$1.log("_onRequestFail destroy")}},{key:"_setLoading",value:function(e,t){var n,r,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;(debug$1.log("setLoading",e,"isLoading",t,"addNext",i,"prevIdx",a),null===(n=this.mpd)||void 0===n||n.setLoadingState(e,t),i)&&(null===(r=this.mpd)||void 0===r||r.moveNextSegmentIndex(e,a))}},{key:"_isAbort",value:function(e){var t=null==e?void 0:e.message;return(null==t?void 0:t.includes("The user aborted a request"))||(null==t?void 0:t.includes("Fetch is aborted"))||(null==t?void 0:t.includes("signal is aborted without reason"))}},{key:"_addToList",value:function(e){this._onLoadingItems&&this._onLoadingItems.push(e)}},{key:"_removeFromList",value:function(e){if(this._onLoadingItems)for(var t=this._onLoadingItems.length-1;t>-1;t--)this._onLoadingItems[t]===e&&this._onLoadingItems.splice(t,1)}},{key:"_doSizePreloadCheck",value:function(e){if((this._pluginInst.softVideo||this.__dash__.dashVideoEncrypted||this.__dash__.dashAudioEncrypted)&&!1===this.useEME&&this.__dash__.crypto)return{isSlice:!1};if("segment_template"===this.mpd.dashType)return{isSlice:!1};var t=e.mediaType,n=e.range,r=this._preloadSegDatas[t];if(!r||0===(null==r?void 0:r.length))return{isSlice:!1};var i,a=_createForOfIteratorHelper$3(r);try{for(a.s();!(i=a.n()).done;){var o=i.value;if(o.range[0]===n[0]&&e.fileId===o.fileId){var l=o.res,d=o.duration;return{isSlice:!0,range:[o.range[1]+1,n[1]],res:l,duration:d}}}}catch(e){a.e(e)}finally{a.f()}return{isSlice:!1}}},{key:"makeSegmentRequest",value:function(e,t){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,l=this,d=new ProxyPromise;void 0===t.range&&(t.range=[]),"video"===e&&debug$1.network("http get video start: ".concat(t.start,", end: ").concat(t.end," ,range: ").concat(t.range)),l.player&&l.__dash__._checkUrlRange(t.url);var U={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:l.config.segmentRatio||7.5,vid:l.config.vid,mediaType:e,start:t.start,end:t.end,useUrlRange:l.config.useUrlRange},c=1/0,F=l.mpd.mediaList[e],s=F[F.selectedIdx],Q=t.url;s.hasFallback?Q=s.fallbackUrl:s.hasBackup&&(Q=s.backupUrl);var u=(null===(n=t.extRange)||void 0===n?void 0:n.length)>0,R=!1;if(this._pcdnScv){var B=this._pcdnScv.selectedPCDN(e,!1,s.bandwidth),h="audio"===e||(null==B?void 0:B.includes(s.fileId));B&&!h&&(this._pcdnScv.removePCDNNode(e,s.bandwidth),debug$1.log("PCDNURL remove, url,",B,"fileid",s.fileId)),h&&B&&!u&&(R=!0,(!this._cdnHost||Q.indexOf(this._cdnHost)<0)&&(this._cdnHost=util$1.getHostFromUrl(Q)),this._cdnHost||(this._cdnHost=util$1.getHostFromUrl(Q)),U.cdnHost=this._cdnHost,Q=B,debug$1.log("PCDNURL",Q))}if("video"===e){try{var p=s.definition||l.__dash__.bandwidth2item[s.bandwidth].definition;p=p.toString(),c=SEGMENT_SIZE_CONFIG[p.toLowerCase()],U.segment_resolution=p.toLowerCase(),U.definition=U.segment_resolution,t.definition=p,this.setCurrentHost(Q)}catch(e){c=1/0}U.limitSizeM=c}var S=t.range;U.bitrate=s.avg_bitrate||s.bandwidth||s.bitrate,U.bandwidth=s.bandwidth||s.bitrate,U.idx=s.idx,U.first_gop=0===t.start?1:0,U.isPCDN=R,U.fileId=s.fileId,U.codecType=this.mpd.videoCodecType,U.adaptItemParam=t.adaptItemParam,U.segmentDuration=t.end-t.start,delete t.adaptItemParam,U.moof=t.moof;var V=util$1.generateRequestUniqueKey(_objectSpread2$5(_objectSpread2$5({},U),{},{range:S})),f=this._allCacheKeys.includes(V);U.checkPreload=t.checkPreload||U.first_gop||f,U.isSatisfied=t.isSatisfied,U.startRaw=t.startRaw,U.endRaw=t.endRaw;var y=this.config.timeout;if(U.first_gop&&this.kernal.setNodeTime("init".concat(e,"_segstart")),this._appendBufferDelta[e].isPCDN=R,this._extDataCache[e]){var m=this._extDataCache[e];m.moof&&0===t.start&&(t.extRange=m.extRange)}if(t.extRange&&(debug$1.log("_PCDN extRange",t.extRange,"medaiType",e,"isPCDNTimeout",u),t.extRange[0]<t.extRange[1]&&(S=t.extRange)),U.checkPreload){var E=this._doSizePreloadCheck(t),Z=E.isSlice,J=E.range,b=E.res,W=E.duration;if(Z){S=J,U.isSlice=!0,debug$1.log("hit preload size",e,"newRange",JSON.stringify(J),"allRange",JSON.stringify(t.range)),U.rangeEnd=t.range[1],U.rangeStart=t.range[0];var k=_objectSpread2$5(_objectSpread2$5({},t),{},{range:[t.range[0],J[0]-1]});this.appendSegment(e,b,k,{},U,!1,!1,o),this.kernal.setPreloadData("init".concat(e,"_segcache"),{fromCache:!0,mediaType:e,definition:U.definition,duration:W,byteLength:b.byteLength})}}return this.getData(Q,S,e,U,!1,i,a,y,(function(){debug$1.log("onTimeout",t),l._removeFromList(t),l._onRequestFail(Object.assign({url:Q,error:{message:"Timeout"}},U),t,e)})).then((function(n){if(r._pluginInst)if(n){var a,o=n.res,c=n.fromCache,F=n.duration,Q=o instanceof ArrayBuffer;if(U.first_gop&&(null==n||null===(a=n.error)||void 0===a||!a.isTimeout)){var u="init".concat(e,"_segdone");r.kernal.setNodeTime(u)}if(c&&r.kernal.setPreloadData("".concat(e,"-").concat(U.bitrate,"-").concat(S[0],"-").concat(S[1]),{fromCache:c,mediaType:e,definition:U.definition,duration:F,byteLength:Q?o.byteLength:0,error:Q||o.done?null:o}),o instanceof ArrayBuffer)d.resolve({res:o,headers:null,extData:{status:n.status,segment_resolution:U.segment_resolution}}),l.mseLog("task loadsucc",t,e);else if(!(206===n.status||200===n.status)){if(l.mseLog("task loaderror",t,e),i&&r._abortAndRemove(e,t,"onProgress task loaderror",!1),403===n.status){var R;s.fallbackUrl||null==l||l.__dash__.clearProgressTimer(),null==l||null===(R=l._pluginInst)||void 0===R||R.emitExpireEvent({url:t.url,response:n})}else{var B=r._isAbort(null==n?void 0:n.error);if(s.hasFallback&&!B){var h,p;debug$1.log("fallUrl fail",null==n||null===(h=n.error)||void 0===h?void 0:h.message),null==l||l.__dash__.clearProgressTimer();var V=new Errors$1(ERR.RUNTIME,Errors$1.BACK_URL_FAIL,{message:"fall url fail ".concat(null==n||null===(p=n.error)||void 0===p?void 0:p.message)});r.player.errorHandler(V)}}d.reject(n)}}else console.log("response err"),d.reject(new Error("request error"))})),d}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},o=this,l=o.getReportData(n,r,i,a),d=i.eagleid;if(d){if(!this.egleIds||this.egleIds[d])return;this.egleIds[d]=1}o.player&&o.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:t,ext:l})}},{key:"getReportData",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=util$1.transformHeaders(n,MONITOR_HEADERS);return Object.assign({},{start:e||-1,end:t||-1},i,r)}},{key:"reportMenuEvent",value:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=this._pluginInst.player,o=this.getReportData(t,n,r,i);o.url=e,a.emit("menusegment",o)}},{key:"_reportInvalidEvent",value:function(e,t,n,r){var i=this,a=0,o=e.byteLength,l=n.status,d=n.segment_resolution,U=t.realUrl||t.url;try{var c=util$1.getTopBoxType(e);if("moof"!==c&&"styp"!==c&&(debug$1.media("segment content error",t,r),a=1,i.reportMonitorEvent(MEDIA_CONTENT_ERR,U,t.range[0],t.range[1],r,{segment_size:e.byteLength,status:l,segment_resolution:d,box_type:c,step:a,segment_origin_size:o})),"ftyp"===c&&200===l&&2===t.range.length){this.player&&this.player.emit("source_error",{host:util$1.getHostFromUrl(U),src:U,errorCode:l,message:"boxType error",range:t.range,headers:r}),a=2;var F=t.range[0];return e=e.subarray(F,t.range[1]+1),"moof"!==(c=util$1.getTopBoxType(e))&&"styp"!==c?(i.emit("error",new Errors$1(ERR.RUNTIME,Errors$1.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(c,", range:").concat(JSON.stringify(t.range),", url:").concat(U,", respHeaders:").concat(JSON.stringify(r),", isPCDN:").concat(n.isPCDN)})),i.reportMonitorEvent(MEDIA_CONTENT_ERR,U,t.range[0],t.range[1],r,{segment_size:e.byteLength,status:l,segment_resolution:d,box_type:c,step:a,segment_origin_size:o}),null):e}}catch(n){i.reportMonitorEvent(MEDIA_CONTENT_ERR,U,t.range[0],t.range[1],r,{segment_size:e.byteLength,status:l,segment_resolution:d,step:a,box_type:"error",segment_origin_size:o}),debug$1.media("segment content catch",t,n)}return null}},{key:"appendSegment",value:function(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,d=this;if(!this._hasDestroyed&&d.mpd&&t)if(util$1.isArrayBuffer(t)){var U=t instanceof ArrayBuffer?t:t.buffer,c=new Uint8Array(U),F=util$1.checkValidTopBox(c),s=i.status,Q=i.segment_resolution,u=d.mpd.mediaList[e],R=n.selectedIdx;n.fromCache=i.fromCache;var B=n.realUrl||n.url;if(a&&!F){if(null===(c=d._reportInvalidEvent(c,n,i,r)))return debug$1.log("segment content response 200, res is null"),void d.updateItemState(n);debug$1.log("segment content response 200, subrange is ok, go ahead")}d.reportMenuEvent(B,n.range[0],n.range[1],r,{segment_size:c.byteLength,status:s,segment_resolution:Q});var h=this._pluginInst.softVideo;if(d.keyValue||h){var p=0;(h||d.__dash__.dashVideoEncrypted||d.__dash__.dashAudioEncrypted)&&!1===d.useEME&&d.__dash__.crypto?(p=performance.now(),d.mseLog("decryptBody start",n,e),d.__dash__.crypto.decryptBody(c,"video"===e,!h).then((function(t){var r=t.data,i=t.id,a=t.headerId;if(r.res||h){var U=r.res,c=r.videoTrack,F=r.audioTrack,s=performance.now();if(d.encryptTotalAll||(d.encryptTotalAll=0),d.encryptTotalAll+=s-p,debug$1.encrypt("encryptTotalAll:".concat(d.encryptTotalAll)),"video"===e&&(d.encryptTotal||(d.encryptTotal=0),d.encryptTotal+=s-p,debug$1.encrypt("encryptVideo:".concat(d.encryptTotal)),i<a&&!l))return d.updateItemState(n),void console.warn("decrytbody discard, id:".concat(i,", headerId:").concat(a,",\n index:").concat(R,", url:").concat(n.url,", start:").concat(n.start));d.doAppendSegment(e,u,U,n,R,null,o,c,F,l)}else d.updateItemState(n)}))):d.doAppendSegment(e,u,c,n,R,i.range,o,null,null,l)}else d.doAppendSegment(e,u,c,n,R,i.range,o,null,null,l)}else debug$1.log("appendSegment return done",o)}},{key:"isAllAppend",value:function(){var e=this.mpd;if(!e)return!1;var t=this.player.currentTime,n=e.isSegmentAppendFromIdx(MSE.VIDEO,t),r=n.res,i=n.emptySegments,a=e.isSegmentAppendFromIdx(MSE.AUDIO,t),o=a.res,l=a.emptySegments,d=this._hasVideo&&i,U=this._hasAudio&&l;return!d&&!U&&!(!r||!o)}},{key:"doAppendSegment",value:function(e,t,n,r,i,a,o,l,d,U){var c=this;if(!this._hasDestroyed){var F=this,s=F.mse,Q=F.mpd,u={start:r.start,end:r.end,index:i,bandwidth:t[t.selectedIdx].bandwidth,fps:t[t.selectedIdx].fps,mediaType:e,sequence:r.idx,definition:t[t.selectedIdx].definition,fromCache:r.fromCache};if(e===MSE.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&i!==this.__dash__.curVideoInitSegmentIdx&&this.__dash__.curVideoFileId!==t[i].fileId)return this.updateItemState(r),void debug$1.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",i);var R=t.switchTag;t.switchTag=!1;var B=function(n){var i;if(!(null!=n&&n.used||null!=n&&null!==(i=n.context)&&void 0!==i&&i.used))if(R&&r.start<F.player.currentTime&&e===MSE.VIDEO&&(F.player._invalidSeekTag=!0,F.player.currentTime+=1e-4,debug$1.log("appendSuccess seek 0.001")),0===r.start&&c.kernal.setNodeTime("init".concat(e,"SegmentAppend"),n),n&&(n.used=!0),F.player){if(r.range[1]<=(null==a?void 0:a[1])||o){if(F.updateItemState(r,!0),"video"===e){var l,d,B;null===(l=F.player)||void 0===l||l.emit("addVideoBufferEnd",u);var h,p=util$1.nowTime()-r.requestTime,S=u.end-u.start;if(!u.end)S=null===(h=t[t.selectedIdx])||void 0===h||null===(h=h.mediaSegments)||void 0===h?void 0:h[0].segmentDuration;var V=(null==s||null===(d=s._sourceBuffer)||void 0===d||null===(d=d.audio)||void 0===d?void 0:d.buffered)||null,f=0;if(V){var y=c.player.getBufferedRange(V);f=0===y[1]?0:y[1]-c.player.currentTime}else null!=s&&null!==(B=s._sourceBuffer)&&void 0!==B&&B.audio||(f=-1);c._emitAbrNextSegmentPredictEvt(_objectSpread2$5(_objectSpread2$5({},u),{},{fix:!0,costTime:p,gopSize:S,audioBuffer:f}))}if(U){var m,E,Z=null===(m=c.mpd)||void 0===m?void 0:m.mediaList[e],J=Z&&(null===(E=Z[Z.selectedIdx])||void 0===E?void 0:E.mediaSegments);J.length>0&&F.updateItemState(J[0],!0)}}if(c.mseLog("appendBuffer success",r,e,a),o){F.updateItemState(r,!0);var b=F.mpd._getBuffered(e);debug$1.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(b),"item.start",r.start,"item.end",r.end);for(var W=!0,k=0;k<b.length;k++){var T=b[k].start,v=b[k].end;r.start>=T-1&&r.end<=v+1&&(W=!1)}if(W&&r.end>r.start){var N=F.mse.getSourceBuffer(e);debug$1.log("fixbuffer: buffer Miss",!!N),N&&c._abortAndRemove(e,r,"fixbuffer")}}"video"===e&&F.player.emit("addVideoBufferEnd",u);var g=Q.isLastSegmentAndAppend(e,r.idx),C=e===MSE.AUDIO?MSE.VIDEO:MSE.AUDIO,I=Q.isLastSegmentAndAppend(C,r.idx);g&&I&&(debug$1.log("append check endofStream"),s.endOfStream()),c.isAllAppend()&&s.endOfStream()}else debug$1.log("appendBuffer destroy return")},h=_objectSpread2$5(_objectSpread2$5({range:a,rangesring:JSON.stringify(a)},u),{},{callback:B,item:r});this.appendBuffer(e,new Uint8Array(n),h,l,d,U).then(B).catch((function(e){debug$1.log("append buffer catch",e);var t=e&&e.errorCode===ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MSE_FULL];t||F.updateItemState(r,!1),t&&F.__dash__&&F.__dash__.checkRemoveBuffer(!0),e&&e.errorCode&&F.player&&F.player.emit(new Errors$1(ERR.MEDIA,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,t,n,r,i,a){var o=this;if(n&&(n.vid=this.config.vid),this._appendBufferDelta&&(this._appendBufferDelta[e].range=n.range),this._lastAppendBufferEnd){var l=this._lastAppendBufferEnd[e],d=l.prevRangeEnd,U=l.prevItem;if(n.range&&n.range.length>0){var c,F,s=d===(null==U?void 0:U.range[1]),Q=d>0&&(d===(null==U?void 0:U.range[1])+1||s);if(d>0&&!Q&&d!==n.range[0])if(n.range[1]<n.item.range[1])debug$1.log("appendBuffer seek remove",e,d,"now",n.range[0],"start",U.startRaw,"endRaw",U.endRaw),null===(c=this.__dash__)||void 0===c||c.abort(e),null===(F=this.__dash__)||void 0===F||F.clearBufferDirect(e,U),n.item.extRange=void 0;this._lastAppendBufferEnd[e]={prevRangeEnd:n.range[1],prevItem:n.item}}}var u=function(){return o._pluginInst.softVideo?(o._hasVideo&&"video"===e&&(o._vTrack=new VideoTrack,Object.keys(r).forEach((function(e){o._vTrack[e]=r[e]}))),o._hasAudio&&"audio"===e&&(o._aTrack=new AudioTrack,Object.keys(i).forEach((function(e){o._aTrack[e]=i[e]}))),o.mse.appendBuffer(o._vTrack,o._aTrack),Promise.resolve()):o.mse.append(e,new Uint8Array(t),n)};if(a){var R,B=Date.now();return(e===MSE.VIDEO?this._videoMetaReady:this._audioMetaReady)&&n.fromCache&&null!==(R=this.config)&&void 0!==R&&R.useGopCacheAcc?(debug$1.log("createMoof ready append cost",Date.now()-B,"ms mediaType",e,"range",JSON.stringify(n.range),"fromCache",n.fromCache),u()):a.then((function(){return debug$1.log("createMoof append cost",Date.now()-B,"ms mediaType",e,"range",JSON.stringify(n.range)),u()}))}return u()}},{key:"changeType",value:function(e,t){var n="";n=e===MSE.VIDEO?'video/mp4; codecs="'.concat(t,'"'):'audio/mp4; codecs="'.concat(t,'"'),this.mse.changeType&&this.mse.changeType(e,n)}},{key:"emptyAction",value:function(e,t){var n=this.mse;return n._enqueueOp(e,(function(){n._onSBUpdateEnd(e)}),"emptyAction",t)}},{key:"isProgressiveLoading",value:function(e){var t=this.loader.getCurrentTask(e);return this._isLoadingTaskCancellable(t)}},{key:"_isLoadingTaskCancellable",value:function(e){var t;if(!e||!e._config.priOptions)return{isCancellable:!0,data:null};var n=null===(t=this.player)||void 0===t?void 0:t.currentTime,r=e._config.priOptions.extData,i=r.start<=n&&n<=r.end&&r.isSatisfied,a=r.range&&r.range[0]===r.range[1];return{isCancellable:!i&&!a,data:r}}},{key:"_cancelTasks",value:(r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a,o,l,d,U,c,F,s;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loader){e.next=2;break}return e.abrupt("return",[]);case 2:i=this.isProgressiveLoading(t),a=i.isCancellable,o=i.data,debug$1.log("_cancelTasks",t,"isCancellable",a,"data",!!o),l=[],d=null===(r=this.player)||void 0===r?void 0:r.currentTime,U=_createForOfIteratorHelper$3(n);try{for(U.s();!(c=U.n()).done;)(F=c.value).mediaType===t&&(a||(s=F.start<=d&&d<=F.end&&F.isSatisfied,(F.isInitSegment||s)&&l.push(F)))}catch(e){U.e(e)}finally{U.f()}return e.next=10,this.loader.cancelTasks(t,a);case 10:return a&&o&&o.isSatisfied&&debug$1.log("isCancellable abort"),e.abrupt("return",l);case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"abortLoadingTasks",value:(n=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=[],r=!t,!this._onLoadingItems){e.next=18;break}if(!r){e.next=14;break}return e.next=6,this._cancelTasks(MSE.VIDEO,this._onLoadingItems);case 6:return i=e.sent,e.next=9,this._cancelTasks(MSE.AUDIO,this._onLoadingItems);case 9:a=e.sent,n.push.apply(n,_toConsumableArray$3(i)),n.push.apply(n,_toConsumableArray$3(a)),e.next=18;break;case 14:return e.next=16,this._cancelTasks(t,this._onLoadingItems);case 16:o=e.sent,n.push.apply(n,_toConsumableArray$3(o));case 18:this._onLoadingItems=n;case 19:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_doCancel",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loader.cancel(t);case 2:this._emitCancel();case 3:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"_emitCancel",value:function(){var e=this;try{Object.keys(this._optionDataLenInfo).forEach((function(t){var n=e._optionDataLenInfo[t];Object.keys(n).forEach((function(r){var i=n[r]||{},a=i.size,o=i.range,l=i.extData;a>0&&e._emitPrfDataSizeEvent(Number(r),a,t,o,l,1)}))}))}catch(e){}this._resetOptionDataLenInfo()}},{key:"updateItemState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[];e.length>0?n=e:n.push(e),n.forEach((function(e){e.downloaded=t?SEGMENT_STATE.APPEND:SEGMENT_STATE.NO_START})),!t&&e.moof&&this._resetMoofSegmentDownloadState(e.mediaType)}},{key:"mseLog",value:function(e,t,n,r){var i;debug$1.mse(null===(i=this.config)||void 0===i?void 0:i.vid,"type-".concat(n,"-start-").concat(t.start,"-end-").concat(t.end,"-").concat(e,",range:").concat(JSON.stringify(r||t.range)))}},{key:"emitPreloadHit",value:function(e){debug$1.preload("emit preloadhit",e),this.player&&this.player.emit("log",{type:"onetemp",action:"append",data:{preload_hit:"".concat(e,"|")}})}},{key:"destroy",value:function(){var e,t;this._doCancel(),allOff$1(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0,null===(t=this._dynamicBufferService)||void 0===t||t.destroy()}},{key:"checkPCDN",value:(e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t,n,r,i,a,o;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.player&&this.player.readyState<=HTMLVideoElement.HAVE_CURRENT_DATA)){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,t=this._pluginInst.currentDefitionFromPlayer,n=t.item,e.next=7,this._pcdnScv.checkPCDN(_objectSpread2$5(_objectSpread2$5({},n),{},{mediaType:"video"}));case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),console.log("error",e.t0);case 12:return e.prev=12,r=this.mpd.mediaList.audio,i=r[r.selectedIdx],a=i.bandwidth,o=i.baseURL,e.next=17,this._pcdnScv.checkPCDN(_objectSpread2$5(_objectSpread2$5({},r[r.selectedIdx]),{},{bitrate:a,main_url:o,mediaType:"audio"}));case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(12),console.log("error",e.t1);case 22:case"end":return e.stop()}}),e,this,[[2,9],[12,19]])}))),function(){return e.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var t=this;if(this._pcdnScv){var n,r,i=this._pluginInst.currentDefitionFromPlayer;if(!i)return void debug$1.log("isOpenCPDN curDef is null");var a=i.item,o=a.bitrate,l=null===(n=this.mpd)||void 0===n?void 0:n._getCurBuffered(MSE.VIDEO),d=null===(r=this.mpd)||void 0===r?void 0:r._getCurBuffered(MSE.AUDIO),U=(e=Math.max(e,null==l?void 0:l[1],null==d?void 0:d[1]))-this.player.currentTime,c=U,F=U,s=this.player.currentTime;this.config.useSeparationMode&&(F=Math.max(0,(null==d?void 0:d[1])-s),c=Math.max(0,(null==l?void 0:l[1])-s)),this._pcdnScv.isOpenPCDN("video",c,o,_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("video");case 2:case"end":return e.stop()}}),e)}))),a);var Q=this.__dash__.dash.mpd.mediaList;if(Q.audio.length>0){var u=Q.audio[Q.audio.selectedIdx],R=this.config.dashOpts.dynamic_video.dynamic_audio_list.filter((function(e){return e.bitrate===u.bandwidth}))[0];this._pcdnScv.isOpenPCDN("audio",F,u.bandwidth,_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("audio");case 2:case"end":return e.stop()}}),e)}))),R)}}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]);var e,t,n,r,i,a,o,l}();const DASH$1=DASH;var encodedJs="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLGU9aSxvPWZ1bmN0aW9uKEEpe3JldHVybiB0KGUoQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0seT1oLEQ9ci5kb2N1bWVudCxmPXkoRCkmJnkoRC5jcmVhdGVFbGVtZW50KSx1PWZ1bmN0aW9uKEEpe3JldHVybiBmP0QuY3JlYXRlRWxlbWVudChBKTp7fX0sdz11LGQ9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEY9aCxsPWZ1bmN0aW9uKEEpe2lmKCFGKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LEc9aCxSPWZ1bmN0aW9uKEEsZyl7aWYoIUcoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIUcoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxVPXMsaz1kLFM9bCxOPVIsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPVU/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxrKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSxtPUsseD0iX19jb3JlLWpzX3NoYXJlZF9fIixxPXJbeF18fG0oeCx7fSksYj1xOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsTyxXPWEuZXhwb3J0cyxaPWksaj1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KFooQSkpfSxQPWosWD17fS5oYXNPd25Qcm9wZXJ0eSxWPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChQKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP089KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihPPVRbMV0pO3ZhciBlQSxvQT1PJiYrTyxuQT1vQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVYseUE9JCxEQT1hQSxmQT1zQSx1QT1XKCJ3a3MiKSx3QT1jQS5TeW1ib2wsZEE9ZkE/d0E6d0EmJndBLndpdGhvdXRTZXR0ZXJ8fHlBLEZBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh1QSxBKSYmKERBfHwic3RyaW5nIj09dHlwZW9mIHVBW0FdKXx8KERBJiZoQSh3QSxBKT91QVtBXT13QVtBXTp1QVtBXT1kQSgiU3ltYm9sLiIrQSkpLHVBW0FdfSxsQT1NYXRoLmNlaWwsR0E9TWF0aC5mbG9vcixSQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP0dBOmxBKShBKX0sVUE9UkEsa0E9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9rQShVQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1SQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPW8sSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0sbUE9e30seEE9VixxQT1vLGJBPUtBLmluZGV4T2YsVEE9bUEsT0E9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXFBKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXhBKFRBLEkpJiZ4QShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROyl4QShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxXQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLFpBPU9BLGpBPVdBLFBBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gWkEoQSxqQSl9LFhBPWMsVkE9bCx6QT1QQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7VkEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Vygia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9bCxRZz1fQSxDZz1XQSxFZz1tQSxpZz0kQSx0Zz11LGVnPSJwcm90b3R5cGUiLG9nPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrb2crIj4iK0ErIjwvIitvZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e2VBPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1lQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KGVBKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrb2crIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbZWddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbZWddPUJnKEEpLEk9bmV3IHJnLHJnW2VnXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2cseWc9YyxEZz1GQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbRGddJiZ5Zy5mKGZnLERnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgdWc9ZnVuY3Rpb24oQSl7ZmdbRGddW0FdPSEwfSx3Zz17fSxkZz1xLEZnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBkZy5pbnNwZWN0U291cmNlJiYoZGcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gRmcuY2FsbChBKX0pO3ZhciBsZyxHZyxSZyxVZz1kZy5pbnNwZWN0U291cmNlLGtnPVVnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChrZyhTZykpLE1nPWgsWWc9SixIZz1WLHBnPXEsSmc9SWcsTGc9bUEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgbWc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHhnPW1nLmdldCxxZz1tZy5oYXMsYmc9bWcuc2V0O2xnPWZ1bmN0aW9uKEEsZyl7aWYocWcuY2FsbChtZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKG1nLEEsZyksZ30sR2c9ZnVuY3Rpb24oQSl7cmV0dXJuIHhnLmNhbGwobWcsQSl8fHt9fSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gcWcuY2FsbChtZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGxnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxHZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LFJnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIE9nPXtzZXQ6bGcsZ2V0OkdnLGhhczpSZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBSZyhBKT9HZyhBKTpsZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPUdnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxXZz17fSxaZz17fSxqZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxQZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVBnJiYhamcuY2FsbCh7MToyfSwxKTtaZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVBnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmpnO3ZhciBWZz1zLHpnPVpnLF9nPVksJGc9byxBST1SLGdJPVYsSUk9ZCxCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1dnLmY9Vmc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVYsdEk9SyxlST1VZyxvST1PZy5nZXQsbkk9T2cuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJm9JKHRoaXMpLnNvdXJjZXx8ZUkodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9T0EsaEk9V0EuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciB5ST17fTt5SS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIERJLGZJLHVJLHdJPXNJLGRJPXlJLEZJPWwsbEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXdJLmYoRkkoQSkpLEk9ZEkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxHST1WLFJJPWxJLFVJPVdnLGtJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1XZy5mLG1JPUoseEk9YUkscUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1SSShnKSxCPWtJLmYsUT1VSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtHSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksT0k9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxlPUEuc3RhdDtpZihJPXQ/dkk6ZT92SVtpXXx8cUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKGU/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJm1JKEMsInNoYW0iLCEwKSx4SShJLEIsQyxBKX19LFdJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLFpJPVYsakk9aixQST1XSSxYST1JZygiSUVfUFJPVE8iKSxWST1PYmplY3QucHJvdG90eXBlLHpJPVBJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1qSShBKSxaSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9WSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9VixJQj1GQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4odUk9W10ua2V5cygpKT8oZkk9JEkoJEkodUkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoREk9ZkkpOkJCPSEwKSwobnVsbD09REl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBESVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoREk9e30pLGdCKERJLElCKXx8QUIoREksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTpESSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9VixpQj1GQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sZUI9UUIuSXRlcmF0b3JQcm90b3R5cGUsb0I9Y2csbkI9WSxyQj10QixhQj13ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWwseUI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LERCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSx5QihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1PSSx1Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9b0IoZUIse25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sd0I9ekksZEI9REIsRkI9dEIsbEI9SixHQj1hSSxSQj13ZyxVQj1RQi5JdGVyYXRvclByb3RvdHlwZSxrQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUZBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9byxKQj11ZyxMQj13Zyx2Qj1PZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt1QihJLGcsQik7dmFyIGksdCxlLG89ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIWtCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFrQiYmc3x8byhRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT13QihoLmNhbGwobmV3IEEpKSxVQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHdCKGkpIT09VUImJihkQj9kQihpLFVCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmxCKGksU0IsSEIpKSxGQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmbEIoYSxTQixjKSxSQltnXT1jLFEpaWYodD17dmFsdWVzOm8oTUIpLGtleXM6Qz9jOm8oTkIpLGVudHJpZXM6byhZQil9LEUpZm9yKGUgaW4gdCkoa0J8fHJ8fCEoZSBpbiBhKSkmJkdCKGEsZSx0W2VdKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6a0J8fHJ9LHQpO3JldHVybiB0fSxtQj0iQXJyYXkgSXRlcmF0b3IiLHhCPXZCLnNldCxxQj12Qi5nZXR0ZXJGb3IobUIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7eEIodGhpcyx7dHlwZTptQix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPXFCKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRhVmlldyxPQj1hSSxXQj1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpT0IoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LFpCPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxqQj1SQSxQQj1TQSxYQj1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPWpCKEEpLEk9UEIoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFZCPU1hdGguYWJzLHpCPU1hdGgucG93LF9CPU1hdGguZmxvb3IsJEI9TWF0aC5sb2csQVE9TWF0aC5MTjIsZ1E9aixJUT1IQSxCUT1TQSxRUT1mdW5jdGlvbihBKXtmb3IodmFyIGc9Z1EodGhpcyksST1CUShnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9SVEoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpJUShDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LENRPXIsRVE9cyxpUT1UQix0UT1KLGVRPVdCLG9RPWcsblE9WkIsclE9UkEsYVE9U0Esc1E9WEIsY1E9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxlPXQ+PjEsbz0yMz09PWc/ekIoMiwtMjQpLXpCKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9VkIoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9X0IoJEIoQSkvQVEpLEEqKEM9ekIoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrZT49MT9vL0M6byp6QigyLDEtZSkpKkM+PTImJihCKyssQy89MiksQitlPj10PyhRPTAsQj10KTpCK2U+PTE/KFE9KEEqQy0xKSp6QigyLGcpLEIrPWUpOihRPUEqekIoMixlLTEpKnpCKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLGU9QVt0LS1dLG89MTI3JmU7Zm9yKGU+Pj03O2k+MDtvPTI1NipvK0FbdF0sdC0tLGktPTgpO2ZvcihJPW8mKDE8PC1pKS0xLG8+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1vKW89MS1FO2Vsc2V7aWYobz09PUMpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9ekIoMixnKSxvLT1FfXJldHVybihlPy0xOjEpKkkqekIoMixvLWcpfX0saFE9ekkseVE9REIsRFE9c0kuZixmUT1jLmYsdVE9UVEsd1E9dEIsZFE9T2cuZ2V0LEZRPU9nLnNldCxsUT0iQXJyYXlCdWZmZXIiLEdRPSJEYXRhVmlldyIsUlE9InByb3RvdHlwZSIsVVE9Ildyb25nIGluZGV4IixrUT1DUVtsUV0sU1E9a1EsTlE9Q1FbR1FdLE1RPU5RJiZOUVtSUV0sWVE9T2JqZWN0LnByb3RvdHlwZSxIUT1DUS5SYW5nZUVycm9yLHBRPWNRLnBhY2ssSlE9Y1EudW5wYWNrLExRPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LHZRPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LEtRPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sbVE9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0seFE9ZnVuY3Rpb24oQSl7cmV0dXJuIHBRKEEsMjMsNCl9LHFRPWZ1bmN0aW9uKEEpe3JldHVybiBwUShBLDUyLDgpfSxiUT1mdW5jdGlvbihBLGcpe2ZRKEFbUlFdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBkUSh0aGlzKVtnXX19KX0sVFE9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9c1EoSSksQz1kUShBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IEhRKFVRKTt2YXIgRT1kUShDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LE9RPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1zUShJKSxpPWRRKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgSFEoVVEpO2Zvcih2YXIgdD1kUShpLmJ1ZmZlcikuYnl0ZXMsZT1FK2kuYnl0ZU9mZnNldCxvPUIoK1EpLG49MDtuPGc7bisrKXRbZStuXT1vW0M/bjpnLW4tMV19O2lmKGlRKXtpZighb1EoKGZ1bmN0aW9uKCl7a1EoMSl9KSl8fCFvUSgoZnVuY3Rpb24oKXtuZXcga1EoLTEpfSkpfHxvUSgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGtRLG5ldyBrUSgxLjUpLG5ldyBrUShOYU4pLGtRLm5hbWUhPWxRfSkpKXtmb3IodmFyIFdRLFpRPShTUT1mdW5jdGlvbihBKXtyZXR1cm4gblEodGhpcyxTUSksbmV3IGtRKHNRKEEpKX0pW1JRXT1rUVtSUV0salE9RFEoa1EpLFBRPTA7alEubGVuZ3RoPlBROykoV1E9alFbUFErK10paW4gU1F8fHRRKFNRLFdRLGtRW1dRXSk7WlEuY29uc3RydWN0b3I9U1F9eVEmJmhRKE1RKSE9PVlRJiZ5UShNUSxZUSk7dmFyIFhRPW5ldyBOUShuZXcgU1EoMikpLFZRPU1RLnNldEludDg7WFEuc2V0SW50OCgwLDIxNDc0ODM2NDgpLFhRLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhWFEuZ2V0SW50OCgwKSYmWFEuZ2V0SW50OCgxKXx8ZVEoTVEse3NldEludDg6ZnVuY3Rpb24oQSxnKXtWUS5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1ZRLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBTUT1mdW5jdGlvbihBKXtuUSh0aGlzLFNRLGxRKTt2YXIgZz1zUShBKTtGUSh0aGlzLHtieXRlczp1US5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxFUXx8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sTlE9ZnVuY3Rpb24oQSxnLEkpe25RKHRoaXMsTlEsR1EpLG5RKEEsU1EsR1EpO3ZhciBCPWRRKEEpLmJ5dGVMZW5ndGgsUT1yUShnKTtpZihRPDB8fFE+Qil0aHJvdyBIUSgiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTphUShJKSk+Qil0aHJvdyBIUSgiV3JvbmcgbGVuZ3RoIik7RlEodGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLEVRfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LEVRJiYoYlEoU1EsImJ5dGVMZW5ndGgiKSxiUShOUSwiYnVmZmVyIiksYlEoTlEsImJ5dGVMZW5ndGgiKSxiUShOUSwiYnl0ZU9mZnNldCIpKSxlUShOUVtSUV0se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIFRRKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gVFEodGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1UUSh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPVRRKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gbVEoVFEodGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiBtUShUUSh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSlEoVFEodGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSlEoVFEodGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe09RKHRoaXMsMSxBLExRLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe09RKHRoaXMsMSxBLExRLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe09RKHRoaXMsMixBLHZRLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtPUSh0aGlzLDIsQSx2USxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtPUSh0aGlzLDQsQSxLUSxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7T1EodGhpcyw0LEEsS1EsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtPUSh0aGlzLDQsQSx4USxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe09RKHRoaXMsOCxBLHFRLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO3dRKFNRLGxRKSx3UShOUSxHUSk7dmFyIHpRPXtBcnJheUJ1ZmZlcjpTUSxEYXRhVmlldzpOUX0sX1E9QkEsJFE9YyxBQz1zLGdDPUZBKCJzcGVjaWVzIiksSUM9ZnVuY3Rpb24oQSl7dmFyIGc9X1EoQSksST0kUS5mO0FDJiZnJiYhZ1tnQ10mJkkoZyxnQyx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxCQz1JQyxRQz0iQXJyYXlCdWZmZXIiLENDPXpRW1FDXTtPSSh7Z2xvYmFsOiEwLGZvcmNlZDpyW1FDXSE9PUNDfSx7QXJyYXlCdWZmZXI6Q0N9KSxCQyhRQyk7dmFyIEVDPXt9O0VDW0ZBKCJ0b1N0cmluZ1RhZyIpXT0ieiI7dmFyIGlDPSJbb2JqZWN0IHpdIj09PVN0cmluZyhFQyksdEM9aUMsZUM9QixvQz1GQSgidG9TdHJpbmdUYWciKSxuQz0iQXJndW1lbnRzIj09ZUMoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxyQz10Qz9lQzpmdW5jdGlvbihBKXt2YXIgZyxJLEI7cmV0dXJuIHZvaWQgMD09PUE/IlVuZGVmaW5lZCI6bnVsbD09PUE/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoST1mdW5jdGlvbihBLGcpe3RyeXtyZXR1cm4gQVtnXX1jYXRjaChJKXt9fShnPU9iamVjdChBKSxvQykpP0k6bkM/ZUMoZyk6Ik9iamVjdCI9PShCPWVDKGcpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGcuY2FsbGVlPyJBcmd1bWVudHMiOkJ9LGFDPXJDLHNDPWlDP3t9LnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgIithQyh0aGlzKSsiXSJ9O2lDfHxhSShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsc0Mse3Vuc2FmZTohMH0pO3ZhciBjQz17ZXhwb3J0czp7fX0saEM9RkEoIml0ZXJhdG9yIikseUM9ITE7dHJ5e3ZhciBEQz0wLGZDPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFEQysrfX0scmV0dXJuOmZ1bmN0aW9uKCl7eUM9ITB9fTtmQ1toQ109ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShmQywoZnVuY3Rpb24oKXt0aHJvdyAyfSkpfWNhdGNoKHREKXt9dmFyIHVDLHdDPWZ1bmN0aW9uKEEsZyl7aWYoIWcmJiF5QylyZXR1cm4hMTt2YXIgST0hMTt0cnl7dmFyIEI9e307QltoQ109ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOkk9ITB9fX19LEEoQil9Y2F0Y2godEQpe31yZXR1cm4gSX0sZEM9VEIsRkM9cyxsQz1yLEdDPWgsUkM9VixVQz1yQyxrQz1KLFNDPWFJLE5DPWMuZixNQz16SSxZQz1EQixIQz1GQSxwQz0kLEpDPWxDLkludDhBcnJheSxMQz1KQyYmSkMucHJvdG90eXBlLHZDPWxDLlVpbnQ4Q2xhbXBlZEFycmF5LEtDPXZDJiZ2Qy5wcm90b3R5cGUsbUM9SkMmJk1DKEpDKSx4Qz1MQyYmTUMoTEMpLHFDPU9iamVjdC5wcm90b3R5cGUsYkM9cUMuaXNQcm90b3R5cGVPZixUQz1IQygidG9TdHJpbmdUYWciKSxPQz1wQygiVFlQRURfQVJSQVlfVEFHIiksV0M9ZEMmJiEhWUMmJiJPcGVyYSIhPT1VQyhsQy5vcGVyYSksWkM9ITEsakM9e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxQQz17QmlnSW50NjRBcnJheTo4LEJpZ1VpbnQ2NEFycmF5Ojh9LFhDPWZ1bmN0aW9uKEEpe2lmKCFHQyhBKSlyZXR1cm4hMTt2YXIgZz1VQyhBKTtyZXR1cm4gUkMoakMsZyl8fFJDKFBDLGcpfTtmb3IodUMgaW4gakMpbENbdUNdfHwoV0M9ITEpO2lmKCghV0N8fCJmdW5jdGlvbiIhPXR5cGVvZiBtQ3x8bUM9PT1GdW5jdGlvbi5wcm90b3R5cGUpJiYobUM9ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9LFdDKSlmb3IodUMgaW4gakMpbENbdUNdJiZZQyhsQ1t1Q10sbUMpO2lmKCghV0N8fCF4Q3x8eEM9PT1xQykmJih4Qz1tQy5wcm90b3R5cGUsV0MpKWZvcih1QyBpbiBqQylsQ1t1Q10mJllDKGxDW3VDXS5wcm90b3R5cGUseEMpO2lmKFdDJiZNQyhLQykhPT14QyYmWUMoS0MseEMpLEZDJiYhUkMoeEMsVEMpKWZvcih1QyBpbiBaQz0hMCxOQyh4QyxUQyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEdDKHRoaXMpP3RoaXNbT0NdOnZvaWQgMH19KSxqQylsQ1t1Q10mJmtDKGxDW3VDXSxPQyx1Qyk7dmFyIFZDPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOldDLFRZUEVEX0FSUkFZX1RBRzpaQyYmT0MsYVR5cGVkQXJyYXk6ZnVuY3Rpb24oQSl7aWYoWEMoQSkpcmV0dXJuIEE7dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbihBKXtpZihZQyl7aWYoYkMuY2FsbChtQyxBKSlyZXR1cm4gQX1lbHNlIGZvcih2YXIgZyBpbiBqQylpZihSQyhqQyx1Qykpe3ZhciBJPWxDW2ddO2lmKEkmJihBPT09SXx8YkMuY2FsbChJLEEpKSlyZXR1cm4gQX10aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOmZ1bmN0aW9uKEEsZyxJKXtpZihGQyl7aWYoSSlmb3IodmFyIEIgaW4gakMpe3ZhciBRPWxDW0JdO2lmKFEmJlJDKFEucHJvdG90eXBlLEEpKXRyeXtkZWxldGUgUS5wcm90b3R5cGVbQV19Y2F0Y2godEQpe319eENbQV0mJiFJfHxTQyh4QyxBLEk/ZzpXQyYmTENbQV18fGcpfX0sZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUTtpZihGQyl7aWYoWUMpe2lmKEkpZm9yKEIgaW4gakMpaWYoKFE9bENbQl0pJiZSQyhRLEEpKXRyeXtkZWxldGUgUVtBXX1jYXRjaCh0RCl7fWlmKG1DW0FdJiYhSSlyZXR1cm47dHJ5e3JldHVybiBTQyhtQyxBLEk/ZzpXQyYmbUNbQV18fGcpfWNhdGNoKHREKXt9fWZvcihCIGluIGpDKSEoUT1sQ1tCXSl8fFFbQV0mJiFJfHxTQyhRLEEsZyl9fSxpc1ZpZXc6ZnVuY3Rpb24oQSl7aWYoIUdDKEEpKXJldHVybiExO3ZhciBnPVVDKEEpO3JldHVybiJEYXRhVmlldyI9PT1nfHxSQyhqQyxnKXx8UkMoUEMsZyl9LGlzVHlwZWRBcnJheTpYQyxUeXBlZEFycmF5Om1DLFR5cGVkQXJyYXlQcm90b3R5cGU6eEN9LHpDPXIsX0M9ZywkQz13QyxBRT1WQy5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLGdFPXpDLkFycmF5QnVmZmVyLElFPXpDLkludDhBcnJheSxCRT0hQUV8fCFfQygoZnVuY3Rpb24oKXtJRSgxKX0pKXx8IV9DKChmdW5jdGlvbigpe25ldyBJRSgtMSl9KSl8fCEkQygoZnVuY3Rpb24oQSl7bmV3IElFLG5ldyBJRShudWxsKSxuZXcgSUUoMS41KSxuZXcgSUUoQSl9KSwhMCl8fF9DKChmdW5jdGlvbigpe3JldHVybiAxIT09bmV3IElFKG5ldyBnRSgyKSwxLHZvaWQgMCkubGVuZ3RofSkpLFFFPVJBLENFPWZ1bmN0aW9uKEEpe3ZhciBnPVFFKEEpO2lmKGc8MCl0aHJvdyBSYW5nZUVycm9yKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gZ30sRUU9ZnVuY3Rpb24oQSxnKXt2YXIgST1DRShBKTtpZihJJWcpdGhyb3cgUmFuZ2VFcnJvcigiV3Jvbmcgb2Zmc2V0Iik7cmV0dXJuIEl9LGlFPXJDLHRFPXdnLGVFPUZBKCJpdGVyYXRvciIpLG9FPWZ1bmN0aW9uKEEpe2lmKG51bGwhPUEpcmV0dXJuIEFbZUVdfHxBWyJAQGl0ZXJhdG9yIl18fHRFW2lFKEEpXX0sbkU9d2csckU9RkEoIml0ZXJhdG9yIiksYUU9QXJyYXkucHJvdG90eXBlLHNFPWZ1bmN0aW9uKEEpe3JldHVybiB2b2lkIDAhPT1BJiYobkUuQXJyYXk9PT1BfHxhRVtyRV09PT1BKX0sY0U9ZnVuY3Rpb24oQSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEEpdGhyb3cgVHlwZUVycm9yKFN0cmluZyhBKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIEF9LGhFPWNFLHlFPWZ1bmN0aW9uKEEsZyxJKXtpZihoRShBKSx2b2lkIDA9PT1nKXJldHVybiBBO3N3aXRjaChJKXtjYXNlIDA6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuY2FsbChnKX07Y2FzZSAxOnJldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gQS5jYWxsKGcsSSl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oSSxCKXtyZXR1cm4gQS5jYWxsKGcsSSxCKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbihJLEIsUSl7cmV0dXJuIEEuY2FsbChnLEksQixRKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZyxhcmd1bWVudHMpfX0sREU9aixmRT1TQSx1RT1vRSx3RT1zRSxkRT15RSxGRT1WQy5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGxFPUIsR0U9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oQSl7cmV0dXJuIkFycmF5Ij09bEUoQSl9LFJFPWgsVUU9R0Usa0U9RkEoInNwZWNpZXMiKSxTRT1mdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBVRShBKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUEuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFVRShJLnByb3RvdHlwZSk/UkUoSSkmJm51bGw9PT0oST1JW2tFXSkmJihJPXZvaWQgMCk6ST12b2lkIDApLG5ldyh2b2lkIDA9PT1JP0FycmF5OkkpKDA9PT1nPzA6Zyl9LE5FPXlFLE1FPUUsWUU9aixIRT1TQSxwRT1TRSxKRT1bXS5wdXNoLExFPWZ1bmN0aW9uKEEpe3ZhciBnPTE9PUEsST0yPT1BLEI9Mz09QSxRPTQ9PUEsQz02PT1BLEU9Nz09QSxpPTU9PUF8fEM7cmV0dXJuIGZ1bmN0aW9uKHQsZSxvLG4pe2Zvcih2YXIgcixhLHM9WUUodCksYz1NRShzKSxoPU5FKGUsbywzKSx5PUhFKGMubGVuZ3RoKSxEPTAsZj1ufHxwRSx1PWc/Zih0LHkpOkl8fEU/Zih0LDApOnZvaWQgMDt5PkQ7RCsrKWlmKChpfHxEIGluIGMpJiYoYT1oKHI9Y1tEXSxELHMpLEEpKWlmKGcpdVtEXT1hO2Vsc2UgaWYoYSlzd2l0Y2goQSl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gcjtjYXNlIDY6cmV0dXJuIEQ7Y2FzZSAyOkpFLmNhbGwodSxyKX1lbHNlIHN3aXRjaChBKXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OkpFLmNhbGwodSxyKX1yZXR1cm4gQz8tMTpCfHxRP1E6dX19LHZFPXtmb3JFYWNoOkxFKDApLG1hcDpMRSgxKSxmaWx0ZXI6TEUoMiksc29tZTpMRSgzKSxldmVyeTpMRSg0KSxmaW5kOkxFKDUpLGZpbmRJbmRleDpMRSg2KSxmaWx0ZXJPdXQ6TEUoNyl9LEtFPWgsbUU9REIseEU9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7cmV0dXJuIG1FJiYiZnVuY3Rpb24iPT10eXBlb2YoQj1nLmNvbnN0cnVjdG9yKSYmQiE9PUkmJktFKFE9Qi5wcm90b3R5cGUpJiZRIT09SS5wcm90b3R5cGUmJm1FKEEsUSksQX0scUU9T0ksYkU9cixURT1zLE9FPUJFLFdFPVZDLFpFPXpRLGpFPVpCLFBFPVksWEU9SixWRT1TQSx6RT1YQixfRT1FRSwkRT1SLEFpPVYsZ2k9ckMsSWk9aCxCaT1jZyxRaT1EQixDaT1zSS5mLEVpPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRSxpPURFKEEpLHQ9YXJndW1lbnRzLmxlbmd0aCxlPXQ+MT9hcmd1bWVudHNbMV06dm9pZCAwLG89dm9pZCAwIT09ZSxuPXVFKGkpO2lmKG51bGwhPW4mJiF3RShuKSlmb3IoRT0oQz1uLmNhbGwoaSkpLm5leHQsaT1bXTshKFE9RS5jYWxsKEMpKS5kb25lOylpLnB1c2goUS52YWx1ZSk7Zm9yKG8mJnQ+MiYmKGU9ZEUoZSxhcmd1bWVudHNbMl0sMikpLEk9ZkUoaS5sZW5ndGgpLEI9bmV3KEZFKHRoaXMpKShJKSxnPTA7ST5nO2crKylCW2ddPW8/ZShpW2ddLGcpOmlbZ107cmV0dXJuIEJ9LGlpPXZFLmZvckVhY2gsdGk9SUMsZWk9YyxvaT1XZyxuaT14RSxyaT1PZy5nZXQsYWk9T2cuc2V0LHNpPWVpLmYsY2k9b2kuZixoaT1NYXRoLnJvdW5kLHlpPWJFLlJhbmdlRXJyb3IsRGk9WkUuQXJyYXlCdWZmZXIsZmk9WkUuRGF0YVZpZXcsdWk9V0UuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyx3aT1XRS5UWVBFRF9BUlJBWV9UQUcsZGk9V0UuVHlwZWRBcnJheSxGaT1XRS5UeXBlZEFycmF5UHJvdG90eXBlLGxpPVdFLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsR2k9V0UuaXNUeXBlZEFycmF5LFJpPSJCWVRFU19QRVJfRUxFTUVOVCIsVWk9Ildyb25nIGxlbmd0aCIsa2k9ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9MCxCPWcubGVuZ3RoLFE9bmV3KGxpKEEpKShCKTtCPkk7KVFbSV09Z1tJKytdO3JldHVybiBRfSxTaT1mdW5jdGlvbihBLGcpe3NpKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJpKHRoaXMpW2ddfX0pfSxOaT1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gQSBpbnN0YW5jZW9mIERpfHwiQXJyYXlCdWZmZXIiPT0oZz1naShBKSl8fCJTaGFyZWRBcnJheUJ1ZmZlciI9PWd9LE1pPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIEdpKEEpJiYic3ltYm9sIiE9dHlwZW9mIGcmJmcgaW4gQSYmU3RyaW5nKCtnKT09U3RyaW5nKGcpfSxZaT1mdW5jdGlvbihBLGcpe3JldHVybiBNaShBLGc9JEUoZywhMCkpP1BFKDIsQVtnXSk6Y2koQSxnKX0sSGk9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiEoTWkoQSxnPSRFKGcsITApKSYmSWkoSSkmJkFpKEksInZhbHVlIikpfHxBaShJLCJnZXQiKXx8QWkoSSwic2V0Iil8fEkuY29uZmlndXJhYmxlfHxBaShJLCJ3cml0YWJsZSIpJiYhSS53cml0YWJsZXx8QWkoSSwiZW51bWVyYWJsZSIpJiYhSS5lbnVtZXJhYmxlP3NpKEEsZyxJKTooQVtnXT1JLnZhbHVlLEEpfTtURT8odWl8fChvaS5mPVlpLGVpLmY9SGksU2koRmksImJ1ZmZlciIpLFNpKEZpLCJieXRlT2Zmc2V0IiksU2koRmksImJ5dGVMZW5ndGgiKSxTaShGaSwibGVuZ3RoIikpLHFFKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IXVpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOllpLGRlZmluZVByb3BlcnR5OkhpfSksY0MuZXhwb3J0cz1mdW5jdGlvbihBLGcsSSl7dmFyIEI9QS5tYXRjaCgvXGQrJC8pWzBdLzgsUT1BKyhJPyJDbGFtcGVkIjoiIikrIkFycmF5IixDPSJnZXQiK0EsRT0ic2V0IitBLGk9YkVbUV0sdD1pLGU9dCYmdC5wcm90b3R5cGUsbz17fSxuPWZ1bmN0aW9uKEEsZyl7c2koQSxnLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oQSxnKXt2YXIgST1yaShBKTtyZXR1cm4gSS52aWV3W0NdKGcqQitJLmJ5dGVPZmZzZXQsITApfSh0aGlzLGcpfSxzZXQ6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKEEsZyxRKXt2YXIgQz1yaShBKTtJJiYoUT0oUT1oaShRKSk8MD8wOlE+MjU1PzI1NToyNTUmUSksQy52aWV3W0VdKGcqQitDLmJ5dGVPZmZzZXQsUSwhMCl9KHRoaXMsZyxBKX0sZW51bWVyYWJsZTohMH0pfTt1aT9PRSYmKHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7cmV0dXJuIGpFKEEsdCxRKSxuaShJaShnKT9OaShnKT92b2lkIDAhPT1DP25ldyBpKGcsX0UoSSxCKSxDKTp2b2lkIDAhPT1JP25ldyBpKGcsX0UoSSxCKSk6bmV3IGkoZyk6R2koZyk/a2kodCxnKTpFaS5jYWxsKHQsZyk6bmV3IGkoekUoZykpLEEsdCl9KSksUWkmJlFpKHQsZGkpLGlpKENpKGkpLChmdW5jdGlvbihBKXtBIGluIHR8fFhFKHQsQSxpW0FdKX0pKSx0LnByb3RvdHlwZT1lKToodD1nKChmdW5jdGlvbihBLGcsSSxDKXtqRShBLHQsUSk7dmFyIEUsaSxlLG89MCxyPTA7aWYoSWkoZykpe2lmKCFOaShnKSlyZXR1cm4gR2koZyk/a2kodCxnKTpFaS5jYWxsKHQsZyk7RT1nLHI9X0UoSSxCKTt2YXIgYT1nLmJ5dGVMZW5ndGg7aWYodm9pZCAwPT09Qyl7aWYoYSVCKXRocm93IHlpKFVpKTtpZigoaT1hLXIpPDApdGhyb3cgeWkoVWkpfWVsc2UgaWYoKGk9VkUoQykqQikrcj5hKXRocm93IHlpKFVpKTtlPWkvQn1lbHNlIGU9ekUoZyksRT1uZXcgRGkoaT1lKkIpO2ZvcihhaShBLHtidWZmZXI6RSxieXRlT2Zmc2V0OnIsYnl0ZUxlbmd0aDppLGxlbmd0aDplLHZpZXc6bmV3IGZpKEUpfSk7bzxlOyluKEEsbysrKX0pKSxRaSYmUWkodCxkaSksZT10LnByb3RvdHlwZT1CaShGaSkpLGUuY29uc3RydWN0b3IhPT10JiZYRShlLCJjb25zdHJ1Y3RvciIsdCksd2kmJlhFKGUsd2ksUSksb1tRXT10LHFFKHtnbG9iYWw6ITAsZm9yY2VkOnQhPWksc2hhbTohdWl9LG8pLFJpIGluIHR8fFhFKHQsUmksQiksUmkgaW4gZXx8WEUoZSxSaSxCKSx0aShRKX0pOmNDLmV4cG9ydHM9ZnVuY3Rpb24oKXt9O3ZhciBwaT1jQy5leHBvcnRzO3BpKCJVaW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpO3ZhciBKaT1qLExpPUhBLHZpPVNBLEtpPU1hdGgubWluLG1pPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKEEsZyl7dmFyIEk9SmkodGhpcyksQj12aShJLmxlbmd0aCksUT1MaShBLEIpLEM9TGkoZyxCKSxFPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGk9S2koKHZvaWQgMD09PUU/QjpMaShFLEIpKS1DLEItUSksdD0xO2ZvcihDPFEmJlE8QytpJiYodD0tMSxDKz1pLTEsUSs9aS0xKTtpLS0gPjA7KUMgaW4gST9JW1FdPUlbQ106ZGVsZXRlIElbUV0sUSs9dCxDKz10O3JldHVybiBJfSx4aT1taSxxaT1WQy5hVHlwZWRBcnJheTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiY29weVdpdGhpbiIsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIHhpLmNhbGwocWkodGhpcyksQSxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0pKTt2YXIgYmk9dkUuZXZlcnksVGk9VkMuYVR5cGVkQXJyYXk7KDAsVkMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImV2ZXJ5IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGJpKFRpKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBPaT1RUSxXaT1WQy5hVHlwZWRBcnJheTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsbCIsKGZ1bmN0aW9uKEEpe3JldHVybiBPaS5hcHBseShXaSh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBaaT1sLGppPWNFLFBpPUZBKCJzcGVjaWVzIiksWGk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPVppKEEpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1CfHxudWxsPT0oST1aaShCKVtQaV0pP2c6amkoSSl9LFZpPVZDLmFUeXBlZEFycmF5Q29uc3RydWN0b3Isemk9WGksX2k9dkUuZmlsdGVyLCRpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPXppKEEsQS5jb25zdHJ1Y3RvciksQj0wLFE9Zy5sZW5ndGgsQz1uZXcoVmkoSSkpKFEpO1E+QjspQ1tCXT1nW0IrK107cmV0dXJuIEN9LEF0PVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmaWx0ZXIiLChmdW5jdGlvbihBKXt2YXIgZz1faShBdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gJGkodGhpcyxnKX0pKTt2YXIgZ3Q9dkUuZmluZCxJdD1WQy5hVHlwZWRBcnJheTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZCIsKGZ1bmN0aW9uKEEpe3JldHVybiBndChJdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgQnQ9dkUuZmluZEluZGV4LFF0PVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmaW5kSW5kZXgiLChmdW5jdGlvbihBKXtyZXR1cm4gQnQoUXQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEN0PXZFLmZvckVhY2gsRXQ9VkMuYVR5cGVkQXJyYXk7KDAsVkMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZvckVhY2giLChmdW5jdGlvbihBKXtDdChFdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgaXQ9S0EuaW5jbHVkZXMsdHQ9VkMuYVR5cGVkQXJyYXk7KDAsVkMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImluY2x1ZGVzIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGl0KHR0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBldD1LQS5pbmRleE9mLG90PVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmRleE9mIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGV0KG90KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBudD1yLHJ0PVZDLGF0PWJCLHN0PUZBKCJpdGVyYXRvciIpLGN0PW50LlVpbnQ4QXJyYXksaHQ9YXQudmFsdWVzLHl0PWF0LmtleXMsRHQ9YXQuZW50cmllcyxmdD1ydC5hVHlwZWRBcnJheSx1dD1ydC5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHd0PWN0JiZjdC5wcm90b3R5cGVbc3RdLGR0PSEhd3QmJigidmFsdWVzIj09d3QubmFtZXx8bnVsbD09d3QubmFtZSksRnQ9ZnVuY3Rpb24oKXtyZXR1cm4gaHQuY2FsbChmdCh0aGlzKSl9O3V0KCJlbnRyaWVzIiwoZnVuY3Rpb24oKXtyZXR1cm4gRHQuY2FsbChmdCh0aGlzKSl9KSksdXQoImtleXMiLChmdW5jdGlvbigpe3JldHVybiB5dC5jYWxsKGZ0KHRoaXMpKX0pKSx1dCgidmFsdWVzIixGdCwhZHQpLHV0KHN0LEZ0LCFkdCk7dmFyIGx0PVZDLmFUeXBlZEFycmF5LEd0PVtdLmpvaW47KDAsVkMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImpvaW4iLChmdW5jdGlvbihBKXtyZXR1cm4gR3QuYXBwbHkobHQodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgUnQ9ZyxVdD1mdW5jdGlvbihBLGcpe3ZhciBJPVtdW0FdO3JldHVybiEhSSYmUnQoKGZ1bmN0aW9uKCl7SS5jYWxsKG51bGwsZ3x8ZnVuY3Rpb24oKXt0aHJvdyAxfSwxKX0pKX0sa3Q9byxTdD1SQSxOdD1TQSxNdD1VdCxZdD1NYXRoLm1pbixIdD1bXS5sYXN0SW5kZXhPZixwdD0hIUh0JiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwLEp0PU10KCJsYXN0SW5kZXhPZiIpLEx0PXB0fHwhSnQ/ZnVuY3Rpb24oQSl7aWYocHQpcmV0dXJuIEh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgZz1rdCh0aGlzKSxJPU50KGcubGVuZ3RoKSxCPUktMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoQj1ZdChCLFN0KGFyZ3VtZW50c1sxXSkpKSxCPDAmJihCPUkrQik7Qj49MDtCLS0paWYoQiBpbiBnJiZnW0JdPT09QSlyZXR1cm4gQnx8MDtyZXR1cm4tMX06SHQsdnQ9THQsS3Q9VkMuYVR5cGVkQXJyYXk7KDAsVkMuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImxhc3RJbmRleE9mIiwoZnVuY3Rpb24oQSl7cmV0dXJuIHZ0LmFwcGx5KEt0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIG10PXZFLm1hcCx4dD1YaSxxdD1WQy5hVHlwZWRBcnJheSxidD1WQy5hVHlwZWRBcnJheUNvbnN0cnVjdG9yOygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJtYXAiLChmdW5jdGlvbihBKXtyZXR1cm4gbXQocXQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwoZnVuY3Rpb24oQSxnKXtyZXR1cm4gbmV3KGJ0KHh0KEEsQS5jb25zdHJ1Y3RvcikpKShnKX0pKX0pKTt2YXIgVHQ9Y0UsT3Q9aixXdD1FLFp0PVNBLGp0PWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQixRKXtUdChJKTt2YXIgQz1PdChnKSxFPVd0KEMpLGk9WnQoQy5sZW5ndGgpLHQ9QT9pLTE6MCxlPUE/LTE6MTtpZihCPDIpZm9yKDs7KXtpZih0IGluIEUpe1E9RVt0XSx0Kz1lO2JyZWFrfWlmKHQrPWUsQT90PDA6aTw9dCl0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO0E/dD49MDppPnQ7dCs9ZSl0IGluIEUmJihRPUkoUSxFW3RdLHQsQykpO3JldHVybiBRfX0sUHQ9e2xlZnQ6anQoITEpLHJpZ2h0Omp0KCEwKX0sWHQ9UHQubGVmdCxWdD1WQy5hVHlwZWRBcnJheTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlIiwoZnVuY3Rpb24oQSl7cmV0dXJuIFh0KFZ0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIHp0PVB0LnJpZ2h0LF90PVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJyZWR1Y2VSaWdodCIsKGZ1bmN0aW9uKEEpe3JldHVybiB6dChfdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciAkdD1WQy5hVHlwZWRBcnJheSxBZT1WQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGdlPU1hdGguZmxvb3I7QWUoInJldmVyc2UiLChmdW5jdGlvbigpe2Zvcih2YXIgQSxnPXRoaXMsST0kdChnKS5sZW5ndGgsQj1nZShJLzIpLFE9MDtRPEI7KUE9Z1tRXSxnW1ErK109Z1stLUldLGdbSV09QTtyZXR1cm4gZ30pKTt2YXIgSWU9U0EsQmU9RUUsUWU9aixDZT1WQy5hVHlwZWRBcnJheTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic2V0IiwoZnVuY3Rpb24oQSl7Q2UodGhpcyk7dmFyIGc9QmUoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMSksST10aGlzLmxlbmd0aCxCPVFlKEEpLFE9SWUoQi5sZW5ndGgpLEM9MDtpZihRK2c+SSl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBsZW5ndGgiKTtmb3IoO0M8UTspdGhpc1tnK0NdPUJbQysrXX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zZXQoe30pfSkpKTt2YXIgRWU9WGksaWU9VkMuYVR5cGVkQXJyYXksdGU9VkMuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixlZT1bXS5zbGljZTsoMCxWQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic2xpY2UiLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1lZS5jYWxsKGllKHRoaXMpLEEsZyksQj1FZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpLFE9MCxDPUkubGVuZ3RoLEU9bmV3KHRlKEIpKShDKTtDPlE7KUVbUV09SVtRKytdO3JldHVybiBFfSksZygoZnVuY3Rpb24oKXtuZXcgSW50OEFycmF5KDEpLnNsaWNlKCl9KSkpO3ZhciBvZT12RS5zb21lLG5lPVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJzb21lIiwoZnVuY3Rpb24oQSl7cmV0dXJuIG9lKG5lKHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciByZT1WQy5hVHlwZWRBcnJheSxhZT1bXS5zb3J0OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJzb3J0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGFlLmNhbGwocmUodGhpcyksQSl9KSk7dmFyIHNlPVNBLGNlPUhBLGhlPVhpLHllPVZDLmFUeXBlZEFycmF5OygwLFZDLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJzdWJhcnJheSIsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9eWUodGhpcyksQj1JLmxlbmd0aCxRPWNlKEEsQik7cmV0dXJuIG5ldyhoZShJLEkuY29uc3RydWN0b3IpKShJLmJ1ZmZlcixJLmJ5dGVPZmZzZXQrUSpJLkJZVEVTX1BFUl9FTEVNRU5ULHNlKCh2b2lkIDA9PT1nP0I6Y2UoZyxCKSktUSkpfSkpO3ZhciBEZT1WQyxmZT1nLHVlPXIuSW50OEFycmF5LHdlPURlLmFUeXBlZEFycmF5LGRlPURlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsRmU9W10udG9Mb2NhbGVTdHJpbmcsbGU9W10uc2xpY2UsR2U9ISF1ZSYmZmUoKGZ1bmN0aW9uKCl7RmUuY2FsbChuZXcgdWUoMSkpfSkpO2RlKCJ0b0xvY2FsZVN0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIEZlLmFwcGx5KEdlP2xlLmNhbGwod2UodGhpcykpOndlKHRoaXMpLGFyZ3VtZW50cyl9KSxmZSgoZnVuY3Rpb24oKXtyZXR1cm5bMSwyXS50b0xvY2FsZVN0cmluZygpIT1uZXcgdWUoWzEsMl0pLnRvTG9jYWxlU3RyaW5nKCl9KSl8fCFmZSgoZnVuY3Rpb24oKXt1ZS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcuY2FsbChbMSwyXSl9KSkpO3ZhciBSZT1WQy5leHBvcnRUeXBlZEFycmF5TWV0aG9kLFVlPWcsa2U9ci5VaW50OEFycmF5LFNlPWtlJiZrZS5wcm90b3R5cGV8fHt9LE5lPVtdLnRvU3RyaW5nLE1lPVtdLmpvaW47VWUoKGZ1bmN0aW9uKCl7TmUuY2FsbCh7fSl9KSkmJihOZT1mdW5jdGlvbigpe3JldHVybiBNZS5jYWxsKHRoaXMpfSk7dmFyIFllPVNlLnRvU3RyaW5nIT1OZTtSZSgidG9TdHJpbmciLE5lLFllKTt2YXIgSGU9dkUuZm9yRWFjaCxwZT1VdCgiZm9yRWFjaCIpP1tdLmZvckVhY2g6ZnVuY3Rpb24oQSl7cmV0dXJuIEhlKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9LEplPXIsTGU9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9LHZlPXBlLEtlPUo7Zm9yKHZhciBtZSBpbiBMZSl7dmFyIHhlPUplW21lXSxxZT14ZSYmeGUucHJvdG90eXBlO2lmKHFlJiZxZS5mb3JFYWNoIT09dmUpdHJ5e0tlKHFlLCJmb3JFYWNoIix2ZSl9Y2F0Y2godEQpe3FlLmZvckVhY2g9dmV9fXZhciBiZT1SLFRlPWMsT2U9WSxXZT1mdW5jdGlvbihBLGcsSSl7dmFyIEI9YmUoZyk7QiBpbiBBP1RlLmYoQSxCLE9lKDAsSSkpOkFbQl09SX0sWmU9ZyxqZT1vQSxQZT1GQSgic3BlY2llcyIpLFhlPWZ1bmN0aW9uKEEpe3JldHVybiBqZT49NTF8fCFaZSgoZnVuY3Rpb24oKXt2YXIgZz1bXTtyZXR1cm4oZy5jb25zdHJ1Y3Rvcj17fSlbUGVdPWZ1bmN0aW9uKCl7cmV0dXJue2ZvbzoxfX0sMSE9PWdbQV0oQm9vbGVhbikuZm9vfSkpfSxWZT1PSSx6ZT1oLF9lPUdFLCRlPUhBLEFvPVNBLGdvPW8sSW89V2UsQm89RkEsUW89WGUoInNsaWNlIiksQ289Qm8oInNwZWNpZXMiKSxFbz1bXS5zbGljZSxpbz1NYXRoLm1heDtWZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFRb30se3NsaWNlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRLEM9Z28odGhpcyksRT1BbyhDLmxlbmd0aCksaT0kZShBLEUpLHQ9JGUodm9pZCAwPT09Zz9FOmcsRSk7aWYoX2UoQykmJigiZnVuY3Rpb24iIT10eXBlb2YoST1DLmNvbnN0cnVjdG9yKXx8SSE9PUFycmF5JiYhX2UoSS5wcm90b3R5cGUpP3plKEkpJiZudWxsPT09KEk9SVtDb10pJiYoST12b2lkIDApOkk9dm9pZCAwLEk9PT1BcnJheXx8dm9pZCAwPT09SSkpcmV0dXJuIEVvLmNhbGwoQyxpLHQpO2ZvcihCPW5ldyh2b2lkIDA9PT1JP0FycmF5OkkpKGlvKHQtaSwwKSksUT0wO2k8dDtpKyssUSsrKWkgaW4gQyYmSW8oQixRLENbaV0pO3JldHVybiBCLmxlbmd0aD1RLEJ9fSk7dmFyIHRvPXMsZW89Zyxvbz1QQSxubz15SSxybz1aZyxhbz1qLHNvPUUsY289T2JqZWN0LmFzc2lnbixobz1PYmplY3QuZGVmaW5lUHJvcGVydHkseW89IWNvfHxlbygoZnVuY3Rpb24oKXtpZih0byYmMSE9PWNvKHtiOjF9LGNvKGhvKHt9LCJhIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtobyh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciBBPXt9LGc9e30sST1TeW1ib2woKSxCPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIEFbSV09NyxCLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbihBKXtnW0FdPUF9KSksNyE9Y28oe30sQSlbSV18fG9vKGNvKHt9LGcpKS5qb2luKCIiKSE9Qn0pKT9mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1hbyhBKSxCPWFyZ3VtZW50cy5sZW5ndGgsUT0xLEM9bm8uZixFPXJvLmY7Qj5ROylmb3IodmFyIGksdD1zbyhhcmd1bWVudHNbUSsrXSksZT1DP29vKHQpLmNvbmNhdChDKHQpKTpvbyh0KSxvPWUubGVuZ3RoLG49MDtvPm47KWk9ZVtuKytdLHRvJiYhRS5jYWxsKHQsaSl8fChJW2ldPXRbaV0pO3JldHVybiBJfTpjbyxEbz15bztmdW5jdGlvbiBmbyhBLGcpe2lmKCEoQSBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHVvKEEsZyl7Zm9yKHZhciBJPTA7STxnLmxlbmd0aDtJKyspe3ZhciBCPWdbSV07Qi5lbnVtZXJhYmxlPUIuZW51bWVyYWJsZXx8ITEsQi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEImJihCLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxrbyhCLmtleSksQil9fWZ1bmN0aW9uIHdvKEEsZyxJKXtyZXR1cm4gZyYmdW8oQS5wcm90b3R5cGUsZyksSSYmdW8oQSxJKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxBfWZ1bmN0aW9uIEZvKEEsZyxJKXtyZXR1cm4oZz1rbyhnKSlpbiBBP09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGcse3ZhbHVlOkksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpBW2ddPUksQX1mdW5jdGlvbiBsbyhBLGcpe3JldHVybiBmdW5jdGlvbihBKXtpZihBcnJheS5pc0FycmF5KEEpKXJldHVybiBBfShBKXx8ZnVuY3Rpb24oQSxnKXt2YXIgST1udWxsPT1BP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJkFbU3ltYm9sLml0ZXJhdG9yXXx8QVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPUkpe3ZhciBCLFEsQyxFLGk9W10sdD0hMCxlPSExO3RyeXtpZihDPShJPUkuY2FsbChBKSkubmV4dCwwPT09Zyl7aWYoT2JqZWN0KEkpIT09SSlyZXR1cm47dD0hMX1lbHNlIGZvcig7ISh0PShCPUMuY2FsbChJKSkuZG9uZSkmJihpLnB1c2goQi52YWx1ZSksaS5sZW5ndGghPT1nKTt0PSEwKTt9Y2F0Y2gobyl7ZT0hMCxRPW99ZmluYWxseXt0cnl7aWYoIXQmJm51bGwhPUkucmV0dXJuJiYoRT1JLnJldHVybigpLE9iamVjdChFKSE9PUUpKXJldHVybn1maW5hbGx5e2lmKGUpdGhyb3cgUX19cmV0dXJuIGl9fShBLGcpfHxSbyhBLGcpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gR28oQSl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIFVvKEEpfShBKXx8ZnVuY3Rpb24oQSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPUFbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9QVsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKEEpfShBKXx8Um8oQSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUm8oQSxnKXtpZihBKXtpZigic3RyaW5nIj09dHlwZW9mIEEpcmV0dXJuIFVvKEEsZyk7dmFyIEk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKEEpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09SSYmQS5jb25zdHJ1Y3RvciYmKEk9QS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PUl8fCJTZXQiPT09ST9BcnJheS5mcm9tKEEpOiJBcmd1bWVudHMiPT09SXx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoSSk/VW8oQSxnKTp2b2lkIDB9fWZ1bmN0aW9uIFVvKEEsZyl7KG51bGw9PWd8fGc+QS5sZW5ndGgpJiYoZz1BLmxlbmd0aCk7Zm9yKHZhciBJPTAsQj1uZXcgQXJyYXkoZyk7STxnO0krKylCW0ldPUFbSV07cmV0dXJuIEJ9ZnVuY3Rpb24ga28oQSl7dmFyIGc9ZnVuY3Rpb24oQSxnKXtpZigib2JqZWN0IiE9dHlwZW9mIEF8fG51bGw9PT1BKXJldHVybiBBO3ZhciBJPUFbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1JKXt2YXIgQj1JLmNhbGwoQSxnfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT10eXBlb2YgQilyZXR1cm4gQjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWc/U3RyaW5nOk51bWJlcikoQSl9KEEsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT10eXBlb2YgZz9nOlN0cmluZyhnKX1PSSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT1Eb30se2Fzc2lnbjpEb30pO3ZhciBTbz0idmlkZW8iLE5vPSJhdWRpbyIsTW89Im1ldGFkYXRhIixZbz0iYXZjIixIbz0iaGV2YyIscG89InZ2Y0MiLEpvPSJhYWMiLExvPSJnNzExMGEiLHZvPSJnNzExMG0iLEtvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2ZvKHRoaXMsQSksRm8odGhpcywiaWQiLDEpLEZvKHRoaXMsInR5cGUiLFNvKSxGbyh0aGlzLCJjb2RlY1R5cGUiLFlvKSxGbyh0aGlzLCJwaWQiLC0xKSxGbyh0aGlzLCJodmNDIix2b2lkIDApLEZvKHRoaXMsImNvZGVjIiwiIiksRm8odGhpcywidGltZXNjYWxlIiwwKSxGbyh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLEZvKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSxGbyh0aGlzLCJiYXNlTWVkaWFEZWNvZGVUaW1lIiwwKSxGbyh0aGlzLCJiYXNlRHRzIiwwKSxGbyh0aGlzLCJkdXJhdGlvbiIsMCksRm8odGhpcywid2FybmluZ3MiLFtdKSxGbyh0aGlzLCJzYW1wbGVzIixbXSksRm8odGhpcywicHBzIixbXSksRm8odGhpcywic3BzIixbXSksRm8odGhpcywidnBzIixbXSksRm8odGhpcywiZnBzTnVtIiwwKSxGbyh0aGlzLCJmcHNEZW4iLDApLEZvKHRoaXMsInNhclJhdGlvIixbXSksRm8odGhpcywid2lkdGgiLDApLEZvKHRoaXMsImhlaWdodCIsMCksRm8odGhpcywibmFsVW5pdFNpemUiLDQpLEZvKHRoaXMsInByZXNlbnQiLCExKSxGbyh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLEZvKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksRm8odGhpcywiaXNWaWRlbyIsITApLEZvKHRoaXMsImtpZCIsbnVsbCksRm8odGhpcywicHNzaCIsbnVsbCksRm8odGhpcywiZXh0Iix2b2lkIDApfXJldHVybiB3byhBLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPXRoaXMud2lkdGg9dGhpcy5oZWlnaHQ9dGhpcy5mcHNEZW49dGhpcy5mcHNOdW09dGhpcy5kdXJhdGlvbj10aGlzLmJhc2VNZWRpYURlY29kZVRpbWU9dGhpcy50aW1lc2NhbGU9MCx0aGlzLmNvZGVjPSIiLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLnBwcz1bXSx0aGlzLnNwcz1bXSx0aGlzLnZwcz1bXSx0aGlzLnNhclJhdGlvPVtdLHRoaXMuc2FtcGxlcz1bXSx0aGlzLndhcm5pbmdzPVtdLHRoaXMuaHZjQz1udWxsfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5wcHMubGVuZ3RoJiZ0aGlzLnNwcy5sZW5ndGgmJnRoaXMuY29kZWMpfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zYW1wbGVzLmxlbmd0aH19LHtrZXk6ImlzRW5jcnlwdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWaWRlb0VuY3J5cHRpb259fV0pLEF9KCksbW89ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7Zm8odGhpcyxBKSxGbyh0aGlzLCJpZCIsMiksRm8odGhpcywidHlwZSIsTm8pLEZvKHRoaXMsImNvZGVjVHlwZSIsSm8pLEZvKHRoaXMsInBpZCIsLTEpLEZvKHRoaXMsImNvZGVjIiwiIiksRm8odGhpcywic2VxdWVuY2VOdW1iZXIiLDApLEZvKHRoaXMsInNhbXBsZUR1cmF0aW9uIiwwKSxGbyh0aGlzLCJ0aW1lc2NhbGUiLDApLEZvKHRoaXMsImZvcm1hdFRpbWVzY2FsZSIsMCksRm8odGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksRm8odGhpcywiZHVyYXRpb24iLDApLEZvKHRoaXMsIndhcm5pbmdzIixbXSksRm8odGhpcywic2FtcGxlcyIsW10pLEZvKHRoaXMsImJhc2VEdHMiLDApLEZvKHRoaXMsInNhbXBsZVNpemUiLDE2KSxGbyh0aGlzLCJzYW1wbGVSYXRlIiwwKSxGbyh0aGlzLCJjaGFubmVsQ291bnQiLDApLEZvKHRoaXMsIm9iamVjdFR5cGUiLDApLEZvKHRoaXMsInNhbXBsZVJhdGVJbmRleCIsMCksRm8odGhpcywiY29uZmlnIixbXSksRm8odGhpcywicHJlc2VudCIsITEpLEZvKHRoaXMsImlzVmlkZW9FbmNyeXB0aW9uIiwhMSksRm8odGhpcywiaXNBdWRpb0VuY3J5cHRpb24iLCExKSxGbyh0aGlzLCJraWQiLG51bGwpLEZvKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gd28oQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wLHRoaXMudGltZXNjYWxlPTAsdGhpcy5zYW1wbGVEdXJhdGlvbj0wLHRoaXMuc2FtcGxlUmF0ZT0wLHRoaXMuY2hhbm5lbENvdW50PTAsdGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPTAsdGhpcy5wcmVzZW50PSExLHRoaXMucGlkPS0xLHRoaXMuY29kZWM9IiIsdGhpcy5zYW1wbGVzPVtdLHRoaXMuY29uZmlnPVtdLHRoaXMud2FybmluZ3M9W119fSx7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLnNhbXBsZVJhdGUmJnRoaXMuY2hhbm5lbENvdW50JiZ0aGlzLmNvZGVjJiZ0aGlzLmNvZGVjVHlwZT09PUpvKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXVkaW9FbmNyeXB0aW9ufX1dKSxBfSgpLHhvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQil7Zm8odGhpcyxBKSxGbyh0aGlzLCJmbGFnIix7fSksRm8odGhpcywia2V5ZnJhbWUiLCExKSxGbyh0aGlzLCJnb3BJZCIsMCksRm8odGhpcywiZHVyYXRpb24iLDApLEZvKHRoaXMsInNpemUiLDApLEZvKHRoaXMsInVuaXRzIixbXSksRm8odGhpcywiY2hyb21hRm9ybWF0Iiw0MjApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPWcsdGhpcy5vcmlnaW5EdHM9dGhpcy5kdHM9SSxCJiYodGhpcy51bml0cz1CKX1yZXR1cm4gd28oQSxbe2tleToiY3RzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdHMtdGhpcy5kdHN9fSx7a2V5OiJzZXRUb0tleWZyYW1lIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMua2V5ZnJhbWU9ITAsdGhpcy5mbGFnLmRlcGVuZHNPbj0yLHRoaXMuZmxhZy5pc05vblN5bmNTYW1wbGU9MH19XSksQX0oKSxxbz13bygoZnVuY3Rpb24gQShnLEksQixRKXtmbyh0aGlzLEEpLEZvKHRoaXMsImR1cmF0aW9uIiwxMDI0KSxGbyh0aGlzLCJmbGFnIix7ZGVwZW5kc09uOjIsaXNOb25TeW5jU2FtcGxlOjB9KSxGbyh0aGlzLCJrZXlmcmFtZSIsITApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPXRoaXMuZHRzPWcsdGhpcy5kYXRhPUksdGhpcy5zaXplPUkuYnl0ZUxlbmd0aCx0aGlzLnNhbXBsZU9mZnNldD1RLEImJih0aGlzLmR1cmF0aW9uPUIpfSkpLGJvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2ZvKHRoaXMsQSksRm8odGhpcywiaWQiLDMpLEZvKHRoaXMsInR5cGUiLE1vKSxGbyh0aGlzLCJ0aW1lc2NhbGUiLDApLEZvKHRoaXMsImZsdlNjcmlwdFNhbXBsZXMiLFtdKSxGbyh0aGlzLCJzZWlTYW1wbGVzIixbXSl9cmV0dXJuIHdvKEEsW3trZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RofHwhdGhpcy50aW1lc2NhbGUpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aW1lc2NhbGU9MCx0aGlzLmZsdlNjcmlwdFNhbXBsZXM9W10sdGhpcy5zZWlTYW1wbGVzPVtdfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RoKX19XSksQX0oKSxUbz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxPbz1UbyYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvY2FsZUxvd2VyQ2FzZSgpLFdvPVRvJiZPby5pbmNsdWRlcygiZmlyZWZveCIpLFpvPVRvJiZPby5pbmNsdWRlcygiYW5kcm9pZCIpLGpvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2ZvKHRoaXMsQSl9cmV0dXJuIHdvKEEsbnVsbCxbe2tleToiZ2V0UmF0ZUluZGV4QnlSYXRlIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5GUkVRLmluZGV4T2YoZyl9fSx7a2V5OiJwYXJzZUFEVFMiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7Zm9yKHZhciBCPWcubGVuZ3RoLFE9MDtRKzI8QiYmKDI1NSE9PWdbUV18fDI0MCE9KDI0NiZnW1ErMV0pKTspUSsrO2lmKCEoUT49Qikpe3ZhciBDPVEsRT1bXSxpPSg2MCZnW1ErMl0pPj4+Mix0PUEuRlJFUVtpXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2FtcGxpbmcgaW5kZXg6ICIuY29uY2F0KGkpKTtmb3IodmFyIGUsbyxuPTErKCgxOTImZ1tRKzJdKT4+PjYpLHI9KDEmZ1tRKzJdKTw8MnwoMTkyJmdbUSszXSk+Pj42LGE9QS5fZ2V0Q29uZmlnKGkscixuKSxzPWEuY29uZmlnLGM9YS5jb2RlYyxoPTAseT1BLmdldEZyYW1lRHVyYXRpb24odCk7USs3PEI7KWlmKDI1NT09PWdbUV0mJjI0MD09KDI0NiZnW1ErMV0pKXtpZihCLVE8KG89KDMmZ1tRKzNdKTw8MTF8Z1tRKzRdPDwzfCgyMjQmZ1tRKzVdKT4+NSkpYnJlYWs7ZT0yKigxJn5nW1ErMV0pLEUucHVzaCh7cHRzOkkraCp5LGRhdGE6Zy5zdWJhcnJheShRKzcrZSxRK28pfSksaCsrLFErPW99ZWxzZSBRKys7cmV0dXJue3NraXA6QyxyZW1haW5pbmc6UT49Qj92b2lkIDA6Zy5zdWJhcnJheShRKSxmcmFtZXM6RSxzYW1wbGluZ0ZyZXF1ZW5jeUluZGV4Omksc2FtcGxlUmF0ZTp0LG9iamVjdFR5cGU6bixjaGFubmVsQ291bnQ6cixjb2RlYzpjLGNvbmZpZzpzLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KG4pfX19fSx7a2V5OiJwYXJzZUF1ZGlvU3BlY2lmaWNDb25maWciLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGcubGVuZ3RoKXt2YXIgST1nWzBdPj4+MyxCPSg3JmdbMF0pPDwxfGdbMV0+Pj43LFE9KDEyMCZnWzFdKT4+PjMsQz1BLkZSRVFbQl07aWYoQyl7dmFyIEU9QS5fZ2V0Q29uZmlnKEIsUSxJKTtyZXR1cm57c2FtcGxpbmdGcmVxdWVuY3lJbmRleDpCLHNhbXBsZVJhdGU6QyxvYmplY3RUeXBlOkksY2hhbm5lbENvdW50OlEsY29uZmlnOkUuY29uZmlnLGNvZGVjOkUuY29kZWMsb3JpZ2luQ29kZWM6Im1wNGEuNDAuIi5jb25jYXQoSSl9fX19fSx7a2V5OiJnZXRGcmFtZUR1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gMTAyNCooYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNCkvQX19LHtrZXk6Il9nZXRDb25maWciLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9W107cmV0dXJuIFdvP0E+PTY/KEI9NSxRPUEtMyk6KEI9MixRPUEpOlpvPyhCPTIsUT1BKTooQj0yPT09SXx8NT09PUk/STo1LFE9QSxBPj02P1E9QS0zOjE9PT1nJiYoQj0yLFE9QSkpLENbMF09Qjw8MyxDWzBdfD0oMTQmQSk+PjEsQ1sxXT0oMSZBKTw8NyxDWzFdfD1nPDwzLDU9PT1CJiYoQ1sxXXw9KDE0JlEpPj4xLENbMl09KDEmUSk8PDcsQ1syXXw9OCxDWzNdPTApLHtjb25maWc6Qyxjb2RlYzoibXA0YS40MC4iLmNvbmNhdChCKX19fSx7a2V5OiJnZXRTaWxlbnRGcmFtZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtpZigibXA0YS40MC4yIj09PUEpe2lmKDE9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzUsMTI4XSk7aWYoMj09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFszMywwLDczLDE0NCwyLDI1LDAsMzUsMTI4XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFswLDIwMCwwLDEyOCwzMiwxMzIsMSwzOCw2NCw4LDEwMCwwLDE0Ml0pO2lmKDQ9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMjgsNDQsMTI4LDgsMiw1Nl0pO2lmKDU9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiw1Nl0pO2lmKDY9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiwwLDE3OCwwLDMyLDgsMjI0XSl9ZWxzZXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw3OCwyMzAsMTI4LDE4Niw4LDAsMCwwLDI4LDYsMjQxLDE5MywxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMSw2NCwzNCwxMjgsMTYzLDk0LDIzMCwxMjgsMTg2LDgsMCwwLDAsMCwxNDksMCw2LDI0MSwxNjEsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigzPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSl9fX1dKSxBfSgpO2Z1bmN0aW9uIFBvKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07Zz1nLmZpbHRlcihCb29sZWFuKTt2YXIgQj1uZXcgVWludDhBcnJheShnLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KEEsUSksUSs9QS5ieXRlTGVuZ3RofSkpLEJ9Rm8oam8sIkZSRVEiLFs5NmUzLDg4MjAwLDY0ZTMsNDhlMyw0NDEwMCwzMmUzLDI0ZTMsMjIwNTAsMTZlMywxMmUzLDExMDI1LDhlMyw3MzUwXSk7dmFyIFhvPU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIFZvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDw4KSsoQVtnKzFdfHwwKX1mdW5jdGlvbiB6byhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8MjQ+Pj4wKSsoQVtnKzFdPDwxNikrKEFbZysyXTw8OCkrKEFbZyszXXx8MCl9ZnVuY3Rpb24gX28oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIG5ldyBEYXRhVmlldyhBLmJ1ZmZlcixBLmJ5dGVPZmZzZXQsQS5ieXRlTGVuZ3RoKS5nZXRJbnQzMihnKX1mdW5jdGlvbiAkbyhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4gem8oQSxnKSpYbyt6byhBLGcrNCl9ZnVuY3Rpb24gQW4oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsST1uZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCk7cmV0dXJuIEkuZ2V0VWludDMyKGcpPDwzMnxJLmdldFVpbnQzMihnKzQpfWZ1bmN0aW9uIGduKEEpe3ZhciBnPSIiO2lmKEEuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9ZnVuY3Rpb24oQSl7cmV0dXJuKCIwIitOdW1iZXIoQSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX0oQSl9KSksZy5sZW5ndGg8PTMyKWZvcih2YXIgST0zMi1nLmxlbmd0aCxCPTA7QjxJO0IrKylnKz0iMCI7cmV0dXJuIGd9ZnVuY3Rpb24gSW4oQSl7aWYoIUFycmF5LmlzQXJyYXkoQSkpe2Zvcih2YXIgZz1bXSxJPSIiLEI9MDtCPEEubGVuZ3RoO0IrKylCJTImJihJPUFbQi0xXStBW0JdLGcucHVzaChwYXJzZUludChJLDE2KSksST0iIik7cmV0dXJuIGd9cmV0dXJuIEEubWFwKChmdW5jdGlvbihBKXtyZXR1cm4gcGFyc2VJbnQoQSwxNil9KSl9dmFyIEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtpZihmbyh0aGlzLEEpLEZvKHRoaXMsIl9ieXRlc0F2YWlsYWJsZSIsdm9pZCAwKSxGbyh0aGlzLCJfYml0c0F2YWlsYWJsZSIsMCksRm8odGhpcywiX3dvcmQiLDApLCFnKXRocm93IG5ldyBFcnJvcigiRXhwR29sb21iIGRhdGEgcGFyYW1zIGlzIHJlcXVpcmVkIik7dGhpcy5fZGF0YT1nLHRoaXMuX2J5dGVzQXZhaWxhYmxlPWcuYnl0ZUxlbmd0aCx0aGlzLl9ieXRlc0F2YWlsYWJsZSYmdGhpcy5fbG9hZFdvcmQoKX1yZXR1cm4gd28oQSxbe2tleToiX2xvYWRXb3JkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuX2RhdGEuYnl0ZUxlbmd0aC10aGlzLl9ieXRlc0F2YWlsYWJsZSxnPU1hdGgubWluKDQsdGhpcy5fYnl0ZXNBdmFpbGFibGUpO2lmKDA9PT1nKXRocm93IG5ldyBFcnJvcigiTm8gYnl0ZXMgYXZhaWxhYmxlIik7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoNCk7SS5zZXQodGhpcy5fZGF0YS5zdWJhcnJheShBLEErZykpLHRoaXMuX3dvcmQ9bmV3IERhdGFWaWV3KEkuYnVmZmVyKS5nZXRVaW50MzIoMCksdGhpcy5fYml0c0F2YWlsYWJsZT04KmcsdGhpcy5fYnl0ZXNBdmFpbGFibGUtPWd9fSx7a2V5OiJiaXRzUG9zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiA4KnRoaXMuX2J5dGVzQXZhaWxhYmxlLXRoaXMuX2JpdHNBdmFpbGFibGV9fSx7a2V5OiJiaXRzTGVmdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9kYXRhLmxlbmd0aC10aGlzLmJpdHNQb3MoKX19LHtrZXk6ImJ5dGVBbGlnbmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5iaXRzUG9zKCl8fHRoaXMuYml0c1BvcygpJTg9PTB9fSx7a2V5OiJza2lwQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYodGhpcy5fYml0c0F2YWlsYWJsZT5BKXRoaXMuX3dvcmQ8PD1BLHRoaXMuX2JpdHNBdmFpbGFibGUtPUE7ZWxzZXtBLT10aGlzLl9iaXRzQXZhaWxhYmxlO3ZhciBnPU1hdGguZmxvb3IoQS84KTtBLT04KmcsdGhpcy5fYnl0ZXNBdmFpbGFibGUtPWcsdGhpcy5fbG9hZFdvcmQoKSx0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BfX19LHtrZXk6InJlYWRCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXtpZihBPjMyKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlYWQgbW9yZSB0aGFuIDMyIGJpdHMiKTt2YXIgZz1NYXRoLm1pbih0aGlzLl9iaXRzQXZhaWxhYmxlLEEpLEk9dGhpcy5fd29yZD4+PjMyLWc7cmV0dXJuIHRoaXMuX2JpdHNBdmFpbGFibGUtPWcsdGhpcy5fYml0c0F2YWlsYWJsZT4wP3RoaXMuX3dvcmQ8PD1nOnRoaXMuX2J5dGVzQXZhaWxhYmxlPjAmJnRoaXMuX2xvYWRXb3JkKCksKGc9QS1nKT4wJiZ0aGlzLl9iaXRzQXZhaWxhYmxlP0k8PGd8dGhpcy5yZWFkQml0cyhnKTpJfX0se2tleToic2tpcExaIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBO2ZvcihBPTA7QTx0aGlzLl9iaXRzQXZhaWxhYmxlOysrQSlpZih0aGlzLl93b3JkJjIxNDc0ODM2NDg+Pj5BKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLFFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtmbyh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gd28oQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxDbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtmbyh0aGlzLEEpfXJldHVybiB3byhBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBRbihnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxDLEUsaSx0LGUsbyxuLHI9SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSxpPUkuZXh0cmFjdEJpdHMoMiksdD1JLmV4dHJhY3RCaXRzKDMpLEM9SS5leHRyYWN0Qml0cygzKSxFPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxDKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxuPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLHk9W10sRD1bXSxmPW51bGwsdT0wO3U8Yzt1Kyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgdz1JLmV4dHJhY3RCaXRzKDUpLGQ9MTsxMyE9PXcmJjEyIT09dyYmKGQ9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgRj0wO0Y8ZDtGKyspe3ZhciBsPUkucmVhZFVpbnQxNigpO3N3aXRjaCh3KXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkobCk7Znx8KGY9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLHkucHVzaChHKTticmVhaztjYXNlIDE2OkQucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpyLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkMsY29uc3RhbnRGcmFtZVJhdGU6RSxjaHJvbWFGb3JtYXRJZGM6aSxiaXREZXB0aEx1bWFNaW51czg6dCxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6bixudW1PZkFycmF5czpjLHZwczpoLHNwczp5LHBwczpELHNwc1BhcnNlZDpmfX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEM9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgRT1BLmV4dHJhY3RCaXRzKDEpLGk9QS5leHRyYWN0Qml0cygxKSx0PW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgbj1BLmV4dHJhY3RCaXRzKDIpO3RbZV09bzw8MnxufXRbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgcj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKHJbaF09QS5yZWFkVWludDgoKSl9dmFyIHk9QS5yZWFkVWludDgoKSxEPVtdO2lmKHkpZm9yKHZhciBmPTA7Zjx5O2YrKylELnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpDLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkUscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOmksZ2VuZXJhbENvbnN0cmFpbnRJbmZvOnQsc3ViTGF5ZXJMZXZlbElkYzpyLGdlbmVyYWxTdWJQcm9maWxlSWRjOkQscHRsTnVtU3ViUHJvZmlsZXM6eSxudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxDPW5ldyBVaW50OEFycmF5KFEpLEU9MDtmb3IoQj0wO0I8UTtFKyssQisrKUU9PT1JWzBdJiYoRSsrLEkuc2hpZnQoKSksQ1tCXT1BW0VdO3JldHVybiBDfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBCbihnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxDPUkucmVhZEJpdHMoMiksRT00MjA7Qzw9MyYmKEU9WzAsNDIwLDQyMiw0NDRdW0NdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIGk9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkMsY2hyb21hRm9ybWF0OkUscHRsSW5mbzppfX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPWcucmVhZEJpdHMoNyksRT1nLnJlYWRCaXRzKDEpLGk9Zy5yZWFkQml0cyg4KSx0PWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxuPVtdLHI9W10sYT1bXSxzPW87cz49MDstLXMpbltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYyluW2NdJiYocltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLHk9MDt5PGg7eSsrKWFbeV09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkMsZ2VuZXJhbFRpZXJGbGFnOkUsZ2VuZXJhbExldmVsSWRjOmkscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6dCxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOm4scHRsU3VibGF5ZXJMZXZlbElkY3M6cixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLEVuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2ZvKHRoaXMsQSl9cmV0dXJuIHdvKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPXpvKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPSRvKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9em8oZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9em8oZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PXpvKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPXpvKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9em8oZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9em8oZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPXpvKGcsSSksSSs9NCxBLnRpbWVzY2FsZT16byhnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT16byhnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9em8oZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT0kbyhnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9JG8oZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1WbyhnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9em8oZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPXpvKGcsSSksRT16byhnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gbm4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPXpvKGcsMTYpLEEuZHVyYXRpb249JG8oZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT16byhnLDgpLEEuZHVyYXRpb249em8oZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9em8oZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBubihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD16byhnLDE2KSxBLmR1cmF0aW9uPSRvKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPXpvKGcsOCksQS5kdXJhdGlvbj16byhnLDE2KSxJKz0yMCksQS53aWR0aD16byhnLEkrNTIpLEEuaGVpZ2h0PXpvKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gbm4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9em8oZyxCKTtCKz00O2Zvcih2YXIgQz0wO0M8UTtDKyspe3ZhciBFPXt9O0EuZW50cmllcy5wdXNoKEUpLDE9PT1BLnZlcnNpb24/KEUuc2VnbWVudF9kdXJhdGlvbj0kbyhnLEIpLEIrPTgsRS5tZWRpYV90aW1lPUFuKGcsQiksQis9OCk6KEUuc2VnbWVudF9kdXJhdGlvbj16byhnLEIpLEIrPTQsRS5tZWRpYV90aW1lPV9vKGcsQiksQis9NCksRS5tZWRpYV9yYXRlX2ludGVnZXI9Vm8oZyxCKSxCKz0yLEUubWVkaWFfcmF0ZV9mcmFjdGlvbj1WbyhnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT16byhnLDE2KSxBLmR1cmF0aW9uPSRvKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9em8oZyw4KSxBLmR1cmF0aW9uPXpvKGcsMTIpLEkrPTE2KTt2YXIgQj1WbyhnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPVZvKGcpLEEub3Bjb2xvcj1bVm8oZywyKSxWbyhnLDQpLFZvKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPVZvKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9em8oSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PVZvKEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPHQ7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9Vm8oSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9em8oSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChybihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9em8oZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2gocm4oZSkpfX12YXIgbz16byhnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBubihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9ZW4oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChDLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9Q24ucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gbm4oZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD16byhJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1WbyhJLDE2KSxnLnNhbXBsZXNpemU9Vm8oSSwxOCksZy5zYW1wbGVSYXRlPXpvKEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gbm4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9Vm8oSSwyNCksZy5oZWlnaHQ9Vm8oSSwyNiksZy5ob3JpenJlc29sdXRpb249em8oSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj16byhJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKHJuKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBubihnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBubihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9ZW4oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChDLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1WbyhnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBDPTA7QzxBLnBwc0xlbmd0aDtDKyspe3ZhciBFPVZvKGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1FKSksSSs9RX19KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gbm4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPWVuKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goQyxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT16byhJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPVZvKEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEM9MCxFPTAsaT0wLHQ9MDt0PGcubnVtT2ZBcnJheXM7dCsrKXtDPTYzJklbUV0sRT1WbyhJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxuPTA7bjxFO24rKylpPVZvKEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFEraSkpLFErPWk7aWYoMzI9PT1DKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUMpe3ZhciByOyhyPWcuc3BzKS5wdXNoLmFwcGx5KHIsbyl9ZWxzZSBpZigzND09PUMpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9em8oZyksQS52U3BhY2luZz16byhnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIG5uKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1vbihnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxDPTA7Zy5sZW5ndGg7KXtmb3IoQz1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1DKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUMpe2lmKDU9PT1DKXt2YXIgRT1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSxpPSgyNDgmRVswXSk+PjM7cmV0dXJuIDMxPT09aSYmRS5sZW5ndGg+PTImJihpPTMyKygoNyZFWzBdKTw8MykrKCgyMjQmRVsxXSk+PjUpKSxBLm9iamVjdFR5cGU9aSxBLmNvZGVjKz1pLnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITEsKGZ1bmN0aW9uKEEsZyl7b24oQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST16byhnKSxCPVtdLFE9NCxDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OnpvKGcsUSksZGVsdGE6em8oZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPXpvKGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OnpvKGcsUSksb2Zmc2V0OnpvKGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEU9MDtFPEk7RSsrKUIucHVzaCh7Y291bnQ6em8oZyxRKSxvZmZzZXQ6LSgxK356byhnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST16byhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT17Zmlyc3RDaHVuazp6byhnLFEpLHNhbXBsZXNQZXJDaHVuazp6byhnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDp6byhnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9em8oZyksQj16byhnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgQz04LEU9MDtFPEI7RSsrKVFbRV09em8oZyxDKSxDKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST16byhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT16byhnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9em8oZyksQj1uZXcgQXJyYXkoSSksUT00LEM9MDtDPEk7QysrKUJbQ109JG8oZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPXpvKGcpLEI9bmV3IEFycmF5KEkpLFE9NCxDPTA7QzxJO0MrKylCW0NdPXpvKGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBubihnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBubihBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9em8oZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gbm4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5uKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEM9QS5zYW1wbGVDb3VudD16byhnKSxFPTQ7aWYoUT5FJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK356byhnLEUpKSxFKz00KSxRPkUmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz16byhnLEUpLEUrPTQpLFE+RSl7dmFyIGk7QS5zYW1wbGVzPW5ldyBBcnJheShDKTtmb3IodmFyIHQ9MDt0PEM7dCsrKWk9e30sMjU2JkImJihpLmR1cmF0aW9uPXpvKGcsRSksRSs9NCksNTEyJkImJihpLnNpemU9em8oZyxFKSxFKz00KSwxMDI0JkImJihpLmZsYWdzPXpvKGcsRSksRSs9NCksMjA0OCZCJiYoaS5jdHM9ST8tKDErfnpvKGcsRSs0KSk6em8oZyxFKSxFKz00KSxBLnNhbXBsZXNbdF09aX19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbm4oQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT0kbyhnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9em8oZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9QS50cmFrO2lmKEMmJkMubGVuZ3RoKXt2YXIgRT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksaT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoRSYmZyl7dmFyIHQsZSxvLG4scixhLHMsYyxoPWcseT1udWxsPT09KHQ9RS50a2hkKXx8dm9pZCAwPT09dD92b2lkIDA6dC50cmFja0lkO251bGwhPXkmJihoLmlkPUUudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1FLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1FLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1FLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9RS5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1FLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1FLmVkaXRMaXN0QXBwbGllZCk7dmFyIEQsZix1LHcsZCxGLGwsRyxSPUUubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPUhvLGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9cG8saC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KG49by5taW5mKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uc3RibCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1FLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KGY9RC5zY2hpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KHU9Ui5zaW5mKXx8dm9pZCAwPT09dXx8bnVsbD09PSh3PXUuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0oZD1SLnNpbmYpfHx2b2lkIDA9PT1kfHxudWxsPT09KEY9ZC5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShsPVIuc2luZil8fHZvaWQgMD09PWx8fG51bGw9PT0oRz1sLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKGkmJkkpe3ZhciBVLGssUyxOLE0sWSxILHAsSixMLHY9SSxLPW51bGw9PT0oVT1pLnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9SyYmKHYuaWQ9aS50a2hkLnRyYWNrSWQpLHYudGtoZER1cmF0aW9uPWkudGtoZC5kdXJhdGlvbix2Lm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbix2Lm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLHYudGltZXNjYWxlPXYuZm9ybWF0VGltZXNjYWxlPWkubWRpYS5tZGhkLnRpbWVzY2FsZSx2LmR1cmF0aW9uPWkubWRpYS5tZGhkLmR1cmF0aW9ufHx2Lm12aGREdXJ0aW9uL3YubXZoZFRpbWVjYWxlKnYudGltZXNjYWxlLG51bGwhPT0oaz1pLmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJih2LmVkaXRMaXN0PWkuZWR0cy5lbHN0LHYuZWRpdExpc3RBcHBsaWVkPWkuZWRpdExpc3RBcHBsaWVkKTt2YXIgbSx4LHEsYixULE8sVyxaLGo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKHYuc2FtcGxlU2l6ZT1qLnNhbXBsZVNpemUsdi5zYW1wbGVSYXRlPWouc2FtcGxlUmF0ZSx2LmNoYW5uZWxDb3VudD1qLmNoYW5uZWxDb3VudCx2LnByZXNlbnQ9ITAsai50eXBlKXtjYXNlImFsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9TG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9dm8sdi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0OnYuc2FtcGxlRHVyYXRpb249am8uZ2V0RnJhbWVEdXJhdGlvbih2LnNhbXBsZVJhdGUsdi50aW1lc2NhbGUpLHYuc2FtcGxlUmF0ZUluZGV4PWpvLmdldFJhdGVJbmRleEJ5UmF0ZSh2LnNhbXBsZVJhdGUpLHYub2JqZWN0VHlwZT0obnVsbD09PShCPWouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsai5lc2RzJiYodi5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKSksdi5jb2RlYz0obnVsbD09PShRPWouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZih2LnNhbXBsZUR1cmF0aW9uPWpvLmdldEZyYW1lRHVyYXRpb24odi5zYW1wbGVSYXRlLHYudGltZXNjYWxlKSx2Lm9iamVjdFR5cGU9KG51bGw9PT0oUz1qLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLGouZXNkcyYmKGouZXNkcy5jb25maWc/di5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksdi5jb2RlYz0obnVsbD09PShOPWouZXNkcyl8fHZvaWQgMD09PU4/dm9pZCAwOk4uY29kZWMpfHwibXA0YS40MC4yIix2LnNhbXBsZVJhdGVJbmRleD1qby5nZXRSYXRlSW5kZXhCeVJhdGUodi5zYW1wbGVSYXRlKSx2LmV4dD17fSx2LmV4dC5zdHNzPW51bGw9PT0oTT1pLm1kaWEpfHx2b2lkIDA9PT1NfHxudWxsPT09KFk9TS5taW5mKXx8dm9pZCAwPT09WXx8bnVsbD09PShIPVkuc3RibCl8fHZvaWQgMD09PUg/dm9pZCAwOkguc3Rzcyx2LmV4dC5jdHRzPW51bGw9PT0ocD1pLm1kaWEpfHx2b2lkIDA9PT1wfHxudWxsPT09KEo9cC5taW5mKXx8dm9pZCAwPT09Snx8bnVsbD09PShMPUouc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyx2LnByZXNlbnQ9ITAsaiYmImVuY2EiPT09ai50eXBlKXYuaXNBdWRpb0VuY3J5cHRpb249ITAsai5kYXRhX2Zvcm1hdD1udWxsPT09KG09ai5zaW5mKXx8dm9pZCAwPT09bXx8bnVsbD09PSh4PW0uZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsai5kZWZhdWx0X0tJRD1udWxsPT09KHE9ai5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxqLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPWouc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxqLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFc9ai5zaW5mKXx8dm9pZCAwPT09V3x8bnVsbD09PShaPVcuc2NoaSl8fHZvaWQgMD09PVo/dm9pZCAwOloudGVuYy5kZWZhdWx0X0lWX3NpemUsdi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyx2LnVzZUVNRT1BLnVzZUVNRSx2LmtpZFZhbHVlPUEua2lkVmFsdWUsdi5lbmNhPWp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgUCxYLFY9bnVsbD09Z3x8bnVsbD09PShQPWcuZW5jdil8fHZvaWQgMD09PVA/dm9pZCAwOlAuZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLG89aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09bmV3IEFycmF5KGkuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8aS5zYW1wbGVDb3VudDthKyspUVtDLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6bixkdXJhdGlvbjplLHNpemU6dH0sbis9ZSxvKz10fWVsc2UgUVtDLnRyYWNrSWRdPWkuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpuLHB0czpuKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8dCxnb3BJZDpyLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKHIrKyxBLmdvcElkPXIpLG4rPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxDO2lmKEkpe3ZhciBFLGksdD1udWxsPT09KEU9SS5tZGlhKXx8dm9pZCAwPT09RXx8bnVsbD09PShpPUUubWluZil8fHZvaWQgMD09PWk/dm9pZCAwOmkuc3RibDtpZighdClyZXR1cm47dmFyIGU9dC5zdHRzLG89dC5zdHNjLG49dC5zdHN6LHI9dC5zdGNvLGE9dC5zdHNzLHM9dC5jdHRzO2lmKCEoZSYmbyYmbiYmciYmYSkpcmV0dXJuO1E9dG4oZSxvLG4scixzLGEpfWlmKEIpe3ZhciBjLGgseSxEPW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCFEKXJldHVybjt2YXIgZj1udWxsPT09KHk9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRpbWVzY2FsZSx1PUQuc3R0cyx3PUQuc3RzYyxkPUQuc3RzeixGPUQuc3RjbztpZighKGYmJnUmJncmJmQmJkYpKXJldHVybjtDPXRuKHUsdyxkLEYpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6Q319fX19XSksQX0oKTtmdW5jdGlvbiB0bihBLGcsSSxCLFEsQyl7dmFyIEUsaSx0LGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMsbj1nLmVudHJpZXMscj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1DP3ZvaWQgMDpDLmVudHJpZXM7cyYmKEU9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtFW0EtMV09ITB9KSkpLG8mJihpPVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKylpLnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCx5PTAsRD0wLGY9MCx1PTAsdz1uWzBdLnNhbXBsZXNQZXJDaHVuayxkPW5bMV0/blsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKXQ9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW3ldfHxJLnNhbXBsZVNpemUsb2Zmc2V0OnJbRF0rdSxpbmRleDp5fSxzJiYodC5rZXlmcmFtZT1FW3ldLHQua2V5ZnJhbWUmJmMrKyx0LmdvcElkPWMpLGkmJnk8aS5sZW5ndGgmJih0LnB0cz10LmR0cytpW3ldKSxlLnB1c2godCksaCs9QiwrK3k8dz91Kz10LnNpemU6KEQrKyx1PTAsRD49ZCYmKGYrKyxkPW5bZisxXT9uW2YrMV0uZmlyc3RDaHVuay0xOjEvMCksdys9bltmXS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gZW4oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9Vm8oZyw2KSxBLndpZHRoPVZvKGcsMjQpLEEuaGVpZ2h0PVZvKGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPXpvKGcsMjgpLEEudmVydHJlc29sdXRpb249em8oZywzMiksQS5mcmFtZUNvdW50PVZvKGcsNDApLEEuZGVwdGg9Vm8oZyw3NCksNzh9ZnVuY3Rpb24gb24oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9Vm8oZyw2KSxBLmNoYW5uZWxDb3VudD1WbyhnLDE2KSxBLnNhbXBsZVNpemU9Vm8oZywxOCksQS5zYW1wbGVSYXRlPXpvKGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIG5uKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBybj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9MHxnLEM9TWF0aC5jZWlsKFEvQi5sZW5ndGgpLEU9W10saT1TdHJpbmcoQSk7Qy0tOylFLnB1c2goQik7cmV0dXJuIEUuam9pbigiIikuc3Vic3RyaW5nKDAsUS1pLmxlbmd0aCkraX0oTnVtYmVyKGcpLnRvU3RyaW5nKDE2KSwyLDApKX0pKSxBWzBdfSxhbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2ZvKHRoaXMsQSksdGhpcy52aWRlb1RyYWNrPWd8fG5ldyBLbyx0aGlzLmF1ZGlvVHJhY2s9SXx8bmV3IG1vLHRoaXMubWV0YWRhdGFUcmFjaz1CfHxuZXcgYm99cmV0dXJuIHdvKEEsW3trZXk6ImRlbXV4Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMudmlkZW9UcmFjayxCPXRoaXMuYXVkaW9UcmFjayxRPUkuZXhpc3QoKSxDPUIuZXhpc3QoKTtpZihJLnNhbXBsZXM9W10sQi5zYW1wbGVzPVtdLGcpe2lmKCFDKXt2YXIgRT1Fbi5maW5kQm94KGcsWyJtb292Il0pWzBdO2lmKCFFKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7RW4ubW9vdlRvVHJhY2soRW4ubW9vdihFKSxudWxsLEIpfXZhciBpPUVuLmZpbmRCb3goZyxbIm1vb2YiXSlbMF07aWYoaSl7dmFyIHQ9RW4ubW9vZlRvU2FtcGxlcyhFbi5tb29mKGkpLG51bGwsQilbQi5pZF0sZT1CLmJhc2VNZWRpYURlY29kZVRpbWU7aWYodCl7dmFyIG89aS5zdGFydDt0Lm1hcCgoZnVuY3Rpb24oQSl7QS5vZmZzZXQrPW87dmFyIEk9Zy5zdWJhcnJheShBLm9mZnNldCxBLm9mZnNldCtBLnNpemUpO0Iuc2FtcGxlcy5wdXNoKG5ldyBxbyhBLmR0cytlLEksQS5kdXJhdGlvbikpfSkpfX19aWYoQSl7aWYoIVEmJiFDKXt2YXIgbj1Fbi5maW5kQm94KEEsWyJtb292Il0pWzBdO2lmKCFuKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7RW4ubW9vdlRvVHJhY2soRW4ubW9vdihuKSxJLEIpfXZhciByPUVuLmZpbmRCb3goQSxbIm1vb2YiXSlbMF07aWYocil7dmFyIGEscz1Fbi5tb29mVG9TYW1wbGVzKEVuLm1vb2YociksSSxCKSxjPUkuYmFzZU1lZGlhRGVjb2RlVGltZSxoPUIuYmFzZU1lZGlhRGVjb2RlVGltZSx5PXIuc3RhcnQ7T2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oZyl7SS5pZD09Zz9zW2ddLm1hcCgoZnVuY3Rpb24oZyl7Zy5vZmZzZXQrPXk7dmFyIEI9bmV3IHhvKCgibnVtYmVyIj09dHlwZW9mIGcucHRzP2cucHRzOmcuZHRzKStjLGcuZHRzK2MpO0IuZHVyYXRpb249Zy5kdXJhdGlvbixCLmdvcElkPWcuZ29wSWQsZy5rZXlmcmFtZSYmQi5zZXRUb0tleWZyYW1lKCk7dmFyIFE9QS5zdWJhcnJheShnLm9mZnNldCxnLm9mZnNldCtnLnNpemUpO0IuZGF0YT1RO2Zvcih2YXIgQz0wLEU9US5sZW5ndGgtMTtDPEU7KWE9em8oUSxDKSxDKz00LEIudW5pdHMucHVzaChRLnN1YmFycmF5KEMsQythKSksQys9YTtJLnNhbXBsZXMucHVzaChCKX0pKTpCLmlkPT1nJiZzW2ddLm1hcCgoZnVuY3Rpb24oZyl7Zy5vZmZzZXQrPXk7dmFyIEk9QS5zdWJhcnJheShnLm9mZnNldCxnLm9mZnNldCtnLnNpemUpO0Iuc2FtcGxlcy5wdXNoKG5ldyBxbyhnLmR0cytoLEksZy5kdXJhdGlvbikpfSkpfSkpfX1yZXR1cm57dmlkZW9UcmFjazpJLGF1ZGlvVHJhY2s6QixtZXRhZGF0YVRyYWNrOnRoaXMubWV0YWRhdGFUcmFja319fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZpZGVvVHJhY2sucmVzZXQoKSx0aGlzLmF1ZGlvVHJhY2sucmVzZXQoKSx0aGlzLm1ldGFkYXRhVHJhY2sucmVzZXQoKX19XSxbe2tleToicHJvYmUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBFbi5wcm9iZShBKX19XSksQX0oKTt2YXIgc249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7Zm8odGhpcyxBKSx0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgwKX1yZXR1cm4gd28oQSxbe2tleToid3JpdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPXRoaXMsZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGcpLEI9MDtCPGc7QisrKUlbQl09YXJndW1lbnRzW0JdO0kuZm9yRWFjaCgoZnVuY3Rpb24oZyl7Zz9BLmJ1ZmZlcj1mdW5jdGlvbihBKXtmb3IodmFyIGc9MCxJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoST4xP0ktMTowKSxRPTE7UTxJO1ErKylCW1EtMV09YXJndW1lbnRzW1FdO0IuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9QS5sZW5ndGh9KSk7dmFyIEM9bmV3IEEoZyksRT0wO3JldHVybiBCLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Muc2V0KEEsRSksRSs9QS5sZW5ndGh9KSksQ30oVWludDhBcnJheSxBLmJ1ZmZlcixnKTp3aW5kb3cuY29uc29sZS53YXJuKGcpfSkpfX1dLFt7a2V5OiJ3cml0ZVVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBPj44JjI1NSwyNTUmQV0pfX0se2tleToid3JpdGVVaW50MzIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSl9fV0pLEF9KCksY249TWF0aC5wb3coMiwzMiktMSxobj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtmbyh0aGlzLEEpfXJldHVybiB3byhBLG51bGwsW3trZXk6ImJveCIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZz4xP2ctMTowKSxCPTE7QjxnO0IrKylJW0ItMV09YXJndW1lbnRzW0JdO3ZhciBRPTgrKEk9SS5maWx0ZXIoQm9vbGVhbikpLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxDPW5ldyBVaW50OEFycmF5KFEpO0NbMF09UT4+MjQmMjU1LENbMV09UT4+MTYmMjU1LENbMl09UT4+OCYyNTUsQ1szXT0yNTUmUSxDLnNldChBLDQpO3ZhciBFPTg7cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qy5zZXQoQSxFKSxFKz1BLmJ5dGVMZW5ndGh9KSksQ319LHtrZXk6IkZ1bGxCb3giLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXtmb3IodmFyIFE9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheShRPjM/US0zOjApLEU9MztFPFE7RSsrKUNbRS0zXT1hcmd1bWVudHNbRV07cmV0dXJuIEEuYm94LmFwcGx5KEEsW2csbmV3IFVpbnQ4QXJyYXkoW0ksQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCXSldLmNvbmNhdChDKSl9fSx7a2V5OiJmdHlwIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZy5maW5kKChmdW5jdGlvbihBKXtyZXR1cm4gQS50eXBlPT09U28mJkEuY29kZWNUeXBlPT09SG99KSk/QS5GVFlQSEVWMTpBLkZUWVBBVkMxfX0se2tleToiaW5pdFNlZ21lbnQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBQbyhBLmZ0eXAoZyksQS5tb292KGcpKX19LHtrZXk6InBzc2giLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwXS5jb25jYXQoWzE2LDExOSwyMzksMjM2LDE5MiwxNzgsNzcsMiwxNzIsMjI3LDYwLDMwLDgyLDIyNiwyNTEsNzVdLFswLDAsMCwxXSxJbihnLmtpZCksWzAsMCwwLDBdKSk7cmV0dXJuIEEuYm94KEEudHlwZXMucHNzaCxJKX19LHtrZXk6Im1vb3YiLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGdbMF0udXNlRU1FJiYoZ1swXS5lbmN2fHxnWzBdLmVuY2EpKXtnWzBdLnBzc2h8fChnWzBdLnBzc2g9e2tpZDpnWzBdLmtpZH0pO3ZhciBJPXRoaXMucHNzaChnWzBdLnBzc2gpO3JldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKSxBLm12ZXgoZyldLmNvbmNhdChHbyhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhayhnKX0pKSksW0ldKSl9cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5tdmhkRHVydGlvbnx8Z1swXS5kdXJhdGlvbixnWzBdLm12aGRUaW1lY2FsZXx8Z1swXS50aW1lc2NhbGUpXS5jb25jYXQoR28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtBLm12ZXgoZyldKSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06OWU0O3JldHVybiBBLmJveChBLnR5cGVzLm12aGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw2NCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNTUsMjU1LDI1NSwyNTVdKSl9fSx7a2V5OiJ0cmFrIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcudGtoZER1cmF0aW9ufHwwLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYShnKSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLFE9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjA7cmV0dXJuIEEuYm94KEEudHlwZXMudGtoZCxuZXcgVWludDhBcnJheShbMCwwLDAsNywwLDAsMCwwLDAsMCwwLDAsZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsQj4+OCYyNTUsMjU1JkIsMCwwLFE+PjgmMjU1LDI1NSZRLDAsMF0pKX19LHtrZXk6ImVkdHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmVkdHMsQS5lbHN0KGcpKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKGcpe2cuZW50cmllczt2YXIgST1nLmVudHJpZXNEYXRhLEI9Zy52ZXJzaW9uO3JldHVybiBBLkZ1bGxCb3goQS50eXBlcy5lbHN0LEIsMCxJKX19LHtrZXk6Im1kaWEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZihnKSl9fSx7a2V5OiJtZGhkIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06OWU0O3JldHVybiBBLmJveChBLnR5cGVzLm1kaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQmMjU1LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyw4NSwxOTYsMCwwXSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMuaGRscixBLkhETFJfVFlQRVNbZ10pfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1Tbz9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmwoZykpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9W107cmV0dXJuIGcmJmcuZXh0JiZnLmV4dC5zdHNzJiZJLnB1c2goQS5zdHNzKGcuZXh0LnN0c3MuZW50cmllcykpLEEuYm94KEEudHlwZXMuc3RibCxBLnN0c2QoZyksQS5TVFRTLElbMF0sQS5TVFNDLEEuU1RTWixBLlNUQ08pfX0se2tleToic3RzZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk7cmV0dXJuIEk9ImF1ZGlvIj09PWcudHlwZT9nLnVzZUVNRSYmZy5lbmNhP0EuZW5jYShnKTpBLm1wNGEoZyk6Zy51c2VFTUUmJmcuZW5jdj9BLmVuY3YoZyk6QS5hdmMxaGV2MXZ2YzEoZyksQS5ib3goQS50eXBlcy5zdHNkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDFdKSxJKX19LHtrZXk6ImVuY2EiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuZW5jYS5jaGFubmVsQ291bnQsQj1nLmVuY2Euc2FtcGxlUmF0ZSxRPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsSSwwLDE2LDAsMCwwLDAsQj4+OCYyNTUsMjU1JkIsMCwwXSksQz1BLmVzZHMoZy5jb25maWcpLEU9QS5zaW5mKGcuZW5jYSk7cmV0dXJuIEEuYm94KEEudHlwZXMuZW5jYSxRLEMsRSl9fSx7a2V5OiJlbmN2Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgSSxCLFE9Zy5zcHMubGVuZ3RoPjA/Zy5zcHNbMF06W10sQz1nLnBwcy5sZW5ndGg+MD9nLnBwc1swXTpbXSxFPWcud2lkdGgsaT1nLmhlaWdodCx0PWcuc2FyUmF0aW9bMF0sZT1nLnNhclJhdGlvWzFdLG89bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEU+PjgmMjU1LDI1NSZFLGk+PjgmMjU1LDI1NSZpLDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDE4LDEwMCw5NywxMDUsMTA4LDEyMSwxMDksMTExLDExNiwxMDUsMTExLDExMCw0NywxMDQsMTA4LDExNSw0NiwxMDYsMTE1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLG49bmV3IFVpbnQ4QXJyYXkoKEk9KEI9WzEsUVsxXSxRWzJdLFFbM10sMjU1LDIyNSxRLmxlbmd0aD4+PjgmMjU1LDI1NSZRLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEdvKFEpKS5jb25jYXQoWzEsQy5sZW5ndGg+Pj44JjI1NSwyNTUmQy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksR28oQykpKSxyPW5ldyBVaW50OEFycmF5KFswLDAsODgsNTcsMCwxNSwyMDAsMTkyLDAsNCw4Niw3Ml0pLGE9QS5zaW5mKGcuZW5jdikscz1uZXcgVWludDhBcnJheShbdD4+MjQsdD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LGU+PjI0LGU+PjE2JjI1NSxlPj44JjI1NSwyNTUmZV0pO3JldHVybiBBLmJveChBLnR5cGVzLmVuY3YsbyxBLmJveChBLnR5cGVzLmF2Y0MsbiksQS5ib3goQS50eXBlcy5idHJ0LHIpLGEsQS5ib3goQS50eXBlcy5wYXNwLHMpKX19LHtrZXk6InNjaGkiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBVaW50OEFycmF5KFtdKSxCPUEudGVuYyhnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zY2hpLEksQil9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMjU1JmcuZGVmYXVsdF9Jc0VuY3J5cHRlZCwyNTUmZy5kZWZhdWx0X0lWX3NpemVdLmNvbmNhdChJbihnLmRlZmF1bHRfS0lEKSkpO3JldHVybiBBLmJveChBLnR5cGVzLnRlbmMsSSl9fSx7a2V5OiJzaW5mIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1uZXcgVWludDhBcnJheShbZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDApLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgxKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMiksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDMpXSksUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCw5OSwxMDEsMTEwLDk5LDAsMSwwLDBdKSxDPUEuc2NoaShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaW5mLEksQS5ib3goQS50eXBlcy5mcm1hLEIpLEEuYm94KEEudHlwZXMuc2NobSxRKSxDKX19LHtrZXk6ImF2YzFoZXYxdnZjMSIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQjtnLmNvZGVjVHlwZT09PUhvPyhJPUEuaHZjQyhnKSxCPUEudHlwZXMuaHZjMSk6Zy5jb2RlY1R5cGU9PT1wbz8oST1BLnZ2Y0MoZyksQj1BLnR5cGVzLmJ2YzIpOihJPUEuYXZjQyhnKSxCPUEudHlwZXMuYXZjMSk7dmFyIFE9W25ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxnLndpZHRoPj44JjI1NSwyNTUmZy53aWR0aCxnLmhlaWdodD4+OCYyNTUsMjU1JmcuaGVpZ2h0LDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDE3LDE3XSksSV07cmV0dXJuIGcuY29kZWNUeXBlPT09SG8/US5wdXNoKEEuYm94KEEudHlwZXMuZmllbCxuZXcgVWludDhBcnJheShbMSwwXSkpKTpnLnNhclJhdGlvJiZnLnNhclJhdGlvLmxlbmd0aD4xJiZRLnB1c2goQS5wYXNwKGcuc2FyUmF0aW8pKSxBLmJveC5hcHBseShBLFtCXS5jb25jYXQoUSkpfX0se2tleToiYXZjQyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRLEM9W10sRT1bXTtyZXR1cm4gZy5zcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsQy5wdXNoKFE+Pj44JjI1NSksQy5wdXNoKDI1NSZRKSxDLnB1c2guYXBwbHkoQyxHbyhBKSl9KSksZy5wcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsRS5wdXNoKFE+Pj44JjI1NSksRS5wdXNoKDI1NSZRKSxFLnB1c2guYXBwbHkoRSxHbyhBKSl9KSksQS5ib3goQS50eXBlcy5hdmNDLG5ldyBVaW50OEFycmF5KChJPShCPVsxLENbM10sQ1s0XSxDWzVdLDI1NSwyMjR8Zy5zcHMubGVuZ3RoXSkuY29uY2F0LmFwcGx5KEIsQykuY29uY2F0KFtnLnBwcy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksRSkpKX19LHtrZXk6InZ2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcudnZjQztyZXR1cm4gQS5ib3goQS50eXBlcy5idjJDLG5ldyBVaW50OEFycmF5KEkpKX19LHtrZXk6Imh2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuaHZjQztpZihJIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEkgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBJO3ZhciBCLFE9Zy52cHMsQz1nLnNwcyxFPWcucHBzO2lmKEkpe3ZhciBpPUkuZ2VuZXJhbFByb2ZpbGVDb21wYXRpYmlsaXR5RmxhZ3MsdD1JLmdlbmVyYWxDb25zdHJhaW50SW5kaWNhdG9yRmxhZ3MsZT0oUS5sZW5ndGgmJjEpKyhDLmxlbmd0aCYmMSkrKEUubGVuZ3RoJiYxKTtCPVsxLEkuZ2VuZXJhbFByb2ZpbGVTcGFjZTw8NnxJLmdlbmVyYWxUaWVyRmxhZzw8NXxJLmdlbmVyYWxQcm9maWxlSWRjLGk+Pj4yNCxpPj4+MTYsaT4+PjgsaSx0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSxJLmdlbmVyYWxMZXZlbElkYywyNDAsMCwyNTIsMjUyfEkuY2hyb21hRm9ybWF0SWRjLDI0OHxJLmJpdERlcHRoTHVtYU1pbnVzOCwyNDh8SS5iaXREZXB0aENocm9tYU1pbnVzOCwwLDAsSS5udW1UZW1wb3JhbExheWVyczw8M3xJLnRlbXBvcmFsSWROZXN0ZWQ8PDJ8MyxlXTt2YXIgbz1mdW5jdGlvbihBKXt2YXIgZztCLnB1c2goQS5sZW5ndGg+PjgsQS5sZW5ndGgpLChnPUIpLnB1c2guYXBwbHkoZyxHbyhBKSl9O1EubGVuZ3RoJiYoQi5wdXNoKDE2MCwwLFEubGVuZ3RoKSxRLmZvckVhY2gobykpLEMubGVuZ3RoJiYoQi5wdXNoKDE2MSwwLEMubGVuZ3RoKSxDLmZvckVhY2gobykpLEUubGVuZ3RoJiYoQi5wdXNoKDE2MiwwLEUubGVuZ3RoKSxFLmZvckVhY2gobykpfWVsc2UgQj1bMSwxLDk2LDAsMCwwLDE0NCwwLDAsMCwwLDAsOTMsMjQwLDAsMjUyLDI1MywyNDgsMjQ4LDAsMCwxNSwzLDE2MCwwLDEsMCwyNCw2NCwxLDEyLDEsMjU1LDI1NSwxLDk2LDAsMCwzLDAsMTQ0LDAsMCwzLDAsMCwzLDAsOTMsMTUzLDE1Miw5LDE2MSwwLDEsMCw0NSw2NiwxLDEsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE2MCwyLDEyOCwxMjgsNDUsMjIsODksMTUzLDE2NCwxNDcsNDMsMTU0LDEyOCwxMjgsMTI4LDEzMCwwLDAsMywwLDIsMCwwLDMsMCw1MCwxNiwxNjIsMCwxLDAsNyw2OCwxLDE5MywxMTQsMTgwLDk4LDY0XTtyZXR1cm4gQS5ib3goQS50eXBlcy5odmNDLG5ldyBVaW50OEFycmF5KEIpKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWxvKGcsMiksQj1JWzBdLFE9SVsxXTtyZXR1cm4gQS5ib3goQS50eXBlcy5wYXNwLG5ldyBVaW50OEFycmF5KFtCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubXA0YSxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLGcuY2hhbm5lbENvdW50LDAsMTYsMCwwLDAsMCxnLnNhbXBsZVJhdGU+PjgmMjU1LDI1NSZnLnNhbXBsZVJhdGUsMCwwXSksZy5jb25maWcubGVuZ3RoP0EuZXNkcyhnLmNvbmZpZyk6dm9pZCAwKX19LHtrZXk6ImVzZHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoO3JldHVybiBBLmJveChBLnR5cGVzLmVzZHMsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMywyMytJLDAsMCwwLDQsMTUrSSw2NCwyMSwwLDYsMCwwLDAsMjE4LDE5MiwwLDAsMjE4LDE5Miw1XS5jb25jYXQoW0ldKS5jb25jYXQoZykuY29uY2F0KFs2LDEsMl0pKSl9fSx7a2V5OiJtdmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tdmV4XS5jb25jYXQoR28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyZXgoZy5pZCl9KSkpKSl9fSx7a2V5OiJ0cmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwxXSkpfX0se2tleToidHJleDEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDIsMCwwLDAsMCwwLDAsMSwwLDBdKSl9fSx7a2V5OiJ0cmV4MiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsNCwwLDAsMCwwLDAsMiwwLDAsMF0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb2YsQS5tZmhkKGdbMF0uc2FtcGxlcz9nWzBdLnNhbXBsZXNbMF0uZ29wSWQ6MCldLmNvbmNhdChHbyhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKSkpKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1maGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSkpfX0se2tleToidHJhZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9QS50ZmhkKGcuaWQpLEI9QS50ZmR0KGcsZy5iYXNlTWVkaWFEZWNvZGVUaW1lKSxRPTA7aWYoZy5pc1ZpZGVvJiZnLnZpZGVvU2VuYyYmZy52aWRlb1NlbmMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7USs9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihRKz0yLFErPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9USxnLnVzZUVNRSYmKGcuaXNWaWRlb0VuY3J5cHRpb258fGcuaXNBdWRpb0VuY3J5cHRpb24pKXtpZihnLmlzVmlkZW9FbmNyeXB0aW9uKXtpZihnLmlzVmlkZW8pe3ZhciBDPUEuc2FpeihnKSxFPUEuc2FpbyhnKSxpPUEudHJ1bjEoZyksdD1BLnNlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsQyxFLGksdCl9aWYoZy5pc0F1ZGlvRW5jcnlwdGlvbil7dmFyIGU9QS5zYmdwKCksbz1BLnNhaXooZyksbj1BLnNhaW8oZykscj1BLnNlbmMoZyksYT1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLGUsbyxuLHIsYSl9dmFyIHM9QS5zYmdwKCksYz1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLHMsYyl9aWYoZy5pc1ZpZGVvKXt2YXIgaD1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLGgpfXZhciB5PUEuc2JncCgpLEQ9QS5zYWl6KGcpLGY9QS5zYWlvKGcpLHU9QS5zZW5jKGcpLHc9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQix5LEQsZix1LHcpfXZhciBkPUEuc2R0cChnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixkLEEudHJ1bihnLnNhbXBsZXMsZC5ieXRlTGVuZ3RoKzc2KSl9fSx7a2V5OiJzZHRwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgc247cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5ldyBVaW50OEFycmF5KGcuaXNWaWRlbz9bQS5rZXlmcmFtZT8zMjoxNl06WzE2XSkpfSkpLEEuYm94KEEudHlwZXMuc2R0cCx0aGlzLmV4dGVuc2lvbigwLDApLEkuYnVmZmVyKX19LHtrZXk6InRydW4xIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgc24sQj1zbi53cml0ZVVpbnQzMihnLnNhbXBsZXMubGVuZ3RoKSxRPW51bGw7aWYoZy5pc1ZpZGVvKXt2YXIgQz1nLnZpZGVvU2VuY0xlbmd0aDtRPXNuLndyaXRlVWludDMyKDE2Kmcuc2FtcGxlcy5sZW5ndGgrQysxNDkpLCFnLmlzVmlkZW9FbmNyeXB0aW9uJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoUT1zbi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoKzkyKSl9ZWxzZXt2YXIgRT0xMipnLnNhbXBsZXMubGVuZ3RoKzEyNDtnLmlzQXVkaW9FbmNyeXB0aW9uJiYoRT0xMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKzE3NyksUT1zbi53cml0ZVVpbnQzMihFKX1yZXR1cm4gZy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0kud3JpdGUoc24ud3JpdGVVaW50MzIoQS5kdXJhdGlvbikpLEkud3JpdGUoc24ud3JpdGVVaW50MzIoQS5zaXplKSksSS53cml0ZShzbi53cml0ZVVpbnQzMihBLmtleWZyYW1lPzMzNTU0NDMyOjY1NTM2KSksZy5pc1ZpZGVvJiZJLndyaXRlKHNuLndyaXRlVWludDMyKEEuY3RzP0EuY3RzOjApKX0pKSxBLmJveChBLnR5cGVzLnRydW4sdGhpcy5leHRlbnNpb24oMCxnLmZsYWdzKSxCLFEsSS5idWZmZXIpfX0se2tleToic2VuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IHNuLEI9Zy5zYW1wbGVzLmxlbmd0aCxRPWcuaXNWaWRlbz8xNjo4LEM9Zy5pc1ZpZGVvPzI6MCxFPVtdLGk9MDtyZXR1cm4gZy5pc1ZpZGVvPyhFPWcudmlkZW9TZW5jLGk9Zy52aWRlb1NlbmNMZW5ndGgpOkU9Zy5hdWRpb1NlbmMsaT1pfHxRKkIsSS53cml0ZShzbi53cml0ZVVpbnQzMigxNitpKSxBLnR5cGVzLnNlbmMsdGhpcy5leHRlbnNpb24oMCxDKSksSS53cml0ZShzbi53cml0ZVVpbnQzMihCKSksRS5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9MDtnPEEuSW5pdGlhbGl6YXRpb25WZWN0b3IubGVuZ3RoO2crKylJLndyaXRlKG5ldyBVaW50OEFycmF5KFtBLkluaXRpYWxpemF0aW9uVmVjdG9yW2ddXSkpO0Euc3Vic2FtcGxlcyYmQS5zdWJzYW1wbGVzLmxlbmd0aCYmKEkud3JpdGUoc24ud3JpdGVVaW50MTYoQS5zdWJzYW1wbGVzLmxlbmd0aCkpLEEuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKHNuLndyaXRlVWludDE2KEEuQnl0ZXNPZkNsZWFyRGF0YSkpLEkud3JpdGUoc24ud3JpdGVVaW50MzIoQS5CeXRlc09mUHJvdGVjdGVkRGF0YSkpfSkpKX0pKSxJLmJ1ZmZlcn19LHtrZXk6InNhaW8iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPTEyKmcuc2FtcGxlcy5sZW5ndGgrMTQxOyFnLmlzVmlkZW8mJmcuaXNBdWRpb0VuY3J5cHRpb24mJihJPTE0OSk7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWlvLEIpfX0se2tleToic2FpeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5zYW1wbGVzLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDE2LEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWl6LEIpfX0se2tleToic2JncCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZz1uZXcgVWludDhBcnJheShbMTE0LDExMSwxMDgsMTA4LDAsMCwwLDEsMCwwLDEsMjUsMCwwLDAsMV0pO3JldHVybiBBLmJveChBLnR5cGVzLnNiZ3AsdGhpcy5leHRlbnNpb24oMCwwKSxnKX19LHtrZXk6ImV4dGVuc2lvbiIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0EsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSl9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50ZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRmZHQiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9TWF0aC5mbG9vcihJLyhjbisxKSksUT1NYXRoLmZsb29yKEklKGNuKzEpKTtyZXR1cm4gZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKT9BLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpOkEuYm94KEEudHlwZXMudGZkdCxuZXcgVWludDhBcnJheShbMSwwLDAsMCxCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1nLmxlbmd0aCxRPTEyKzE2KkI7SSs9OCtRO3ZhciBDPW5ldyBVaW50OEFycmF5KFEpO0Muc2V0KFswLDAsMTUsMSxCPj4+MjQmMjU1LEI+Pj4xNiYyNTUsQj4+PjgmMjU1LDI1NSZCLEk+Pj4yNCYyNTUsST4+PjE2JjI1NSxJPj4+OCYyNTUsMjU1JkldLDApO2Zvcih2YXIgRT0wO0U8QjtFKyspe3ZhciBpPWdbRV0sdD1pLmR1cmF0aW9uLGU9aS5zaXplLG89aS5mbGFnLG49dm9pZCAwPT09bz97fTpvLHI9aS5jdHMsYT12b2lkIDA9PT1yPzA6cjtDLnNldChbdD4+PjI0JjI1NSx0Pj4+MTYmMjU1LHQ+Pj44JjI1NSwyNTUmdCxlPj4+MjQmMjU1LGU+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlLG4uaXNMZWFkaW5nPDwyfChudWxsPT09bi5kZXBlbmRzT258fHZvaWQgMD09PW4uZGVwZW5kc09uPzE6bi5kZXBlbmRzT24pLG4uaXNEZXBlbmRlZE9uPDw2fG4uaGFzUmVkdW5kYW5jeTw8NHxuLnBhZGRpbmdWYWx1ZTw8MXwobnVsbD09PW4uaXNOb25TeW5jU2FtcGxlfHx2b2lkIDA9PT1uLmlzTm9uU3luY1NhbXBsZT8xOm4uaXNOb25TeW5jU2FtcGxlKSw2MTQ0MCZuLmRlZ3JhZGF0aW9uUHJpb3JpdHksMTUmbi5kZWdyYWRhdGlvblByaW9yaXR5LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsMjU1JmFdLDEyKzE2KkUpfXJldHVybiBBLmJveChBLnR5cGVzLnRydW4sQyl9fSx7a2V5OiJtb292TVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLmR1cmF0aW9uLGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFja01QNChnKX0pKSkpKX19LHtrZXk6InRyYWNrTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcuZHVyYXRpb24sZy53aWR0aCxnLmhlaWdodCksQS5tZGlhTVA0KGcpKX19LHtrZXk6Im1kaWFNUDQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZk1QNChnKSl9fSx7a2V5OiJtaW5mTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5taW5mLGcudHlwZT09PVNvP0EuVk1IRDpBLlNNSEQsQS5ESU5GLEEuc3RibE1QNChnKSl9fSx7a2V5OiJzdGJsTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmV4dCxCPVtBLnN0c2QoZyksQS5zdHRzKEkuc3R0cyksQS5zdHNjKEkuc3RzYyksQS5zdHN6KEkuc3RzeiksQS5zdGNvKEkuc3RjbyldO3JldHVybiBJLnN0c3MubGVuZ3RoJiZCLnB1c2goQS5zdHNzKEkuc3RzcykpLEkuY3R0cy5sZW5ndGgmJkIucHVzaChBLmN0dHMoSS5jdHRzKSksQS5ib3guYXBwbHkoQSxbQS50eXBlcy5zdGJsXS5jb25jYXQoQikpfX0se2tleToic3R0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg4KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLnZhbHVlLEk9QS5jb3VudDtCLnNldChbST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10sUSksUSs9OH0pKSxBLmJveChBLnR5cGVzLnN0dHMsUG8obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSgxMipJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS5maXJzdENodW5rLEk9QS5zYW1wbGVzUGVyQ2h1bmssQz1BLnNhbXBsZURlc2NJbmRleDtCLnNldChbZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxDPj4yNCxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkNdLFEpLFErPTEyfSkpLEEuYm94KEEudHlwZXMuc3RzYyxQbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHN6Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHN6LFBvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RjbyxQbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHNzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHNzLFBvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5jdHRzLFBvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0eXAiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEEuYm94KEEudHlwZXMuc3R5cCxuZXcgVWludDhBcnJheShbMTA5LDExNSwxMDAsMTA0LDAsMCwwLDAsMTA5LDExNSwxMDAsMTA0LDEwOSwxMTUsMTA1LDEyMF0pKX19LHtrZXk6InNpZHgiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcudGltZXNjYWxlLEI9Zy5zYW1wbGVzWzBdLmR1cmF0aW9uLFE9QipnLnNhbXBsZXMubGVuZ3RoLEM9Zy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCpCLEU9ODtnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7RSs9QS5zaXplfSkpO3ZhciBpPTA7aWYoZy5pc1ZpZGVvKXt2YXIgdCxlPTA7Zy52aWRlb1NlbmMmJih0PWcudmlkZW9TZW5jKSxnLmlzVmlkZW8mJnQuZm9yRWFjaCgoZnVuY3Rpb24oQSl7ZSs9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihlKz0yLGUrPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9ZSxpPUUrMTQxKzE2Kmcuc2FtcGxlcy5sZW5ndGgrZSxnLnVzZUVNRSYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmIWcuaXNWaWRlb0VuY3J5cHRpb24mJihpPUUrMTYqZy5zYW1wbGVzLmxlbmd0aCs4NCl9ZWxzZSBpPUUrMTE2KzEyKmcuc2FtcGxlcy5sZW5ndGgsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJihpPUUrMTY5KzEyKmcuc2FtcGxlcy5sZW5ndGgrOCpnLmF1ZGlvU2VuYy5sZW5ndGgpO3ZhciBvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDI1NSZnLmlkLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQmMjU1LEM+PjE2JjI1NSxDPj44JjI1NSwyNTUmQywwLDAsMCwwLDAsMCwwLDEsMCxpPj4xNiYyNTUsaT4+OCYyNTUsMjU1JmksUT4+MjQmMjU1LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUSwxNDQsMCwwLDBdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaWR4LG8pfX0se2tleToibWRhdCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWRhdCxnKX19XSksQX0oKTtGbyhobiwidHlwZXMiLFsiYXZjMSIsImF2Y0MiLCJodmMxIiwiaHZjQyIsImRpbmYiLCJkcmVmIiwiZWR0cyIsImVsc3QiLCJlc2RzIiwiZnR5cCIsImhkbHIiLCJtZGF0IiwibWRoZCIsIm1kaWEiLCJtZmhkIiwibWluZiIsIm1vb2YiLCJtb292IiwibXA0YSIsIm12ZXgiLCJtdmhkIiwicGFzcCIsInN0YmwiLCJzdGNvIiwic3RzYyIsInN0c2QiLCJzdHN6Iiwic3R0cyIsInRmZHQiLCJ0ZmhkIiwidHJhZiIsInRyYWsiLCJ0cmV4IiwidGtoZCIsInZtaGQiLCJzbWhkIiwiY3R0cyIsInN0c3MiLCJzdHlwIiwicHNzaCIsInNpZHgiLCJzYmdwIiwic2FpeiIsInNhaW8iLCJzZW5jIiwidHJ1biIsImVuY3YiLCJlbmNhIiwic2luZiIsImJ0cnQiLCJmcm1hIiwidGVuYyIsInNjaG0iLCJzY2hpIiwibWVoZCIsImZpZWwiLCJzZHRwIiwiYnZjMiIsImJ2MkMiXS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEFbZ109W2cuY2hhckNvZGVBdCgwKSxnLmNoYXJDb2RlQXQoMSksZy5jaGFyQ29kZUF0KDIpLGcuY2hhckNvZGVBdCgzKV0sQX0pLE9iamVjdC5jcmVhdGUobnVsbCkpKSxGbyhobiwiSERMUl9UWVBFUyIse3ZpZGVvOm5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMTE4LDEwNSwxMDAsMTAxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDg2LDEwNSwxMDAsMTAxLDExMSw3Miw5NywxMTAsMTAwLDEwOCwxMDEsMTE0LDBdKSxhdWRpbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExNSwxMTEsMTE3LDExMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4MywxMTEsMTE3LDExMCwxMDAsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSl9KSxGbyhobiwiRlRZUEFWQzEiLGhuLmJveChobi50eXBlcy5mdHlwLG5ldyBVaW50OEFycmF5KFsxMDUsMTE1LDExMSwxMDksMCwwLDAsMSwxMDUsMTE1LDExMSwxMDksOTcsMTE4LDk5LDQ5XSkpKSxGbyhobiwiRlRZUEhFVjEiLGhuLmJveChobi50eXBlcy5mdHlwLG5ldyBVaW50OEFycmF5KFsxMDUsMTE1LDExMSwxMDksMCwwLDAsMSwxMDUsMTE1LDExMSwxMDksMTA0LDEwMSwxMTgsNDldKSkpLEZvKGhuLCJESU5GIixobi5ib3goaG4udHlwZXMuZGluZixobi5ib3goaG4udHlwZXMuZHJlZixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEyLDExNywxMTQsMTA4LDMyLDAsMCwwLDFdKSkpKSxGbyhobiwiVk1IRCIsaG4uYm94KGhuLnR5cGVzLnZtaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwXSkpKSxGbyhobiwiU01IRCIsaG4uYm94KGhuLnR5cGVzLnNtaGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMF0pKSksRm8oaG4sIlN0YmxUYWJsZSIsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMF0pKSxGbyhobiwiU1RUUyIsaG4uYm94KGhuLnR5cGVzLnN0dHMsaG4uU3RibFRhYmxlKSksRm8oaG4sIlNUU0MiLGhuLmJveChobi50eXBlcy5zdHNjLGhuLlN0YmxUYWJsZSkpLEZvKGhuLCJTVFNaIixobi5ib3goaG4udHlwZXMuc3RzeixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdKSkpLEZvKGhuLCJTVENPIixobi5ib3goaG4udHlwZXMuc3Rjbyxobi5TdGJsVGFibGUpKTt2YXIgeW49ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSl7Zm8odGhpcyxBKSx0aGlzLm5hbWU9Z3x8IiIsdGhpcy5fcHJlZml4PSJbIi5jb25jYXQodGhpcy5uYW1lLCJdIiksQS5kaXNhYmxlZD1JfXJldHVybiB3byhBLFt7a2V5OiJkZWJ1ZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkuZGVidWcuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6ImxvZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkubG9nLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ3YXJuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS53YXJuLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJlcnJvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkuZXJyb3IuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6InRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO0EuZGlzYWJsZWR8fChjb25zb2xlLmdyb3VwKHRoaXMuX3ByZWZpeCksKGc9Y29uc29sZSkudGFibGUuYXBwbHkoZyxhcmd1bWVudHMpLGNvbnNvbGUuZ3JvdXBFbmQoKSl9fV0sW3trZXk6ImVuYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtBLmRpc2FibGVkPSExfX0se2tleToiZGlzYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtBLmRpc2FibGVkPSEwfX1dKSxBfSgpO0ZvKHluLCJkaXNhYmxlZCIsITApO3ZhciBEbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2ZvKHRoaXMsQSksdGhpcy52aWRlb1RyYWNrPWcsdGhpcy5hdWRpb1RyYWNrPUk7dmFyIFE9L0Nocm9tZVwvKFteLl0rKS8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50KTt0aGlzLmZvcmNlRmlyc3RJRFI9USYmTnVtYmVyKFFbMV0pPDUwLHRoaXMubG9nPW5ldyB5bigiRk1QNFJlbXV4ZXIiLCFCfHwhQi5vcGVuTG9nfHwhQi5vcGVuTG9nKX1yZXR1cm4gd28oQSxbe2tleToicmVtdXgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEEsZyxJLEIsUSxDPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sRT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT10aGlzLnZpZGVvVHJhY2ssdD10aGlzLmF1ZGlvVHJhY2ssZT1pLmV4aXN0KCksbz10LmV4aXN0KCksbj1bXTtyZXR1cm4gQyYmKEUmJkUuaW5pdE1lcmdlPyhlJiZuLnB1c2godGhpcy52aWRlb1RyYWNrKSxvJiZuLnB1c2godGhpcy5hdWRpb1RyYWNrKSxJPWhuLmluaXRTZWdtZW50KG4pKTooZSYmKEE9aG4uaW5pdFNlZ21lbnQoW3RoaXMudmlkZW9UcmFja10pKSxvJiYoZz1obi5pbml0U2VnbWVudChbdGhpcy5hdWRpb1RyYWNrXSkpKSksZSYmaS5oYXNTYW1wbGUoKSYmKEI9dGhpcy5fcmVtdXhWaWRlbygpKSxvJiZ0Lmhhc1NhbXBsZSgpJiYoUT10aGlzLl9yZW11eEF1ZGlvKCkpLGkuc2FtcGxlcz1bXSx0LnNhbXBsZXM9W10se2luaXRTZWdtZW50OkksdmlkZW9Jbml0U2VnbWVudDpBLGF1ZGlvSW5pdFNlZ21lbnQ6Zyx2aWRlb1NlZ21lbnQ6QixhdWRpb1NlZ21lbnQ6UX19fSx7a2V5OiJfcmVtdXhWaWRlbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLnZpZGVvVHJhY2s7dGhpcy5mb3JjZUZpcnN0SURSJiYoQS5zYW1wbGVzWzBdLmZsYWc9e2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSk7dmFyIGc9QS5zYW1wbGVzLEk9MDtnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0krPUEudW5pdHMucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuYnl0ZUxlbmd0aH0pLDApLEkrPTQqQS51bml0cy5sZW5ndGh9KSk7Zm9yKHZhciBCLFE9bmV3IFVpbnQ4QXJyYXkoSSksQz1uZXcgRGF0YVZpZXcoUS5idWZmZXIpLEU9ZnVuY3Rpb24oQSxJKXtJPWdbaV07dmFyIEU9MDtJLnVuaXRzLmZvckVhY2goKGZ1bmN0aW9uKGcpe0Muc2V0VWludDMyKEEsZy5ieXRlTGVuZ3RoKSxBKz00LFEuc2V0KGcsQSksQSs9Zy5ieXRlTGVuZ3RoLEUrPTQrZy5ieXRlTGVuZ3RofSkpLEkuc2l6ZT1FLGU9QSxCPUl9LGk9MCx0PWcubGVuZ3RoLGU9MDtpPHQ7aSsrKUUoZSxCKTt2YXIgbz1obi5tZGF0KFEpO3JldHVybiBQbyhobi5tb29mKFtBXSksbyl9fSx7a2V5OiJfcmVtdXhBdWRpbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLmF1ZGlvVHJhY2ssZz1uZXcgVWludDhBcnJheShBLnNhbXBsZXMucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuc2l6ZX0pLDApKTtBLnNhbXBsZXMucmVkdWNlKChmdW5jdGlvbihBLEkpe3JldHVybiBnLnNldChJLmRhdGEsQSksQStJLnNpemV9KSwwKTt2YXIgST1obi5tZGF0KGcpO3JldHVybiBQbyhobi5tb29mKFtBXSksSSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZpZGVvVHJhY2sucmVzZXQoKSx0aGlzLmF1ZGlvVHJhY2sucmVzZXQoKX19XSksQX0oKTtmdW5jdGlvbiBmbihBLGcsSSl7cmV0dXJuIGc9bG4oZyksZnVuY3Rpb24oQSxnKXtpZihnJiYoIm9iamVjdCI9PXR5cGVvZiBnfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIEF9KEEpfShBLFJuKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZyxJfHxbXSxsbihBKS5jb25zdHJ1Y3Rvcik6Zy5hcHBseShBLEkpKX1mdW5jdGlvbiB1bihBLGcpe2lmKCEoQSBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHduKEEsZyl7Zm9yKHZhciBJPTA7STxnLmxlbmd0aDtJKyspe3ZhciBCPWdbSV07Qi5lbnVtZXJhYmxlPUIuZW51bWVyYWJsZXx8ITEsQi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEImJihCLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxTbihCLmtleSksQil9fWZ1bmN0aW9uIGRuKEEsZyxJKXtyZXR1cm4gZyYmd24oQS5wcm90b3R5cGUsZyksSSYmd24oQSxJKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxBfWZ1bmN0aW9uIEZuKCl7cmV0dXJuIEZuPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1mdW5jdGlvbihBLGcpe2Zvcig7IXt9Lmhhc093blByb3BlcnR5LmNhbGwoQSxnKSYmbnVsbCE9PShBPWxuKEEpKTspO3JldHVybiBBfShBLGcpO2lmKEIpe3ZhciBRPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoQixnKTtyZXR1cm4gUS5nZXQ/US5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/QTpJKTpRLnZhbHVlfX0sRm4uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGxuKEEpe3JldHVybihsbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihBKXtyZXR1cm4gQS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihBKX0pKEEpfWZ1bmN0aW9uIEduKEEsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlVuKEEsZyl9ZnVuY3Rpb24gUm4oKXt0cnl7dmFyIEE9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2goZyl7fXJldHVybihSbj1mdW5jdGlvbigpe3JldHVybiEhQX0pKCl9ZnVuY3Rpb24gVW4oQSxnKXtyZXR1cm4oVW49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gQS5fX3Byb3RvX189ZyxBfSkoQSxnKX1mdW5jdGlvbiBrbihBLGcsSSxCKXt2YXIgUT1GbihsbigxJkI/QS5wcm90b3R5cGU6QSksZyxJKTtyZXR1cm4gMiZCJiYiZnVuY3Rpb24iPT10eXBlb2YgUT9mdW5jdGlvbihBKXtyZXR1cm4gUS5hcHBseShJLEEpfTpRfWZ1bmN0aW9uIFNuKEEpe3ZhciBnPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHwhQSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShBLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGc/ZzpnKyIifWZ1bmN0aW9uIE5uKEEpe3JldHVybihObj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3JldHVybiBBJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZBLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZBIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgQX0pKEEpfXZhciBNbj1PSSxZbj1nLEhuPUdFLHBuPWgsSm49aixMbj1TQSx2bj1XZSxLbj1TRSxtbj1YZSx4bj1vQSxxbj1GQSgiaXNDb25jYXRTcHJlYWRhYmxlIiksYm49OTAwNzE5OTI1NDc0MDk5MSxUbj0iTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkIixPbj14bj49NTF8fCFZbigoZnVuY3Rpb24oKXt2YXIgQT1bXTtyZXR1cm4gQVtxbl09ITEsQS5jb25jYXQoKVswXSE9PUF9KSksV249bW4oImNvbmNhdCIpLFpuPWZ1bmN0aW9uKEEpe2lmKCFwbihBKSlyZXR1cm4hMTt2YXIgZz1BW3FuXTtyZXR1cm4gdm9pZCAwIT09Zz8hIWc6SG4oQSl9O01uKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IU9ufHwhV259LHtjb25jYXQ6ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQyxFPUpuKHRoaXMpLGk9S24oRSwwKSx0PTA7Zm9yKGc9LTEsQj1hcmd1bWVudHMubGVuZ3RoO2c8QjtnKyspaWYoWm4oQz0tMT09PWc/RTphcmd1bWVudHNbZ10pKXtpZih0KyhRPUxuKEMubGVuZ3RoKSk+Ym4pdGhyb3cgVHlwZUVycm9yKFRuKTtmb3IoST0wO0k8UTtJKyssdCsrKUkgaW4gQyYmdm4oaSx0LENbSV0pfWVsc2V7aWYodD49Ym4pdGhyb3cgVHlwZUVycm9yKFRuKTt2bihpLHQrKyxDKX1yZXR1cm4gaS5sZW5ndGg9dCxpfX0pO3ZhciBqbj1PSSxQbj1vLFhuPVtdLmpvaW4sVm49RSE9T2JqZWN0LHpuPVV0KCJqb2luIiwiLCIpO2puKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6Vm58fCF6bn0se2pvaW46ZnVuY3Rpb24oQSl7cmV0dXJuIFhuLmNhbGwoUG4odGhpcyksdm9pZCAwPT09QT8iLCI6QSl9fSk7dmFyIF9uPU9JLCRuPUhBLEFyPVJBLGdyPVNBLElyPWosQnI9U0UsUXI9V2UsQ3I9WGUoInNwbGljZSIpLEVyPU1hdGgubWF4LGlyPU1hdGgubWluO19uKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IUNyfSx7c3BsaWNlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRLEMsRSxpLHQ9SXIodGhpcyksZT1ncih0Lmxlbmd0aCksbz0kbihBLGUpLG49YXJndW1lbnRzLmxlbmd0aDtpZigwPT09bj9JPUI9MDoxPT09bj8oST0wLEI9ZS1vKTooST1uLTIsQj1pcihFcihBcihnKSwwKSxlLW8pKSxlK0ktQj45MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBleGNlZWRlZCIpO2ZvcihRPUJyKHQsQiksQz0wO0M8QjtDKyspKEU9bytDKWluIHQmJlFyKFEsQyx0W0VdKTtpZihRLmxlbmd0aD1CLEk8Qil7Zm9yKEM9bztDPGUtQjtDKyspaT1DK0ksKEU9QytCKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPWU7Qz5lLUIrSTtDLS0pZGVsZXRlIHRbQy0xXX1lbHNlIGlmKEk+Qilmb3IoQz1lLUI7Qz5vO0MtLSlpPUMrSS0xLChFPUMrQi0xKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPTA7QzxJO0MrKyl0W0Mrb109YXJndW1lbnRzW0MrMl07cmV0dXJuIHQubGVuZ3RoPWUtQitJLFF9fSk7dmFyIHRyPWwsZXI9ZnVuY3Rpb24oKXt2YXIgQT10cih0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LG9yPWFJLG5yPWwscnI9Zyxhcj1lcixzcj0idG9TdHJpbmciLGNyPVJlZ0V4cC5wcm90b3R5cGUsaHI9Y3Jbc3JdLHlyPXJyKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9aHIuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxEcj1oci5uYW1lIT1zcjsoeXJ8fERyKSYmb3IoUmVnRXhwLnByb3RvdHlwZSxzciwoZnVuY3Rpb24oKXt2YXIgQT1ucih0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gY3IpP2FyLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSkscGkoIkZsb2F0MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxwaSgiRmxvYXQ2NCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLHBpKCJJbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSkscGkoIkludDE2IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSkscGkoIkludDMyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSkscGkoIlVpbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSwhMCkscGkoIlVpbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLHBpKCJVaW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTtmb3IodmFyIGZyPWZ1bmN0aW9uKCl7cmV0dXJuIGRuKChmdW5jdGlvbiBBKCl7dW4odGhpcyxBKX0pLFt7a2V5OiJtaXhJbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxBKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBPYmplY3QuYXNzaWduKEEsdGhpcyksQX19XSxbe2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO3JldHVybiBmdW5jdGlvbihBLGcsSSl7aWYoUm4oKSlyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3QuYXBwbHkobnVsbCxhcmd1bWVudHMpO3ZhciBCPVtudWxsXTtCLnB1c2guYXBwbHkoQixnKTt2YXIgUT1uZXcoQS5iaW5kLmFwcGx5KEEsQikpO3JldHVybiBJJiZVbihRLEkucHJvdG90eXBlKSxRfSh0aGlzLGcpfX1dKX0oKSx1cj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7dmFyIEEsST1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sQj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCpJLmxlbmd0aDt1bih0aGlzLGcpLEE9Zm4odGhpcyxnKTt2YXIgUT1JO2lmKFEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKFE9bmV3IFVpbnQ4QXJyYXkoUSkpLChRIGluc3RhbmNlb2YgSW50OEFycmF5fHxRIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fFEgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHxRIGluc3RhbmNlb2YgVWludDE2QXJyYXl8fFEgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHxRIGluc3RhbmNlb2YgVWludDMyQXJyYXl8fFEgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fFEgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYoUT1uZXcgVWludDhBcnJheShRLmJ1ZmZlcixRLmJ5dGVPZmZzZXQsUS5ieXRlTGVuZ3RoKSksUSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgQz1RLmJ5dGVMZW5ndGgsRT1bXSxpPTA7aTxDO2krPTEpRVtpPj4+Ml18PVFbaV08PDI0LWklNCo4O0Eud29yZHM9RSxBLnNpZ0J5dGVzPUN9ZWxzZSBBLndvcmRzPUksQS5zaWdCeXRlcz1CO3JldHVybiBBfXJldHVybiBHbihnLEEpLGRuKGcsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d3IpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgQz0wO0M8UTtDKz0xKXt2YXIgRT1JW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NTtnW0IrQz4+PjJdfD1FPDwyNC0oQitDKSU0Kjh9ZWxzZSBmb3IodmFyIGk9MDtpPFE7aSs9NClnW0IraT4+PjJdPUlbaT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1rbihnLCJjbG9uZSIsdGhpcywxKS5jYWxsKHRoaXMpO3JldHVybiBBLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksQX19XSxbe2tleToicmFuZG9tIix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIEksQj1bXSxRPWZ1bmN0aW9uKEEpe3ZhciBnPUEsST05ODc2NTQzMjEsQj00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBBPSgoST0zNjk2OSooNjU1MzUmSSkrKEk+PjE2KSZCKTw8MTYpKyhnPTE4ZTMqKDY1NTM1JmcpKyhnPj4xNikmQikmQjtyZXR1cm4gQS89NDI5NDk2NzI5NiwoQSs9LjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0sQz0wO0M8QTtDKz00KXt2YXIgRT1RKDQyOTQ5NjcyOTYqKEl8fE1hdGgucmFuZG9tKCkpKTtJPTk4NzY1NDA3MSpFKCksQi5wdXNoKDQyOTQ5NjcyOTYqRSgpfDApfXJldHVybiBuZXcgZyhCLEEpfX1dKX0oZnIpLHdyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEud29yZHMsST1BLnNpZ0J5dGVzLEI9W10sUT0wO1E8STtRKz0xKXt2YXIgQz1nW1E+Pj4yXT4+PjI0LVElNCo4JjI1NTtCLnB1c2goKEM+Pj40KS50b1N0cmluZygxNikpLEIucHVzaCgoMTUmQykudG9TdHJpbmcoMTYpKX1yZXR1cm4gQi5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEubGVuZ3RoLEk9W10sQj0wO0I8ZztCKz0yKUlbQj4+PjNdfD1wYXJzZUludChBLnN1YnN0cihCLDIpLDE2KTw8MjQtQiU4KjQ7cmV0dXJuIG5ldyB1cihJLGcvMil9fSxkcj1mdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTEpSVtCPj4+Ml18PSgyNTUmQS5jaGFyQ29kZUF0KEIpKTw8MjQtQiU0Kjg7cmV0dXJuIG5ldyB1cihJLGcpfSxGcj1mdW5jdGlvbihBKXtyZXR1cm4gZHIodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEEpKSl9LGxyPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoKXt2YXIgQTtyZXR1cm4gdW4odGhpcyxnKSwoQT1mbih0aGlzLGcpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgdXIsdGhpcy5fbkRhdGFCeXRlcz0wfX0se2tleToiX2FwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9QTsic3RyaW5nIj09dHlwZW9mIGcmJihnPUZyKGcpKSx0aGlzLl9kYXRhLmNvbmNhdChnKSx0aGlzLl9uRGF0YUJ5dGVzKz1nLnNpZ0J5dGVzfX0se2tleToiX3Byb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnLEk9dGhpcy5fZGF0YSxCPXRoaXMuYmxvY2tTaXplLFE9SS53b3JkcyxDPUkuc2lnQnl0ZXMsRT1DLyg0KkIpLGk9KEU9QT9NYXRoLmNlaWwoRSk6TWF0aC5tYXgoKDB8RSktdGhpcy5fbWluQnVmZmVyU2l6ZSwwKSkqQix0PU1hdGgubWluKDQqaSxDKTtpZihpKXtmb3IodmFyIGU9MDtlPGk7ZSs9Qil0aGlzLl9kb1Byb2Nlc3NCbG9jayhRLGUpO2c9US5zcGxpY2UoMCxpKSxJLnNpZ0J5dGVzLT10fXJldHVybiBuZXcgdXIoZyx0KX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPWtuKGcsImNsb25lIix0aGlzLDEpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLEF9fV0pfShmciksR3I9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZyhBKXt2YXIgSTtyZXR1cm4gdW4odGhpcyxnKSwoST1mbih0aGlzLGcpKS5ibG9ja1NpemU9MTYsSS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsQSksSS5yZXNldCgpLEl9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7a24oZywicmVzZXQiLHRoaXMsMSkuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9hcHBlbmQoQSksdGhpcy5fcHJvY2VzcygpLHRoaXN9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3JldHVybiBuZXcgQShJKS5maW5hbGl6ZShnKX19fSx7a2V5OiJfY3JlYXRlSG1hY0hlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyBScihBLEkpLmZpbmFsaXplKGcpfX19XSl9KGxyKSxScj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEsSSl7dmFyIEI7dW4odGhpcyxnKSxCPWZuKHRoaXMsZyk7dmFyIFE9bmV3IEE7Qi5faGFzaGVyPVE7dmFyIEM9STsic3RyaW5nIj09dHlwZW9mIEMmJihDPUZyKEMpKTt2YXIgRT1RLmJsb2NrU2l6ZSxpPTQqRTtDLnNpZ0J5dGVzPmkmJihDPVEuZmluYWxpemUoSSkpLEMuY2xhbXAoKTt2YXIgdD1DLmNsb25lKCk7Qi5fb0tleT10O3ZhciBlPUMuY2xvbmUoKTtCLl9pS2V5PWU7Zm9yKHZhciBvPXQud29yZHMsbj1lLndvcmRzLHI9MDtyPEU7cis9MSlvW3JdXj0xNTQ5NTU2ODI4LG5bcl1ePTkwOTUyMjQ4NjtyZXR1cm4gdC5zaWdCeXRlcz1pLGUuc2lnQnl0ZXM9aSxCLnJlc2V0KCksQn1yZXR1cm4gR24oZyxBKSxkbihnLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKX0oZnIpLFVyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7dmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj10aGlzLl9tYXA7QS5jbGFtcCgpO2Zvcih2YXIgUT1bXSxDPTA7QzxJO0MrPTMpZm9yKHZhciBFPShnW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NSk8PDE2fChnW0MrMT4+PjJdPj4+MjQtKEMrMSklNCo4JjI1NSk8PDh8Z1tDKzI+Pj4yXT4+PjI0LShDKzIpJTQqOCYyNTUsaT0wO2k8NCYmQysuNzUqaTxJO2krPTEpUS5wdXNoKEIuY2hhckF0KEU+Pj42KigzLWkpJjYzKSk7dmFyIHQ9Qi5jaGFyQXQoNjQpO2lmKHQpZm9yKDtRLmxlbmd0aCU0OylRLnB1c2godCk7cmV0dXJuIFEuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEEpe3ZhciBnPUEubGVuZ3RoLEk9dGhpcy5fbWFwLEI9dGhpcy5fcmV2ZXJzZU1hcDtpZighQil7dGhpcy5fcmV2ZXJzZU1hcD1bXSxCPXRoaXMuX3JldmVyc2VNYXA7Zm9yKHZhciBRPTA7UTxJLmxlbmd0aDtRKz0xKUJbSS5jaGFyQ29kZUF0KFEpXT1RfXZhciBDPUkuY2hhckF0KDY0KTtpZihDKXt2YXIgRT1BLmluZGV4T2YoQyk7LTEhPT1FJiYoZz1FKX1yZXR1cm4gZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1bXSxRPTAsQz0wO0M8ZztDKz0xKWlmKEMlNCl7dmFyIEU9SVtBLmNoYXJDb2RlQXQoQy0xKV08PEMlNCoyfElbQS5jaGFyQ29kZUF0KEMpXT4+PjYtQyU0KjI7QltRPj4+Ml18PUU8PDI0LVElNCo4LFErPTF9cmV0dXJuIHVyLmNyZWF0ZShCLFEpfShBLGcsQil9LF9tYXA6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89In0sa3I9W10sU3I9MDtTcjw2NDtTcis9MSlrcltTcl09NDI5NDk2NzI5NipNYXRoLmFicyhNYXRoLnNpbihTcisxKSl8MDt2YXIgTnI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZJfH5nJkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sTXI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZCfEkmfkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sWXI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZ15JXkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sSHI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoSV4oZ3x+QikpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30scHI9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3JldHVybiB1bih0aGlzLGcpLGZuKHRoaXMsZyxhcmd1bWVudHMpfXJldHVybiBHbihnLEEpLGRuKGcsW3trZXk6Il9kb1Jlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IHVyKFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX19LHtrZXk6Il9kb1Byb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9QSxCPTA7QjwxNjtCKz0xKXt2YXIgUT1nK0IsQz1BW1FdO0lbUV09MTY3MTE5MzUmKEM8PDh8Qz4+PjI0KXw0Mjc4MjU1MzYwJihDPDwyNHxDPj4+OCl9dmFyIEU9dGhpcy5faGFzaC53b3JkcyxpPUlbZyswXSx0PUlbZysxXSxlPUlbZysyXSxvPUlbZyszXSxuPUlbZys0XSxyPUlbZys1XSxhPUlbZys2XSxzPUlbZys3XSxjPUlbZys4XSxoPUlbZys5XSx5PUlbZysxMF0sRD1JW2crMTFdLGY9SVtnKzEyXSx1PUlbZysxM10sdz1JW2crMTRdLGQ9SVtnKzE1XSxGPUVbMF0sbD1FWzFdLEc9RVsyXSxSPUVbM107Rj1OcihGLGwsRyxSLGksNyxrclswXSksUj1OcihSLEYsbCxHLHQsMTIsa3JbMV0pLEc9TnIoRyxSLEYsbCxlLDE3LGtyWzJdKSxsPU5yKGwsRyxSLEYsbywyMixrclszXSksRj1OcihGLGwsRyxSLG4sNyxrcls0XSksUj1OcihSLEYsbCxHLHIsMTIsa3JbNV0pLEc9TnIoRyxSLEYsbCxhLDE3LGtyWzZdKSxsPU5yKGwsRyxSLEYscywyMixrcls3XSksRj1OcihGLGwsRyxSLGMsNyxrcls4XSksUj1OcihSLEYsbCxHLGgsMTIsa3JbOV0pLEc9TnIoRyxSLEYsbCx5LDE3LGtyWzEwXSksbD1OcihsLEcsUixGLEQsMjIsa3JbMTFdKSxGPU5yKEYsbCxHLFIsZiw3LGtyWzEyXSksUj1OcihSLEYsbCxHLHUsMTIsa3JbMTNdKSxHPU5yKEcsUixGLGwsdywxNyxrclsxNF0pLGw9TnIobCxHLFIsRixkLDIyLGtyWzE1XSksRj1NcihGLGwsRyxSLHQsNSxrclsxNl0pLFI9TXIoUixGLGwsRyxhLDksa3JbMTddKSxHPU1yKEcsUixGLGwsRCwxNCxrclsxOF0pLGw9TXIobCxHLFIsRixpLDIwLGtyWzE5XSksRj1NcihGLGwsRyxSLHIsNSxrclsyMF0pLFI9TXIoUixGLGwsRyx5LDksa3JbMjFdKSxHPU1yKEcsUixGLGwsZCwxNCxrclsyMl0pLGw9TXIobCxHLFIsRixuLDIwLGtyWzIzXSksRj1NcihGLGwsRyxSLGgsNSxrclsyNF0pLFI9TXIoUixGLGwsRyx3LDksa3JbMjVdKSxHPU1yKEcsUixGLGwsbywxNCxrclsyNl0pLGw9TXIobCxHLFIsRixjLDIwLGtyWzI3XSksRj1NcihGLGwsRyxSLHUsNSxrclsyOF0pLFI9TXIoUixGLGwsRyxlLDksa3JbMjldKSxHPU1yKEcsUixGLGwscywxNCxrclszMF0pLGw9TXIobCxHLFIsRixmLDIwLGtyWzMxXSksRj1ZcihGLGwsRyxSLHIsNCxrclszMl0pLFI9WXIoUixGLGwsRyxjLDExLGtyWzMzXSksRz1ZcihHLFIsRixsLEQsMTYsa3JbMzRdKSxsPVlyKGwsRyxSLEYsdywyMyxrclszNV0pLEY9WXIoRixsLEcsUix0LDQsa3JbMzZdKSxSPVlyKFIsRixsLEcsbiwxMSxrclszN10pLEc9WXIoRyxSLEYsbCxzLDE2LGtyWzM4XSksbD1ZcihsLEcsUixGLHksMjMsa3JbMzldKSxGPVlyKEYsbCxHLFIsdSw0LGtyWzQwXSksUj1ZcihSLEYsbCxHLGksMTEsa3JbNDFdKSxHPVlyKEcsUixGLGwsbywxNixrcls0Ml0pLGw9WXIobCxHLFIsRixhLDIzLGtyWzQzXSksRj1ZcihGLGwsRyxSLGgsNCxrcls0NF0pLFI9WXIoUixGLGwsRyxmLDExLGtyWzQ1XSksRz1ZcihHLFIsRixsLGQsMTYsa3JbNDZdKSxsPVlyKGwsRyxSLEYsZSwyMyxrcls0N10pLEY9SHIoRixsLEcsUixpLDYsa3JbNDhdKSxSPUhyKFIsRixsLEcscywxMCxrcls0OV0pLEc9SHIoRyxSLEYsbCx3LDE1LGtyWzUwXSksbD1IcihsLEcsUixGLHIsMjEsa3JbNTFdKSxGPUhyKEYsbCxHLFIsZiw2LGtyWzUyXSksUj1IcihSLEYsbCxHLG8sMTAsa3JbNTNdKSxHPUhyKEcsUixGLGwseSwxNSxrcls1NF0pLGw9SHIobCxHLFIsRix0LDIxLGtyWzU1XSksRj1IcihGLGwsRyxSLGMsNixrcls1Nl0pLFI9SHIoUixGLGwsRyxkLDEwLGtyWzU3XSksRz1IcihHLFIsRixsLGEsMTUsa3JbNThdKSxsPUhyKGwsRyxSLEYsdSwyMSxrcls1OV0pLEY9SHIoRixsLEcsUixuLDYsa3JbNjBdKSxSPUhyKFIsRixsLEcsRCwxMCxrcls2MV0pLEc9SHIoRyxSLEYsbCxlLDE1LGtyWzYyXSksbD1IcihsLEcsUixGLGgsMjEsa3JbNjNdKSxFWzBdPUVbMF0rRnwwLEVbMV09RVsxXStsfDAsRVsyXT1FWzJdK0d8MCxFWzNdPUVbM10rUnwwfX0se2tleToiX2RvRmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5fZGF0YSxnPUEud29yZHMsST04KnRoaXMuX25EYXRhQnl0ZXMsQj04KkEuc2lnQnl0ZXM7Z1tCPj4+NV18PTEyODw8MjQtQiUzMjt2YXIgUT1NYXRoLmZsb29yKEkvNDI5NDk2NzI5NiksQz1JO2dbMTUrKEIrNjQ+Pj45PDw0KV09MTY3MTE5MzUmKFE8PDh8UT4+PjI0KXw0Mjc4MjU1MzYwJihRPDwyNHxRPj4+OCksZ1sxNCsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KSxBLnNpZ0J5dGVzPTQqKGcubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIEU9dGhpcy5faGFzaCxpPUUud29yZHMsdD0wO3Q8NDt0Kz0xKXt2YXIgZT1pW3RdO2lbdF09MTY3MTE5MzUmKGU8PDh8ZT4+PjI0KXw0Mjc4MjU1MzYwJihlPDwyNHxlPj4+OCl9cmV0dXJuIEV9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1rbihnLCJjbG9uZSIsdGhpcywxKS5jYWxsKHRoaXMpO3JldHVybiBBLl9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSxBfX1dKX0oR3IpO0dyLl9jcmVhdGVIZWxwZXIocHIpLEdyLl9jcmVhdGVIbWFjSGVscGVyKHByKTt2YXIgSnI9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZyhBKXt2YXIgSTtyZXR1cm4gdW4odGhpcyxnKSwoST1mbih0aGlzLGcpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIse2tleVNpemU6NCxoYXNoZXI6cHIsaXRlcmF0aW9uczoxfSxBKSxJfXJldHVybiBHbihnLEEpLGRuKGcsW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxDPXVyLmNyZWF0ZSgpLEU9Qy53b3JkcyxpPUIua2V5U2l6ZSx0PUIuaXRlcmF0aW9ucztFLmxlbmd0aDxpOyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTx0O2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtDLmNvbmNhdChJKX1yZXR1cm4gQy5zaWdCeXRlcz00KmksQ319XSl9KGZyKSxMcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEsSSxCKXt2YXIgUTtyZXR1cm4gdW4odGhpcyxnKSwoUT1mbih0aGlzLGcpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsQiksUS5feGZvcm1Nb2RlPUEsUS5fa2V5PUksUS5yZXNldCgpLFF9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7a24oZywicmVzZXQiLHRoaXMsMSkuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9fSx7a2V5OiJwcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fYXBwZW5kKEEpLHRoaXMuX3Byb2Nlc3MoKX19LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQSYmdGhpcy5fYXBwZW5kKEEpLHRoaXMuX2RvRmluYWxpemUoKX19XSxbe2tleToiY3JlYXRlRW5jcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9FTkNfWEZPUk1fTU9ERSxBLGcpfX0se2tleToiY3JlYXRlRGVjcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLmNyZWF0ZSh0aGlzLl9ERUNfWEZPUk1fTU9ERSxBLGcpfX0se2tleToiX2NyZWF0ZUhlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9ZnVuY3Rpb24oQSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBBP1pyOk9yfTtyZXR1cm57ZW5jcnlwdDpmdW5jdGlvbihJLEIsUSl7cmV0dXJuIGcoQikuZW5jcnlwdChBLEksQixRKX0sZGVjcnlwdDpmdW5jdGlvbihJLEIsUSl7cmV0dXJuIGcoQikuZGVjcnlwdChBLEksQixRKX19fX1dKX0obHIpO0xyLl9FTkNfWEZPUk1fTU9ERT0xLExyLl9ERUNfWEZPUk1fTU9ERT0yLExyLmtleVNpemU9NCxMci5pdlNpemU9NDt2YXIgdnI9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZyhBLEkpe3ZhciBCO3JldHVybiB1bih0aGlzLGcpLChCPWZuKHRoaXMsZykpLl9jaXBoZXI9QSxCLl9pdj1JLEJ9cmV0dXJuIEduKGcsQSksZG4oZyxudWxsLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZShBLGcpfX0se2tleToiY3JlYXRlRGVjcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUoQSxnKX19XSl9KGZyKTtmdW5jdGlvbiBLcihBLGcsSSl7dmFyIEIsUT1BLEM9dGhpcy5faXY7Qz8oQj1DLHRoaXMuX2l2PXZvaWQgMCk6Qj10aGlzLl9wcmV2QmxvY2s7Zm9yKHZhciBFPTA7RTxJO0UrPTEpUVtnK0VdXj1CW0VdfXZhciBtcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyl9KHZyKTttci5FbmNyeXB0b3I9ZnVuY3Rpb24oQSl7ZnVuY3Rpb24gZygpe3JldHVybiB1bih0aGlzLGcpLGZuKHRoaXMsZyxhcmd1bWVudHMpfXJldHVybiBHbihnLEEpLGRuKGcsW3trZXk6InByb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLl9jaXBoZXIsQj1JLmJsb2NrU2l6ZTtLci5jYWxsKHRoaXMsQSxnLEIpLEkuZW5jcnlwdEJsb2NrKEEsZyksdGhpcy5fcHJldkJsb2NrPUEuc2xpY2UoZyxnK0IpfX1dKX0obXIpLG1yLkRlY3J5cHRvcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSxLci5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKX0obXIpO3ZhciB4cj17cGFkOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTQqZyxCPUktQS5zaWdCeXRlcyVJLFE9Qjw8MjR8Qjw8MTZ8Qjw8OHxCLEM9W10sRT0wO0U8QjtFKz00KUMucHVzaChRKTt2YXIgaT11ci5jcmVhdGUoQyxCKTtBLmNvbmNhdChpKX0sdW5wYWQ6ZnVuY3Rpb24oQSl7dmFyIGc9QSxJPTI1NSZnLndvcmRzW2cuc2lnQnl0ZXMtMT4+PjJdO2cuc2lnQnl0ZXMtPUl9fSxxcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKEEsSSxCKXt2YXIgUTtyZXR1cm4gdW4odGhpcyxnKSwoUT1mbih0aGlzLGcsW0EsSSxPYmplY3QuYXNzaWduKHttb2RlOm1yLHBhZGRpbmc6eHJ9LEIpXSkpLmJsb2NrU2l6ZT00LFF9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7a24oZywicmVzZXQiLHRoaXMsMSkuY2FsbCh0aGlzKTt2YXIgST10aGlzLmNmZyxCPUkuaXYsUT1JLm1vZGU7dGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/QT1RLmNyZWF0ZUVuY3J5cHRvcjooQT1RLmNyZWF0ZURlY3J5cHRvcix0aGlzLl9taW5CdWZmZXJTaXplPTEpLHRoaXMuX21vZGU9QS5jYWxsKFEsdGhpcyxCJiZCLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1BfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKEEsZyl9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQSxnPXRoaXMuY2ZnLnBhZGRpbmc7cmV0dXJuIHRoaXMuX3hmb3JtTW9kZT09PXRoaXMuY29uc3RydWN0b3IuX0VOQ19YRk9STV9NT0RFPyhnLnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKSxBPXRoaXMuX3Byb2Nlc3MoITApKTooQT10aGlzLl9wcm9jZXNzKCEwKSxnLnVucGFkKEEpKSxBfX1dKX0oTHIpLGJyPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoQSl7dmFyIEk7cmV0dXJuIHVuKHRoaXMsZyksKEk9Zm4odGhpcyxnKSkubWl4SW4oQSksSX1yZXR1cm4gR24oZyxBKSxkbihnLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pfShmciksVHI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLmNpcGhlcnRleHQsST1BLnNhbHQ7cmV0dXJuKEk/dXIuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoSSkuY29uY2F0KGcpOmcpLnRvU3RyaW5nKFVyKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGcsST1Vci5wYXJzZShBKSxCPUkud29yZHM7cmV0dXJuIDEzOTg4OTM2ODQ9PT1CWzBdJiYxNzAxMDc2ODMxPT09QlsxXSYmKGc9dXIuY3JlYXRlKEIuc2xpY2UoMiw0KSksQi5zcGxpY2UoMCw0KSxJLnNpZ0J5dGVzLT0xNiksYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0Okksc2FsdDpnfSl9fSxPcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyxudWxsLFt7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1PYmplY3QuYXNzaWduKG5ldyBmcix0aGlzLmNmZyxCKSxDPUEuY3JlYXRlRW5jcnlwdG9yKEksUSksRT1DLmZpbmFsaXplKGcpLGk9Qy5jZmc7cmV0dXJuIGJyLmNyZWF0ZSh7Y2lwaGVydGV4dDpFLGtleTpJLGl2OmkuaXYsYWxnb3JpdGhtOkEsbW9kZTppLm1vZGUscGFkZGluZzppLnBhZGRpbmcsYmxvY2tTaXplOkMuYmxvY2tTaXplLGZvcm1hdHRlcjpRLmZvcm1hdH0pfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ZyxDPU9iamVjdC5hc3NpZ24obmV3IGZyLHRoaXMuY2ZnLEIpO3JldHVybiBRPXRoaXMuX3BhcnNlKFEsQy5mb3JtYXQpLEEuY3JlYXRlRGVjcnlwdG9yKEksQykuZmluYWxpemUoUS5jaXBoZXJ0ZXh0KX19LHtrZXk6Il9wYXJzZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/Zy5wYXJzZShBLHRoaXMpOkF9fV0pfShmcik7T3IuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGZyLHtmb3JtYXQ6VHJ9KTt2YXIgV3I9e2V4ZWN1dGU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9QjtRfHwoUT11ci5yYW5kb20oOCkpO3ZhciBDPUpyLmNyZWF0ZSh7a2V5U2l6ZTpnK0l9KS5jb21wdXRlKEEsUSksRT11ci5jcmVhdGUoQy53b3Jkcy5zbGljZShnKSw0KkkpO3JldHVybiBDLnNpZ0J5dGVzPTQqZyxici5jcmVhdGUoe2tleTpDLGl2OkUsc2FsdDpRfSl9fSxacj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyxudWxsLFt7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1PYmplY3QuYXNzaWduKG5ldyBmcix0aGlzLmNmZyxCKSxDPVEua2RmLmV4ZWN1dGUoSSxBLmtleVNpemUsQS5pdlNpemUpO1EuaXY9Qy5pdjt2YXIgRT1Pci5lbmNyeXB0LmNhbGwodGhpcyxBLGcsQy5rZXksUSk7cmV0dXJuIEUubWl4SW4oQyksRX19LHtrZXk6ImRlY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPWcsQz1PYmplY3QuYXNzaWduKG5ldyBmcix0aGlzLmNmZyxCKTtRPXRoaXMuX3BhcnNlKFEsQy5mb3JtYXQpO3ZhciBFPUMua2RmLmV4ZWN1dGUoSSxBLmtleVNpemUsQS5pdlNpemUsUS5zYWx0KTtyZXR1cm4gQy5pdj1FLml2LE9yLmRlY3J5cHQuY2FsbCh0aGlzLEEsUSxFLmtleSxDKX19XSl9KE9yKTtaci5jZmc9T2JqZWN0LmFzc2lnbihPci5jZmcse2tkZjpXcn0pO2Zvcih2YXIganI9W10sUHI9W10sWHI9W10sVnI9W10senI9W10sX3I9W10sJHI9W10sQWE9W10sZ2E9W10sSWE9W10sQmE9W10sUWE9MDtRYTwyNTY7UWErPTEpQmFbUWFdPVFhPDEyOD9RYTw8MTpRYTw8MV4yODM7Zm9yKHZhciBDYT0wLEVhPTAsaWE9MDtpYTwyNTY7aWErPTEpe3ZhciB0YT1FYV5FYTw8MV5FYTw8Ml5FYTw8M15FYTw8NDt0YT10YT4+PjheMjU1JnRhXjk5LGpyW0NhXT10YSxQclt0YV09Q2E7dmFyIGVhPUJhW0NhXSxvYT1CYVtlYV0sbmE9QmFbb2FdLHJhPTI1NypCYVt0YV1eMTY4NDMwMDgqdGE7WHJbQ2FdPXJhPDwyNHxyYT4+PjgsVnJbQ2FdPXJhPDwxNnxyYT4+PjE2LHpyW0NhXT1yYTw8OHxyYT4+PjI0LF9yW0NhXT1yYSxyYT0xNjg0MzAwOSpuYV42NTUzNypvYV4yNTcqZWFeMTY4NDMwMDgqQ2EsJHJbdGFdPXJhPDwyNHxyYT4+PjgsQWFbdGFdPXJhPDwxNnxyYT4+PjE2LGdhW3RhXT1yYTw8OHxyYT4+PjI0LElhW3RhXT1yYSxDYT8oQ2E9ZWFeQmFbQmFbQmFbbmFeZWFdXV0sRWFePUJhW0JhW0VhXV0pOkNhPUVhPTF9dmFyIGFhPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxzYT1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBDPXRoaXMuX2tleVNjaGVkdWxlLEU9MDtFPFE7RSs9MSlFPEI/Q1tFXT1JW0VdOihBPUNbRS0xXSxFJUI/Qj42JiZFJUI9PTQmJihBPWpyW0E+Pj4yNF08PDI0fGpyW0E+Pj4xNiYyNTVdPDwxNnxqcltBPj4+OCYyNTVdPDw4fGpyWzI1NSZBXSk6KEE9anJbKEE9QTw8OHxBPj4+MjQpPj4+MjRdPDwyNHxqcltBPj4+MTYmMjU1XTw8MTZ8anJbQT4+PjgmMjU1XTw8OHxqclsyNTUmQV0sQV49YWFbRS9CfDBdPDwyNCksQ1tFXT1DW0UtQl1eQSk7dGhpcy5faW52S2V5U2NoZWR1bGU9W107Zm9yKHZhciBpPXRoaXMuX2ludktleVNjaGVkdWxlLHQ9MDt0PFE7dCs9MSl7dmFyIGU9US10O0E9dCU0P0NbZV06Q1tlLTRdLGlbdF09dDw0fHxlPD00P0E6JHJbanJbQT4+PjI0XV1eQWFbanJbQT4+PjE2JjI1NV1dXmdhW2pyW0E+Pj44JjI1NV1dXklhW2pyWzI1NSZBXV19fX19LHtrZXk6ImVuY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt0aGlzLl9kb0NyeXB0QmxvY2soQSxnLHRoaXMuX2tleVNjaGVkdWxlLFhyLFZyLHpyLF9yLGpyKX19LHtrZXk6ImRlY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST1BLEI9SVtnKzFdO0lbZysxXT1JW2crM10sSVtnKzNdPUIsdGhpcy5fZG9DcnlwdEJsb2NrKEksZyx0aGlzLl9pbnZLZXlTY2hlZHVsZSwkcixBYSxnYSxJYSxQciksQj1JW2crMV0sSVtnKzFdPUlbZyszXSxJW2crM109Qn19LHtrZXk6Il9kb0NyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIsUSxDLEUsaSl7Zm9yKHZhciB0PUEsZT10aGlzLl9uUm91bmRzLG89dFtnXV5JWzBdLG49dFtnKzFdXklbMV0scj10W2crMl1eSVsyXSxhPXRbZyszXV5JWzNdLHM9NCxjPTE7YzxlO2MrPTEpe3ZhciBoPUJbbz4+PjI0XV5RW24+Pj4xNiYyNTVdXkNbcj4+PjgmMjU1XV5FWzI1NSZhXV5JW3NdO3MrPTE7dmFyIHk9QltuPj4+MjRdXlFbcj4+PjE2JjI1NV1eQ1thPj4+OCYyNTVdXkVbMjU1Jm9dXklbc107cys9MTt2YXIgRD1CW3I+Pj4yNF1eUVthPj4+MTYmMjU1XV5DW28+Pj44JjI1NV1eRVsyNTUmbl1eSVtzXTtzKz0xO3ZhciBmPUJbYT4+PjI0XV5RW28+Pj4xNiYyNTVdXkNbbj4+PjgmMjU1XV5FWzI1NSZyXV5JW3NdO3MrPTEsbz1oLG49eSxyPUQsYT1mfXZhciB1PShpW28+Pj4yNF08PDI0fGlbbj4+PjE2JjI1NV08PDE2fGlbcj4+PjgmMjU1XTw8OHxpWzI1NSZhXSleSVtzXTtzKz0xO3ZhciB3PShpW24+Pj4yNF08PDI0fGlbcj4+PjE2JjI1NV08PDE2fGlbYT4+PjgmMjU1XTw8OHxpWzI1NSZvXSleSVtzXTtzKz0xO3ZhciBkPShpW3I+Pj4yNF08PDI0fGlbYT4+PjE2JjI1NV08PDE2fGlbbz4+PjgmMjU1XTw8OHxpWzI1NSZuXSleSVtzXTtzKz0xO3ZhciBGPShpW2E+Pj4yNF08PDI0fGlbbz4+PjE2JjI1NV08PDE2fGlbbj4+PjgmMjU1XTw8OHxpWzI1NSZyXSleSVtzXTtzKz0xLHRbZ109dSx0W2crMV09dyx0W2crMl09ZCx0W2crM109Rn19XSl9KHFyKTtzYS5rZXlTaXplPTg7dmFyIGNhPXFyLl9jcmVhdGVIZWxwZXIoc2EpLGhhPWZ1bmN0aW9uKEEpe2Z1bmN0aW9uIGcoKXtyZXR1cm4gdW4odGhpcyxnKSxmbih0aGlzLGcsYXJndW1lbnRzKX1yZXR1cm4gR24oZyxBKSxkbihnKX0odnIpO2hhLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtmdW5jdGlvbiBnKCl7cmV0dXJuIHVuKHRoaXMsZyksZm4odGhpcyxnLGFyZ3VtZW50cyl9cmV0dXJuIEduKGcsQSksZG4oZyxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPUEsQj10aGlzLl9jaXBoZXIsUT1CLmJsb2NrU2l6ZSxDPXRoaXMuX2l2LEU9dGhpcy5fY291bnRlcjtDJiYodGhpcy5fY291bnRlcj1DLnNsaWNlKDApLEU9dGhpcy5fY291bnRlcix0aGlzLl9pdj12b2lkIDApO3ZhciBpPUUuc2xpY2UoMCk7Qi5lbmNyeXB0QmxvY2soaSwwKSxFW1EtMV09RVtRLTFdKzF8MDtmb3IodmFyIHQ9MDt0PFE7dCs9MSlJW2crdF1ePWlbdF19fV0pfShoYSksaGEuRGVjcnlwdG9yPWhhLkVuY3J5cHRvcjt2YXIgeWE9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxEYT17ZGVjcnlwdFdvcmRBcnJheTpmdW5jdGlvbihBLGcsSSl7dmFyIEI9d3IucGFyc2UoZyksUT13ci5wYXJzZShnbihJKSksQz11ci5jcmVhdGUobmV3IFVpbnQ4QXJyYXkoQSkpLEU9Y2EuZGVjcnlwdChici5jcmVhdGUoe2NpcGhlcnRleHQ6Q30pLEIse2l2OlEsbW9kZTpoYSxwYWRkaW5nOnlhfSk7cmV0dXJuIERhLndvcmRBcnJheVRvVWludDhBcnJheShFKX0sd29yZEFycmF5VG9VaW50OEFycmF5OmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLnNpZ0J5dGVzLEk9QS53b3JkcyxCPW5ldyBVaW50OEFycmF5KGcpLFE9MCxDPTA7USE9PWc7KXt2YXIgRT1JW0MrK107aWYoQltRKytdPSg0Mjc4MTkwMDgwJkUpPj4+MjQsUT09PWcpYnJlYWs7aWYoQltRKytdPSgxNjcxMTY4MCZFKT4+PjE2LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oNjUyODAmRSk+Pj44LFE9PT1nKWJyZWFrO0JbUSsrXT0yNTUmRX1yZXR1cm4gQn0sZGVjb2RlckFFU0NUUkRhdGE6ZnVuY3Rpb24oQSxnLEkpe2lmKEEudmlkZW9TZW5jKXt2YXIgQj1BLmtpZFZhbHVlLFE9QS52aWRlb1NlbmM7QS5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKGcsQyl7dmFyIEU9UVtDXSxpPWcuZGF0YSx0PVtdLGU9W10sbz1FLkluaXRpYWxpemF0aW9uVmVjdG9yO2lmKEUuc3Vic2FtcGxlcyYmRS5zdWJzYW1wbGVzLmxlbmd0aClFLnN1YnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS5CeXRlc09mQ2xlYXJEYXRhK0EuQnl0ZXNPZlByb3RlY3RlZERhdGEsST1pLnNsaWNlKDAsZyk7dC5wdXNoKEkuc2xpY2UoMCxBLkJ5dGVzT2ZDbGVhckRhdGEpKSxlLnB1c2goSS5zbGljZShBLkJ5dGVzT2ZDbGVhckRhdGEpKSxpPWkuc2xpY2UoZyl9KSk7ZWxzZXt2YXIgbj1nLnNpemU7dC5wdXNoKGkuc2xpY2UoMCwwKSksZS5wdXNoKGkuc2xpY2UoMCxuKSksaT1pLnNsaWNlKG4pfXZhciByPW5ldyBzbjtyLndyaXRlLmFwcGx5KHIsZSk7dmFyIGE9ST9JKHIuYnVmZmVyLEIsbyk6RGEuZGVjcnlwdFdvcmRBcnJheShyLmJ1ZmZlcixCLG8pLHM9bmV3IHNuO3QuZm9yRWFjaCgoZnVuY3Rpb24oQSxnKXt2YXIgST1lW2ddLmxlbmd0aCxCPWEuc2xpY2UoMCxJKTtzLndyaXRlKEEpLHMud3JpdGUoQiksYT1hLnNsaWNlKEkpfSkpLEEuc2FtcGxlc1tDXS5kYXRhPXMuYnVmZmVyfSkpfWlmKGcuYXVkaW9TZW5jKXt2YXIgQz1nLmtpZFZhbHVlLEU9Zy5hdWRpb1NlbmM7Zy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEsQil7dmFyIFE9RVtCXSxpPUk/SShBLmRhdGEsQyxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTpEYS5kZWNyeXB0V29yZEFycmF5KEEuZGF0YSxDLFEuSW5pdGlhbGl6YXRpb25WZWN0b3IpO2cuc2FtcGxlc1tCXS5kYXRhPWl9KSl9fX0sZmE9aSx1YT0iW1x0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmZdIix3YT1SZWdFeHAoIl4iK3VhK3VhKyIqIiksZGE9UmVnRXhwKHVhK3VhKyIqJCIpLEZhPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgST1TdHJpbmcoZmEoZykpO3JldHVybiAxJkEmJihJPUkucmVwbGFjZSh3YSwiIikpLDImQSYmKEk9SS5yZXBsYWNlKGRhLCIiKSksSX19LGxhPXtzdGFydDpGYSgxKSxlbmQ6RmEoMiksdHJpbTpGYSgzKX0sR2E9cyxSYT1yLFVhPUxJLGthPWFJLFNhPVYsTmE9QixNYT14RSxZYT1SLEhhPWcscGE9Y2csSmE9c0kuZixMYT1XZy5mLHZhPWMuZixLYT1sYS50cmltLG1hPSJOdW1iZXIiLHhhPVJhW21hXSxxYT14YS5wcm90b3R5cGUsYmE9TmEocGEocWEpKT09bWEsVGE9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQyxFLGksdCxlPVlhKEEsITEpO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmZS5sZW5ndGg+MilpZig0Mz09PShnPShlPUthKGUpKS5jaGFyQ29kZUF0KDApKXx8NDU9PT1nKXtpZig4OD09PShJPWUuY2hhckNvZGVBdCgyKSl8fDEyMD09PUkpcmV0dXJuIE5hTn1lbHNlIGlmKDQ4PT09Zyl7c3dpdGNoKGUuY2hhckNvZGVBdCgxKSl7Y2FzZSA2NjpjYXNlIDk4OkI9MixRPTQ5O2JyZWFrO2Nhc2UgNzk6Y2FzZSAxMTE6Qj04LFE9NTU7YnJlYWs7ZGVmYXVsdDpyZXR1cm4rZX1mb3IoRT0oQz1lLnNsaWNlKDIpKS5sZW5ndGgsaT0wO2k8RTtpKyspaWYoKHQ9Qy5jaGFyQ29kZUF0KGkpKTw0OHx8dD5RKXJldHVybiBOYU47cmV0dXJuIHBhcnNlSW50KEMsQil9cmV0dXJuK2V9O2lmKFVhKG1hLCF4YSgiIDBvMSIpfHwheGEoIjBiMSIpfHx4YSgiKzB4MSIpKSl7Zm9yKHZhciBPYSxXYT1mdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPDE/MDpBLEk9dGhpcztyZXR1cm4gSSBpbnN0YW5jZW9mIFdhJiYoYmE/SGEoKGZ1bmN0aW9uKCl7cWEudmFsdWVPZi5jYWxsKEkpfSkpOk5hKEkpIT1tYSk/TWEobmV3IHhhKFRhKGcpKSxJLFdhKTpUYShnKX0sWmE9R2E/SmEoeGEpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlcixmcm9tU3RyaW5nLHJhbmdlIi5zcGxpdCgiLCIpLGphPTA7WmEubGVuZ3RoPmphO2phKyspU2EoeGEsT2E9WmFbamFdKSYmIVNhKFdhLE9hKSYmdmEoV2EsT2EsTGEoeGEsT2EpKTtXYS5wcm90b3R5cGU9cWEscWEuY29uc3RydWN0b3I9V2Esa2EoUmEsbWEsV2EpfXZhciBQYT11ZztPSSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtjb3B5V2l0aGluOm1pfSksUGEoImNvcHlXaXRoaW4iKTt2YXIgWGE9S0EuaW5jbHVkZXMsVmE9dWc7T0koe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuIFhhKHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksVmEoImluY2x1ZGVzIik7dmFyIHphLF9hLCRhLEFzPXIuUHJvbWlzZSxncz1sLElzPWwsQnM9c0UsUXM9U0EsQ3M9eUUsRXM9b0UsaXM9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gZ3MoZy5jYWxsKEEpKS52YWx1ZX0sdHM9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxlcz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksb3M9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksbnM9cixycz1nLGFzPXlFLHNzPSRBLGNzPXUsaHM9ZXMseXM9b3MsRHM9bnMubG9jYXRpb24sZnM9bnMuc2V0SW1tZWRpYXRlLHVzPW5zLmNsZWFySW1tZWRpYXRlLHdzPW5zLnByb2Nlc3MsZHM9bnMuTWVzc2FnZUNoYW5uZWwsRnM9bnMuRGlzcGF0Y2gsbHM9MCxHcz17fSxScz0ib25yZWFkeXN0YXRlY2hhbmdlIixVcz1mdW5jdGlvbihBKXtpZihHcy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9R3NbQV07ZGVsZXRlIEdzW0FdLGcoKX19LGtzPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe1VzKEEpfX0sU3M9ZnVuY3Rpb24oQSl7VXMoQS5kYXRhKX0sTnM9ZnVuY3Rpb24oQSl7bnMucG9zdE1lc3NhZ2UoQSsiIixEcy5wcm90b2NvbCsiLy8iK0RzLmhvc3QpfTtmcyYmdXN8fChmcz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gR3NbKytsc109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSx6YShscyksbHN9LHVzPWZ1bmN0aW9uKEEpe2RlbGV0ZSBHc1tBXX0seXM/emE9ZnVuY3Rpb24oQSl7d3MubmV4dFRpY2soa3MoQSkpfTpGcyYmRnMubm93P3phPWZ1bmN0aW9uKEEpe0ZzLm5vdyhrcyhBKSl9OmRzJiYhaHM/KCRhPShfYT1uZXcgZHMpLnBvcnQyLF9hLnBvcnQxLm9ubWVzc2FnZT1Tcyx6YT1hcygkYS5wb3N0TWVzc2FnZSwkYSwxKSk6bnMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhbnMuaW1wb3J0U2NyaXB0cyYmRHMmJiJmaWxlOiIhPT1Ecy5wcm90b2NvbCYmIXJzKE5zKT8oemE9TnMsbnMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsU3MsITEpKTp6YT1ScyBpbiBjcygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7c3MuYXBwZW5kQ2hpbGQoY3MoInNjcmlwdCIpKVtSc109ZnVuY3Rpb24oKXtzcy5yZW1vdmVDaGlsZCh0aGlzKSxVcyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQoa3MoQSksMCl9KTt2YXIgTXMsWXMsSHMscHMsSnMsTHMsdnMsS3MsbXM9e3NldDpmcyxjbGVhcjp1c30seHM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSkscXM9cixicz1XZy5mLFRzPW1zLnNldCxPcz1lcyxXcz14cyxacz1vcyxqcz1xcy5NdXRhdGlvbk9ic2VydmVyfHxxcy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLFBzPXFzLmRvY3VtZW50LFhzPXFzLnByb2Nlc3MsVnM9cXMuUHJvbWlzZSx6cz1icyhxcywicXVldWVNaWNyb3Rhc2siKSxfcz16cyYmenMudmFsdWU7X3N8fChNcz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKFpzJiYoQT1Ycy5kb21haW4pJiZBLmV4aXQoKTtZczspe2c9WXMuZm4sWXM9WXMubmV4dDt0cnl7ZygpfWNhdGNoKHREKXt0aHJvdyBZcz9wcygpOkhzPXZvaWQgMCx0RH19SHM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sT3N8fFpzfHxXc3x8IWpzfHwhUHM/VnMmJlZzLnJlc29sdmU/KCh2cz1Wcy5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPVZzLEtzPXZzLnRoZW4scHM9ZnVuY3Rpb24oKXtLcy5jYWxsKHZzLE1zKX0pOnBzPVpzP2Z1bmN0aW9uKCl7WHMubmV4dFRpY2soTXMpfTpmdW5jdGlvbigpe1RzLmNhbGwocXMsTXMpfTooSnM9ITAsTHM9UHMuY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBqcyhNcykub2JzZXJ2ZShMcyx7Y2hhcmFjdGVyRGF0YTohMH0pLHBzPWZ1bmN0aW9uKCl7THMuZGF0YT1Kcz0hSnN9KSk7dmFyICRzPV9zfHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07SHMmJihIcy5uZXh0PWcpLFlzfHwoWXM9ZyxwcygpKSxIcz1nfSxBYz17fSxnYz1jRSxJYz1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1nYyhnKSx0aGlzLnJlamVjdD1nYyhJKX07QWMuZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IEljKEEpfTt2YXIgQmMsUWMsQ2MsRWMsaWM9bCx0Yz1oLGVjPUFjLG9jPXIsbmM9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cscmM9T0ksYWM9cixzYz1CQSxjYz1BcyxoYz1hSSx5Yz1XQixEYz1EQixmYz10Qix1Yz1JQyx3Yz1oLGRjPWNFLEZjPVpCLGxjPVVnLEdjPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsZSxvPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9Q3MoZyxvLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZpcyhCKSxuZXcgdHMoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KElzKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPUVzKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihCcyhRKSl7Zm9yKEM9MCxFPVFzKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgdHMpcmV0dXJuIGk7cmV0dXJuIG5ldyB0cyghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEoZT10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKGUudmFsdWUpfWNhdGNoKHREKXt0aHJvdyBpcyhCKSx0RH1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiB0cylyZXR1cm4gaX1yZXR1cm4gbmV3IHRzKCExKX0sUmM9d0MsVWM9WGksa2M9bXMuc2V0LFNjPSRzLE5jPWZ1bmN0aW9uKEEsZyl7aWYoaWMoQSksdGMoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPWVjLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LE1jPWZ1bmN0aW9uKEEsZyl7dmFyIEk9b2MuY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxZYz1BYyxIYz1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2godEQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0RH19fSxwYz1PZyxKYz1MSSxMYz1uYyx2Yz1vcyxLYz1vQSxtYz1GQSgic3BlY2llcyIpLHhjPSJQcm9taXNlIixxYz1wYy5nZXQsYmM9cGMuc2V0LFRjPXBjLmdldHRlckZvcih4YyksT2M9Y2MmJmNjLnByb3RvdHlwZSxXYz1jYyxaYz1PYyxqYz1hYy5UeXBlRXJyb3IsUGM9YWMuZG9jdW1lbnQsWGM9YWMucHJvY2VzcyxWYz1ZYy5mLHpjPVZjLF9jPSEhKFBjJiZQYy5jcmVhdGVFdmVudCYmYWMuZGlzcGF0Y2hFdmVudCksJGM9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxBaD0idW5oYW5kbGVkcmVqZWN0aW9uIixnaD0hMSxJaD1KYyh4YywoZnVuY3Rpb24oKXt2YXIgQT1sYyhXYykhPT1TdHJpbmcoV2MpO2lmKCFBJiY2Nj09PUtjKXJldHVybiEwO2lmKEtjPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KFdjKSlyZXR1cm4hMTt2YXIgZz1uZXcgV2MoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW21jXT1JLCEoZ2g9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZMYyYmISRjfSkpLEJoPUlofHwhUmMoKGZ1bmN0aW9uKEEpe1djLmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksUWg9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghd2MoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxDaD1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO1NjKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxlPUlbQysrXSxvPVE/ZS5vazplLmZhaWwsbj1lLnJlc29sdmUscj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZlaChBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/RT1COihhJiZhLmVudGVyKCksRT1vKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PWUucHJvbWlzZT9yKGpjKCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPVFoKEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2godEQpe2EmJiF0JiZhLmV4aXQoKSxyKHREKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmloKEEpfSkpfX0sRWg9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7X2M/KChCPVBjLmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxhYy5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCEkYyYmKFE9YWNbIm9uIitBXSk/UShCKTpBPT09QWgmJk1jKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxpaD1mdW5jdGlvbihBKXtrYy5jYWxsKGFjLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKHRoKEEpJiYoZz1IYygoZnVuY3Rpb24oKXt2Yz9YYy5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6RWgoQWgsSSxCKX0pKSxBLnJlamVjdGlvbj12Y3x8dGgoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LHRoPWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sZWg9ZnVuY3Rpb24oQSl7a2MuY2FsbChhYywoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTt2Yz9YYy5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTpFaCgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sb2g9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LG5oPWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixDaChBLCEwKSl9LHJoPWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBqYygiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1RaChnKTtCP1NjKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsb2gocmgsSSxBKSxvaChuaCxJLEEpKX1jYXRjaCh0RCl7bmgoSSx0RCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsQ2goQSwhMSkpfWNhdGNoKHREKXtuaCh7ZG9uZTohMX0sdEQsQSl9fX07aWYoSWgmJihaYz0oV2M9ZnVuY3Rpb24oQSl7RmModGhpcyxXYyx4YyksZGMoQSksQmMuY2FsbCh0aGlzKTt2YXIgZz1xYyh0aGlzKTt0cnl7QShvaChyaCxnKSxvaChuaCxnKSl9Y2F0Y2godEQpe25oKGcsdEQpfX0pLnByb3RvdHlwZSwoQmM9ZnVuY3Rpb24oQSl7YmModGhpcyx7dHlwZTp4Yyxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9eWMoWmMse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1UYyh0aGlzKSxCPVZjKFVjKHRoaXMsV2MpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49dmM/WGMuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJkNoKEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksUWM9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgQmMsZz1xYyhBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9b2gocmgsZyksdGhpcy5yZWplY3Q9b2gobmgsZyl9LFljLmY9VmM9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1XY3x8QT09PUNjP25ldyBRYyhBKTp6YyhBKX0sImZ1bmN0aW9uIj09dHlwZW9mIGNjJiZPYyE9PU9iamVjdC5wcm90b3R5cGUpKXtFYz1PYy50aGVuLGdofHwoaGMoT2MsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBXYygoZnVuY3Rpb24oQSxnKXtFYy5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksaGMoT2MsImNhdGNoIixaYy5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgT2MuY29uc3RydWN0b3J9Y2F0Y2godEQpe31EYyYmRGMoT2MsWmMpfXJjKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6SWh9LHtQcm9taXNlOldjfSksZmMoV2MseGMsITEpLHVjKHhjKSxDYz1zYyh4YykscmMoe3RhcmdldDp4YyxzdGF0OiEwLGZvcmNlZDpJaH0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1WYyh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLHJjKHt0YXJnZXQ6eGMsc3RhdDohMCxmb3JjZWQ6SWh9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBOYyh0aGlzLEEpfX0pLHJjKHt0YXJnZXQ6eGMsc3RhdDohMCxmb3JjZWQ6Qmh9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPVZjKGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1IYygoZnVuY3Rpb24oKXt2YXIgST1kYyhnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtHYyhBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssZT0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1WYyhnKSxCPUkucmVqZWN0LFE9SGMoKGZ1bmN0aW9uKCl7dmFyIFE9ZGMoZy5yZXNvbHZlKTtHYyhBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIGFoPWgsc2g9QixjaD1GQSgibWF0Y2giKSxoaD1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gYWgoQSkmJih2b2lkIDAhPT0oZz1BW2NoXSk/ISFnOiJSZWdFeHAiPT1zaChBKSl9LHloPXt9LERoPWc7ZnVuY3Rpb24gZmgoQSxnKXtyZXR1cm4gUmVnRXhwKEEsZyl9eWguVU5TVVBQT1JURURfWT1EaCgoZnVuY3Rpb24oKXt2YXIgQT1maCgiYSIsInkiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoImFiY2QiKX0pKSx5aC5CUk9LRU5fQ0FSRVQ9RGgoKGZ1bmN0aW9uKCl7dmFyIEE9ZmgoIl5yIiwiZ3kiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoInN0ciIpfSkpO3ZhciB1aD1zLHdoPXIsZGg9TEksRmg9eEUsbGg9Yy5mLEdoPXNJLmYsUmg9aGgsVWg9ZXIsa2g9eWgsU2g9YUksTmg9ZyxNaD1PZy5lbmZvcmNlLFloPUlDLEhoPUZBKCJtYXRjaCIpLHBoPXdoLlJlZ0V4cCxKaD1waC5wcm90b3R5cGUsTGg9L2EvZyx2aD0vYS9nLEtoPW5ldyBwaChMaCkhPT1MaCxtaD1raC5VTlNVUFBPUlRFRF9ZO2lmKHVoJiZkaCgiUmVnRXhwIiwhS2h8fG1ofHxOaCgoZnVuY3Rpb24oKXtyZXR1cm4gdmhbSGhdPSExLHBoKExoKSE9TGh8fHBoKHZoKT09dmh8fCIvYS9pIiE9cGgoTGgsImkiKX0pKSkpe2Zvcih2YXIgeGg9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiB4aCxRPVJoKEEpLEM9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PXhoJiZDKXJldHVybiBBO0toP1EmJiFDJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIHhoJiYoQyYmKGc9VWguY2FsbChBKSksQT1BLnNvdXJjZSksbWgmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBFPUZoKEtoP25ldyBwaChBLGcpOnBoKEEsZyksQj90aGlzOkpoLHhoKTttaCYmSSYmKE1oKEUpLnN0aWNreT0hMCk7cmV0dXJuIEV9LHFoPWZ1bmN0aW9uKEEpe0EgaW4geGh8fGxoKHhoLEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcGhbQV19LHNldDpmdW5jdGlvbihnKXtwaFtBXT1nfX0pfSxiaD1HaChwaCksVGg9MDtiaC5sZW5ndGg+VGg7KXFoKGJoW1RoKytdKTtKaC5jb25zdHJ1Y3Rvcj14aCx4aC5wcm90b3R5cGU9SmgsU2god2gsIlJlZ0V4cCIseGgpfVloKCJSZWdFeHAiKTt2YXIgT2gsV2gsWmg9ZXIsamg9eWgsUGg9VyxYaD1SZWdFeHAucHJvdG90eXBlLmV4ZWMsVmg9UGgoIm5hdGl2ZS1zdHJpbmctcmVwbGFjZSIsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSx6aD1YaCxfaD0oT2g9L2EvLFdoPS9iKi9nLFhoLmNhbGwoT2gsImEiKSxYaC5jYWxsKFdoLCJhIiksMCE9PU9oLmxhc3RJbmRleHx8MCE9PVdoLmxhc3RJbmRleCksJGg9amguVU5TVVBQT1JURURfWXx8amguQlJPS0VOX0NBUkVULEF5PXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXTsoX2h8fEF5fHwkaCkmJih6aD1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDPXRoaXMsRT0kaCYmQy5zdGlja3ksaT1aaC5jYWxsKEMpLHQ9Qy5zb3VyY2UsZT0wLG89QTtyZXR1cm4gRSYmKC0xPT09KGk9aS5yZXBsYWNlKCJ5IiwiIikpLmluZGV4T2YoImciKSYmKGkrPSJnIiksbz1TdHJpbmcoQSkuc2xpY2UoQy5sYXN0SW5kZXgpLEMubGFzdEluZGV4PjAmJighQy5tdWx0aWxpbmV8fEMubXVsdGlsaW5lJiYiXG4iIT09QVtDLmxhc3RJbmRleC0xXSkmJih0PSIoPzogIit0KyIpIixvPSIgIitvLGUrKyksST1uZXcgUmVnRXhwKCJeKD86Iit0KyIpIixpKSksQXkmJihJPW5ldyBSZWdFeHAoIl4iK3QrIiQoPyFcXHMpIixpKSksX2gmJihnPUMubGFzdEluZGV4KSxCPVhoLmNhbGwoRT9JOkMsbyksRT9CPyhCLmlucHV0PUIuaW5wdXQuc2xpY2UoZSksQlswXT1CWzBdLnNsaWNlKGUpLEIuaW5kZXg9Qy5sYXN0SW5kZXgsQy5sYXN0SW5kZXgrPUJbMF0ubGVuZ3RoKTpDLmxhc3RJbmRleD0wOl9oJiZCJiYoQy5sYXN0SW5kZXg9Qy5nbG9iYWw/Qi5pbmRleCtCWzBdLmxlbmd0aDpnKSxBeSYmQiYmQi5sZW5ndGg+MSYmVmguY2FsbChCWzBdLEksKGZ1bmN0aW9uKCl7Zm9yKFE9MTtRPGFyZ3VtZW50cy5sZW5ndGgtMjtRKyspdm9pZCAwPT09YXJndW1lbnRzW1FdJiYoQltRXT12b2lkIDApfSkpLEJ9KTt2YXIgZ3k9emg7T0koe3RhcmdldDoiUmVnRXhwIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1neX0se2V4ZWM6Z3l9KTt2YXIgSXk9aGgsQnk9ZnVuY3Rpb24oQSl7aWYoSXkoQSkpdGhyb3cgVHlwZUVycm9yKCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnMiKTtyZXR1cm4gQX0sUXk9RkEoIm1hdGNoIiksQ3k9ZnVuY3Rpb24oQSl7dmFyIGc9Ly4vO3RyeXsiLy4vIltBXShnKX1jYXRjaChJKXt0cnl7cmV0dXJuIGdbUXldPSExLCIvLi8iW0FdKGcpfWNhdGNoKEIpe319cmV0dXJuITF9LEV5PUJ5LGl5PWk7T0koe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IUN5KCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuISF+U3RyaW5nKGl5KHRoaXMpKS5pbmRleE9mKEV5KEEpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgdHk9YUksZXk9Z3ksb3k9ZyxueT1GQSxyeT1KLGF5PW55KCJzcGVjaWVzIiksc3k9UmVnRXhwLnByb3RvdHlwZSxjeT0hb3koKGZ1bmN0aW9uKCl7dmFyIEE9Ly4vO3JldHVybiBBLmV4ZWM9ZnVuY3Rpb24oKXt2YXIgQT1bXTtyZXR1cm4gQS5ncm91cHM9e2E6IjcifSxBfSwiNyIhPT0iIi5yZXBsYWNlKEEsIiQ8YT4iKX0pKSxoeT0iJDAiPT09ImEiLnJlcGxhY2UoLy4vLCIkMCIpLHl5PW55KCJyZXBsYWNlIiksRHk9ISEvLi9beXldJiYiIj09PS8uL1t5eV0oImEiLCIkMCIpLGZ5PSFveSgoZnVuY3Rpb24oKXt2YXIgQT0vKD86KS8sZz1BLmV4ZWM7QS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgST0iYWIiLnNwbGl0KEEpO3JldHVybiAyIT09SS5sZW5ndGh8fCJhIiE9PUlbMF18fCJiIiE9PUlbMV19KSksdXk9UkEsd3k9aSxkeT1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXt2YXIgQixRLEM9U3RyaW5nKHd5KGcpKSxFPXV5KEkpLGk9Qy5sZW5ndGg7cmV0dXJuIEU8MHx8RT49aT9BPyIiOnZvaWQgMDooQj1DLmNoYXJDb2RlQXQoRSkpPDU1Mjk2fHxCPjU2MzE5fHxFKzE9PT1pfHwoUT1DLmNoYXJDb2RlQXQoRSsxKSk8NTYzMjB8fFE+NTczNDM/QT9DLmNoYXJBdChFKTpCOkE/Qy5zbGljZShFLEUrMik6US01NjMyMCsoQi01NTI5Njw8MTApKzY1NTM2fX0sRnk9e2NvZGVBdDpkeSghMSksY2hhckF0OmR5KCEwKX0uY2hhckF0LGx5PWosR3k9TWF0aC5mbG9vcixSeT0iIi5yZXBsYWNlLFV5PS9cJChbJCYnYF18XGR7MSwyfXw8W14+XSo+KS9nLGt5PS9cJChbJCYnYF18XGR7MSwyfSkvZyxTeT1CLE55PWd5LE15PWZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPW55KEEpLEM9IW95KChmdW5jdGlvbigpe3ZhciBnPXt9O3JldHVybiBnW1FdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW0FdKGcpfSkpLEU9QyYmIW95KChmdW5jdGlvbigpe3ZhciBnPSExLEk9L2EvO3JldHVybiJzcGxpdCI9PT1BJiYoKEk9e30pLmNvbnN0cnVjdG9yPXt9LEkuY29uc3RydWN0b3JbYXldPWZ1bmN0aW9uKCl7cmV0dXJuIEl9LEkuZmxhZ3M9IiIsSVtRXT0vLi9bUV0pLEkuZXhlYz1mdW5jdGlvbigpe3JldHVybiBnPSEwLG51bGx9LElbUV0oIiIpLCFnfSkpO2lmKCFDfHwhRXx8InJlcGxhY2UiPT09QSYmKCFjeXx8IWh5fHxEeSl8fCJzcGxpdCI9PT1BJiYhZnkpe3ZhciBpPS8uL1tRXSx0PUkoUSwiIltBXSwoZnVuY3Rpb24oQSxnLEksQixRKXt2YXIgRT1nLmV4ZWM7cmV0dXJuIEU9PT1leXx8RT09PXN5LmV4ZWM/QyYmIVE/e2RvbmU6ITAsdmFsdWU6aS5jYWxsKGcsSSxCKX06e2RvbmU6ITAsdmFsdWU6QS5jYWxsKEksZyxCKX06e2RvbmU6ITF9fSkse1JFUExBQ0VfS0VFUFNfJDA6aHksUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkU6RHl9KSxlPXRbMF0sbz10WzFdO3R5KFN0cmluZy5wcm90b3R5cGUsQSxlKSx0eShzeSxRLDI9PWc/ZnVuY3Rpb24oQSxnKXtyZXR1cm4gby5jYWxsKEEsdGhpcyxnKX06ZnVuY3Rpb24oQSl7cmV0dXJuIG8uY2FsbChBLHRoaXMpfSl9QiYmcnkoc3lbUV0sInNoYW0iLCEwKX0sWXk9bCxIeT1TQSxweT1SQSxKeT1pLEx5PWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4gZysoST9GeShBLGcpLmxlbmd0aDoxKX0sdnk9ZnVuY3Rpb24oQSxnLEksQixRLEMpe3ZhciBFPUkrQS5sZW5ndGgsaT1CLmxlbmd0aCx0PWt5O3JldHVybiB2b2lkIDAhPT1RJiYoUT1seShRKSx0PVV5KSxSeS5jYWxsKEMsdCwoZnVuY3Rpb24oQyx0KXt2YXIgZTtzd2l0Y2godC5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIEE7Y2FzZSJgIjpyZXR1cm4gZy5zbGljZSgwLEkpO2Nhc2UiJyI6cmV0dXJuIGcuc2xpY2UoRSk7Y2FzZSI8IjplPVFbdC5zbGljZSgxLC0xKV07YnJlYWs7ZGVmYXVsdDp2YXIgbz0rdDtpZigwPT09bylyZXR1cm4gQztpZihvPmkpe3ZhciBuPUd5KG8vMTApO3JldHVybiAwPT09bj9DOm48PWk/dm9pZCAwPT09QltuLTFdP3QuY2hhckF0KDEpOkJbbi0xXSt0LmNoYXJBdCgxKTpDfWU9QltvLTFdfXJldHVybiB2b2lkIDA9PT1lPyIiOmV9KSl9LEt5PWZ1bmN0aW9uKEEsZyl7dmFyIEk9QS5leGVjO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBJKXt2YXIgQj1JLmNhbGwoQSxnKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpdGhyb3cgVHlwZUVycm9yKCJSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGwiKTtyZXR1cm4gQn1pZigiUmVnRXhwIiE9PVN5KEEpKXRocm93IFR5cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBOeS5jYWxsKEEsZyl9LG15PU1hdGgubWF4LHh5PU1hdGgubWluO015KCJyZXBsYWNlIiwyLChmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1CLlJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFLEM9Qi5SRVBMQUNFX0tFRVBTXyQwLEU9UT8iJCI6IiQwIjtyZXR1cm5bZnVuY3Rpb24oSSxCKXt2YXIgUT1KeSh0aGlzKSxDPW51bGw9PUk/dm9pZCAwOklbQV07cmV0dXJuIHZvaWQgMCE9PUM/Qy5jYWxsKEksUSxCKTpnLmNhbGwoU3RyaW5nKFEpLEksQil9LGZ1bmN0aW9uKEEsQil7aWYoIVEmJkN8fCJzdHJpbmciPT10eXBlb2YgQiYmLTE9PT1CLmluZGV4T2YoRSkpe3ZhciBpPUkoZyxBLHRoaXMsQik7aWYoaS5kb25lKXJldHVybiBpLnZhbHVlfXZhciB0PVl5KEEpLGU9U3RyaW5nKHRoaXMpLG89ImZ1bmN0aW9uIj09dHlwZW9mIEI7b3x8KEI9U3RyaW5nKEIpKTt2YXIgbj10Lmdsb2JhbDtpZihuKXt2YXIgcj10LnVuaWNvZGU7dC5sYXN0SW5kZXg9MH1mb3IodmFyIGE9W107Oyl7dmFyIHM9S3kodCxlKTtpZihudWxsPT09cylicmVhaztpZihhLnB1c2gocyksIW4pYnJlYWs7IiI9PT1TdHJpbmcoc1swXSkmJih0Lmxhc3RJbmRleD1MeShlLEh5KHQubGFzdEluZGV4KSxyKSl9Zm9yKHZhciBjLGg9IiIseT0wLEQ9MDtEPGEubGVuZ3RoO0QrKyl7cz1hW0RdO2Zvcih2YXIgZj1TdHJpbmcoc1swXSksdT1teSh4eShweShzLmluZGV4KSxlLmxlbmd0aCksMCksdz1bXSxkPTE7ZDxzLmxlbmd0aDtkKyspdy5wdXNoKHZvaWQgMD09PShjPXNbZF0pP2M6U3RyaW5nKGMpKTt2YXIgRj1zLmdyb3VwcztpZihvKXt2YXIgbD1bZl0uY29uY2F0KHcsdSxlKTt2b2lkIDAhPT1GJiZsLnB1c2goRik7dmFyIEc9U3RyaW5nKEIuYXBwbHkodm9pZCAwLGwpKX1lbHNlIEc9dnkoZixlLHUsdyxGLEIpO3U+PXkmJihoKz1lLnNsaWNlKHksdSkrRyx5PXUrZi5sZW5ndGgpfXJldHVybiBoK2Uuc2xpY2UoeSl9XX0pKTt2YXIgcXksYnk9T0ksVHk9V2cuZixPeT1TQSxXeT1CeSxaeT1pLGp5PUN5LFB5PSIiLnN0YXJ0c1dpdGgsWHk9TWF0aC5taW4sVnk9ankoInN0YXJ0c1dpdGgiKTtieSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohIShWeXx8KHF5PVR5KFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSwhcXl8fHF5LndyaXRhYmxlKSkmJiFWeX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oQSl7dmFyIGc9U3RyaW5nKFp5KHRoaXMpKTtXeShBKTt2YXIgST1PeShYeShhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnLmxlbmd0aCkpLEI9U3RyaW5nKEEpO3JldHVybiBQeT9QeS5jYWxsKGcsQixJKTpnLnNsaWNlKEksSStCLmxlbmd0aCk9PT1CfX0pO3ZhciB6eT1BPT5mdW5jdGlvbihBLGcpe2lmKGcuc3RhcnRzV2l0aCgiZGF0YToiKSl7dmFyIEksQj1nLnJlcGxhY2UoL15kYXRhOi4qP2Jhc2U2NCwvLCIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgQnVmZmVyLmZyb20pST1CdWZmZXIuZnJvbShCLCJiYXNlNjQiKTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhdG9iKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGRlY29kZSBiYXNlNjQtZW5jb2RlZCBkYXRhIFVSTCwgQnVmZmVyIGFuZCBhdG9iIGFyZSBub3Qgc3VwcG9ydGVkIik7dmFyIFE9YXRvYihCKTtJPW5ldyBVaW50OEFycmF5KFEubGVuZ3RoKTtmb3IodmFyIEM9MDtDPFEubGVuZ3RoO0MrKylJW0NdPVEuY2hhckNvZGVBdChDKX1yZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoSSxBKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gQS5pbnN0YW5jZX0pKX12YXIgRT12b2lkIDAsaT12b2lkIDA7cmV0dXJuIGZldGNoKGcpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBpPShFPWcpLmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKXx8IiIsImluc3RhbnRpYXRlU3RyZWFtaW5nImluIFdlYkFzc2VtYmx5JiZpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL3dhc20iKT9XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhFLEEpOkUuYXJyYXlCdWZmZXIoKX0pKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP1dlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGcsQSk6Z30pKS50aGVuKChmdW5jdGlvbihBKXtyZXR1cm4gQS5pbnN0YW5jZX0pKX0oQSwiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCxBR0Z6YlFFQUFBQUIvQUl1WUFGL0FYOWdBWDhBWUFKL2Z3Ri9ZQUovZndCZ0EzOS9md0YvWUFaL2YzOS9mMzhCZjJBRmYzOS9mMzhCZjJBRGYzOS9BR0FFZjM5L2Z3QmdCbjkvZjM5L2Z3QmdCWDkvZjM5L0FHQUVmMzkvZndGL1lBaC9mMzkvZjM5L2Z3Ri9ZQWQvZjM5L2YzOS9BWDlnQlg5K2ZuNStBR0FBQUdBSGYzOS9mMzkvZndCZ0JIOS9mMzhCZm1BRmYzOS9mMzRCZjJBQUFYOWdCSDkrZm44QVlBSi9mZ0JnQlg5L2ZuOS9BR0FLZjM5L2YzOS9mMzkvZndGL1lBeC9mMzkvZjM5L2YzOS9mMzhCZjJBSWYzOS9mMzkvZjM4QVlBOS9mMzkvZjM5L2YzOS9mMzkvZjM4QVlBcC9mMzkvZjM5L2YzOS9BR0FMZjM5L2YzOS9mMzkvZjM4QmYyQUdmM3gvZjM5L0FYOWdCMzkvZjM5L2ZuNEJmMkFHZjM5L2YzNStBWDlnQlg5L2YzOThBWDlnQW45OEFHQUVmbjUrZmdGL1lBSitmd0YvWUFKK2ZnRjhZQUYvQVh4Z0EzNStmZ0YvWUFOL2YzOEJmR0FEZjM5L0FYMWdCSDkvZjM0QmZtQUNmSDhCZkdBRGYzOStBR0FDZm40QmZXQUNmMzhCZmdJeENBRmhBV0VBRHdGaEFXSUFCZ0ZoQVdNQUFnRmhBV1FBQWdGaEFXVUFBQUZoQVdZQUJBRmhBV2NBQndGaEFXZ0FBQVBMQk1rRUFnQUFBZ01BQVFNQkFBQUFBd01URHc0QUFBRURBUVFBQVFBQUFRQUFBZ01DQWdjT0JnZ0tGQU1DQUFNREFBSURBQU1EQUE0Q0JBUUFBd1FBQkFBRUFBQUFBd01EQXdRQUFBRUNGUUlIQlFNR0Jnc0NBQ0VDQUF3TUJRZ0NBQUFBQXdNREF3QUlBQWdBQndBQUFBTUNBZ01EQWlJVUFBQUVBd0lBQUFNQUJ3SUNBQUFYQUJjQUl3TUFBQU1BQVFBQkJ3SUhDQUFEQWdJS0F3SUJCQU1BQndJREFBQURBeEFFRUFJTkFnMExBZ3NBQUFJVkFBQUVDQUlBQ1FjSUFnY0RDZ0VBQkFZREFRQUFBd1FZQ2dRWUNnZ1JBZ0FFSkE0bEpnQUJBUUFBQ2c4QUFBY0JBeFVCQkFnQ0Fnb1pBQWNIR1FBQkF3Y0NBd0VDRXdFSUJ3b0FBQUFCQUFZSERBQUJBd0VBQUFNQkFRRUFCQm9iR2hzQUFnQUFBZ01jQXdJQUFBY0RIQU1EQWdJRENRY0tDUWtLQ1FrQUVBUVFBd0lGQndRQUNDY29FUXNGQ3hFTEFBSUhFU2tBQ3dBQkF3SUNBZ2NFQUFZcUFnQUNBZ1FyTEMwSURnSU9GQTRBQVFJQ0FBQUFCd01EQndNREFRQUFBZ01DQUFBQ0FRQUNBQUVCQWdRQUFBUUlGZ1FCQVFBQUFSTUJBUUFKQ1FrS0Nnb0FDQWdJQkE4QkFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBTURBd01EQXdBQUFRRUdEQXdHREF3QUJnQUdEQXdCQmdZRUN3UUNCQUlCQmdRTEJBSUVBZ3NMQ3dRQkFRRUJDUWtGSGdVZURRME5EUTBOREFVRkJRVUZCd3dGQlFVRkJRWWZJQklHRWdjR0JnWWZJQklHRWdrR0JnVUZCUVVGQlFVRkJRVUZCUVVGQUFVRkJRa0ZCQWdHQkFnSUJnUURIUVFCQVFBQkFBZ0JGZ0lDQUFBQkFRQUFBUUFCQVFBRUJBY0JjQUhCQXNFQ0JRWUJBVENBZ0FJR0NBRi9BVUdnMXdFTEIwZ1BBV2tDQUFGcUFPY0JBV3NBR1FGc0FCQUJiUURhQWdGdUFMUUVBVzhBcmdRQmNBQ1pCQUZ4QUpBRUFYSUFyQUVCY3dDREJBRjBBUUFCZFFDVkF3RjJBSlFEQVhjQWt3TUp4d1FCQUVFQkM4QUN6UVNxQk1FQnZBR1FBNndCandPT0E0MERUMCtNQTRzRGlnT0lBOUFFaUFQbEFZY0R6d1RPQk9RQitRTE1CTXNFdUFIakFjb0V5QVRKQk1jRTBBSEJCTUlFd0FURkJNUUV3d1Ira1FPS0FlSUJ2d1MrQkwwRXZBVGhBYnNFdWdTNUJMZ0V0d1FReVFIdkErMER3QU8rQTd3RHVnTzRBN1lEdEFPeUE3QURyZ09zQTZvRHFBT21BNU1DOEFQdUE0NEM0UVBnQTk4RDNnUGRBNjhDM0FQYkE5b0RtQUxZQTljRDFnUFZBOVFEVDlNRDBnT0hBc3NEeVFQSUE4Y0R4UVBEQTRZQ3lnUEdCSklEeGdQRUE4SURaaUFnN0FQckErb0Q2UVBvQStjRDVnUGxBNjhDNUFQakErSURJSTBDalFMTUFiMEJ2UUhaQTcwQklORUQwQVBNQVU5UHp3T0lBaURPQTgwRHpBRlBUOHdEaUFKbUlMWUV0UVN6QkdZZ3NnU3hCTEFFSUs4RXJRU3NCS3NFeUFMSUFxa0VxQVNuQktZRXBRUWdwQVNqQktJRW9RUy9BcjhDb0FTZkJKNEVuUVNjQkNDYkJKb0VtQVNYQkpZRWxRU1VCSk1FSUpJRWtRU1BCSTRFalFTTUJJc0VpZ1JtSUxrQ2lRU0lCSWNFaGdTRkJJUUV3UU85QTdrRHJRT3BBN1VEc1FObUlMa0NnZ1NCQklBRS93UCtBLzBEdndPN0E3Y0Rxd09uQTdNRHJ3UEtBWUlDL0FQS0FZSUMrd01ncXdHckFXdHJhNjBDVDJwcUlLc0Jxd0ZyYTJ1dEFrOXFhaUNxQWFvQmE2a0JxUUdzQWs5cWFpQ3FBYW9CYTZrQnFRR3NBazlxYWlENkEva0RJUGdEOXdNZzlnUDFBeUQwQS9NRElKa0M4Z09zQVNDWkF2RURyQUZtcFFPa0EyWWd5UUhKQWFNRG1RT2NBNklESUpvRG5RT2hBeUNiQTU0RG9BTm1JSmdEbHdPZkE1WURDcVRmQjhrRUJ3QWdBQ0FCZUFzVUFDQUFFRFVFUUNBQUtBSUVEd3NnQUMwQUN3c2RBUUYvSUFBUU5RUkFJQUFvQWdBaEFTQUFFSDBhSUFFUUVBc2dBQXNKQUNBQUVBMGdBV29MMGdFQkJIOENRQ0FCSUFBUUNTSURTd1JBSXdCQkVHc2lBaVFBSUFFZ0Eyc2lBd1JBSUFBUUV5RUVJQUFRQ1NJQklBTnFJUVVnQXlBRUlBRnJTd1JBSUFBZ0JDQUZJQVJySUFFZ0FSRElBUXNnQVNBQUVBMGlCR29nQTBFQUVQY0JJQUFnQlJCNElBSkJBRG9BRHlBRUlBVnFJQUpCRDJvUU5Bc01BUXNqQUVFUWF5SUNKQUFDUUNBQUVEVUVRQ0FBS0FJQUlRTWdBa0VBT2dBUElBRWdBMm9nQWtFUGFoQTBJQUFnQVJBNURBRUxJQUpCQURvQURpQUFJQUZxSUFKQkRtb1FOQ0FBSUFFUU9nc0xJQUpCRUdva0FBc1JBQ0FBRURVRVFDQUFLQUlBRHdzZ0FBc0tBQ0FBS0FJQUVLTUJDd3dBSUFBZ0FVRWNhaENRQWd2TURBRUhmd0pBSUFCRkRRQWdBRUVJYXlJRElBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0F5QURLQUlBSWdGcklnTkI2SUVCS0FJQVNRMEJJQUFnQVdvaEFDQURRZXlCQVNnQ0FFY0VRQ0FCUWY4QlRRUkFJQU1vQWdnaUFpQUJRUU4ySWdSQkEzUkJnSUlCYWtZYUlBSWdBeWdDRENJQlJnUkFRZGlCQVVIWWdRRW9BZ0JCZmlBRWQzRTJBZ0FNQXdzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdDQ3lBREtBSVlJUVlDUUNBRElBTW9BZ3dpQVVjRVFDQURLQUlJSWdJZ0FUWUNEQ0FCSUFJMkFnZ01BUXNDUUNBRFFSUnFJZ0lvQWdBaUJBMEFJQU5CRUdvaUFpZ0NBQ0lFRFFCQkFDRUJEQUVMQTBBZ0FpRUhJQVFpQVVFVWFpSUNLQUlBSWdRTkFDQUJRUkJxSVFJZ0FTZ0NFQ0lFRFFBTElBZEJBRFlDQUFzZ0JrVU5BUUpBSUFNZ0F5Z0NIQ0lDUVFKMFFZaUVBV29pQkNnQ0FFWUVRQ0FFSUFFMkFnQWdBUTBCUWR5QkFVSGNnUUVvQWdCQmZpQUNkM0UyQWdBTUF3c2dCa0VRUVJRZ0JpZ0NFQ0FEUmh0cUlBRTJBZ0FnQVVVTkFnc2dBU0FHTmdJWUlBTW9BaEFpQWdSQUlBRWdBallDRUNBQ0lBRTJBaGdMSUFNb0FoUWlBa1VOQVNBQklBSTJBaFFnQWlBQk5nSVlEQUVMSUFVb0FnUWlBVUVEY1VFRFJ3MEFRZUNCQVNBQU5nSUFJQVVnQVVGK2NUWUNCQ0FESUFCQkFYSTJBZ1FnQUNBRGFpQUFOZ0lBRHdzZ0F5QUZUdzBBSUFVb0FnUWlBVUVCY1VVTkFBSkFJQUZCQW5GRkJFQWdCVUh3Z1FFb0FnQkdCRUJCOElFQklBTTJBZ0JCNUlFQlFlU0JBU2dDQUNBQWFpSUFOZ0lBSUFNZ0FFRUJjallDQkNBRFFleUJBU2dDQUVjTkEwSGdnUUZCQURZQ0FFSHNnUUZCQURZQ0FBOExJQVZCN0lFQktBSUFSZ1JBUWV5QkFTQUROZ0lBUWVDQkFVSGdnUUVvQWdBZ0FHb2lBRFlDQUNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUR3c2dBVUY0Y1NBQWFpRUFBa0FnQVVIL0FVMEVRQ0FGS0FJSUlnSWdBVUVEZGlJRVFRTjBRWUNDQVdwR0dpQUNJQVVvQWd3aUFVWUVRRUhZZ1FGQjJJRUJLQUlBUVg0Z0JIZHhOZ0lBREFJTElBSWdBVFlDRENBQklBSTJBZ2dNQVFzZ0JTZ0NHQ0VHQWtBZ0JTQUZLQUlNSWdGSEJFQWdCU2dDQ0NJQ1FlaUJBU2dDQUVrYUlBSWdBVFlDRENBQklBSTJBZ2dNQVFzQ1FDQUZRUlJxSWdJb0FnQWlCQTBBSUFWQkVHb2lBaWdDQUNJRURRQkJBQ0VCREFFTEEwQWdBaUVISUFRaUFVRVVhaUlDS0FJQUlnUU5BQ0FCUVJCcUlRSWdBU2dDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQUFKQUlBVWdCU2dDSENJQ1FRSjBRWWlFQVdvaUJDZ0NBRVlFUUNBRUlBRTJBZ0FnQVEwQlFkeUJBVUhjZ1FFb0FnQkJmaUFDZDNFMkFnQU1BZ3NnQmtFUVFSUWdCaWdDRUNBRlJodHFJQUUyQWdBZ0FVVU5BUXNnQVNBR05nSVlJQVVvQWhBaUFnUkFJQUVnQWpZQ0VDQUNJQUUyQWhnTElBVW9BaFFpQWtVTkFDQUJJQUkyQWhRZ0FpQUJOZ0lZQ3lBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUlBTkI3SUVCS0FJQVJ3MEJRZUNCQVNBQU5nSUFEd3NnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBTElBQkIvd0ZOQkVBZ0FFRURkaUlCUVFOMFFZQ0NBV29oQUFKL1FkaUJBU2dDQUNJQ1FRRWdBWFFpQVhGRkJFQkIySUVCSUFFZ0FuSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQ0lBQWdBellDQ0NBQ0lBTTJBZ3dnQXlBQU5nSU1JQU1nQWpZQ0NBOExRUjhoQWlBRFFnQTNBaEFnQUVILy8vOEhUUVJBSUFCQkNIWWlBU0FCUVlEK1AycEJFSFpCQ0hFaUFYUWlBaUFDUVlEZ0gycEJFSFpCQkhFaUFuUWlCQ0FFUVlDQUQycEJFSFpCQW5FaUJIUkJEM1lnQVNBQ2NpQUVjbXNpQVVFQmRDQUFJQUZCRldwMlFRRnhja0VjYWlFQ0N5QURJQUkyQWh3Z0FrRUNkRUdJaEFGcUlRRUNRQUpBQWtCQjNJRUJLQUlBSWdSQkFTQUNkQ0lIY1VVRVFFSGNnUUVnQkNBSGNqWUNBQ0FCSUFNMkFnQWdBeUFCTmdJWURBRUxJQUJCQUVFWklBSkJBWFpySUFKQkgwWWJkQ0VDSUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQUpCSFhZaEFTQUNRUUYwSVFJZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFETmdJUUlBTWdCRFlDR0FzZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBRUtBSUlJZ0FnQXpZQ0RDQUVJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0JEWUNEQ0FESUFBMkFnZ0xRZmlCQVVINGdRRW9BZ0JCQVdzaUFFRi9JQUFiTmdJQUN3c2tBUUYvSXdCQkVHc2lBU1FBSUFCQ0FEY0NBQ0FBUVFBMkFnZ2dBVUVRYWlRQUlBQUxpd0lDQTM4Q2ZnSkFJQUFwQTNBaUJGQkZJQVFnQUNrRGVDQUFLQUlFSWdFZ0FDZ0NMQ0lDYTZ4OElnVlhjVVVFUUNNQVFSQnJJZ0lrQUVGL0lRRUNRQ0FBRU9rQkRRQWdBQ0FDUVE5cVFRRWdBQ2dDSUJFRUFFRUJSdzBBSUFJdEFBOGhBUXNnQWtFUWFpUUFJQUVpQTBFQVRnMEJJQUFvQWdRaEFTQUFLQUlzSVFJTElBQkNmemNEY0NBQUlBRTJBbWdnQUNBRklBSWdBV3VzZkRjRGVFRi9Ed3NnQlVJQmZDRUZJQUFvQWdRaEFTQUFLQUlJSVFJQ1FDQUFLUU53SWdSUURRQWdCQ0FGZlNJRUlBSWdBV3VzV1EwQUlBRWdCS2RxSVFJTElBQWdBallDYUNBQUlBVWdBQ2dDTENJQUlBRnJySHczQTNnZ0FDQUJUd1JBSUFGQkFXc2dBem9BQUFzZ0F3c1pBUUYvUVFvaEFTQUFFRFVFZnlBQUVIMUJBV3NGSUFFTEMrTUJBUVovSUFFUTB3SWhBeU1BUVJCcklnVWtBQUpBSUFNZ0FDSUVFTThCSWdCTkJFQWdCQkFOSWdZaEFpQURJZ0FFZndKQUlBRWdBa1lOQUNBQ0lBRnJJQUJCQW5SUEJFQWdBRVVOQVFOQUlBSWdBU2dDQURZQ0FDQUNRUVJxSVFJZ0FVRUVhaUVCSUFCQkFXc2lBQTBBQ3d3QkN5QUFSUTBBQTBBZ0FpQUFRUUZySWdCQkFuUWlCMm9nQVNBSGFpZ0NBRFlDQUNBQURRQUxDMEVBQlNBQ0N4b2dCVUVBTmdJTUlBWWdBMEVDZEdvZ0JVRU1haEF6SUFRZ0F4QjREQUVMSUFRZ0FDQURJQUJySUFRUUNTSUFRUUFnQUNBRElBRVE5QUVMSUFWQkVHb2tBQXR6QVFOL0lBRVFrZ0VoQWlNQVFSQnJJZ1FrQUFKQUlBSWdBQkFUSWdOTkJFQWdBQkFOSVFNZ0FnUkFJQU1nQVNBQ0VPb0JDeUFFUVFBNkFBOGdBaUFEYWlBRVFROXFFRFFnQUNBQ0VIZ01BUXNnQUNBRElBSWdBMnNnQUJBSklnQkJBQ0FBSUFJZ0FSRDRBUXNnQkVFUWFpUUFDKzBDQVFSL0FrQkIzSWdCTFFBQVFRRnhEUUJCM0lnQkVDUkZEUUFqQUVFZ2F5SUNKQUFDUUFKQUEwQWdBa0VJYWlBQVFRSjBhZ0ovUVFFZ0FIUkIvLy8vL3dkeElnTkJBWEpGQkVBZ0FFRUNkQ2dDQUF3QkN5QUFRWm9lUWFRZklBTWJFT0FDQ3lJRE5nSUFJQU5CZjBjRVFDQUFRUUZxSWdCQkJrWU5BZ3dCQ3dzTUFRdEJBQkRmQWtVRVFFSElMU0VCSUFKQkNHcEJ5QzBRbndGRkRRRkI0QzBoQVNBQ1FRaHFRZUF0RUo4QlJRMEJRUUFoQUVHd2h3RXRBQUJGQkVBRFFDQUFRUUowUVlDSEFXb2dBRUdrSHhEZ0FqWUNBQ0FBUVFGcUlnQkJCa2NOQUF0QnNJY0JRUUU2QUFCQm1JY0JRWUNIQVNnQ0FEWUNBQXRCZ0ljQklRRWdBa0VJYWtHQWh3RVFud0ZGRFFGQm1JY0JJUUVnQWtFSWFrR1lod0VRbndGRkRRRkJHQkFaSWdGRkRRRUxJQUVnQWlrRENEY0NBQ0FCSUFJcEF4ZzNBaEFnQVNBQ0tRTVFOd0lJQ3lBQ1FTQnFKQUJCMklnQklBRTJBZ0JCM0lnQkVDTUxRZGlJQVNnQ0FBc0ZBQkFBQUF2ZkNnSUZmdzkrSXdCQjRBQnJJZ1VrQUNBRVF2Ly8vLy8vL3orRElnMUNENFlnQTBJeGlJUWhEaUFDSUFTRlFvQ0FnSUNBZ0lDQWdIK0RJUW9nQWtMLy8vLy8vLzgvZ3lJTFFpQ0lJUThnRFVJUmlDRVFJQVJDTUlpblFmLy9BWEVoQndKQUFrQWdBa0l3aUtkQi8vOEJjU0lKUVFGclFmMy9BVTBFUUNBSFFRRnJRZjcvQVVrTkFRc2dBVkFnQWtMLy8vLy8vLy8vLy84QWd5SU1Rb0NBZ0lDQWdNRC8vd0JVSUF4Q2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFKQ2dJQ0FnSUNBSUlRaENnd0NDeUFEVUNBRVF2Ly8vLy8vLy8vLy93Q0RJZ0pDZ0lDQWdJQ0F3UC8vQUZRZ0FrS0FnSUNBZ0lEQS8vOEFVUnRGQkVBZ0JFS0FnSUNBZ0lBZ2hDRUtJQU1oQVF3Q0N5QUJJQXhDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFJQUlnQTRSUUJFQkNnSUNBZ0lDQTRQLy9BQ0VLUWdBaEFRd0RDeUFLUW9DQWdJQ0FnTUQvL3dDRUlRcENBQ0VCREFJTElBTWdBa0tBZ0lDQWdJREEvLzhBaFlSUUJFQWdBU0FNaENFQ1FnQWhBU0FDVUFSQVFvQ0FnSUNBZ09ELy93QWhDZ3dEQ3lBS1FvQ0FnSUNBZ01ELy93Q0VJUW9NQWdzZ0FTQU1oRkFFUUVJQUlRRU1BZ3NnQWlBRGhGQUVRRUlBSVFFTUFnc2dERUwvLy8vLy8vOC9XQVJBSUFWQjBBQnFJQUVnQ3lBQklBc2dDMUFpQmh0NUlBWkJCblN0ZktjaUJrRVBheEF2UVJBZ0Jtc2hCaUFGS1FOWUlndENJSWdoRHlBRktRTlFJUUVMSUFKQy8vLy8vLy8vUDFZTkFDQUZRVUJySUFNZ0RTQURJQTBnRFZBaUNCdDVJQWhCQm5TdGZLY2lDRUVQYXhBdklBWWdDR3RCRUdvaEJpQUZLUU5JSWdKQ0Q0WWdCU2tEUUNJRFFqR0loQ0VPSUFKQ0VZZ2hFQXNnQTBJUGhrS0FnUDcvRDRNaUFpQUJRaUNJSWdSK0loSWdBMElSaUVMLy8vLy9ENE1pRENBQlF2Ly8vLzhQZ3lJQmZud2lFVUlnaGlJTklBRWdBbjU4SWdNZ0RWU3RJQUlnQzBMLy8vLy9ENE1pQzM0aUZTQUVJQXgrZkNJVElBNUMvLy8vL3crRElnMGdBWDU4SWhRZ0VTQVNWSzFDSUlZZ0VVSWdpSVI4SWhFZ0FpQVBRb0NBQklRaURuNGlGaUFMSUF4K2ZDSVBJQVFnRFg1OEloSWdFRUwvLy8vL0I0TkNnSUNBZ0FpRUlnSWdBWDU4SWhCQ0lJWjhJaGQ4SVFFZ0J5QUphaUFHYWtILy93QnJJUVlDUUNBTElBMStJaGdnRENBT2Zud2lEQ0FZVkswZ0RDQUNJQVIrZkNJRUlBeFVyWHdnQWlBT2Zud2dCQ0FFSUJNZ0ZWU3RJQk1nRkZhdGZId2lCRmF0ZkNBQ0lBdCtJZ3NnRFNBT2Zud2lBaUFMVksxQ0lJWWdBa0lnaUlSOElBUWdBa0lnaG53aUFpQUVWSzE4SUFJZ0FpQVFJQkpVclNBUElCWlVyU0FQSUJKV3JYeDhRaUNHSUJCQ0lJaUVmQ0lDVnExOElBSWdBaUFSSUJSVXJTQVJJQmRXclh4OElnSldyWHdpQkVLQWdJQ0FnSURBQUlOUVJRUkFJQVpCQVdvaEJnd0JDeUFEUWorSUlRc2dCRUlCaGlBQ1FqK0loQ0VFSUFKQ0FZWWdBVUkvaUlRaEFpQURRZ0dHSVFNZ0N5QUJRZ0dHaENFQkN5QUdRZi8vQVU0RVFDQUtRb0NBZ0lDQWdNRC8vd0NFSVFwQ0FDRUJEQUVMQW40Z0JrRUFUQVJBUVFFZ0Jtc2lCMEdBQVU4RVFFSUFJUUVNQXdzZ0JVRXdhaUFESUFFZ0JrSC9BR29pQmhBdklBVkJJR29nQWlBRUlBWVFMeUFGUVJCcUlBTWdBU0FIRUh3Z0JTQUNJQVFnQnhCOElBVXBBekFnQlNrRE9JUkNBRkt0SUFVcEF5QWdCU2tERUlTRUlRTWdCU2tES0NBRktRTVloQ0VCSUFVcEF3QWhBaUFGS1FNSURBRUxJQVJDLy8vLy8vLy9QNE1nQnExQ01JYUVDeUFLaENFS0lBTlFJQUZDQUZrZ0FVS0FnSUNBZ0lDQWdJQi9VUnRGQkVBZ0NpQUNRZ0Y4SWdFZ0FsU3RmQ0VLREFFTElBTWdBVUtBZ0lDQWdJQ0FnSUIvaFlSUVJRUkFJQUloQVF3QkN5QUtJQUlnQWtJQmczd2lBU0FDVksxOElRb0xJQUFnQVRjREFDQUFJQW8zQXdnZ0JVSGdBR29rQUF1QUxnRUxmeU1BUVJCcklnc2tBQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0FFSDBBVTBFUUVIWWdRRW9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQjBFRGRpSUNkaUlCUVFOeEJFQWdBVUYvYzBFQmNTQUNhaUlEUVFOMElnRkJpSUlCYWlnQ0FDSUVRUWhxSVFBQ1FDQUVLQUlJSWdJZ0FVR0FnZ0ZxSWdGR0JFQkIySUVCSUFaQmZpQURkM0UyQWdBTUFRc2dBaUFCTmdJTUlBRWdBallDQ0FzZ0JDQURRUU4wSWdGQkEzSTJBZ1FnQVNBRWFpSUJJQUVvQWdSQkFYSTJBZ1FNREFzZ0IwSGdnUUVvQWdBaUNrME5BU0FCQkVBQ1FFRUNJQUowSWdCQkFDQUFhM0lnQVNBQ2RIRWlBRUVBSUFCcmNVRUJheUlBSUFCQkRIWkJFSEVpQW5ZaUFVRUZka0VJY1NJQUlBSnlJQUVnQUhZaUFVRUNka0VFY1NJQWNpQUJJQUIySWdGQkFYWkJBbkVpQUhJZ0FTQUFkaUlCUVFGMlFRRnhJZ0J5SUFFZ0FIWnFJZ05CQTNRaUFFR0lnZ0ZxS0FJQUlnUW9BZ2dpQVNBQVFZQ0NBV29pQUVZRVFFSFlnUUVnQmtGK0lBTjNjU0lHTmdJQURBRUxJQUVnQURZQ0RDQUFJQUUyQWdnTElBUkJDR29oQUNBRUlBZEJBM0kyQWdRZ0JDQUhhaUlDSUFOQkEzUWlBU0FIYXlJRFFRRnlOZ0lFSUFFZ0JHb2dBellDQUNBS0JFQWdDa0VEZGlJQlFRTjBRWUNDQVdvaEJVSHNnUUVvQWdBaEJBSi9JQVpCQVNBQmRDSUJjVVVFUUVIWWdRRWdBU0FHY2pZQ0FDQUZEQUVMSUFVb0FnZ0xJUUVnQlNBRU5nSUlJQUVnQkRZQ0RDQUVJQVUyQWd3Z0JDQUJOZ0lJQzBIc2dRRWdBallDQUVIZ2dRRWdBellDQUF3TUMwSGNnUUVvQWdBaUNVVU5BU0FKUVFBZ0NXdHhRUUZySWdBZ0FFRU1ka0VRY1NJQ2RpSUJRUVYyUVFoeElnQWdBbklnQVNBQWRpSUJRUUoyUVFSeElnQnlJQUVnQUhZaUFVRUJka0VDY1NJQWNpQUJJQUIySWdGQkFYWkJBWEVpQUhJZ0FTQUFkbXBCQW5SQmlJUUJhaWdDQUNJQktBSUVRWGh4SUFkcklRTWdBU0VDQTBBQ1FDQUNLQUlRSWdCRkJFQWdBaWdDRkNJQVJRMEJDeUFBS0FJRVFYaHhJQWRySWdJZ0F5QUNJQU5KSWdJYklRTWdBQ0FCSUFJYklRRWdBQ0VDREFFTEN5QUJLQUlZSVFnZ0FTQUJLQUlNSWdSSEJFQWdBU2dDQ0NJQVFlaUJBU2dDQUVrYUlBQWdCRFlDRENBRUlBQTJBZ2dNQ3dzZ0FVRVVhaUlDS0FJQUlnQkZCRUFnQVNnQ0VDSUFSUTBESUFGQkVHb2hBZ3NEUUNBQ0lRVWdBQ0lFUVJScUlnSW9BZ0FpQUEwQUlBUkJFR29oQWlBRUtBSVFJZ0FOQUFzZ0JVRUFOZ0lBREFvTFFYOGhCeUFBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VIUWR5QkFTZ0NBQ0lKUlEwQVFRQWdCMnNoQXdKQUFrQUNRQUovUVFBZ0IwR0FBa2tOQUJwQkh5QUhRZi8vL3dkTERRQWFJQUJCQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBSElBQkJGV3AyUVFGeGNrRWNhZ3NpQmtFQ2RFR0loQUZxS0FJQUlnSkZCRUJCQUNFQURBRUxRUUFoQUNBSFFRQkJHU0FHUVFGMmF5QUdRUjlHRzNRaEFRTkFBa0FnQWlnQ0JFRjRjU0FIYXlJRklBTlBEUUFnQWlFRUlBVWlBdzBBUVFBaEF5QUNJUUFNQXdzZ0FDQUNLQUlVSWdVZ0JTQUNJQUZCSFhaQkJIRnFLQUlRSWdKR0d5QUFJQVViSVFBZ0FVRUJkQ0VCSUFJTkFBc0xJQUFnQkhKRkJFQkJBQ0VFUVFJZ0JuUWlBRUVBSUFCcmNpQUpjU0lBUlEwRElBQkJBQ0FBYTNGQkFXc2lBQ0FBUVF4MlFSQnhJZ0oySWdGQkJYWkJDSEVpQUNBQ2NpQUJJQUIySWdGQkFuWkJCSEVpQUhJZ0FTQUFkaUlCUVFGMlFRSnhJZ0J5SUFFZ0FIWWlBVUVCZGtFQmNTSUFjaUFCSUFCMmFrRUNkRUdJaEFGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FIYXlJQklBTkpJUUlnQVNBRElBSWJJUU1nQUNBRUlBSWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFlQ0JBU2dDQUNBSGEwOE5BQ0FFS0FJWUlRWWdCQ0FFS0FJTUlnRkhCRUFnQkNnQ0NDSUFRZWlCQVNnQ0FFa2FJQUFnQVRZQ0RDQUJJQUEyQWdnTUNRc2dCRUVVYWlJQ0tBSUFJZ0JGQkVBZ0JDZ0NFQ0lBUlEwRElBUkJFR29oQWdzRFFDQUNJUVVnQUNJQlFSUnFJZ0lvQWdBaUFBMEFJQUZCRUdvaEFpQUJLQUlRSWdBTkFBc2dCVUVBTmdJQURBZ0xJQWRCNElFQktBSUFJZ0pOQkVCQjdJRUJLQUlBSVFNQ1FDQUNJQWRySWdGQkVFOEVRRUhnZ1FFZ0FUWUNBRUhzZ1FFZ0F5QUhhaUlBTmdJQUlBQWdBVUVCY2pZQ0JDQUNJQU5xSUFFMkFnQWdBeUFIUVFOeU5nSUVEQUVMUWV5QkFVRUFOZ0lBUWVDQkFVRUFOZ0lBSUFNZ0FrRURjallDQkNBQ0lBTnFJZ0FnQUNnQ0JFRUJjallDQkFzZ0EwRUlhaUVBREFvTElBZEI1SUVCS0FJQUlnaEpCRUJCNUlFQklBZ2dCMnNpQVRZQ0FFSHdnUUZCOElFQktBSUFJZ0lnQjJvaUFEWUNBQ0FBSUFGQkFYSTJBZ1FnQWlBSFFRTnlOZ0lFSUFKQkNHb2hBQXdLQzBFQUlRQWdCMEV2YWlJSkFuOUJzSVVCS0FJQUJFQkJ1SVVCS0FJQURBRUxRYnlGQVVKL053SUFRYlNGQVVLQW9JQ0FnSUFFTndJQVFiQ0ZBU0FMUVF4cVFYQnhRZGlxMWFvRmN6WUNBRUhFaFFGQkFEWUNBRUdVaFFGQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnVnhJZ0lnQjAwTkNVR1FoUUVvQWdBaUJBUkFRWWlGQVNnQ0FDSURJQUpxSWdFZ0EwMGdBU0FFUzNJTkNndEJsSVVCTFFBQVFRUnhEUVFDUUFKQVFmQ0JBU2dDQUNJREJFQkJtSVVCSVFBRFFDQURJQUFvQWdBaUFVOEVRQ0FCSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkJ5SWdGQmYwWU5CU0FDSVFaQnRJVUJLQUlBSWdOQkFXc2lBQ0FCY1FSQUlBSWdBV3NnQUNBQmFrRUFJQU5yY1dvaEJnc2dCaUFIVFNBR1FmNy8vLzhIUzNJTkJVR1FoUUVvQWdBaUJBUkFRWWlGQVNnQ0FDSURJQVpxSWdBZ0EwMGdBQ0FFUzNJTkJnc2dCaEJ5SWdBZ0FVY05BUXdIQ3lBR0lBaHJJQVZ4SWdaQi92Ly8vd2RMRFFRZ0JoQnlJZ0VnQUNnQ0FDQUFLQUlFYWtZTkF5QUJJUUFMSUFCQmYwWWdCMEV3YWlBR1RYSkZCRUJCdUlVQktBSUFJZ0VnQ1NBR2EycEJBQ0FCYTNFaUFVSCsvLy8vQjBzRVFDQUFJUUVNQndzZ0FSQnlRWDlIQkVBZ0FTQUdhaUVHSUFBaEFRd0hDMEVBSUFackVISWFEQVFMSUFBaUFVRi9SdzBGREFNTFFRQWhCQXdIQzBFQUlRRU1CUXNnQVVGL1J3MENDMEdVaFFGQmxJVUJLQUlBUVFSeU5nSUFDeUFDUWY3Ly8vOEhTdzBCSUFJUWNpSUJRWDlHUVFBUWNpSUFRWDlHY2lBQUlBRk5jZzBCSUFBZ0FXc2lCaUFIUVNocVRRMEJDMEdJaFFGQmlJVUJLQUlBSUFacUlnQTJBZ0JCaklVQktBSUFJQUJKQkVCQmpJVUJJQUEyQWdBTEFrQUNRQUpBUWZDQkFTZ0NBQ0lGQkVCQm1JVUJJUUFEUUNBQklBQW9BZ0FpQXlBQUtBSUVJZ0pxUmcwQ0lBQW9BZ2dpQUEwQUN3d0NDMEhvZ1FFb0FnQWlBRUVBSUFBZ0FVMGJSUVJBUWVpQkFTQUJOZ0lBQzBFQUlRQkJuSVVCSUFZMkFnQkJtSVVCSUFFMkFnQkIrSUVCUVg4MkFnQkIvSUVCUWJDRkFTZ0NBRFlDQUVHa2hRRkJBRFlDQUFOQUlBQkJBM1FpQTBHSWdnRnFJQU5CZ0lJQmFpSUNOZ0lBSUFOQmpJSUJhaUFDTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEhrZ1FFZ0JrRW9heUlEUVhnZ0FXdEJCM0ZCQUNBQlFRaHFRUWR4R3lJQWF5SUNOZ0lBUWZDQkFTQUFJQUZxSWdBMkFnQWdBQ0FDUVFGeU5nSUVJQUVnQTJwQktEWUNCRUgwZ1FGQndJVUJLQUlBTmdJQURBSUxJQUF0QUF4QkNIRWdBeUFGUzNJZ0FTQUZUWElOQUNBQUlBSWdCbW8yQWdSQjhJRUJJQVZCZUNBRmEwRUhjVUVBSUFWQkNHcEJCM0ViSWdCcUlnSTJBZ0JCNUlFQlFlU0JBU2dDQUNBR2FpSUJJQUJySWdBMkFnQWdBaUFBUVFGeU5nSUVJQUVnQldwQktEWUNCRUgwZ1FGQndJVUJLQUlBTmdJQURBRUxRZWlCQVNnQ0FDQUJTd1JBUWVpQkFTQUJOZ0lBQ3lBQklBWnFJUUpCbUlVQklRQUNRQUpBQWtBQ1FBSkFBa0FEUUNBQ0lBQW9BZ0JIQkVBZ0FDZ0NDQ0lBRFFFTUFnc0xJQUF0QUF4QkNIRkZEUUVMUVppRkFTRUFBMEFnQlNBQUtBSUFJZ0pQQkVBZ0FpQUFLQUlFYWlJRUlBVkxEUU1MSUFBb0FnZ2hBQXdBQ3dBTElBQWdBVFlDQUNBQUlBQW9BZ1FnQm1vMkFnUWdBVUY0SUFGclFRZHhRUUFnQVVFSWFrRUhjUnRxSWdrZ0IwRURjallDQkNBQ1FYZ2dBbXRCQjNGQkFDQUNRUWhxUVFkeEcyb2lCaUFISUFscUlnaHJJUUlnQlNBR1JnUkFRZkNCQVNBSU5nSUFRZVNCQVVIa2dRRW9BZ0FnQW1vaUFEWUNBQ0FJSUFCQkFYSTJBZ1FNQXdzZ0JrSHNnUUVvQWdCR0JFQkI3SUVCSUFnMkFnQkI0SUVCUWVDQkFTZ0NBQ0FDYWlJQU5nSUFJQWdnQUVFQmNqWUNCQ0FBSUFocUlBQTJBZ0FNQXdzZ0JpZ0NCQ0lBUVFOeFFRRkdCRUFnQUVGNGNTRUZBa0FnQUVIL0FVMEVRQ0FHS0FJSUlnTWdBRUVEZGlJQVFRTjBRWUNDQVdwR0dpQURJQVlvQWd3aUFVWUVRRUhZZ1FGQjJJRUJLQUlBUVg0Z0FIZHhOZ0lBREFJTElBTWdBVFlDRENBQklBTTJBZ2dNQVFzZ0JpZ0NHQ0VIQWtBZ0JpQUdLQUlNSWdGSEJFQWdCaWdDQ0NJQUlBRTJBZ3dnQVNBQU5nSUlEQUVMQWtBZ0JrRVVhaUlBS0FJQUlnTU5BQ0FHUVJCcUlnQW9BZ0FpQXcwQVFRQWhBUXdCQ3dOQUlBQWhCQ0FESWdGQkZHb2lBQ2dDQUNJRERRQWdBVUVRYWlFQUlBRW9BaEFpQXcwQUN5QUVRUUEyQWdBTElBZEZEUUFDUUNBR0lBWW9BaHdpQTBFQ2RFR0loQUZxSWdBb0FnQkdCRUFnQUNBQk5nSUFJQUVOQVVIY2dRRkIzSUVCS0FJQVFYNGdBM2R4TmdJQURBSUxJQWRCRUVFVUlBY29BaEFnQmtZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQnpZQ0dDQUdLQUlRSWdBRVFDQUJJQUEyQWhBZ0FDQUJOZ0lZQ3lBR0tBSVVJZ0JGRFFBZ0FTQUFOZ0lVSUFBZ0FUWUNHQXNnQlNBR2FpRUdJQUlnQldvaEFnc2dCaUFHS0FJRVFYNXhOZ0lFSUFnZ0FrRUJjallDQkNBQ0lBaHFJQUkyQWdBZ0FrSC9BVTBFUUNBQ1FRTjJJZ0JCQTNSQmdJSUJhaUVDQW45QjJJRUJLQUlBSWdGQkFTQUFkQ0lBY1VVRVFFSFlnUUVnQUNBQmNqWUNBQ0FDREFFTElBSW9BZ2dMSVFBZ0FpQUlOZ0lJSUFBZ0NEWUNEQ0FJSUFJMkFnd2dDQ0FBTmdJSURBTUxRUjhoQUNBQ1FmLy8vd2ROQkVBZ0FrRUlkaUlBSUFCQmdQNC9ha0VRZGtFSWNTSURkQ0lBSUFCQmdPQWZha0VRZGtFRWNTSUJkQ0lBSUFCQmdJQVBha0VRZGtFQ2NTSUFkRUVQZGlBQklBTnlJQUJ5YXlJQVFRRjBJQUlnQUVFVmFuWkJBWEZ5UVJ4cUlRQUxJQWdnQURZQ0hDQUlRZ0EzQWhBZ0FFRUNkRUdJaEFGcUlRUUNRRUhjZ1FFb0FnQWlBMEVCSUFCMElnRnhSUVJBUWR5QkFTQUJJQU55TmdJQUlBUWdDRFlDQUNBSUlBUTJBaGdNQVFzZ0FrRUFRUmtnQUVFQmRtc2dBRUVmUmh0MElRQWdCQ2dDQUNFQkEwQWdBU0lES0FJRVFYaHhJQUpHRFFNZ0FFRWRkaUVCSUFCQkFYUWhBQ0FESUFGQkJIRnFJZ1FvQWhBaUFRMEFDeUFFSUFnMkFoQWdDQ0FETmdJWUN5QUlJQWcyQWd3Z0NDQUlOZ0lJREFJTFFlU0JBU0FHUVNocklnTkJlQ0FCYTBFSGNVRUFJQUZCQ0dwQkIzRWJJZ0JySWdJMkFnQkI4SUVCSUFBZ0FXb2lBRFlDQUNBQUlBSkJBWEkyQWdRZ0FTQURha0VvTmdJRVFmU0JBVUhBaFFFb0FnQTJBZ0FnQlNBRVFTY2dCR3RCQjNGQkFDQUVRU2RyUVFkeEcycEJMMnNpQUNBQUlBVkJFR3BKR3lJQ1FSczJBZ1FnQWtHZ2hRRXBBZ0EzQWhBZ0FrR1loUUVwQWdBM0FnaEJvSVVCSUFKQkNHbzJBZ0JCbklVQklBWTJBZ0JCbUlVQklBRTJBZ0JCcElVQlFRQTJBZ0FnQWtFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvaEFTQUFRUVJxSVFBZ0FTQUVTUTBBQ3lBQ0lBVkdEUU1nQWlBQ0tBSUVRWDV4TmdJRUlBVWdBaUFGYXlJRVFRRnlOZ0lFSUFJZ0JEWUNBQ0FFUWY4QlRRUkFJQVJCQTNZaUFFRURkRUdBZ2dGcUlRSUNmMEhZZ1FFb0FnQWlBVUVCSUFCMElnQnhSUVJBUWRpQkFTQUFJQUZ5TmdJQUlBSU1BUXNnQWlnQ0NBc2hBQ0FDSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBallDRENBRklBQTJBZ2dNQkF0Qkh5RUFJQVZDQURjQ0VDQUVRZi8vL3dkTkJFQWdCRUVJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lDZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQUp5SUFCeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFVZ0FEWUNIQ0FBUVFKMFFZaUVBV29oQXdKQVFkeUJBU2dDQUNJQ1FRRWdBSFFpQVhGRkJFQkIzSUVCSUFFZ0FuSTJBZ0FnQXlBRk5nSUFJQVVnQXpZQ0dBd0JDeUFFUVFCQkdTQUFRUUYyYXlBQVFSOUdHM1FoQUNBREtBSUFJUUVEUUNBQklnSW9BZ1JCZUhFZ0JFWU5CQ0FBUVIxMklRRWdBRUVCZENFQUlBSWdBVUVFY1dvaUF5Z0NFQ0lCRFFBTElBTWdCVFlDRUNBRklBSTJBaGdMSUFVZ0JUWUNEQ0FGSUFVMkFnZ01Bd3NnQXlnQ0NDSUFJQWcyQWd3Z0F5QUlOZ0lJSUFoQkFEWUNHQ0FJSUFNMkFnd2dDQ0FBTmdJSUN5QUpRUWhxSVFBTUJRc2dBaWdDQ0NJQUlBVTJBZ3dnQWlBRk5nSUlJQVZCQURZQ0dDQUZJQUkyQWd3Z0JTQUFOZ0lJQzBIa2dRRW9BZ0FpQUNBSFRRMEFRZVNCQVNBQUlBZHJJZ0UyQWdCQjhJRUJRZkNCQVNnQ0FDSUNJQWRxSWdBMkFnQWdBQ0FCUVFGeU5nSUVJQUlnQjBFRGNqWUNCQ0FDUVFocUlRQU1Bd3RCMUlFQlFUQTJBZ0JCQUNFQURBSUxBa0FnQmtVTkFBSkFJQVFvQWh3aUFrRUNkRUdJaEFGcUlnQW9BZ0FnQkVZRVFDQUFJQUUyQWdBZ0FRMEJRZHlCQVNBSlFYNGdBbmR4SWdrMkFnQU1BZ3NnQmtFUVFSUWdCaWdDRUNBRVJodHFJQUUyQWdBZ0FVVU5BUXNnQVNBR05nSVlJQVFvQWhBaUFBUkFJQUVnQURZQ0VDQUFJQUUyQWhnTElBUW9BaFFpQUVVTkFDQUJJQUEyQWhRZ0FDQUJOZ0lZQ3dKQUlBTkJEMDBFUUNBRUlBTWdCMm9pQUVFRGNqWUNCQ0FBSUFScUlnQWdBQ2dDQkVFQmNqWUNCQXdCQ3lBRUlBZEJBM0kyQWdRZ0JDQUhhaUlGSUFOQkFYSTJBZ1FnQXlBRmFpQUROZ0lBSUFOQi93Rk5CRUFnQTBFRGRpSUFRUU4wUVlDQ0FXb2hBZ0ovUWRpQkFTZ0NBQ0lCUVFFZ0FIUWlBSEZGQkVCQjJJRUJJQUFnQVhJMkFnQWdBZ3dCQ3lBQ0tBSUlDeUVBSUFJZ0JUWUNDQ0FBSUFVMkFnd2dCU0FDTmdJTUlBVWdBRFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFuUWlBQ0FBUVlEZ0gycEJFSFpCQkhFaUFYUWlBQ0FBUVlDQUQycEJFSFpCQW5FaUFIUkJEM1lnQVNBQ2NpQUFjbXNpQUVFQmRDQURJQUJCRldwMlFRRnhja0VjYWlFQUN5QUZJQUEyQWh3Z0JVSUFOd0lRSUFCQkFuUkJpSVFCYWlFQkFrQUNRQ0FKUVFFZ0FIUWlBbkZGQkVCQjNJRUJJQUlnQ1hJMkFnQWdBU0FGTmdJQURBRUxJQU5CQUVFWklBQkJBWFpySUFCQkgwWWJkQ0VBSUFFb0FnQWhCd05BSUFjaUFTZ0NCRUY0Y1NBRFJnMENJQUJCSFhZaEFpQUFRUUYwSVFBZ0FTQUNRUVJ4YWlJQ0tBSVFJZ2NOQUFzZ0FpQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBUkJDR29oQUF3QkN3SkFJQWhGRFFBQ1FDQUJLQUljSWdKQkFuUkJpSVFCYWlJQUtBSUFJQUZHQkVBZ0FDQUVOZ0lBSUFRTkFVSGNnUUVnQ1VGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWcyQWhnZ0FTZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQVNnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUVnQXlBSGFpSUFRUU55TmdJRUlBQWdBV29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUVnQjBFRGNqWUNCQ0FCSUFkcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdDZ1JBSUFwQkEzWWlBRUVEZEVHQWdnRnFJUVZCN0lFQktBSUFJUVFDZjBFQklBQjBJZ0FnQm5GRkJFQkIySUVCSUFBZ0JuSTJBZ0FnQlF3QkN5QUZLQUlJQ3lFQUlBVWdCRFlDQ0NBQUlBUTJBZ3dnQkNBRk5nSU1JQVFnQURZQ0NBdEI3SUVCSUFJMkFnQkI0SUVCSUFNMkFnQUxJQUZCQ0dvaEFBc2dDMEVRYWlRQUlBQUxwd0VCQkg4akFFRWdheUlCSkFBZ0FVRUFOZ0lNSUFGQk56WUNDQ0FCSUFFcEF3ZzNBd0FnQVVFUWFpSURJQUVwQWdBM0FnUWdBeUFBTmdJQUl3QkJFR3NpQWlRQUlBQW9BZ0JCZjBjRVFDQUNRUWhxSWdRZ0F4QjZHaUFDSUFRUWVob0RRQ0FBS0FJQVFRRkdEUUFMSUFBb0FnQkZCRUFnQUVFQk5nSUFJQUpCT0JFQkFDQUFRWDgyQWdBTEN5QUNRUkJxSkFBZ0FDZ0NCQ0VBSUFGQklHb2tBQ0FBUVFGckN4c0FJQUJCQURZQ0JDQUFRZGo4QURZQ0FDQUFRWmpXQURZQ0FBdVlCZ0VKZnlNQVFSQnJJZ2drQUNBQUVNNEJJd0JCRUdzaUFpUUFJQUlnQURZQ0RDQUlRUWhxSWdVZ0FrRU1haEF6SUFKQkVHb2tBRUd3bFFFUVVDQUJUUVJBQWtCQnNKVUJFRkFpQWlBQlFRRnFJZ0JKQkVBakFFRWdheUlKSkFBQ1FDQUFJQUpySWdaQnNKVUJFRU1vQWdCQnRKVUJLQUlBYTBFQ2RVMEVRQ0FHRUpjQ0RBRUxRYkNWQVJCMElRY2dDVUVJYWlFQ0FuOUJzSlVCRUZBZ0Jtb2hCQ01BUVJCcklnQWtBQ0FBSUFRMkFnd2dCQkNCQWlJRFRRUkFRYkNWQVJCeklnUWdBMEVCZGtrRVFDQUFJQVJCQVhRMkFnZ2dBRUVJYWlBQVFReHFFSFlvQWdBaEF3c2dBRUVRYWlRQUlBTU1BUXNRRndBTElRQkJzSlVCRUZBaENrRUFJUU1qQUVFUWF5SUVKQUFnQkVFQU5nSU1JQUpCREdvZ0JFRU1haUFIRUlRQ0lBQUVRQ0FDS0FJUUlBQVFnQUloQXdzZ0FpQUROZ0lBSUFJZ0F5QUtRUUowYWlJSE5nSUlJQUlnQnpZQ0JDQUNFSU1CSUFNZ0FFRUNkR28yQWdBZ0JFRVFhaVFBSXdCQkVHc2lBQ1FBSUFBZ0FpZ0NDRFlDQUNBQ0tBSUlJUU1nQUNBQ1FRaHFOZ0lJSUFBZ0F5QUdRUUowYWpZQ0JDQUFLQUlBSVFNRFFDQUFLQUlFSUFOSEJFQWdBaWdDRUNBQUtBSUFFUDRCSUFBZ0FDZ0NBRUVFYWlJRE5nSUFEQUVMQ3lBQUtBSUlJQUFvQWdBMkFnQWdBRUVRYWlRQVFiQ1ZBUkNSQWtHd2xRRVFkRUd3bFFFb0FnQkJ0SlVCS0FJQUlBSkJCR29pQUJDREFrR3dsUUVnQUJCMVFiU1ZBU0FDUVFocUVIVkJzSlVCRUVNZ0FoQ0RBUkIxSUFJZ0FpZ0NCRFlDQUVHd2xRRVFVQkQvQVNBQ0tBSUVJUUFEUUNBQUlBSW9BZ2hIQkVBZ0FpZ0NFQm9nQWlBQ0tBSUlRUVJyTmdJSURBRUxDeUFDS0FJQUJFQWdBaWdDRUNBQ0tBSUFJQUlRZ3dFb0FnQWdBaWdDQUd0QkFuVVEvQUVMQ3lBSlFTQnFKQUFNQVFzZ0FDQUNTUVJBUWJDVkFTZ0NBQ0FBUVFKMGFpRUFRYkNWQVJCUUlRSkJzSlVCSUFBUSt3RkJzSlVCSUFJUWxBSUxDd3RCc0pVQklBRVFkeWdDQUFSQVFiQ1ZBU0FCRUhjb0FnQVFvd0VMSUFVUXBnRWhBRUd3bFFFZ0FSQjNJQUEyQWdBZ0JTZ0NBQ0VBSUFWQkFEWUNBQ0FBQkVBZ0FCQ2pBUXNnQ0VFUWFpUUFDd2dBSUFCQkFCQW5DeThCQVg4akFFRVFheUlESkFBZ0F5QUJOZ0lNSUFBZ0EwRU1haEF6SUFCQkJHb2dBaEF6SUFOQkVHb2tBQ0FBQ3hBQUlBQW9BZ0FRZ0FOQkdIUkJHSFVMQmdBZ0FCQVFDd29BSUFBb0FnQVErd0lMRFFBZ0FDZ0NBQkQvQWhvZ0FBdExBUUovSXdCQkVHc2lBU1FBSUFFZ0FCRHlBU0VBSXdCQkVHc2lBaVFBSUFKQkNHb2dBQ2dDQkJCNktBSUFRUUU2QUFBZ0FDZ0NDRUVCT2dBQUlBSkJFR29rQUNBQlFSQnFKQUFMZHdFRGZ5TUFRUkJySWdJa0FDQUNJQUFROGdFaEFDTUFRUkJySWdNa0FDQURRUWhxSUFBb0FnUVFlaWdDQUMwQUFFVUVRQUovQWtBZ0FDZ0NDQ0lBTFFBQUlnRkJBVWNFZnlBQlFRSnhEUUVnQUVFQ09nQUFRUUVGUVFBTERBRUxFQmNBQ3lFQkN5QURRUkJxSkFBZ0FrRVFhaVFBSUFFTERRQWdBQ2dDQUJENkFob2dBQXNKQUNBQUlBRVFnUU1MSkFFQmZ5QUFLQUlBSVFJZ0FDQUJOZ0lBSUFJRVFDQUNJQUFRbGdFb0FnQVJBUUFMQ3drQUlBQWdBUkQ4QWdzUkFDQUFJQUVnQUNnQ0FDZ0NIQkVDQUF1L0FRRURmeUFBTFFBQVFTQnhSUVJBQWtBZ0FTRURBa0FnQWlBQUlnRW9BaEFpQUFSL0lBQUZJQUVRNkFFTkFTQUJLQUlRQ3lBQktBSVVJZ1ZyU3dSQUlBRWdBeUFDSUFFb0FpUVJCQUFhREFJTEFrQWdBU2dDVUVFQVNBMEFJQUloQUFOQUlBQWlCRVVOQVNBRElBUkJBV3NpQUdvdEFBQkJDa2NOQUFzZ0FTQURJQVFnQVNnQ0pCRUVBQ0FFU1EwQklBTWdCR29oQXlBQ0lBUnJJUUlnQVNnQ0ZDRUZDeUFGSUFNZ0FoQkNHaUFCSUFFb0FoUWdBbW8yQWhRTEN3c0xkUUVCZmlBQUlBRWdCSDRnQWlBRGZud2dBMElnaUNJQ0lBRkNJSWdpQkg1OElBTkMvLy8vL3crRElnTWdBVUwvLy8vL0Q0TWlBWDRpQlVJZ2lDQURJQVIrZkNJRFFpQ0lmQ0FCSUFKK0lBTkMvLy8vL3crRGZDSUJRaUNJZkRjRENDQUFJQVZDLy8vLy93K0RJQUZDSUlhRU53TUFDME1CQVg4akFFRVFheUlGSkFBZ0JTQUNOZ0lNSUFVZ0JEWUNDQ0FGSUFWQkRHb1FVaUVDSUFBZ0FTQURJQVVvQWdnUXRRRWhBQ0FDRUZFZ0JVRVFhaVFBSUFBTG9RRUJBbjhDUUNBQUVBbEZJQUlnQVd0QkJVaHlEUUFnQVNBQ0VLMEJJQUpCQkdzaEJDQUFFQTBpQWlBQUVBbHFJUVVDUUFOQUFrQWdBaXdBQUNFQUlBRWdCRThOQUNBQVFRQk1JQUJCL3dCT2NrVUVRQ0FCS0FJQUlBSXNBQUJIRFFNTElBRkJCR29oQVNBQ0lBVWdBbXRCQVVwcUlRSU1BUXNMSUFCQkFFd2dBRUgvQUU1eURRRWdBaXdBQUNBRUtBSUFRUUZyU3cwQkN5QURRUVEyQWdBTEMyMEJBWDhqQUVHQUFtc2lCU1FBSUFSQmdNQUVjU0FDSUFOTWNrVUVRQ0FGSUFGQi93RnhJQUlnQTJzaUFrR0FBaUFDUVlBQ1NTSUJHeEJHR2lBQlJRUkFBMEFnQUNBRlFZQUNFQ29nQWtHQUFtc2lBa0gvQVVzTkFBc0xJQUFnQlNBQ0VDb0xJQVZCZ0FKcUpBQUxVQUVCZmdKQUlBTkJ3QUJ4QkVBZ0FTQURRVUJxcllZaEFrSUFJUUVNQVFzZ0EwVU5BQ0FDSUFPdElnU0dJQUZCd0FBZ0EydXRpSVFoQWlBQklBU0dJUUVMSUFBZ0FUY0RBQ0FBSUFJM0F3Z0xWUUVDZnlNQVFSQnJJZ0lrQUNBQUVEVUVRQ0FBS0FJQUlRTWdBQkI5R2lBREVCQUxJQUFnQVNnQ0NEWUNDQ0FBSUFFcEFnQTNBZ0FnQVVFQUVEb2dBa0VBT2dBUElBRWdBa0VQYWhBMElBSkJFR29rQUFzTUFDQUFJQUVRZ1FOQkFYTUxDZ0FnQUVHRWlRRVFaQXNNQUNBQUlBRW9BZ0EyQWdBTERBQWdBQ0FCTFFBQU9nQUFDd29BSUFBdEFBdEJCM1lMREFBZ0FDQUJFUHdDUVFGekN4RUFJQUFnQVNBQktBSUFLQUlVRVFNQUN3OEFJQUFnQUNnQ0FDZ0NFQkVBQUFzSkFDQUFJQUUyQWdRTENRQWdBQ0FCT2dBTEN3b0FJQUJCL0lnQkVHUUwwUWtDQkg4RWZpTUFRZkFBYXlJRkpBQWdCRUwvLy8vLy8vLy8vLzhBZ3lFS0FrQUNRQ0FCUWdGOUlndENmMUVnQWtMLy8vLy8vLy8vLy84QWd5SUpJQUVnQzFhdGZFSUJmU0lMUXYvLy8vLy8vNy8vL3dCV0lBdEMvLy8vLy8vL3YvLy9BRkViUlFSQUlBTkNBWDBpQzBKL1VpQUtJQU1nQzFhdGZFSUJmU0lMUXYvLy8vLy8vNy8vL3dCVUlBdEMvLy8vLy8vL3YvLy9BRkViRFFFTElBRlFJQWxDZ0lDQWdJQ0F3UC8vQUZRZ0NVS0FnSUNBZ0lEQS8vOEFVUnRGQkVBZ0FrS0FnSUNBZ0lBZ2hDRUVJQUVoQXd3Q0N5QURVQ0FLUW9DQWdJQ0FnTUQvL3dCVUlBcENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBUkNnSUNBZ0lDQUlJUWhCQXdDQ3lBQklBbENnSUNBZ0lDQXdQLy9BSVdFVUFSQVFvQ0FnSUNBZ09ELy93QWdBaUFCSUFPRklBSWdCSVZDZ0lDQWdJQ0FnSUNBZjRXRVVDSUdHeUVFUWdBZ0FTQUdHeUVEREFJTElBTWdDa0tBZ0lDQWdJREEvLzhBaFlSUURRRWdBU0FKaEZBRVFDQURJQXFFUWdCU0RRSWdBU0FEZ3lFRElBSWdCSU1oQkF3Q0N5QURJQXFFVUVVTkFDQUJJUU1nQWlFRURBRUxJQU1nQVNBQklBTlVJQWtnQ2xRZ0NTQUtVUnNpQnhzaENpQUVJQUlnQnhzaUMwTC8vLy8vLy84L2d5RUpJQUlnQkNBSEd5SUNRakNJcDBILy93RnhJUWdnQzBJd2lLZEIvLzhCY1NJR1JRUkFJQVZCNEFCcUlBb2dDU0FLSUFrZ0NWQWlCaHQ1SUFaQkJuU3RmS2NpQmtFUGF4QXZJQVVwQTJnaENTQUZLUU5nSVFwQkVDQUdheUVHQ3lBQklBTWdCeHNoQXlBQ1F2Ly8vLy8vL3orRElRUWdDRVVFUUNBRlFkQUFhaUFESUFRZ0F5QUVJQVJRSWdjYmVTQUhRUVowclh5bklnZEJEMnNRTDBFUUlBZHJJUWdnQlNrRFdDRUVJQVVwQTFBaEF3c2dCRUlEaGlBRFFqMkloRUtBZ0lDQWdJQ0FCSVFoQkNBSlFnT0dJQXBDUFlpRUlRa2dBaUFMaFNFTUFuNGdBMElEaGlJQklBWWdDR3NpQjBVTkFCb2dCMEgvQUVzRVFFSUFJUVJDQVF3QkN5QUZRVUJySUFFZ0JFR0FBU0FIYXhBdklBVkJNR29nQVNBRUlBY1FmQ0FGS1FNNElRUWdCU2tETUNBRktRTkFJQVVwQTBpRVFnQlNyWVFMSVFJZ0NVS0FnSUNBZ0lDQUJJUWhDU0FLUWdPR0lRTUNRQ0FNUWdCVEJFQWdBeUFDZlNJQklBa2dCSDBnQWlBRFZxMTlJZ1NFVUFSQVFnQWhBMElBSVFRTUF3c2dCRUwvLy8vLy8vLy9BMVlOQVNBRlFTQnFJQUVnQkNBQklBUWdCRkFpQnh0NUlBZEJCblN0ZktkQkRHc2lCeEF2SUFZZ0Iyc2hCaUFGS1FNb0lRUWdCU2tESUNFQkRBRUxJQUlnQTN3aUFTQUNWSzBnQkNBSmZId2lCRUtBZ0lDQWdJQ0FDSU5RRFFBZ0FVSUJneUFFUWorR0lBRkNBWWlFaENFQklBWkJBV29oQmlBRVFnR0lJUVFMSUF0Q2dJQ0FnSUNBZ0lDQWY0TWhBaUFHUWYvL0FVNEVRQ0FDUW9DQWdJQ0FnTUQvL3dDRUlRUkNBQ0VEREFFTFFRQWhCd0pBSUFaQkFFb0VRQ0FHSVFjTUFRc2dCVUVRYWlBQklBUWdCa0gvQUdvUUx5QUZJQUVnQkVFQklBWnJFSHdnQlNrREFDQUZLUU1RSUFVcEF4aUVRZ0JTcllRaEFTQUZLUU1JSVFRTElBR25RUWR4SWdaQkJFdXRJQVJDUFlZZ0FVSURpSVFpQVh3aUF5QUJWSzBnQkVJRGlFTC8vLy8vLy84L2d5QUhyVUl3aG9RZ0FvUjhJUVFDUUNBR1FRUkdCRUFnQkNBRFFnR0RJZ0VnQTN3aUF5QUJWSzE4SVFRTUFRc2dCa1VOQVFzTElBQWdBemNEQUNBQUlBUTNBd2dnQlVId0FHb2tBQXNSQUNBQUlBRWdBQ2dDQUNnQ0xCRUNBQXN0QUNBQ1JRUkFJQUFvQWdRZ0FTZ0NCRVlQQ3lBQUlBRkdCRUJCQVE4TElBQW9BZ1FnQVNnQ0JCQzJBVVVMWXdBZ0FpZ0NCRUd3QVhFaUFrRWdSZ1JBSUFFUEN3SkFJQUpCRUVjTkFBSkFBa0FnQUMwQUFDSUNRU3RyRGdNQUFRQUJDeUFBUVFGcUR3c2dBa0V3UnlBQklBQnJRUUpJY2cwQUlBQXRBQUZCSUhKQitBQkhEUUFnQUVFQ2FpRUFDeUFBQ3lZQkFYOGpBRUVRYXlJQkpBQWdBVUVJYWlBQUVBMFFlaWdDQUNFQUlBRkJFR29rQUNBQUMzNENBbjhCZmlNQVFSQnJJZ01rQUNBQUFuNGdBVVVFUUVJQURBRUxJQU1nQVNBQlFSOTFJZ0pxSUFKeklnS3RRZ0FnQW1jaUFrSFJBR29RTHlBREtRTUlRb0NBZ0lDQWdNQUFoVUdlZ0FFZ0FtdXRRakNHZkNBQlFZQ0FnSUI0Y2ExQ0lJYUVJUVFnQXlrREFBczNBd0FnQUNBRU53TUlJQU5CRUdva0FBdURCQUVEZnlBQ1FZQUVUd1JBSUFBZ0FTQUNFQVVhSUFBUEN5QUFJQUpxSVFNQ1FDQUFJQUZ6UVFOeFJRUkFBa0FnQUVFRGNVVUVRQ0FBSVFJTUFRc2dBa0VBVEFSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaUFrRURjVVVOQVNBQ0lBTkpEUUFMQ3dKQUlBTkJmSEVpQkVIQUFFa05BQ0FDSUFSQlFHb2lCVXNOQUFOQUlBSWdBU2dDQURZQ0FDQUNJQUVvQWdRMkFnUWdBaUFCS0FJSU5nSUlJQUlnQVNnQ0REWUNEQ0FDSUFFb0FoQTJBaEFnQWlBQktBSVVOZ0lVSUFJZ0FTZ0NHRFlDR0NBQ0lBRW9BaHcyQWh3Z0FpQUJLQUlnTmdJZ0lBSWdBU2dDSkRZQ0pDQUNJQUVvQWlnMkFpZ2dBaUFCS0FJc05nSXNJQUlnQVNnQ01EWUNNQ0FDSUFFb0FqUTJBalFnQWlBQktBSTROZ0k0SUFJZ0FTZ0NQRFlDUENBQlFVQnJJUUVnQWtGQWF5SUNJQVZORFFBTEN5QUNJQVJQRFFFRFFDQUNJQUVvQWdBMkFnQWdBVUVFYWlFQklBSkJCR29pQWlBRVNRMEFDd3dCQ3lBRFFRUkpCRUFnQUNFQ0RBRUxJQUFnQTBFRWF5SUVTd1JBSUFBaEFnd0JDeUFBSVFJRFFDQUNJQUV0QUFBNkFBQWdBaUFCTFFBQk9nQUJJQUlnQVMwQUFqb0FBaUFDSUFFdEFBTTZBQU1nQVVFRWFpRUJJQUpCQkdvaUFpQUVUUTBBQ3dzZ0FpQURTUVJBQTBBZ0FpQUJMUUFBT2dBQUlBRkJBV29oQVNBQ1FRRnFJZ0lnQTBjTkFBc0xJQUFMQndBZ0FFRUlhZ3NuQVFGL0lBSkJBRTRFZnlBQUtBSUlJQUpCL3dGeFFRRjBhaThCQUNBQmNVRUFSd1VnQXdzTENnQWdBRUV3YTBFS1NRdnlBZ0lDZndGK0FrQWdBa1VOQUNBQUlBRTZBQUFnQUNBQ2FpSURRUUZySUFFNkFBQWdBa0VEU1EwQUlBQWdBVG9BQWlBQUlBRTZBQUVnQTBFRGF5QUJPZ0FBSUFOQkFtc2dBVG9BQUNBQ1FRZEpEUUFnQUNBQk9nQURJQU5CQkdzZ0FUb0FBQ0FDUVFsSkRRQWdBRUVBSUFCclFRTnhJZ1JxSWdNZ0FVSC9BWEZCZ1lLRUNHd2lBVFlDQUNBRElBSWdCR3RCZkhFaUJHb2lBa0VFYXlBQk5nSUFJQVJCQ1VrTkFDQURJQUUyQWdnZ0F5QUJOZ0lFSUFKQkNHc2dBVFlDQUNBQ1FReHJJQUUyQWdBZ0JFRVpTUTBBSUFNZ0FUWUNHQ0FESUFFMkFoUWdBeUFCTmdJUUlBTWdBVFlDRENBQ1FSQnJJQUUyQWdBZ0FrRVVheUFCTmdJQUlBSkJHR3NnQVRZQ0FDQUNRUnhySUFFMkFnQWdCQ0FEUVFSeFFSaHlJZ1JySWdKQklFa05BQ0FCclVLQmdJQ0FFSDRoQlNBRElBUnFJUUVEUUNBQklBVTNBeGdnQVNBRk53TVFJQUVnQlRjRENDQUJJQVUzQXdBZ0FVRWdhaUVCSUFKQklHc2lBa0VmU3cwQUN3c2dBQXMzQVFKL0l3QkJFR3NpQWlRQUEwQWdBVUVEUndSQUlBQWdBVUVDZEdwQkFEWUNBQ0FCUVFGcUlRRU1BUXNMSUFKQkVHb2tBQ0FBQ3c4QUlBQWdBQ2dDQUNnQ0RCRUFBQXNIQUNBQUVBbEZDeEVBSUFBZ0FTQUJLQUlBS0FJY0VRTUFDeEVBSUFBZ0FTQUJLQUlBS0FJWUVRTUFDeEFBSUFBZ0FVR0FnSUNBZUhJMkFnZ0xDUUFnQUNBQk5nSUFDeE1BSUFBZ0FTQUNJQUFvQWdBb0Fnd1JCQUFMQkFCQkFBc1FBQ0FBS0FJRUlBQW9BZ0JyUVFKMUN4SUFJQUFvQWdBaUFBUkFJQUFRMFFJYUN3c1JBQ0FBSUFFb0FnQVEwUUkyQWdBZ0FBdEJBUUYvSUFBZ0FUY0RjQ0FBSUFBb0Fpd2dBQ2dDQkNJQ2E2dzNBM2dnQUNBQlVDQUFLQUlJSWdBZ0FtdXNJQUZYY2dSL0lBQUZJQUlnQWFkcUN6WUNhQXNpQVFGL0l3QkJFR3NpQWlRQUlBQWdBU0FCRUpJQkVQWUJJQUpCRUdva0FDQUFDeEFBSUFJRVFDQUFJQUVnQWhCQ0dnc0xuUUVCQkg4akFFRVFheUlISkFBQ1FDQUFSUTBBSUFRb0Fnd2hCaUFDSUFGcklnaEJBRW9FUUNBQUlBRWdDQkIvSUFoSERRRUxJQVlnQXlBQmF5SUJhMEVBSUFFZ0JrZ2JJZ0ZCQUVvRVFDQUFJQWNnQVNBRkVPOEJJZ1VRRFNBQkVIOGhCaUFGRUFvYUlBRWdCa2NOQVFzZ0F5QUNheUlCUVFCS0JFQWdBQ0FDSUFFUWZ5QUJSdzBCQ3lBRUVPNEJJQUFoQ1FzZ0IwRVFhaVFBSUFrTFZRRUNmeU1BUVJCcklnSWtBQ0FBRURVRVFDQUFLQUlBSVFNZ0FCQjlHaUFERUJBTElBQWdBU2dDQ0RZQ0NDQUFJQUVwQWdBM0FnQWdBVUVBRURvZ0FrRUFOZ0lNSUFFZ0FrRU1haEF6SUFKQkVHb2tBQXU4QVFFRGZ5TUFRUkJySWdVa0FDQUZJQUUyQWdoQkFDRUJRUVloQmdKQUFrQWdBQ0FGUVFocUVDZ05BRUVFSVFZZ0EwR0FFQ0FBRUNFaUJ4Qk9SUTBBSUFNZ0J4Q0hBU0VCQTBBQ1FDQUFFQ1VhSUFGQk1Hc2hBU0FBSUFWQkNHb1FOa1VnQkVFQ1NISU5BQ0FEUVlBUUlBQVFJU0lHRUU1RkRRTWdCRUVCYXlFRUlBTWdCaENIQVNBQlFRcHNhaUVCREFFTEMwRUNJUVlnQUNBRlFRaHFFQ2hGRFFFTElBSWdBaWdDQUNBR2NqWUNBQXNnQlVFUWFpUUFJQUVMdkFFQkEzOGpBRUVRYXlJRkpBQWdCU0FCTmdJSVFRQWhBVUVHSVFZQ1FBSkFJQUFnQlVFSWFoQW1EUUJCQkNFR0lBTkJnQkFnQUJBZklnY1FSRVVOQUNBRElBY1FpQUVoQVFOQUFrQWdBQkFpR2lBQlFUQnJJUUVnQUNBRlFRaHFFREZGSUFSQkFraHlEUUFnQTBHQUVDQUFFQjhpQmhCRVJRMERJQVJCQVdzaEJDQURJQVlRaUFFZ0FVRUtiR29oQVF3QkN3dEJBaUVHSUFBZ0JVRUlhaEFtUlEwQkN5QUNJQUlvQWdBZ0JuSTJBZ0FMSUFWQkVHb2tBQ0FCQzVvQkFRTi9Jd0JCRUdzaUJDUUFJQVFnQVRZQ0RDQUVJQU0yQWdnZ0JDQUVRUXhxRUZJaEJpQUVLQUlJSVFNakFFRVFheUlCSkFBZ0FTQUROZ0lNSUFFZ0F6WUNDRUYvSVFVQ1FFRUFRUUFnQWlBREVMVUJJZ05CQUVnTkFDQUFJQU5CQVdvaUF4QVpJZ0EyQWdBZ0FFVU5BQ0FBSUFNZ0FpQUJLQUlNRUxVQklRVUxJQUZCRUdva0FDQUZJUUFnQmhCUklBUkJFR29rQUNBQUN3MEFJQUFvQWdBZ0FTZ0NBRWNMTGdBQ1FDQUFLQUlFUWNvQWNTSUFCRUFnQUVIQUFFWUVRRUVJRHdzZ0FFRUlSdzBCUVJBUEMwRUFEd3RCQ2d2NUFRSURmZ0ovSXdCQkVHc2lCU1FBQW40Z0FiMGlBMEwvLy8vLy8vLy8vLzhBZ3lJQ1FvQ0FnSUNBZ0lBSWZVTC8vLy8vLy8vLzcvOEFXQVJBSUFKQ1BJWWhCQ0FDUWdTSVFvQ0FnSUNBZ0lDQVBId01BUXNnQWtLQWdJQ0FnSUNBK1A4QVdnUkFJQU5DUElZaEJDQURRZ1NJUW9DQWdJQ0FnTUQvL3dDRURBRUxJQUpRQkVCQ0FBd0JDeUFGSUFKQ0FDQURwMmRCSUdvZ0FrSWdpS2RuSUFKQ2dJQ0FnQkJVR3lJR1FURnFFQzhnQlNrREFDRUVJQVVwQXdoQ2dJQ0FnSUNBd0FDRlFZejRBQ0FHYTYxQ01JYUVDeUVDSUFBZ0JEY0RBQ0FBSUFJZ0EwS0FnSUNBZ0lDQWdJQi9nNFEzQXdnZ0JVRVFhaVFBQ3djQUlBQWdBVVlMTXdFQmZ5QUFRUUVnQUJzaEFBSkFBMEFnQUJBWklnRU5BVUdZbHdFb0FnQWlBUVJBSUFFUkR3QU1BUXNMRUFBQUN5QUJDOFFEQVFOL0l3QkJJR3NpQ0NRQUlBZ2dBallDRUNBSUlBRTJBaGdnQ0VFSWFpSUJJQU1RRHlBQkVEc2hDU0FCRUE0Z0JFRUFOZ0lBUVFBaEFnSkFBMEFnQmlBSFJpQUNjZzBCQWtBZ0NFRVlhaUFJUVJCcUVDZ05BQUpBSUFrZ0JpZ0NBQkNIQVVFbFJnUkFJQVpCQkdvaUFpQUhSZzBDUVFBaENnSi9JQWtnQWlnQ0FCQ0hBU0lCUWNVQVJpQUJRZjhCY1VFd1JuSkZCRUFnQmlFQ0lBRU1BUXNnQmtFSWFpQUhSZzBESUFFaENpQUpJQVlvQWdnUWh3RUxJUUVnQ0NBQUlBZ29BaGdnQ0NnQ0VDQURJQVFnQlNBQklBb2dBQ2dDQUNnQ0pCRU1BRFlDR0NBQ1FRaHFJUVlNQVFzZ0NVR0F3QUFnQmlnQ0FCQk9CRUFEUUFKQUlBY2dCa0VFYWlJR1JnUkFJQWNoQmd3QkN5QUpRWURBQUNBR0tBSUFFRTROQVFzTEEwQWdDRUVZYWlBSVFSQnFFRFpGRFFJZ0NVR0F3QUFnQ0VFWWFoQWhFRTVGRFFJZ0NFRVlhaEFsR2d3QUN3QUxJQWtnQ0VFWWFoQWhFQ2tnQ1NBR0tBSUFFQ2xHQkVBZ0JrRUVhaUVHSUFoQkdHb1FKUm9NQVFzZ0JFRUVOZ0lBQ3lBRUtBSUFJUUlNQVFzTElBUkJCRFlDQUFzZ0NFRVlhaUFJUVJCcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBZ29BaGdoQUNBSVFTQnFKQUFnQUF2R0F3RURmeU1BUVNCcklnZ2tBQ0FJSUFJMkFoQWdDQ0FCTmdJWUlBaEJDR29pQVNBREVBOGdBUkF5SVFrZ0FSQU9JQVJCQURZQ0FFRUFJUUlDUUFOQUlBWWdCMFlnQW5JTkFRSkFJQWhCR0dvZ0NFRVFhaEFtRFFBQ1FDQUpJQVlzQUFBUWlBRkJKVVlFUUNBR1FRRnFJZ0lnQjBZTkFrRUFJUW9DZnlBSklBSXNBQUFRaUFFaUFVSEZBRVlnQVVIL0FYRkJNRVp5UlFSQUlBWWhBaUFCREFFTElBWkJBbW9nQjBZTkF5QUJJUW9nQ1NBR0xBQUNFSWdCQ3lFQklBZ2dBQ0FJS0FJWUlBZ29BaEFnQXlBRUlBVWdBU0FLSUFBb0FnQW9BaVFSREFBMkFoZ2dBa0VDYWlFR0RBRUxJQWxCZ01BQUlBWXNBQUFRUkFSQUEwQUNRQ0FISUFaQkFXb2lCa1lFUUNBSElRWU1BUXNnQ1VHQXdBQWdCaXdBQUJCRURRRUxDd05BSUFoQkdHb2dDRUVRYWhBeFJRMENJQWxCZ01BQUlBaEJHR29RSHhCRVJRMENJQWhCR0dvUUlob01BQXNBQ3lBSklBaEJHR29RSHhDekFTQUpJQVlzQUFBUXN3RkdCRUFnQmtFQmFpRUdJQWhCR0dvUUlob01BUXNnQkVFRU5nSUFDeUFFS0FJQUlRSU1BUXNMSUFSQkJEWUNBQXNnQ0VFWWFpQUlRUkJxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFnb0FoZ2hBQ0FJUVNCcUpBQWdBQXVxQVFFRWZ5TUFRUkJySWdna0FBSkFJQUJGRFFBZ0JDZ0NEQ0VHSUFJZ0FXc2lCMEVBU2dSQUlBQWdBU0FIUVFKMUlnY1FmeUFIUncwQkN5QUdJQU1nQVd0QkFuVWlBV3RCQUNBQklBWklHeUlCUVFCS0JFQWdBQ0FJSUFFZ0JSQzdBaUlGRUEwZ0FSQi9JUVlnQlJBS0dpQUJJQVpIRFFFTElBTWdBbXNpQVVFQVNnUkFJQUFnQWlBQlFRSjFJZ0VRZnlBQlJ3MEJDeUFFRU80QklBQWhDUXNnQ0VFUWFpUUFJQWtMRmdBZ0FDQUJJQUlnQXlBQUtBSUFLQUl3RVFzQUdndENBUUYvSUFBb0FnQWhBaUFCRUJvaEFDQUNRUWhxSWdFUVVDQUFTd1IvSUFFZ0FCQjNLQUlBUVFCSEJVRUFDMFVFUUJBWEFBc2dBa0VJYWlBQUVIY29BZ0FMQ0FBZ0FFSC9BWEVMQkFBZ0FBc1BBQ0FBSUFBb0FnQW9BaVFSQUFBTEVRQWdBQ0FCSUFFb0FnQW9BaUFSQXdBTEVRQWdBQ0FCSUFFb0FnQW9BaXdSQXdBTERBQWdBRUdDaG9BZ05nQUFDd2NBSUFBUUVSb0xMZ0VCZnlNQVFSQnJJZ0VrQUNBQlFRaHFJQUFRRFNBQUVBbEJBblJxRUhvb0FnQWhBQ0FCUVJCcUpBQWdBQXVxQVFFQmZ3SkFJQU5CZ0JCeFJRMEFJQUpGSUFOQnlnQnhJZ1JCQ0VZZ0JFSEFBRVp5Y2cwQUlBQkJLem9BQUNBQVFRRnFJUUFMSUFOQmdBUnhCRUFnQUVFak9nQUFJQUJCQVdvaEFBc0RRQ0FCTFFBQUlnUUVRQ0FBSUFRNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dBQUovUWU4QUlBTkJ5Z0J4SWdGQndBQkdEUUFhUWRnQVFmZ0FJQU5CZ0lBQmNSc2dBVUVJUmcwQUdrSGtBRUgxQUNBQ0d3czZBQUFMS3dFQmZ5TUFRUkJySWdFa0FDQUJRUWhxSUFBUURTQUFFQWxxRUhvb0FnQWhBQ0FCUVJCcUpBQWdBQXNXQUNBQUlBRWdBaUFESUFBb0FnQW9BaUFSQ3dBYUN4QUFJQUJCSUVZZ0FFRUphMEVGU1hJTE5nQWdBZ1IvSUFJRVFBTkFJQUFnQVNnQ0FEWUNBQ0FBUVFScUlRQWdBVUVFYWlFQklBSkJBV3NpQWcwQUN3dEJBQVVnQUFzYUMxSUJBbjlCOElBQktBSUFJZ0VnQUVFRGFrRjhjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBUUJFVU5BUXRCOElBQklBQTJBZ0FnQVE4TFFkU0JBVUV3TmdJQVFYOExFZ0FnQUJCREtBSUFJQUFvQWdCclFRSjFDd2NBSUFCQkVHb0xOUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQW9BZ0EyQWd3Z0FDQUJLQUlBTmdJQUlBRWdBa0VNYWlnQ0FEWUNBQ0FDUVJCcUpBQUxKQUVDZnlNQVFSQnJJZ0lrQUNBQUlBRVE4UUVoQXlBQ1FSQnFKQUFnQVNBQUlBTWJDdzBBSUFBb0FnQWdBVUVDZEdvTEZnQWdBQkExQkVBZ0FDQUJFRGtQQ3lBQUlBRVFPZ3NzQUFKQUlBQWdBVVlOQUFOQUlBQWdBVUVCYXlJQlR3MEJJQUFnQVJDd0FpQUFRUUZxSVFBTUFBc0FDd3NMQUNBQUlBRTJBZ0FnQUF2YkFRSUJmd0orUVFFaEJBSkFJQUJDQUZJZ0FVTC8vLy8vLy8vLy8vOEFneUlGUW9DQWdJQ0FnTUQvL3dCV0lBVkNnSUNBZ0lDQXdQLy9BRkViRFFBZ0FrSUFVaUFEUXYvLy8vLy8vLy8vL3dDRElnWkNnSUNBZ0lDQXdQLy9BRllnQmtLQWdJQ0FnSURBLy84QVVSc05BQ0FBSUFLRUlBVWdCb1NFVUFSQVFRQVBDeUFCSUFPRFFnQlpCRUJCZnlFRUlBQWdBbFFnQVNBRFV5QUJJQU5SR3cwQklBQWdBb1VnQVNBRGhZUkNBRklQQzBGL0lRUWdBQ0FDVmlBQklBTlZJQUVnQTFFYkRRQWdBQ0FDaFNBQklBT0ZoRUlBVWlFRUN5QUVDMUFCQVg0Q1FDQURRY0FBY1FSQUlBSWdBMEZBYXEySUlRRkNBQ0VDREFFTElBTkZEUUFnQWtIQUFDQURhNjJHSUFFZ0E2MGlCSWlFSVFFZ0FpQUVpQ0VDQ3lBQUlBRTNBd0FnQUNBQ053TUlDdzRBSUFBb0FnaEIvLy8vL3dkeEN3b0FJQUFRNFFFYUlBQUxFd0FnQUNBQklBSWdBQ2dDQUNnQ01CRUVBQXNtQUNBQUlBQW9BaGhGSUFBb0FoQWdBWEp5SWdFMkFoQWdBQ2dDRkNBQmNRUkFFQmNBQ3dzSkFDQUFJQUVRL1FFTEpBQWdBRUVDVHdSL0lBQkJCR3BCZkhFaUFDQUFRUUZySWdBZ0FFRUNSaHNGUVFFTEN3Y0FJQUJCREdvTGxRRUJCWDhqQUVFUWF5SUZKQUFnQVJEVEFpRUNJd0JCRUdzaUF5UUFBa0FnQWtIdi8vLy9BMDBFUUFKQUlBSkJBVTBFUUNBQUlBSVFPaUFBSVFRTUFRc2dBQ0FBSUFJUWdnRkJBV29pQmhDQkFTSUVFRTBnQUNBR0VFd2dBQ0FDRURrTElBUWdBU0FDRUhFZ0EwRUFOZ0lNSUFRZ0FrRUNkR29nQTBFTWFoQXpJQU5CRUdva0FBd0JDeEFYQUFzZ0JVRVFhaVFBQ3c4QUlBQVFReWdDQUNBQUtBSUFhd3ZFQVFFR2Z5TUFRUkJySWdRa0FDQUFFSllCS0FJQUlRVUNmeUFDS0FJQUlBQW9BZ0JySWdOQi8vLy8vd2RKQkVBZ0EwRUJkQXdCQzBGL0N5SURRUVFnQXhzaEF5QUJLQUlBSVFZZ0FDZ0NBQ0VISUFWQk5rWUVmMEVBQlNBQUtBSUFDeUFERUo0QklnZ0VRQ0FGUVRaSEJFQWdBQkNtQVJvTElBUkJOVFlDQkNBQUlBUkJDR29nQ0NBRVFRUnFFQjRpQlJDbEFpQUZFQjBnQVNBQUtBSUFJQVlnQjJ0cU5nSUFJQUlnQUNnQ0FDQURRWHh4YWpZQ0FDQUVRUkJxSkFBUEN4QVhBQXNUQUNBQUlBRkJBQ0FBS0FJQUtBSTBFUVFBQ3hNQUlBQWdBVUVBSUFBb0FnQW9BaVFSQkFBTERRQWdBQ2dDQkNBQUtBSUFhd3REQVFGL0lBQkJyQ1lvQWdBaUFUWUNBQ0FBSUFGQkRHc29BZ0JxUWN3bUtBSUFOZ0lBSUFCQjBDWW9BZ0EyQWdnZ0FFRU1haERRQVJvZ0FFRkFheEIrR2lBQUMvSUNBUUovSXdCQkVHc2lDaVFBSUFvZ0FEWUNEQUpBQWtBQ1FDQURLQUlBSUFKSERRQkJLeUVMSUFBZ0NTZ0NZRWNFUUVFdElRc2dDU2dDWkNBQVJ3MEJDeUFESUFKQkFXbzJBZ0FnQWlBTE9nQUFEQUVMSUFZUUNVVWdBQ0FGUjNKRkJFQkJBQ0VBSUFnb0FnQWlBU0FIYTBHZkFVb05BaUFFS0FJQUlRQWdDQ0FCUVFScU5nSUFJQUVnQURZQ0FBd0JDMEYvSVFBZ0NTQUpRZWdBYWlBS1FReHFFTklCSUFscklnWkIzQUJLRFFFZ0JrRUNkU0VGQWtBQ1FBSkFJQUZCQ0dzT0F3QUNBQUVMSUFFZ0JVb05BUXdEQ3lBQlFSQkhJQVpCMkFCSWNnMEFJQU1vQWdBaUFTQUNSaUFCSUFKclFRSktjZzBDSUFGQkFXc3RBQUJCTUVjTkFrRUFJUUFnQkVFQU5nSUFJQU1nQVVFQmFqWUNBQ0FCSUFWQjROQUFhaTBBQURvQUFBd0NDeUFESUFNb0FnQWlBRUVCYWpZQ0FDQUFJQVZCNE5BQWFpMEFBRG9BQUNBRUlBUW9BZ0JCQVdvMkFnQkJBQ0VBREFFTFFRQWhBQ0FFUVFBMkFnQUxJQXBCRUdva0FDQUFDd29BSUFCQnRJa0JFR1FMN2dJQkEzOGpBRUVRYXlJS0pBQWdDaUFBT2dBUEFrQUNRQUpBSUFNb0FnQWdBa2NOQUVFcklRc2dBRUgvQVhFaURDQUpMUUFZUndSQVFTMGhDeUFKTFFBWklBeEhEUUVMSUFNZ0FrRUJhallDQUNBQ0lBczZBQUFNQVFzZ0JoQUpSU0FBSUFWSGNrVUVRRUVBSVFBZ0NDZ0NBQ0lCSUFkclFaOEJTZzBDSUFRb0FnQWhBQ0FJSUFGQkJHbzJBZ0FnQVNBQU5nSUFEQUVMUVg4aEFDQUpJQWxCR21vZ0NrRVBhaERWQVNBSmF5SUZRUmRLRFFFQ1FBSkFBa0FnQVVFSWF3NERBQUlBQVFzZ0FTQUZTZzBCREFNTElBRkJFRWNnQlVFV1NISU5BQ0FES0FJQUlnRWdBa1lnQVNBQ2EwRUNTbklOQWlBQlFRRnJMUUFBUVRCSERRSkJBQ0VBSUFSQkFEWUNBQ0FESUFGQkFXbzJBZ0FnQVNBRlFlRFFBR290QUFBNkFBQU1BZ3NnQXlBREtBSUFJZ0JCQVdvMkFnQWdBQ0FGUWVEUUFHb3RBQUE2QUFBZ0JDQUVLQUlBUVFGcU5nSUFRUUFoQUF3QkMwRUFJUUFnQkVFQU5nSUFDeUFLUVJCcUpBQWdBQXNLQUNBQVFheUpBUkJrQzRNQkFnTi9BWDRDUUNBQVFvQ0FnSUFRVkFSQUlBQWhCUXdCQ3dOQUlBRkJBV3NpQVNBQUlBQkNDb0FpQlVJS2ZuMm5RVEJ5T2dBQUlBQkMvLy8vLzU4QlZpRUNJQVVoQUNBQ0RRQUxDeUFGcHlJQ0JFQURRQ0FCUVFGcklnRWdBaUFDUVFwdUlnTkJDbXhyUVRCeU9nQUFJQUpCQ1VzaEJDQURJUUlnQkEwQUN3c2dBUXRqQWdGL0FYNGpBRUVRYXlJQ0pBQWdBQUorSUFGRkJFQkNBQXdCQ3lBQ0lBR3RRZ0FnQVdjaUFVSFJBR29RTHlBQ0tRTUlRb0NBZ0lDQWdNQUFoVUdlZ0FFZ0FXdXRRakNHZkNFRElBSXBBd0FMTndNQUlBQWdBemNEQ0NBQ1FSQnFKQUFMSkFBZ0FFRUxUd1IvSUFCQkVHcEJjSEVpQUNBQVFRRnJJZ0FnQUVFTFJoc0ZRUW9MQzM4QkEzOGdBQ0VCQWtBZ0FFRURjUVJBQTBBZ0FTMEFBRVVOQWlBQlFRRnFJZ0ZCQTNFTkFBc0xBMEFnQVNJQ1FRUnFJUUVnQWlnQ0FDSURRWDl6SUFOQmdZS0VDR3R4UVlDQmdvUjRjVVVOQUFzZ0EwSC9BWEZGQkVBZ0FpQUFhdzhMQTBBZ0FpMEFBU0VESUFKQkFXb2lBU0VDSUFNTkFBc0xJQUVnQUdzTEtRQWdBQ0FCUVFoMFFZQ0EvQWR4SUFGQkdIUnlJQUZCQ0haQmdQNERjU0FCUVJoMmNuSTJBQUFMS1FBZ0FDZ0FBQ0lBUVJoMElBQkJDSFJCZ0lEOEIzRnlJQUJCQ0haQmdQNERjU0FBUVJoMmNuSUxEd0FnQUNBQUtBSUFRUVJxTmdJQUN3Y0FJQUJCQkdvTER3QWdBQ0FBS0FJQVFRRnFOZ0lBQ3pjQkFuOGpBRUVRYXlJREpBQWdBMEVJYWlJRUlBRVFEeUFDSUFRUWpBRWlBUkE0TmdJQUlBQWdBUkEzSUFRUURpQURRUkJxSkFBTE5RRUNmeU1BUVJCcklnSWtBQ0FDUVFocUlnTWdBQkFQSUFNUU8wSGcwQUJCK3RBQUlBRVFZeUFERUE0Z0FrRVFhaVFBSUFFTE53RUNmeU1BUVJCcklnTWtBQ0FEUVFocUlnUWdBUkFQSUFJZ0JCQ09BU0lCRURnNkFBQWdBQ0FCRURjZ0JCQU9JQU5CRUdva0FBc1hBQ0FBSUFNMkFoQWdBQ0FDTmdJTUlBQWdBVFlDQ0FzS0FDQUFRUmgwUVJoMUMwSUFJQUFnQUNnQ0FDQUJLQUlBY3pZQ0FDQUFJQUFvQWdRZ0FTZ0NCSE0yQWdRZ0FDQUFLQUlJSUFFb0FnaHpOZ0lJSUFBZ0FDZ0NEQ0FCS0FJTWN6WUNEQXVjQ0FFTGZ5QUFSUVJBSUFFUUdROExJQUZCUUU4RVFFSFVnUUZCTURZQ0FFRUFEd3NDZjBFUUlBRkJDMnBCZUhFZ0FVRUxTUnNoQmlBQVFRaHJJZ1VvQWdRaUNVRjRjU0VFQWtBZ0NVRURjVVVFUUVFQUlBWkJnQUpKRFFJYUlBWkJCR29nQkUwRVFDQUZJUUlnQkNBR2EwRzRoUUVvQWdCQkFYUk5EUUlMUVFBTUFnc2dCQ0FGYWlFSEFrQWdCQ0FHVHdSQUlBUWdCbXNpQTBFUVNRMEJJQVVnQ1VFQmNTQUdja0VDY2pZQ0JDQUZJQVpxSWdJZ0EwRURjallDQkNBSElBY29BZ1JCQVhJMkFnUWdBaUFERU93QkRBRUxJQWRCOElFQktBSUFSZ1JBUWVTQkFTZ0NBQ0FFYWlJRUlBWk5EUUlnQlNBSlFRRnhJQVp5UVFKeU5nSUVJQVVnQm1vaUF5QUVJQVpySWdKQkFYSTJBZ1JCNUlFQklBSTJBZ0JCOElFQklBTTJBZ0FNQVFzZ0IwSHNnUUVvQWdCR0JFQkI0SUVCS0FJQUlBUnFJZ01nQmtrTkFnSkFJQU1nQm1zaUFrRVFUd1JBSUFVZ0NVRUJjU0FHY2tFQ2NqWUNCQ0FGSUFacUlnUWdBa0VCY2pZQ0JDQURJQVZxSWdNZ0FqWUNBQ0FESUFNb0FnUkJmbkUyQWdRTUFRc2dCU0FKUVFGeElBTnlRUUp5TmdJRUlBTWdCV29pQWlBQ0tBSUVRUUZ5TmdJRVFRQWhBa0VBSVFRTFFleUJBU0FFTmdJQVFlQ0JBU0FDTmdJQURBRUxJQWNvQWdRaUEwRUNjUTBCSUFOQmVIRWdCR29pQ2lBR1NRMEJJQW9nQm1zaERBSkFJQU5CL3dGTkJFQWdCeWdDQ0NJRUlBTkJBM1lpQWtFRGRFR0FnZ0ZxUmhvZ0JDQUhLQUlNSWdOR0JFQkIySUVCUWRpQkFTZ0NBRUYrSUFKM2NUWUNBQXdDQ3lBRUlBTTJBZ3dnQXlBRU5nSUlEQUVMSUFjb0FoZ2hDd0pBSUFjZ0J5Z0NEQ0lJUndSQUlBY29BZ2dpQWtIb2dRRW9BZ0JKR2lBQ0lBZzJBZ3dnQ0NBQ05nSUlEQUVMQWtBZ0IwRVVhaUlFS0FJQUlnSU5BQ0FIUVJCcUlnUW9BZ0FpQWcwQVFRQWhDQXdCQ3dOQUlBUWhBeUFDSWdoQkZHb2lCQ2dDQUNJQ0RRQWdDRUVRYWlFRUlBZ29BaEFpQWcwQUN5QURRUUEyQWdBTElBdEZEUUFDUUNBSElBY29BaHdpQTBFQ2RFR0loQUZxSWdJb0FnQkdCRUFnQWlBSU5nSUFJQWdOQVVIY2dRRkIzSUVCS0FJQVFYNGdBM2R4TmdJQURBSUxJQXRCRUVFVUlBc29BaEFnQjBZYmFpQUlOZ0lBSUFoRkRRRUxJQWdnQ3pZQ0dDQUhLQUlRSWdJRVFDQUlJQUkyQWhBZ0FpQUlOZ0lZQ3lBSEtBSVVJZ0pGRFFBZ0NDQUNOZ0lVSUFJZ0NEWUNHQXNnREVFUFRRUkFJQVVnQ1VFQmNTQUtja0VDY2pZQ0JDQUZJQXBxSWdJZ0FpZ0NCRUVCY2pZQ0JBd0JDeUFGSUFsQkFYRWdCbkpCQW5JMkFnUWdCU0FHYWlJRElBeEJBM0kyQWdRZ0JTQUthaUlDSUFJb0FnUkJBWEkyQWdRZ0F5QU1FT3dCQ3lBRklRSUxJQUlMSWdJRVFDQUNRUWhxRHdzZ0FSQVpJZ1ZGQkVCQkFBOExJQVVnQUVGOFFYZ2dBRUVFYXlnQ0FDSUNRUU54R3lBQ1FYaHhhaUlDSUFFZ0FTQUNTeHNRUWhvZ0FCQVFJQVVMZlFFRGYwRVlJUUlDUUFKQUlBQWdBWEpCQTNFTkFBTkFJQUFvQWdBZ0FTZ0NBRWNOQVNBQlFRUnFJUUVnQUVFRWFpRUFJQUpCQkdzaUFrRURTdzBBQ3lBQ1JRMEJDd05BSUFBdEFBQWlBeUFCTFFBQUlnUkdCRUFnQVVFQmFpRUJJQUJCQVdvaEFDQUNRUUZySWdJTkFRd0NDd3NnQXlBRWF3OExRUUFMU1FFQ2Z5QUFLQUlFSWdaQkNIVWhCU0FHUVFGeEJFQWdBaWdDQUNBRkVNVUJJUVVMSUFBb0FnQWlBQ0FCSUFJZ0JXb2dBMEVDSUFaQkFuRWJJQVFnQUNnQ0FDZ0NHQkVLQUF1MkFRRURmeU1BUVJCcklnTWtBQ0FESUFFNkFBOENRQUpBQWtBQ1FDQUFFRFVFUUNBQUVIMGhBU0FBS0FJRUlnUWdBVUVCYXlJQ1JnMEJEQU1MUVFvaEJFRUtJUUlnQUMwQUN5SUJRUXBIRFFFTElBQWdBa0VCSUFJZ0FoRElBU0FFSVFFZ0FCQTFEUUVMSUFBaEFpQUFJQUZCQVdvUU9nd0JDeUFBS0FJQUlRSWdBQ0FFUVFGcUVEa2dCQ0VCQ3lBQklBSnFJZ0FnQTBFUGFoQTBJQU5CQURvQURpQUFRUUZxSUFOQkRtb1FOQ0FEUVJCcUpBQUxKQUVDZnlNQVFSQnJJZ0lrQUNBQklBQVE4UUVoQXlBQ1FSQnFKQUFnQVNBQUlBTWJDeDBBSUFCQkJHb1FrZ0pCZjBZRVFDQUFJQUFvQWdBb0FnZ1JBUUFMQ3lRQUlBQVErUUVoQUNBQkVQa0JJQUJySWdFRVFDQUNJQUFnQVJEcUFRc2dBU0FDYWdzUkFDQUFJQUVnQVNnQ0FDZ0NLQkVEQUFzVUFRRi9JQUFvQWdBaEFTQUFRUUEyQWdBZ0FRdXJMQUVSZnlBQUtBTHdBU0VTSUFBb0FnUWdBU2dBQkNJRVFSaDBJQVJCQ0hSQmdJRDhCM0Z5SUFSQkNIWkJnUDREY1NBRVFSaDJjbkp6SWdSQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaEJpQUFLQUlJSUFFb0FBZ2lCVUVZZENBRlFRaDBRWUNBL0FkeGNpQUZRUWgyUVlEK0EzRWdCVUVZZG5KeWN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUWdnQUNnQ0RDQUJLQUFNSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljbk1pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDU0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFvZ0FDZ0NBQ0FCS0FBQUlnRkJHSFFnQVVFSWRFR0FnUHdIY1hJZ0FVRUlka0dBL2dOeElBRkJHSFp5Y25NaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUxJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BaFFnQ3lBS0lBa2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NHQ0FPSUEwZ0RDQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSWNJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ0VDQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFnZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUhJQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRGlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlROGdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VRSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEVTQUFLQUlrSUFZZ0RTQU1JQVJCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFR0lBQW9BaWdnRGlBSElBZ2dCVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NMQ0FSSUJBZ0R5QURRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFBb0FpQWdDeUFLSUFrZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUJRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWtnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFS0lBRkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDeUFFUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVE0Z0FVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRVBJQVJCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRUNBRlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlSRWdBQ2dDTkNBSklBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdSQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENTQUFLQUk0SUE0Z0N5QUtJQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFS0lBQW9BandnRVNBUUlBOGdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFzZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRU1JQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRFNBQUtBSXdJQWNnQ0NBR0lBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VHSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUWNnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQWtRZ0JpQU5JQXdnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRWWdBQ2dDU0NBT0lBY2dDQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENDQUFLQUpNSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NRQ0FMSUFvZ0NTQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ1NBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRb2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VMSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FKVUlBa2dEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUpJQUFvQWxnZ0RpQUxJQW9nQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDWENBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BbEFnQnlBSUlBWWdBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFZZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUlJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQnlBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ1pDQUdJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hCaUFBS0FKb0lBNGdCeUFJSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUlJQUFvQW13Z0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRY2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUFLQUpnSUFzZ0NpQUpJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFSklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDaUFCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFzZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FuUWdDU0FOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWtnQUNnQ2VDQU9JQXNnQ2lBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDaUFBS0FKOElCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUxJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDY0NBSElBZ2dCaUFCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJpQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWNnQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFT0lBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEeUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVJBZ0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVJJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRXlBQUtBS0VBU0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1pCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQUNnQ2dBRWdDeUFLSUFrZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUlRUloyUWZ3SGNVR0FDR29vQWdCeklBQW9Bb2dCSUE4Z0RpQUhJQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQjBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0FDZ0NqQUVnRXlBUklCQWdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBS1FBWE1oQVNBSFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlBWkJGblpCL0FkeFFZQUlhaWdDQUhNZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdDRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQ2xBRnpJUVFnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBSFFSWjJRZndIY1VHQUNHb29BZ0J6SUFoQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBWkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXBnQmN5RUZBbjhnQ0VFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBRFFSWjJRZndIY1VHQUNHb29BZ0J6SUFaQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBZEIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXB3QmN5SURJQkpCQzBnTkFCb2dCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWtnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFR0lBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDaUFCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFzZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRU1JQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRFNBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ3BBRWdDeUFLSUFZZ0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUdRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQUFvQXFBQklBa2dCeUFJSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUNFRVdka0g4QjNGQmdBaHFLQUlBY3lBQUtBS29BU0FPSUEwZ0RDQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ2RCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFBb0Fxd0JJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQ3NBRnpJUUVnQjBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBR1FSWjJRZndIY1VHQUNHb29BZ0J6SUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBaEIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXJRQmN5RUVJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQjBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFJUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBR1FmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUs0QVhNaEJTQUlRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITWdCa0VHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQjBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0N2QUZ6SWdNZ0VrRU5TQTBBR2lBRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRZ2dCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VISUFOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaENTQUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUVlnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFS0lBRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRGlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlROGdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VRSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEVTQUFLQUxFQVNBTElBb2dCaUFFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdaQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0FDZ0N3QUVnQ1NBSElBZ2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlJUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQUFvQXNnQklBNGdEU0FNSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUIwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdBQ2dDekFFZ0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUxRQVhNaEFTQUhRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQVpCRm5aQi9BZHhRWUFJYWlnQ0FITWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQ0VIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0MxQUZ6SVFRZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUhRUloyUWZ3SGNVR0FDR29vQWdCeklBaEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQVpCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0F0Z0JjeUVGSUFoQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0EwRVdka0g4QjNGQmdBaHFLQUlBY3lBR1FRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUhRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMY0FYTUxJUU1nQWlBQUlCSkJCSFJxSWdBb0FnQWdBMEgvQVhGQkFuUkJnQWhxTFFBQklBRkJGblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRVFRNTJRZndIY1VHQUNHb3RBQUpCRUhSeUlBVkJCblpCL0FkeFFZQUlhaTBBQVVFSWRISnljeUlTUVJoMElCSkJDSFJCZ0lEOEIzRnlJQkpCQ0haQmdQNERjU0FTUVJoMmNuSTJBQUFnQWlBQUtBSUVJQUZCL3dGeFFRSjBRWUFJYWkwQUFTQUVRUloyUWZ3SGNVR0FDR29vQWdCQkNIUkJnSUNBZUhFZ0JVRU9ka0g4QjNGQmdBaHFMUUFDUVJCMGNpQURRUVoyUWZ3SGNVR0FDR290QUFGQkNIUnljbk1pRWtFWWRDQVNRUWgwUVlDQS9BZHhjaUFTUVFoMlFZRCtBM0VnRWtFWWRuSnlOZ0FFSUFJZ0FDZ0NDQ0FFUWY4QmNVRUNkRUdBQ0dvdEFBRWdCVUVXZGtIOEIzRkJnQWhxS0FJQVFRaDBRWUNBZ0hoeElBTkJEblpCL0FkeFFZQUlhaTBBQWtFUWRISWdBVUVHZGtIOEIzRkJnQWhxTFFBQlFRaDBjbkp6SWhKQkdIUWdFa0VJZEVHQWdQd0hjWElnRWtFSWRrR0EvZ054SUJKQkdIWnljallBQ0NBQ0lBQW9BZ3dnQlVIL0FYRkJBblJCZ0FocUxRQUJJQU5CRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUJRUTUyUWZ3SGNVR0FDR290QUFKQkVIUnlJQVJCQm5aQi9BZHhRWUFJYWkwQUFVRUlkSEp5Y3lJQVFSaDBJQUJCQ0hSQmdJRDhCM0Z5SUFCQkNIWkJnUDREY1NBQVFSaDJjbkkyQUF3TERnQWdBQ0FCS0FJQU5nSUFJQUFMQndBZ0FCQkhHZ3NJQUVILy8vLy9Cd3NGQUVIL0FBc0RBQUVMS3dBQ1FDQUFJQUZHRFFBRFFDQUFJQUZCQkdzaUFVOE5BU0FBSUFFUWRTQUFRUVJxSVFBTUFBc0FDd3ZVQXdFSWZ5TUFRUkJySWdva0FDQUdFRHNoQ3lBS0lBWVFqQUVpQmhBM0FrQWdDaEJKQkVBZ0N5QUFJQUlnQXhCaklBVWdBeUFDSUFCclFRSjBhaUlHTmdJQURBRUxJQVVnQXpZQ0FBSkFBa0FnQUNJSUxRQUFJZ2RCSzJzT0F3QUJBQUVMSUFzZ0IwRVlkRUVZZFJBOUlRZ2dCU0FGS0FJQUlnZEJCR28yQWdBZ0J5QUlOZ0lBSUFCQkFXb2hDQXNDUUNBQ0lBaHJRUUpJRFFBZ0NDMEFBRUV3UncwQUlBZ3RBQUZCSUhKQitBQkhEUUFnQzBFd0VEMGhCeUFGSUFVb0FnQWlDVUVFYWpZQ0FDQUpJQWMyQWdBZ0N5QUlMQUFCRUQwaEJ5QUZJQVVvQWdBaUNVRUVhallDQUNBSklBYzJBZ0FnQ0VFQ2FpRUlDeUFJSUFJUWVVRUFJUWtnQmhBNElReEJBQ0VISUFnaEJnTi9JQUlnQmswRWZ5QURJQWdnQUd0QkFuUnFJQVVvQWdBUXJRRWdCU2dDQUFVQ1FDQUtJQWNRQ3kwQUFFVU5BQ0FKSUFvZ0J4QUxMQUFBUncwQUlBVWdCU2dDQUNJSlFRUnFOZ0lBSUFrZ0REWUNBQ0FISUFjZ0NoQUpRUUZyU1dvaEIwRUFJUWtMSUFzZ0Jpd0FBQkE5SVEwZ0JTQUZLQUlBSWc1QkJHbzJBZ0FnRGlBTk5nSUFJQVpCQVdvaEJpQUpRUUZxSVFrTUFRc0xJUVlMSUFRZ0JpQURJQUVnQUd0QkFuUnFJQUVnQWtZYk5nSUFJQW9RQ2hvZ0NrRVFhaVFBQzlBQkFRSi9JQUpCZ0JCeEJFQWdBRUVyT2dBQUlBQkJBV29oQUFzZ0FrR0FDSEVFUUNBQVFTTTZBQUFnQUVFQmFpRUFDeUFDUVlRQ2NTSURRWVFDUndSQUlBQkJydFFBT3dBQUlBQkJBbW9oQUFzZ0FrR0FnQUZ4SVFJRFFDQUJMUUFBSWdRRVFDQUFJQVE2QUFBZ0FFRUJhaUVBSUFGQkFXb2hBUXdCQ3dzZ0FBSi9Ba0FnQTBHQUFrY0VRQ0FEUVFSSERRRkJ4Z0JCNWdBZ0Foc01BZ3RCeFFCQjVRQWdBaHNNQVF0QndRQkI0UUFnQWhzZ0EwR0VBa1lOQUJwQnh3QkI1d0FnQWhzTE9nQUFJQU5CaEFKSEM4b0RBUWgvSXdCQkVHc2lDaVFBSUFZUU1pRUxJQW9nQmhDT0FTSUdFRGNDUUNBS0VFa0VRQ0FMSUFBZ0FpQURFRzhnQlNBRElBSWdBR3RxSWdZMkFnQU1BUXNnQlNBRE5nSUFBa0FDUUNBQUlnZ3RBQUFpQjBFcmF3NERBQUVBQVFzZ0N5QUhRUmgwUVJoMUVDa2hDQ0FGSUFVb0FnQWlCMEVCYWpZQ0FDQUhJQWc2QUFBZ0FFRUJhaUVJQ3dKQUlBSWdDR3RCQWtnTkFDQUlMUUFBUVRCSERRQWdDQzBBQVVFZ2NrSDRBRWNOQUNBTFFUQVFLU0VISUFVZ0JTZ0NBQ0lKUVFGcU5nSUFJQWtnQnpvQUFDQUxJQWdzQUFFUUtTRUhJQVVnQlNnQ0FDSUpRUUZxTmdJQUlBa2dCem9BQUNBSVFRSnFJUWdMSUFnZ0FoQjVRUUFoQ1NBR0VEZ2hERUVBSVFjZ0NDRUdBMzhnQWlBR1RRUi9JQU1nQ0NBQWEyb2dCU2dDQUJCNUlBVW9BZ0FGQWtBZ0NpQUhFQXN0QUFCRkRRQWdDU0FLSUFjUUN5d0FBRWNOQUNBRklBVW9BZ0FpQ1VFQmFqWUNBQ0FKSUF3NkFBQWdCeUFISUFvUUNVRUJhMGxxSVFkQkFDRUpDeUFMSUFZc0FBQVFLU0VOSUFVZ0JTZ0NBQ0lPUVFGcU5nSUFJQTRnRFRvQUFDQUdRUUZxSVFZZ0NVRUJhaUVKREFFTEN5RUdDeUFFSUFZZ0F5QUJJQUJyYWlBQklBSkdHellDQUNBS0VBb2FJQXBCRUdva0FBc01BQ0FBRUEwZ0FVRUNkR29McWdRQkMzOGpBRUdBQVdzaUNpUUFJQW9nQVRZQ2VDQUNJQU1RelFJaENDQUtRVFUyQWhBZ0NrRUlha0VBSUFwQkVHb2lDUkFlSVJBQ1FDQUlRZVVBVHdSQUlBZ1FHU0lKUlEwQklCQWdDUkFuQ3lBSklRY2dBaUVCQTBBZ0FTQURSZ1JBQTBBQ1FDQUFJQXBCK0FCcUVEWkJBQ0FJRzBVRVFDQUFJQXBCK0FCcUVDZ0VRQ0FGSUFVb0FnQkJBbkkyQWdBTERBRUxJQUFRSVNFT0lBWkZCRUFnQkNBT0VDa2hEZ3NnREVFQmFpRU5RUUFoRHlBSklRY2dBaUVCQTBBZ0FTQURSZ1JBSUEwaERDQVBSUTBESUFBUUpSb2dDU0VISUFJaEFTQUlJQXRxUVFKSkRRTURRQ0FCSUFOR0JFQU1CUVVDUUNBSExRQUFRUUpIRFFBZ0FSQUpJQTFHRFFBZ0IwRUFPZ0FBSUF0QkFXc2hDd3NnQjBFQmFpRUhJQUZCREdvaEFRd0JDd0FMQUFVQ1FDQUhMUUFBUVFGSERRQWdBU0FNRUxFQktBSUFJUkVDUUNBR0JIOGdFUVVnQkNBUkVDa0xJQTVHQkVCQkFTRVBJQUVRQ1NBTlJ3MENJQWRCQWpvQUFDQUxRUUZxSVFzTUFRc2dCMEVBT2dBQUN5QUlRUUZySVFnTElBZEJBV29oQnlBQlFReHFJUUVNQVFzQUN3QUxDd0pBQWtBRFFDQUNJQU5HRFFFZ0NTMEFBRUVDUndSQUlBbEJBV29oQ1NBQ1FReHFJUUlNQVFzTElBSWhBd3dCQ3lBRklBVW9BZ0JCQkhJMkFnQUxJQkFRSFNBS1FZQUJhaVFBSUFNUEJRSkFJQUVRU1VVRVFDQUhRUUU2QUFBTUFRc2dCMEVDT2dBQUlBdEJBV29oQ3lBSVFRRnJJUWdMSUFkQkFXb2hCeUFCUVF4cUlRRU1BUXNBQ3dBTEVCY0FDeEVBSUFBZ0FTQUFLQUlBS0FJTUVRSUFDN01FQVF0L0l3QkJnQUZySWdva0FDQUtJQUUyQW5nZ0FpQURFTTBDSVFnZ0NrRTFOZ0lRSUFwQkNHcEJBQ0FLUVJCcUlna1FIaUVRQWtBZ0NFSGxBRThFUUNBSUVCa2lDVVVOQVNBUUlBa1FKd3NnQ1NFSElBSWhBUU5BSUFFZ0EwWUVRQU5BQWtBZ0FDQUtRZmdBYWhBeFFRQWdDQnRGQkVBZ0FDQUtRZmdBYWhBbUJFQWdCU0FGS0FJQVFRSnlOZ0lBQ3d3QkN5QUFFQjhoRGlBR1JRUkFJQVFnRGhDekFTRU9DeUFNUVFGcUlRMUJBQ0VQSUFraEJ5QUNJUUVEUUNBQklBTkdCRUFnRFNFTUlBOUZEUU1nQUJBaUdpQUpJUWNnQWlFQklBZ2dDMnBCQWtrTkF3TkFJQUVnQTBZRVFBd0ZCUUpBSUFjdEFBQkJBa2NOQUNBQkVBa2dEVVlOQUNBSFFRQTZBQUFnQzBFQmF5RUxDeUFIUVFGcUlRY2dBVUVNYWlFQkRBRUxBQXNBQlFKQUlBY3RBQUJCQVVjTkFDQUJJQXdRQ3l3QUFDRVJBa0FnRGtIL0FYRWdCZ1IvSUJFRklBUWdFUkN6QVF0Qi93RnhSZ1JBUVFFaER5QUJFQWtnRFVjTkFpQUhRUUk2QUFBZ0MwRUJhaUVMREFFTElBZEJBRG9BQUFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN3c0NRQUpBQTBBZ0FpQURSZzBCSUFrdEFBQkJBa2NFUUNBSlFRRnFJUWtnQWtFTWFpRUNEQUVMQ3lBQ0lRTU1BUXNnQlNBRktBSUFRUVJ5TmdJQUN5QVFFQjBnQ2tHQUFXb2tBQ0FERHdVQ1FDQUJFRWxGQkVBZ0IwRUJPZ0FBREFFTElBZEJBam9BQUNBTFFRRnFJUXNnQ0VFQmF5RUlDeUFIUVFGcUlRY2dBVUVNYWlFQkRBRUxBQXNBQ3hBWEFBdmxBd0VEZnlNQVFhQUJheUlFSkFCQmZ5RUZJQVFnQVVFQmEwRUFJQUViTmdLVUFTQUVJQUFnQkVHZUFXb2dBUnNpQmpZQ2tBRWdCRUVBUVpBQkVFWWlBRUYvTmdKTUlBQkJORFlDSkNBQVFYODJBbEFnQUNBQVFaOEJhallDTENBQUlBQkJrQUZxTmdKVUFrQWdBVUVBU0FSQVFkU0JBVUU5TmdJQURBRUxJQVpCQURvQUFFRUFJUVFqQUVIUUFXc2lBU1FBSUFFZ0F6WUN6QUVnQVVHZ0FXb2lBMEVBUVNnUVJob2dBU0FCS0FMTUFUWUN5QUVDUUVFQUlBSWdBVUhJQVdvZ0FVSFFBR29nQXhEY0FrRUFTQVJBUVg4aEFnd0JDeUFBS0FKTVFRQk9JUVVnQUNnQ0FDRURJQUFvQWtoQkFFd0VRQ0FBSUFOQlgzRTJBZ0FMQW44Q1FBSkFJQUFvQWpCRkJFQWdBRUhRQURZQ01DQUFRUUEyQWh3Z0FFSUFOd01RSUFBb0Fpd2hCQ0FBSUFFMkFpd01BUXNnQUNnQ0VBMEJDMEYvSUFBUTZBRU5BUm9MSUFBZ0FpQUJRY2dCYWlBQlFkQUFhaUFCUWFBQmFoRGNBZ3NoQWlBRUJFQWdBRUVBUVFBZ0FDZ0NKQkVFQUJvZ0FFRUFOZ0l3SUFBZ0JEWUNMQ0FBUVFBMkFod2dBRUVBTmdJUUlBQW9BaFFoQkNBQVFRQTJBaFFnQWtGL0lBUWJJUUlMSUFBZ0FDZ0NBQ0lFSUFOQklIRnlOZ0lBUVg4Z0FpQUVRU0J4R3lFQ0lBVkZEUUFMSUFGQjBBRnFKQUFnQWlFRkN5QUFRYUFCYWlRQUlBVUxTZ0VDZndKQUlBQXRBQUFpQWtVZ0FpQUJMUUFBSWdOSGNnMEFBMEFnQVMwQUFTRURJQUF0QUFFaUFrVU5BU0FCUVFGcUlRRWdBRUVCYWlFQUlBSWdBMFlOQUFzTElBSWdBMnNMNUFJQkJuOGpBRUVRYXlJSEpBQWdBMEh3aGdFZ0F4c2lCU2dDQUNFREFrQUNRQUpBSUFGRkJFQWdBdzBCREFNTFFYNGhCQ0FDUlEwQ0lBQWdCMEVNYWlBQUd5RUdBa0FnQXdSQUlBSWhBQXdCQ3lBQkxRQUFJZ0JCR0hSQkdIVWlBMEVBVGdSQUlBWWdBRFlDQUNBRFFRQkhJUVFNQkFzZ0FTd0FBQ0VBUWRpR0FTZ0NBQ2dDQUVVRVFDQUdJQUJCLzc4RGNUWUNBRUVCSVFRTUJBc2dBRUgvQVhGQndnRnJJZ0JCTWtzTkFTQUFRUUowUWNBcmFpZ0NBQ0VESUFKQkFXc2lBRVVOQWlBQlFRRnFJUUVMSUFFdEFBQWlDRUVEZGlJSlFSQnJJQU5CR25VZ0NXcHlRUWRMRFFBRFFDQUFRUUZySVFBZ0NFR0FBV3NnQTBFR2RISWlBMEVBVGdSQUlBVkJBRFlDQUNBR0lBTTJBZ0FnQWlBQWF5RUVEQVFMSUFCRkRRSWdBVUVCYWlJQkxRQUFJZ2hCd0FGeFFZQUJSZzBBQ3dzZ0JVRUFOZ0lBUWRTQkFVRVpOZ0lBUVg4aEJBd0JDeUFGSUFNMkFnQUxJQWRCRUdva0FDQUVDd3dBSUFCQkRHb1FmaG9nQUFzSUFDQUFLQUlRUlFzb0FRSi9Jd0JCRUdzaUFpUUFJQUVvQWdBZ0FDZ0NBRWdoQXlBQ1FSQnFKQUFnQVNBQUlBTWJDeEFBSUFBZ0FUY0RDQ0FBUWdBM0F3QUxFd0FnQUVHOEh6WUNBQ0FBUVFScUVBNGdBQXNFQUVFQkMyVUJBMzhnQWtVRVFFRUFEd3NDUUNBQUxRQUFJZ05GRFFBRFFBSkFJQUV0QUFBaUJVVU5BQ0FDUVFGcklnSkZJQU1nQlVkeURRQWdBVUVCYWlFQklBQXRBQUVoQXlBQVFRRnFJUUFnQXcwQkRBSUxDeUFESVFRTElBUkIvd0Z4SUFFdEFBQnJDNjRCQVFSL0l3QkJFR3NpQlNRQUlBRWhCQ0FDUVJCUEJFQWdBa0VFZGlFSEEwQWdBeUFFRUowQklBTWdBQ0FGRUxJQ0lBTWdCU2tEQ0RjQUNDQURJQVVwQXdBM0FBQWdCRUVRYWlFRUlBWkJBV29pQmlBSFJ3MEFDd3NnQkNBQklBSnFJZ0ZKQkVBZ0JTQUVJQUVnQkdzaUFoQkNJZ0VnQW1wQkFFRVFJQUpyRUVZYUlBTWdBUkNkQVNBRElBQWdBUkN5QWlBRElBRXBBd2czQUFnZ0F5QUJLUU1BTndBQUN5QUZRUkJxSkFBTEdnQWdBQ0FCSUFFb0FnQkJER3NvQWdCcUtBSVlOZ0lBSUFBTEt3RUJmeUFBUWZ6L0FEWUNBQUpBSUFBb0FnUkJER3NpQVVFSWFoQ1NBa0VBVGcwQUlBRVFFQXNnQUF0TEFRSi9JQUFvQWdRaUIwRUlkU0VHSUFkQkFYRUVRQ0FES0FJQUlBWVF4UUVoQmdzZ0FDZ0NBQ0lBSUFFZ0FpQURJQVpxSUFSQkFpQUhRUUp4R3lBRklBQW9BZ0FvQWhRUkNRQUxJQUFDUUNBQUtBSUVJQUZIRFFBZ0FDZ0NIRUVCUmcwQUlBQWdBallDSEFzTG1nRUFJQUJCQVRvQU5RSkFJQUFvQWdRZ0FrY05BQ0FBUVFFNkFEUUNRQ0FBS0FJUUlnSkZCRUFnQUVFQk5nSWtJQUFnQXpZQ0dDQUFJQUUyQWhBZ0FDZ0NNRUVCUncwQ0lBTkJBVVlOQVF3Q0N5QUJJQUpHQkVBZ0FDZ0NHQ0lDUVFKR0JFQWdBQ0FETmdJWUlBTWhBZ3NnQUNnQ01FRUJSdzBDSUFKQkFVWU5BUXdDQ3lBQUlBQW9BaVJCQVdvMkFpUUxJQUJCQVRvQU5nc0xDZ0FnQUNBQmFpZ0NBQXRkQVFGL0lBQW9BaEFpQTBVRVFDQUFRUUUyQWlRZ0FDQUNOZ0lZSUFBZ0FUWUNFQThMQWtBZ0FTQURSZ1JBSUFBb0FoaEJBa2NOQVNBQUlBSTJBaGdQQ3lBQVFRRTZBRFlnQUVFQ05nSVlJQUFnQUNnQ0pFRUJhallDSkFzTHVRRUJBMzhqQUVFUWF5SURKQUFnQXlBQk5nSU1Ba0FDUUFKQUFrQWdBQkExQkVBZ0FCQjlJUUVnQUNnQ0JDSUVJQUZCQVdzaUFrWU5BUXdEQzBFQklRUkJBU0VDSUFBdEFBc2lBVUVCUncwQkN5QUFJQUpCQVNBQ0lBSVE4d0VnQkNFQklBQVFOUTBCQ3lBQUlRSWdBQ0FCUVFGcUVEb01BUXNnQUNnQ0FDRUNJQUFnQkVFQmFoQTVJQVFoQVFzZ0FpQUJRUUowYWlJQUlBTkJER29RTXlBRFFRQTJBZ2dnQUVFRWFpQURRUWhxRURNZ0EwRVFhaVFBQzY4QkFRTi9Jd0JCRUdzaUJTUUFJQUpCYnlJR0lBRnJUUVJBSUFBUURTRUhBbjhnQVNBR1FRRjJRUkJyU1FSQUlBVWdBVUVCZERZQ0NDQUZJQUVnQW1vMkFnd2dCVUVNYWlBRlFRaHFFSFlvQWdBUWtRRU1BUXNnQmtFQmF3dEJBV29pQmhCZklRSWdCQVJBSUFJZ0J5QUVFRlVMSUFNZ0JHc2lBd1JBSUFJZ0JHb2dCQ0FIYWlBREVGVUxJQUZCQ2tjRVFDQUhFQkFMSUFBZ0FoQk5JQUFnQmhCTUlBVkJFR29rQUE4TEVCY0FDd01BQVFzWEFDQUFLQUlJRUJaSEJFQWdBQ2dDQ0JEVUFnc2dBQXM0QVFGL0l3QkJFR3NpQXlRQUlBTWdBallDRENBRFFRaHFJQU5CREdvUVVpRUNJQUFnQVJEYUFTRUFJQUlRVVNBRFFSQnFKQUFnQUFzTEFDQUVJQUkyQWdCQkF3c0pBQ0FBUVFBMkFnQUxEd0FnQUNBQUtBSUVRUUZxTmdJRUN4a0JBWDlCQVNFQklBQVFOUVIvSUFBUWZVRUJhd1VnQVFzTEdnQWdBRUcwSVRZQ0FDQUFRU0JxRUFvYUlBQVF2QUVhSUFBTGt3RUJCSDhqQUVFUWF5SURKQUFDUUNBQkVEVkZCRUFnQUNBQktBSUlOZ0lJSUFBZ0FTa0NBRGNDQUF3QkN5QUJLQUlBSVFRQ1FBSkFBa0FnQVNnQ0JDSUNRUXBOQkVBZ0FDRUJJQUFnQWhBNkRBRUxJQUpCYjBzTkFTQUFJQUlRa1FGQkFXb2lCUkJmSWdFUVRTQUFJQVVRVENBQUlBSVFPUXNnQVNBRUlBSkJBV29RVlF3QkN4QVhBQXNMSUFOQkVHb2tBQXN4QUNBQ0tBSUFJUUlEUUFKQUlBQWdBVWNFZnlBQUtBSUFJQUpIRFFFZ0FBVWdBUXNQQ3lBQVFRUnFJUUFNQUFzQUMva0RBUUYvSXdCQkVHc2lEQ1FBSUF3Z0FEWUNEQUpBQWtBZ0FDQUZSZ1JBSUFFdEFBQkZEUUZCQUNFQUlBRkJBRG9BQUNBRUlBUW9BZ0FpQVVFQmFqWUNBQ0FCUVM0NkFBQWdCeEFKUlEwQ0lBa29BZ0FpQVNBSWEwR2ZBVW9OQWlBS0tBSUFJUUlnQ1NBQlFRUnFOZ0lBSUFFZ0FqWUNBQXdDQ3dKQUlBQWdCa2NOQUNBSEVBbEZEUUFnQVMwQUFFVU5BVUVBSVFBZ0NTZ0NBQ0lCSUFoclFaOEJTZzBDSUFvb0FnQWhBQ0FKSUFGQkJHbzJBZ0FnQVNBQU5nSUFRUUFoQUNBS1FRQTJBZ0FNQWd0QmZ5RUFJQXNnQzBHQUFXb2dERUVNYWhEU0FTQUxheUlGUWZ3QVNnMEJJQVZCQW5WQjROQUFhaTBBQUNFR0FrQUNRQ0FGUVh0eElnQkIyQUJIQkVBZ0FFSGdBRWNOQVNBRElBUW9BZ0FpQVVjRVFFRi9JUUFnQVVFQmF5MEFBRUhmQUhFZ0FpMEFBRUgvQUhGSERRVUxJQVFnQVVFQmFqWUNBQ0FCSUFZNkFBQkJBQ0VBREFRTElBSkIwQUE2QUFBTUFRc2dBaXdBQUNJQUlBWkIzd0J4UncwQUlBSWdBRUdBQVhJNkFBQWdBUzBBQUVVTkFDQUJRUUE2QUFBZ0J4QUpSUTBBSUFrb0FnQWlBQ0FJYTBHZkFVb05BQ0FLS0FJQUlRRWdDU0FBUVFScU5nSUFJQUFnQVRZQ0FBc2dCQ0FFS0FJQUlnQkJBV28yQWdBZ0FDQUdPZ0FBUVFBaEFDQUZRZFFBU2cwQklBb2dDaWdDQUVFQmFqWUNBQXdCQzBGL0lRQUxJQXhCRUdva0FDQUFDMUFCQW44akFFRVFheUlHSkFBZ0JrRUlhaUlGSUFFUUR5QUZFRHRCNE5BQVFZRFJBQ0FDRUdNZ0F5QUZFSXdCSWdFUVNEWUNBQ0FFSUFFUU9EWUNBQ0FBSUFFUU55QUZFQTRnQmtFUWFpUUFDekVBSUFJdEFBQWhBZ05BQWtBZ0FDQUJSd1IvSUFBdEFBQWdBa2NOQVNBQUJTQUJDdzhMSUFCQkFXb2hBQXdBQ3dBTDdRTUJBWDhqQUVFUWF5SU1KQUFnRENBQU9nQVBBa0FDUUNBQUlBVkdCRUFnQVMwQUFFVU5BVUVBSVFBZ0FVRUFPZ0FBSUFRZ0JDZ0NBQ0lCUVFGcU5nSUFJQUZCTGpvQUFDQUhFQWxGRFFJZ0NTZ0NBQ0lCSUFoclFaOEJTZzBDSUFvb0FnQWhBaUFKSUFGQkJHbzJBZ0FnQVNBQ05nSUFEQUlMQWtBZ0FDQUdSdzBBSUFjUUNVVU5BQ0FCTFFBQVJRMEJRUUFoQUNBSktBSUFJZ0VnQ0d0Qm53RktEUUlnQ2lnQ0FDRUFJQWtnQVVFRWFqWUNBQ0FCSUFBMkFnQkJBQ0VBSUFwQkFEWUNBQXdDQzBGL0lRQWdDeUFMUVNCcUlBeEJEMm9RMVFFZ0Myc2lCVUVmU2cwQklBVkI0TkFBYWkwQUFDRUdBa0FDUUFKQUFrQWdCVUYrY1VFV2F3NERBUUlBQWdzZ0F5QUVLQUlBSWdGSEJFQWdBVUVCYXkwQUFFSGZBSEVnQWkwQUFFSC9BSEZIRFFVTElBUWdBVUVCYWpZQ0FDQUJJQVk2QUFCQkFDRUFEQVFMSUFKQjBBQTZBQUFNQVFzZ0Fpd0FBQ0lBSUFaQjN3QnhSdzBBSUFJZ0FFR0FBWEk2QUFBZ0FTMEFBRVVOQUNBQlFRQTZBQUFnQnhBSlJRMEFJQWtvQWdBaUFDQUlhMEdmQVVvTkFDQUtLQUlBSVFFZ0NTQUFRUVJxTmdJQUlBQWdBVFlDQUFzZ0JDQUVLQUlBSWdCQkFXbzJBZ0FnQUNBR09nQUFRUUFoQUNBRlFSVktEUUVnQ2lBS0tBSUFRUUZxTmdJQURBRUxRWDhoQUFzZ0RFRVFhaVFBSUFBTFVBRUNmeU1BUVJCcklnWWtBQ0FHUVFocUlnVWdBUkFQSUFVUU1rSGcwQUJCZ05FQUlBSVFieUFESUFVUWpnRWlBUkJJT2dBQUlBUWdBUkE0T2dBQUlBQWdBUkEzSUFVUURpQUdRUkJxSkFBTGZnSUNmd0orSXdCQm9BRnJJZ1FrQUNBRUlBRTJBandnQkNBQk5nSVVJQVJCZnpZQ0dDQUVRUkJxSWdWQ0FCQlRJQVFnQlNBRFFRRVE1Z0lnQkNrRENDRUdJQVFwQXdBaEJ5QUNCRUFnQWlBQklBUW9BaFFnQkNnQ2lBRnFJQVFvQWp4cmFqWUNBQXNnQUNBSE53TUFJQUFnQmpjRENDQUVRYUFCYWlRQUN3MEFJQUFnQVNBQ1FuOFEwQUlMaVFJQUFrQWdBQVIvSUFGQi93Qk5EUUVDUUVIWWhnRW9BZ0FvQWdCRkJFQWdBVUdBZjNGQmdMOERSZzBEREFFTElBRkIvdzlOQkVBZ0FDQUJRVDl4UVlBQmNqb0FBU0FBSUFGQkJuWkJ3QUZ5T2dBQVFRSVBDeUFCUVlCQWNVR0F3QU5ISUFGQmdMQURUM0ZGQkVBZ0FDQUJRVDl4UVlBQmNqb0FBaUFBSUFGQkRIWkI0QUZ5T2dBQUlBQWdBVUVHZGtFL2NVR0FBWEk2QUFGQkF3OExJQUZCZ0lBRWEwSC8vejlOQkVBZ0FDQUJRVDl4UVlBQmNqb0FBeUFBSUFGQkVuWkI4QUZ5T2dBQUlBQWdBVUVHZGtFL2NVR0FBWEk2QUFJZ0FDQUJRUXgyUVQ5eFFZQUJjam9BQVVFRUR3c0xRZFNCQVVFWk5nSUFRWDhGUVFFTER3c2dBQ0FCT2dBQVFRRUxyd0lCQkg4Q2Z3SkFJQUFpQVVFRGNRUkFBMEFnQVMwQUFDSUNSU0FDUVQxR2NnMENJQUZCQVdvaUFVRURjUTBBQ3dzQ1FDQUJLQUlBSWdKQmYzTWdBa0dCZ29RSWEzRkJnSUdDaEhoeERRQURRQ0FDUWIzNjlPa0RjeUlDUVg5eklBSkJnWUtFQ0d0eFFZQ0Jnb1I0Y1EwQklBRW9BZ1FoQWlBQlFRUnFJUUVnQWtHQmdvUUlheUFDUVg5emNVR0FnWUtFZUhGRkRRQUxDd05BSUFFaUFpMEFBQ0lEQkVBZ0FrRUJhaUVCSUFOQlBVY05BUXNMSUFJTUFRc2dBUXNnQUdzaUFrVUVRRUVBRHdzQ1FDQUFJQUpxTFFBQURRQkI5SVlCS0FJQUlnRkZEUUFnQVNnQ0FDSURSUTBBQTBBQ1FDQUFJQU1nQWhDK0FVVUVRQ0FCS0FJQUlBSnFJZ010QUFCQlBVWU5BUXNnQVNnQ0JDRURJQUZCQkdvaEFTQUREUUVNQWdzTElBTkJBV29oQkFzZ0JBdmhBUUVDZnlBQ1FRQkhJUU1DUUFKQUFrQWdBRUVEY1VVZ0FrVnlEUUFnQVVIL0FYRWhCQU5BSUFBdEFBQWdCRVlOQWlBQ1FRRnJJZ0pCQUVjaEF5QUFRUUZxSWdCQkEzRkZEUUVnQWcwQUN3c2dBMFVOQVFzQ1FDQUFMUUFBSUFGQi93RnhSaUFDUVFSSmNnMEFJQUZCL3dGeFFZR0NoQWhzSVFNRFFDQUFLQUlBSUFOeklnUkJmM01nQkVHQmdvUUlhM0ZCZ0lHQ2hIaHhEUUVnQUVFRWFpRUFJQUpCQkdzaUFrRURTdzBBQ3dzZ0FrVU5BQ0FCUWY4QmNTRUJBMEFnQVNBQUxRQUFSZ1JBSUFBUEN5QUFRUUZxSVFBZ0FrRUJheUlDRFFBTEMwRUFDOWNEQWdKK0FuOGpBRUVnYXlJRUpBQUNRQ0FCUXYvLy8vLy8vLy8vL3dDRElnTkNnSUNBZ0lDQXdJQThmU0FEUW9DQWdJQ0FnTUQvd3dCOVZBUkFJQUZDQklZZ0FFSThpSVFoQXlBQVF2Ly8vLy8vLy8vL0Q0TWlBRUtCZ0lDQWdJQ0FnQWhhQkVBZ0EwS0JnSUNBZ0lDQWdNQUFmQ0VDREFJTElBTkNnSUNBZ0lDQWdJQkFmU0VDSUFCQ2dJQ0FnSUNBZ0lBSWhVSUFVZzBCSUFJZ0EwSUJnM3doQWd3QkN5QUFVQ0FEUW9DQWdJQ0FnTUQvL3dCVUlBTkNnSUNBZ0lDQXdQLy9BRkViUlFSQUlBRkNCSVlnQUVJOGlJUkMvLy8vLy8vLy93T0RRb0NBZ0lDQWdJRDgvd0NFSVFJTUFRdENnSUNBZ0lDQWdQai9BQ0VDSUFOQy8vLy8vLy8vdi8vREFGWU5BRUlBSVFJZ0EwSXdpS2NpQlVHUjl3QkpEUUFnQkVFUWFpQUFJQUZDLy8vLy8vLy9QNE5DZ0lDQWdJQ0F3QUNFSWdJZ0JVR0I5d0JyRUM4Z0JDQUFJQUpCZ2ZnQUlBVnJFSHdnQkNrRENFSUVoaUFFS1FNQUlnQkNQSWlFSVFJZ0JDa0RFQ0FFS1FNWWhFSUFVcTBnQUVMLy8vLy8vLy8vL3crRGhDSUFRb0dBZ0lDQWdJQ0FDRm9FUUNBQ1FnRjhJUUlNQVFzZ0FFS0FnSUNBZ0lDQWdBaUZRZ0JTRFFBZ0FrSUJneUFDZkNFQ0N5QUVRU0JxSkFBZ0FpQUJRb0NBZ0lDQWdJQ0FnSCtEaEw4TFJBRUJmeU1BUVJCcklnVWtBQ0FGSUFFZ0FpQURJQVJDZ0lDQWdJQ0FnSUNBZjRVUVBDQUZLUU1BSVFFZ0FDQUZLUU1JTndNSUlBQWdBVGNEQUNBRlFSQnFKQUFMcVFFQkFYeEVBQUFBQUFBQThEOGhBUUpBSUFCQmdBaE9CRUJFQUFBQUFBQUE0SDhoQVNBQVFmOFBTQVJBSUFCQi93ZHJJUUFNQWd0RUFBQUFBQUFBOEg4aEFTQUFRZjBYSUFCQi9SZElHMEgrRDJzaEFBd0JDeUFBUVlGNFNnMEFSQUFBQUFBQUFHQURJUUVnQUVHNGNFb0VRQ0FBUWNrSGFpRUFEQUVMUkFBQUFBQUFBQUFBSVFFZ0FFSHdhQ0FBUWZCb1NodEJrZzlxSVFBTElBRWdBRUgvQjJxdFFqU0d2NklMeEFFQ0FYOENma0YvSVFNQ1FDQUFRZ0JTSUFGQy8vLy8vLy8vLy8vL0FJTWlCRUtBZ0lDQWdJREEvLzhBVmlBRVFvQ0FnSUNBZ01ELy93QlJHdzBBUVFBZ0FrTC8vLy8vLy8vLy8vOEFneUlGUW9DQWdJQ0FnTUQvL3dCV0lBVkNnSUNBZ0lDQXdQLy9BRkViRFFBZ0FDQUVJQVdFaEZBRVFFRUFEd3NnQVNBQ2cwSUFXUVJBUVFBZ0FTQUNVeUFCSUFKUkd3MEJJQUFnQVNBQ2hZUkNBRklQQ3lBQVFnQlNJQUVnQWxVZ0FTQUNVUnNOQUNBQUlBRWdBb1dFUWdCU0lRTUxJQU1MYVFFQ2Z5QUFRYndvTmdJQUlBQW9BaWdoQVFOQUlBRUVRRUVBSUFBZ0FVRUJheUlCUVFKMElnSWdBQ2dDSkdvb0FnQWdBQ2dDSUNBQ2FpZ0NBQkVIQUF3QkN3c2dBRUVjYWhBT0lBQW9BaUFRRUNBQUtBSWtFQkFnQUNnQ01CQVFJQUFvQWp3UUVDQUFDd2tBSUFBUWlnRVFFQXNKQUNBQUVMZ0JFQkFMREFBZ0FFRUVhaEIrR2lBQUN3d0FJQUJCQ0dvUWZob2dBQXYvTHdFUmZ5TUFRU0JySWhNa0FBSi9RZlFCRUJraUNBUi9Ba0FnQ0NJR0lBQWdBVUVEZEJDSkF5SUFRUUJNRFFBZ0FFRUNkQ0VQQTBBZ0JpQVJRUUowSWdkcUlnRW9BZ0FoQ2lBQklBWWdEMEVDZENJUWFpSUJLQUlBTmdJQUlBRWdDallDQUNBR0lBZEJCSEpxSWdFb0FnQWhDaUFCSUFZZ0VFRUVjbW9pQVNnQ0FEWUNBQ0FCSUFvMkFnQWdCaUFIUVFoeWFpSUJLQUlBSVFvZ0FTQUdJQkJCQ0hKcUlnRW9BZ0EyQWdBZ0FTQUtOZ0lBSUFZZ0IwRU1jbW9pQVNnQ0FDRUtJQUVnQmlBUVFReHlhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQVJRUVJxSWhFZ0QwRUVheUlQU0EwQUMwRUJJUkVnQUVFQlRBMEFBMEFnQmtFUWFpRUdRUUFoRHdOQUlBWWdEMEVDZEdvaUFTQUJLQUlBSWdGQkRuWkIvQWR4UVlBSWFpZ0NBRUVHZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FCUVJaMlFmd0hjVUdBQ0dvb0FnQkJCblpCL0FkeFFZQVFhaWdDQUhNZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FFRVlFQWh6TmdJQUlBOUJBV29pRDBFRVJ3MEFDeUFSUVFGcUloRWdBRWNOQUFzTElBQkJBRWdFUUNBSUVCQkJBQXdDQ3lBSUlBQTJBdkFCSUFnRlFRQUxDeUlBQkg4Z0V5QUNLUUFBTndNUUlCTWdBaWtBQ0RjREdDQUVRUkJQQkVBZ0JFRUVkaUVWUVFBaEFRTkFJQk1nQXlrQUFEY0RBQ0FUSUFNcEFBZzNBd2dnQUNnQzhBRWhGQ0FBS0FJTUlBTW9BQXdpQWtFWWRDQUNRUWgwUVlDQS9BZHhjaUFDUVFoMlFZRCtBM0VnQWtFWWRuSnljeUlQUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJJZ0FDZ0NDQ0FES0FBSUlnSkJHSFFnQWtFSWRFR0FnUHdIY1hJZ0FrRUlka0dBL2dOeElBSkJHSFp5Y25NaUVVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRU9JQUFvQWdRZ0F5Z0FCQ0lDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSnpJZ2RCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSUFJQU1vQUFBaUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdEMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUJGQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUhRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBOUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFSUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUE5QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQjBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDSEhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQWhnZ0FpQUVJQWdnRVVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDRkNBR0lBb2dFQ0FIUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUlRSUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQzBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQXRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUF0Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BaXh6SWd4QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVpQUFLQUlvSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRFVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFT0lBQW9BaVFnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlGUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFrZ0FDZ0NJQ0FISUJFZ0R5QUxRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ3RCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRUNBTVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRb2dEVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VHSUFWQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaENDQUxRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUVFnREVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFQ0lBMUJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dERUVXZGtIOEIzRkJnQkJxS0FJQWN5QUZRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFMUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSThjeUlNUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVE4Z0FDZ0NPQ0FDSUFRZ0NDQU5RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZzFCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBQUtBSTBJQVlnQ2lBUUlBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VISUFBb0FqQWdDU0FPSUJJZ0MwRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnREVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lBMUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFGUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQXhCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBTlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBeEJGblpCL0FkeFFZQVFhaWdDQUhNZ0JVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ1RITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VTSUFBb0FrZ2dBaUFFSUFnZ0RVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUTRnQUNnQ1JDQUdJQW9nRUNBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hDU0FBS0FKQUlBY2dFU0FQSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUMwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUF0QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBdEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQWx4eklneEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hEeUFBS0FKWUlBSWdCQ0FJSUExQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRVJJQUFvQWxRZ0JpQUtJQkFnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRY2dBQ2dDVUNBSklBNGdFaUFMUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQU1RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRFVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0RFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTFCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnREVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUpzY3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSSWdBQ2dDYUNBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaERpQUFLQUprSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSklBQW9BbUFnQnlBUklBOGdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NmSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUElBQW9BbmdnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVJFZ0FDZ0NkQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQnlBQUtBSndJQWtnRGlBU0lBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBNUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQTVCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fvd0JjeUlKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFBb0FvQUJJQWNnRVNBUElBNUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCMEVXZGtIOEIzRkJnQkJxS0FJQWN5QUFLQUtJQVNBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdSQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBQW9Bb1FCSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NrQUZ6SVFVZ0IwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUNRUloyUWZ3SGNVR0FFR29vQWdCeklBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVJCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FwUUJjeUVTSUFKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0JFRVdka0g4QjNGQmdCQnFLQUlBY3lBSFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLWUFYTWhEZ0ovSUFSQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0NVRVdka0g4QjNGQmdCQnFLQUlBY3lBQ1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUhRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLY0FYTWlDU0FVUVF0SURRQWFJQWxCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBT1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdFa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VISUFWQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQUpRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRGtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lCSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0NVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTVCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQ1VFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFTUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUtzQVhNaUNVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUFLQUtnQVNBSElCRWdEeUFGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdkQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQUNnQ3FBRWdBaUFFSUFnZ0RrRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUVRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFBS0FLa0FTQUdJQW9nRUNBU1FSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnSkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXJBQmN5RUZJQWRCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQWtFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFKUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBRVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUswQVhNaEVpQUNRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQVJCRm5aQi9BZHhRWUFRYWlnQ0FITWdCMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQ1VIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0N1QUZ6SVE0Z0JFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUpRUloyUWZ3SGNVR0FFR29vQWdCeklBSkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fyd0JjeUlKSUJSQkRVZ05BQm9nQ1VFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUElBNUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hFU0FTUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFjZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBT1FmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdFa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRGtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBSlFSWjJRZndIY1VHQUVHb29BZ0J6SUJKQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXN3QmN5SUpRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQUFvQXNBQklBY2dFU0FQSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUIwRVdka0g4QjNGQmdCQnFLQUlBY3lBQUtBTElBU0FDSUFRZ0NDQU9RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1JCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFBb0FzUUJJQVlnQ2lBUUlCSkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlBa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQzBBRnpJUVVnQjBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQ1FSWjJRZndIY1VHQUVHb29BZ0J6SUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBUkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXRRQmN5RVNJQUpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQkVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFIUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBSlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUxZQVhNaERpQUVRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQWxCRm5aQi9BZHhRWUFRYWlnQ0FITWdBa0VHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQjBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0MzQUZ6Q3lFSUlBTWdBQ0FVUVFSMGFpSUVLQUlBSUJKQi93RnhRWUFZYWkwQUFDQUlRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdCVUVZZGtHQUdHb3RBQUJCR0hSeUlBNUJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQUFnQXlBRUtBSUVJQTVCL3dGeFFZQVlhaTBBQUNBRlFSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0VrRVlka0dBR0dvdEFBQkJHSFJ5SUFoQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBUWdBeUFFS0FJSUlBaEIvd0Z4UVlBWWFpMEFBQ0FTUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnRGtFWWRrR0FHR290QUFCQkdIUnlJQVZCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFnZ0F5QUVLQUlNSUFWQi93RnhRWUFZYWkwQUFDQU9RUkIyUWY4QmNVR0FHR290QUFCQkVIUWdDRUVZZGtHQUdHb3RBQUJCR0hSeUlCSkJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQXhCQUNFQ0EwQWdBaUFEYWlJRUlBUXRBQUFnRTBFUWFpQUNhaTBBQUhNNkFBQWdBa0VCYWlJQ1FSQkhEUUFMSUJNZ0V5a0RDRGNER0NBVElCTXBBd0EzQXhBZ0EwRVFhaUVESUFGQkFXb2lBU0FWUncwQUN3c2dBQkFRUVFBRlFYOExHaUFUUVNCcUpBQUxsZ0VCQW44akFFRVFheUlBSkFBQ1FDQUFRUXhxSUFCQkNHb1FBdzBBUWZTR0FTQUFLQUlNUVFKMFFRUnFFQmtpQVRZQ0FDQUJSUTBBSUFBb0FnZ1FHU0lCQkVCQjlJWUJLQUlBSUFBb0FneEJBblJxUVFBMkFnQkI5SVlCS0FJQUlBRVFBa1VOQVF0QjlJWUJRUUEyQWdBTElBQkJFR29rQUVISWdRRkJ2UjRRVkJwQjJJWUJRZWlGQVRZQ0FFR1FoZ0ZCS2pZQ0FBdFpBUUYvSUFBZ0FDZ0NTQ0lCUVFGcklBRnlOZ0pJSUFBb0FnQWlBVUVJY1FSQUlBQWdBVUVnY2pZQ0FFRi9Ed3NnQUVJQU53SUVJQUFnQUNnQ0xDSUJOZ0ljSUFBZ0FUWUNGQ0FBSUFFZ0FDZ0NNR28yQWhCQkFBdDhBUUovSUFBZ0FDZ0NTQ0lCUVFGcklBRnlOZ0pJSUFBb0FoUWdBQ2dDSEVjRVFDQUFRUUJCQUNBQUtBSWtFUVFBR2dzZ0FFRUFOZ0ljSUFCQ0FEY0RFQ0FBS0FJQUlnRkJCSEVFUUNBQUlBRkJJSEkyQWdCQmZ3OExJQUFnQUNnQ0xDQUFLQUl3YWlJQ05nSUlJQUFnQWpZQ0JDQUJRUnQwUVI5MUM5VUNBUUovQWtBZ0FDQUJSZzBBSUFFZ0FDQUNhaUlFYTBFQUlBSkJBWFJyVFFSQUlBQWdBU0FDRUVJYUR3c2dBQ0FCYzBFRGNTRURBa0FDUUNBQUlBRkpCRUFnQXcwQ0lBQkJBM0ZGRFFFRFFDQUNSUTBFSUFBZ0FTMEFBRG9BQUNBQlFRRnFJUUVnQWtFQmF5RUNJQUJCQVdvaUFFRURjUTBBQ3d3QkN3SkFJQU1OQUNBRVFRTnhCRUFEUUNBQ1JRMEZJQUFnQWtFQmF5SUNhaUlESUFFZ0Ftb3RBQUE2QUFBZ0EwRURjUTBBQ3dzZ0FrRURUUTBBQTBBZ0FDQUNRUVJySWdKcUlBRWdBbW9vQWdBMkFnQWdBa0VEU3cwQUN3c2dBa1VOQWdOQUlBQWdBa0VCYXlJQ2FpQUJJQUpxTFFBQU9nQUFJQUlOQUFzTUFnc2dBa0VEVFEwQUEwQWdBQ0FCS0FJQU5nSUFJQUZCQkdvaEFTQUFRUVJxSVFBZ0FrRUVheUlDUVFOTERRQUxDeUFDUlEwQUEwQWdBQ0FCTFFBQU9nQUFJQUJCQVdvaEFDQUJRUUZxSVFFZ0FrRUJheUlDRFFBTEN3c1VBQ0FBUVF4cUlnQWdBQkNVQVVFQmFoQ1RBUXVMREFFR2Z5QUFJQUZxSVFVQ1FBSkFJQUFvQWdRaUFrRUJjUTBBSUFKQkEzRkZEUUVnQUNnQ0FDSUNJQUZxSVFFQ1FDQUFJQUpySWdCQjdJRUJLQUlBUndSQUlBSkIvd0ZOQkVBZ0FDZ0NDQ0lFSUFKQkEzWWlBa0VEZEVHQWdnRnFSaG9nQUNnQ0RDSURJQVJIRFFKQjJJRUJRZGlCQVNnQ0FFRitJQUozY1RZQ0FBd0RDeUFBS0FJWUlRWUNRQ0FBSUFBb0Fnd2lBMGNFUUNBQUtBSUlJZ0pCNklFQktBSUFTUm9nQWlBRE5nSU1JQU1nQWpZQ0NBd0JDd0pBSUFCQkZHb2lBaWdDQUNJRURRQWdBRUVRYWlJQ0tBSUFJZ1FOQUVFQUlRTU1BUXNEUUNBQ0lRY2dCQ0lEUVJScUlnSW9BZ0FpQkEwQUlBTkJFR29oQWlBREtBSVFJZ1FOQUFzZ0IwRUFOZ0lBQ3lBR1JRMENBa0FnQUNBQUtBSWNJZ1JCQW5SQmlJUUJhaUlDS0FJQVJnUkFJQUlnQXpZQ0FDQUREUUZCM0lFQlFkeUJBU2dDQUVGK0lBUjNjVFlDQUF3RUN5QUdRUkJCRkNBR0tBSVFJQUJHRzJvZ0F6WUNBQ0FEUlEwREN5QURJQVkyQWhnZ0FDZ0NFQ0lDQkVBZ0F5QUNOZ0lRSUFJZ0F6WUNHQXNnQUNnQ0ZDSUNSUTBDSUFNZ0FqWUNGQ0FDSUFNMkFoZ01BZ3NnQlNnQ0JDSUNRUU54UVFOSERRRkI0SUVCSUFFMkFnQWdCU0FDUVg1eE5nSUVJQUFnQVVFQmNqWUNCQ0FGSUFFMkFnQVBDeUFFSUFNMkFnd2dBeUFFTmdJSUN3SkFJQVVvQWdRaUFrRUNjVVVFUUNBRlFmQ0JBU2dDQUVZRVFFSHdnUUVnQURZQ0FFSGtnUUZCNUlFQktBSUFJQUZxSWdFMkFnQWdBQ0FCUVFGeU5nSUVJQUJCN0lFQktBSUFSdzBEUWVDQkFVRUFOZ0lBUWV5QkFVRUFOZ0lBRHdzZ0JVSHNnUUVvQWdCR0JFQkI3SUVCSUFBMkFnQkI0SUVCUWVDQkFTZ0NBQ0FCYWlJQk5nSUFJQUFnQVVFQmNqWUNCQ0FBSUFGcUlBRTJBZ0FQQ3lBQ1FYaHhJQUZxSVFFQ1FDQUNRZjhCVFFSQUlBVW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQmdJSUJha1lhSUFRZ0JTZ0NEQ0lEUmdSQVFkaUJBVUhZZ1FFb0FnQkJmaUFDZDNFMkFnQU1BZ3NnQkNBRE5nSU1JQU1nQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBMGNFUUNBRktBSUlJZ0pCNklFQktBSUFTUm9nQWlBRE5nSU1JQU1nQWpZQ0NBd0JDd0pBSUFWQkZHb2lCQ2dDQUNJQ0RRQWdCVUVRYWlJRUtBSUFJZ0lOQUVFQUlRTU1BUXNEUUNBRUlRY2dBaUlEUVJScUlnUW9BZ0FpQWcwQUlBTkJFR29oQkNBREtBSVFJZ0lOQUFzZ0IwRUFOZ0lBQ3lBR1JRMEFBa0FnQlNBRktBSWNJZ1JCQW5SQmlJUUJhaUlDS0FJQVJnUkFJQUlnQXpZQ0FDQUREUUZCM0lFQlFkeUJBU2dDQUVGK0lBUjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQVZHRzJvZ0F6WUNBQ0FEUlEwQkN5QURJQVkyQWhnZ0JTZ0NFQ0lDQkVBZ0F5QUNOZ0lRSUFJZ0F6WUNHQXNnQlNnQ0ZDSUNSUTBBSUFNZ0FqWUNGQ0FDSUFNMkFoZ0xJQUFnQVVFQmNqWUNCQ0FBSUFGcUlBRTJBZ0FnQUVIc2dRRW9BZ0JIRFFGQjRJRUJJQUUyQWdBUEN5QUZJQUpCZm5FMkFnUWdBQ0FCUVFGeU5nSUVJQUFnQVdvZ0FUWUNBQXNnQVVIL0FVMEVRQ0FCUVFOMklnSkJBM1JCZ0lJQmFpRUJBbjlCMklFQktBSUFJZ05CQVNBQ2RDSUNjVVVFUUVIWWdRRWdBaUFEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUlnQVNBQU5nSUlJQUlnQURZQ0RDQUFJQUUyQWd3Z0FDQUNOZ0lJRHd0Qkh5RUNJQUJDQURjQ0VDQUJRZi8vL3dkTkJFQWdBVUVJZGlJQ0lBSkJnUDQvYWtFUWRrRUljU0lFZENJQ0lBSkJnT0FmYWtFUWRrRUVjU0lEZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQURJQVJ5SUFKeWF5SUNRUUYwSUFFZ0FrRVZhblpCQVhGeVFSeHFJUUlMSUFBZ0FqWUNIQ0FDUVFKMFFZaUVBV29oQndKQUFrQkIzSUVCS0FJQUlnUkJBU0FDZENJRGNVVUVRRUhjZ1FFZ0F5QUVjallDQUNBSElBQTJBZ0FnQUNBSE5nSVlEQUVMSUFGQkFFRVpJQUpCQVhacklBSkJIMFliZENFQ0lBY29BZ0FoQXdOQUlBTWlCQ2dDQkVGNGNTQUJSZzBDSUFKQkhYWWhBeUFDUVFGMElRSWdCQ0FEUVFSeGFpSUhRUkJxS0FJQUlnTU5BQXNnQnlBQU5nSVFJQUFnQkRZQ0dBc2dBQ0FBTmdJTUlBQWdBRFlDQ0E4TElBUW9BZ2dpQVNBQU5nSU1JQVFnQURZQ0NDQUFRUUEyQWhnZ0FDQUVOZ0lNSUFBZ0FUWUNDQXNMWkFBZ0FDQUJRaWlHUW9DQWdJQ0FnTUQvQUlNZ0FVSTRob1FnQVVJWWhrS0FnSUNBZ09BL2d5QUJRZ2lHUW9DQWdJRHdINE9FaENBQlFnaUlRb0NBZ1BnUGd5QUJRaGlJUW9DQS9BZURoQ0FCUWlpSVFvRCtBNE1nQVVJNGlJU0VoRGNBQUFzUEFDQUFLQUlNR2lBQVFRQTJBZ3dMaHdFQkJIOGpBRUVRYXlJRkpBQWpBRUVRYXlJREpBQUNRQ0FCUVc5TkJFQUNRQ0FCUVFwTkJFQWdBQ0FCRURvZ0FDRUVEQUVMSUFBZ0FSQ1JBVUVCYWlJR0VGOGlCQkJOSUFBZ0JoQk1JQUFnQVJBNUN5QUVJQUVnQWhEM0FTQURRUUE2QUE4Z0FTQUVhaUFEUVE5cUVEUWdBMEVRYWlRQURBRUxFQmNBQ3lBRlFSQnFKQUFnQUF0VkFRSi9JQUFvQWdRaEJBSi9RUUFnQWtVTkFCb2dCRUVJZFNJRklBUkJBWEZGRFFBYUlBSW9BZ0FnQlJERkFRc2hCU0FBS0FJQUlnQWdBU0FDSUFWcUlBTkJBaUFFUVFKeEd5QUFLQUlBS0FJY0VRZ0FDdzBBSUFBb0FnQWdBU2dDQUVrTEl3QWdBRUVBTmdJTUlBQWdBVFlDQkNBQUlBRTJBZ0FnQUNBQlFRRnFOZ0lJSUFBTHV3RUJBMzhqQUVFUWF5SUZKQUFnQWtIdi8vLy9BeUlHSUFGclRRUkFJQUFRRFNFSElBQUNmeUFCSUFaQkFYWkJFR3RKQkVBZ0JTQUJRUUYwTmdJSUlBVWdBU0FDYWpZQ0RDQUZRUXhxSUFWQkNHb1FkaWdDQUJDQ0FRd0JDeUFHUVFGckMwRUJhaUlHRUlFQklRSWdCQVJBSUFJZ0J5QUVFSEVMSUFNZ0JHc2lBd1JBSUFSQkFuUWlCQ0FDYWlBRUlBZHFJQU1RY1FzZ0FVRUJSd1JBSUFjUUVBc2dBQ0FDRUUwZ0FDQUdFRXdnQlVFUWFpUUFEd3NRRndBTGhBSUJBMzhqQUVFUWF5SUlKQUFnQWtIdi8vLy9BeUlKSUFGQmYzTnFUUVJBSUFBUURTRUtJQUFDZnlBQklBbEJBWFpCRUd0SkJFQWdDQ0FCUVFGME5nSUlJQWdnQVNBQ2FqWUNEQ0FJUVF4cUlBaEJDR29RZGlnQ0FCQ0NBUXdCQ3lBSlFRRnJDMEVCYWlJSkVJRUJJUUlnQkFSQUlBSWdDaUFFRUhFTElBWUVRQ0FFUVFKMElBSnFJQWNnQmhCeEN5QURJQVFnQldwcklnTUVRQ0FFUVFKMElnY2dBbW9nQmtFQ2RHb2dCeUFLYWlBRlFRSjBhaUFERUhFTElBRkJBVWNFUUNBS0VCQUxJQUFnQWhCTklBQWdDUkJNSUFBZ0JDQUdhaUFEYWlJQUVEa2dDRUVBTmdJRUlBSWdBRUVDZEdvZ0NFRUVhaEF6SUFoQkVHb2tBQThMRUJjQUMxZ0JBMzlCeUlFQkVBMGhBMEhJZ1FFUUNTRUJJd0JCRUdzaUFpUUFJQUlnQURvQUQwRi9JUUFnQVFSQUlBRUVmeUFESUFJc0FBOFFaU0FCRU53QkJVRUFDeUlBSUFOclFYOGdBQnNoQUFzZ0FrRVFhaVFBSUFBTGNBRURmeU1BUVJCcklnTWtBQ0FDUVc5TkJFQUNRQ0FDUVFwTkJFQWdBQ0FDRURvZ0FDRUVEQUVMSUFBZ0FoQ1JBVUVCYWlJRkVGOGlCQkJOSUFBZ0JSQk1JQUFnQWhBNUN5QUVJQUVnQWhCVklBTkJBRG9BRHlBQ0lBUnFJQU5CRDJvUU5DQURRUkJxSkFBUEN4QVhBQXNTQUNBQkJFQWdBQ0FDRUdVZ0FSQkdHZ3NMN0FFQkEzOGpBRUVRYXlJSUpBQWdBa0Z2SWdrZ0FVRi9jMnBOQkVBZ0FCQU5JUW9DZnlBQklBbEJBWFpCRUd0SkJFQWdDQ0FCUVFGME5nSUlJQWdnQVNBQ2FqWUNEQ0FJUVF4cUlBaEJDR29RZGlnQ0FCQ1JBUXdCQ3lBSlFRRnJDMEVCYWlJSkVGOGhBaUFFQkVBZ0FpQUtJQVFRVlFzZ0JnUkFJQUlnQkdvZ0J5QUdFRlVMSUFNZ0JDQUZhbXNpQXdSQUlBSWdCR29nQm1vZ0JDQUthaUFGYWlBREVGVUxJQUZCQ2tjRVFDQUtFQkFMSUFBZ0FoQk5JQUFnQ1JCTUlBQWdCQ0FHYWlBRGFpSUFFRGtnQ0VFQU9nQUhJQUFnQW1vZ0NFRUhhaEEwSUFoQkVHb2tBQThMRUJjQUN5UUJBWDhqQUVFUWF5SUJKQUFnQVNBQU5nSUlJQUVvQWdnaEFDQUJRUkJxSkFBZ0FBc0pBQ0FBRUJZMkFnQUxLd0VCZnlBQUtBSUVJUUlEUUNBQklBSkhCRUFnQUJCMEdpQUNRUVJySVFJTUFRc0xJQUFnQVRZQ0JBc3FBQ01BUVJCcklnSWtBQUpBSUFBZ0FVWUVRQ0FBUVFBNkFIZ01BUXNnQVJBUUN5QUNRUkJxSkFBTEhBQWdBVUgvLy8vL0Ewc0VRRUg0SEJDV0FnQUxJQUZCQW5RUVh3c0pBQ0FCUVFBMkFnQUxOZ0JCc0pVQktBSUFHa0d3bFFFb0FnQkJzSlVCRUhOQkFuUnFHa0d3bFFFb0FnQkJzSlVCRUhOQkFuUnFHa0d3bFFFb0FnQWFDejBCQVg4akFFRVFheUlDSkFBQ1FDQUFMUUI0SUFGQkhrdHlSUVJBSUFCQkFUb0FlQXdCQ3lBQ1FRaHFJQUVRL1FFaEFBc2dBa0VRYWlRQUlBQUxSUUVDZnlNQVFSQnJJZ0FrQUVHd2xRRVFkQm9nQUVILy8vLy9BellDRENBQVFmLy8vLzhITmdJSUlBQkJER29nQUVFSWFoQ2lBU2dDQUNFQklBQkJFR29rQUNBQkN3a0FJQUFReWdFUUVBc25BQ0FESUFNb0FnQWdBaUFCYXlJQWF5SUNOZ0lBSUFCQkFFb0VRQ0FDSUFFZ0FCQkNHZ3NMRUFBZ0FDQUJFTTBCSUFBZ0FqWUNCQXZJQVFFRWZ5TUFRU0JySWdVa0FDQUZJQUVwQUFBM0F4QWdCU0FCS1FBSU53TVlBa0FnQTBFUVNRUkFJQUloQVF3QkN5QURRUVIySVFjZ0FpRUJBMEFnQUNBRlFSQnFJZ2dnQkJDbkFTQUVJQUVRblFFZ0JFRVFhaUVFSUFGQkVHb2hBU0FJRU9zQklBWkJBV29pQmlBSFJ3MEFDd3NnQWlBRGFpQUJheUlDQkVBZ0FDQUZRUkJxSUFVUXB3RkJBQ0VHQTBBZ0JDQUZJQVpxTFFBQUlBRXRBQUJ6T2dBQUlBUkJBV29oQkNBQlFRRnFJUUVnQmtFQmFpSUdJQUpIRFFBTEN5QUZRU0JxSkFBTEZRQWdBRUg0MHdBMkFnQWdBRUVRYWhBS0dpQUFDeFVBSUFCQjBOTUFOZ0lBSUFCQkRHb1FDaG9nQUFzRUFFRUVDdzhBSUFBb0FnQWdBQ2dDQkRZQ0JBdEFBUUovSXdCQkVHc2lBU1FBSUFFZ0FEWUNEQ0FCUVFocUlBRkJER29RVWlFQVFRUkJBVUhZaGdFb0FnQW9BZ0FiSVFJZ0FCQlJJQUZCRUdva0FDQUNDendCQVg4akFFRVFheUlGSkFBZ0JTQUVOZ0lNSUFWQkNHb2dCVUVNYWhCU0lRUWdBQ0FCSUFJZ0F4QzNBU0VBSUFRUVVTQUZRUkJxSkFBZ0FBc01BQ0FCSUFJdEFBQTZBQUFMRWdBZ0JDQUNOZ0lBSUFjZ0JUWUNBRUVEQ3lnQkFYOGdBRUhzMGdBMkFnQUNRQ0FBS0FJSUlnRkZEUUFnQUMwQURFVU5BQ0FCRUJBTElBQUw1QWtCQVg4Q1FFSDBpQUV0QUFCQkFYRU5BRUgwaUFFUUpFVU5BQUpBUWVpSUFTMEFBRUVCY1EwQVFlaUlBUkFrUlEwQVFhaVZBUkFiUWFpVkFVSFkwZ0EyQWdBakFFRVFheUlCSkFCQnNKVUJRZ0EzQXdBZ0FVRUFOZ0lNUWJpVkFTQUJRUXhxRU0wQlFiaVdBVUVBT2dBQUlBRkJFR29rQUJDQkFrRWVTUVJBRUJjQUMwR3dsUUZCc0pVQkVIUkJIaENBQWlJQk5nSUFRYlNWQVNBQk5nSUFRYkNWQVJCRElBRkIrQUJxTmdJQVFRQVEvd0ZCSGhDWEFrSEFsZ0ZCbWg0UVZCcEJzSlVCRUZBaEFVR3dsUUVRbFFKQnNKVUJJQUVRbEFKQjhKSUJFQnRCOEpJQlFZVGRBRFlDQUVId2tnRkJ1SWNCRUJvUUhFSDRrZ0VRRzBINGtnRkJwTjBBTmdJQVFmaVNBVUhBaHdFUUdoQWNRWUNUQVJBYlFZeVRBVUVBT2dBQVFZaVRBVUVBTmdJQVFZQ1RBVUhzMGdBMkFnQkJpSk1CUWJBeUtBSUFOZ0lBUVlDVEFVR0VpUUVRR2hBY1FaQ1RBUkFiUVpDVEFVSFExZ0EyQWdCQmtKTUJRZnlJQVJBYUVCeEJtSk1CRUJ0Qm1KTUJRZVRYQURZQ0FFR1lrd0ZCaklrQkVCb1FIRUdna3dFUUcwR2drd0ZCb05NQU5nSUFRYWlUQVJBV05nSUFRYUNUQVVHVWlRRVFHaEFjUWJDVEFSQWJRYkNUQVVINDJBQTJBZ0JCc0pNQlFaeUpBUkFhRUJ4QnVKTUJFQnRCdUpNQlFlelpBRFlDQUVHNGt3RkJwSWtCRUJvUUhFSEFrd0VRRzBISWt3RkJydGdBT3dFQVFjQ1RBVUhRMHdBMkFnQkJ6Sk1CRUJFYVFjQ1RBVUdzaVFFUUdoQWNRZGlUQVJBYlFlQ1RBVUt1Z0lDQXdBVTNBZ0JCMkpNQlFmalRBRFlDQUVIb2t3RVFFUnBCMkpNQlFiU0pBUkFhRUJ4QitKTUJFQnRCK0pNQlFjVGRBRFlDQUVINGt3RkJ5SWNCRUJvUUhFR0FsQUVRRzBHQWxBRkJ1TjhBTmdJQVFZQ1VBVUhRaHdFUUdoQWNRWWlVQVJBYlFZaVVBVUdNNFFBMkFnQkJpSlFCUWRpSEFSQWFFQnhCa0pRQkVCdEJrSlFCUWZUaUFEWUNBRUdRbEFGQjRJY0JFQm9RSEVHWWxBRVFHMEdZbEFGQnpPb0FOZ0lBUVppVUFVR0lpQUVRR2hBY1FhQ1VBUkFiUWFDVUFVSGc2d0EyQWdCQm9KUUJRWkNJQVJBYUVCeEJxSlFCRUJ0QnFKUUJRZFRzQURZQ0FFR29sQUZCbUlnQkVCb1FIRUd3bEFFUUcwR3dsQUZCeU8wQU5nSUFRYkNVQVVHZ2lBRVFHaEFjUWJpVUFSQWJRYmlVQVVHODdnQTJBZ0JCdUpRQlFhaUlBUkFhRUJ4QndKUUJFQnRCd0pRQlFlRHZBRFlDQUVIQWxBRkJzSWdCRUJvUUhFSElsQUVRRzBISWxBRkJoUEVBTmdJQVFjaVVBVUc0aUFFUUdoQWNRZENVQVJBYlFkQ1VBVUdvOGdBMkFnQkIwSlFCUWNDSUFSQWFFQnhCMkpRQkVCdEI0SlFCUVpEOEFEWUNBRUhZbEFGQnZPUUFOZ0lBUWVDVUFVSHM1QUEyQWdCQjJKUUJRZWlIQVJBYUVCeEI2SlFCRUJ0QjhKUUJRYlQ4QURZQ0FFSG9sQUZCeE9ZQU5nSUFRZkNVQVVIMDVnQTJBZ0JCNkpRQlFmQ0hBUkFhRUJ4QitKUUJFQnRCZ0pVQkVQb0JRZmlVQVVHdzZBQTJBZ0JCK0pRQlFmaUhBUkFhRUJ4QmlKVUJFQnRCa0pVQkVQb0JRWWlWQVVITTZRQTJBZ0JCaUpVQlFZQ0lBUkFhRUJ4Qm1KVUJFQnRCbUpVQlFjenpBRFlDQUVHWWxRRkJ5SWdCRUJvUUhFR2dsUUVRRzBHZ2xRRkJ4UFFBTmdJQVFhQ1ZBVUhRaUFFUUdoQWNRZUNJQVVHb2xRRTJBZ0JCNUlnQlFlQ0lBVFlDQUVIb2lBRVFJd3RCN0lnQlFlU0lBU2dDQUJDUUFrSHdpQUZCN0lnQk5nSUFRZlNJQVJBakN5QUFRZkNJQVNnQ0FDZ0NBQ0lBTmdJQUlBQVF6Z0VMRXdBZ0FDQUJLQUlBSWdBMkFnQWdBQkRPQVFzeUFDQUFLQUlBR2lBQUtBSUFJQUFRYzBFQ2RHb2FJQUFvQWdBZ0FCQlFRUUowYWhvZ0FDZ0NBQ0FBRUhOQkFuUnFHZ3NUQUNBQUlBQW9BZ0JCQVdzaUFEWUNBQ0FBQzI4QkFuOGdBRUhZMGdBMkFnQWdBRUVJYWlFQkEwQWdBUkJRSUFKTEJFQWdBU0FDRUhjb0FnQUVRQ0FCSUFJUWR5Z0NBQkNqQVFzZ0FrRUJhaUVDREFFTEN5QUFRWmdCYWhBS0dpQUJFSkVDSUFFb0FnQUVRQ0FCRUpVQ0lBRVFkQ0FCS0FJQUlBRVFjeEQ4QVFzZ0FBc3FBQ0FBS0FJQUdpQUFLQUlBSUFBUWMwRUNkR29hSUFBb0FnQWFJQUFvQWdBZ0FCQlFRUUowYWhvTERBQWdBQ0FBS0FJQUVQc0JDMklCQTM5QkNCQUhJZ0ZCMFA4QU5nSUFJQUZCL1A4QU5nSUFJQUFRa2dFaUFrRU5haEJmSWdOQkFEWUNDQ0FESUFJMkFnUWdBeUFDTmdJQUlBRWdBMEVNYWlBQUlBSkJBV29RUWpZQ0JDQUJRYXlBQVRZQ0FDQUJRY3lBQVVFREVBWUFDM0lCQTM4akFFRVFheUlCSkFBZ0FVR3dsUUUyQWdBZ0FVRzBsUUVvQWdBaUFqWUNCQ0FCSUFJZ0FFRUNkR28yQWdnZ0FTSURLQUlFSVFBZ0F5Z0NDQ0VDQTBBZ0FDQUNSZ1JBSUFNUWlRSWdBVUVRYWlRQUJVR3dsUUVRZENBQUVQNEJJQU1nQUVFRWFpSUFOZ0lFREFFTEN3c2dBQ0FBUWFEVEFEWUNBQ0FBS0FJSUVCWkhCRUFnQUNnQ0NCRFVBZ3NnQUFzRUFFRi9DK0lGQVFwL0l3QkJFR3NpRXlRQUlBSWdBRFlDQUNBRFFZQUVjU0VWSUFkQkFuUWhGZ05BSUJSQkJFWUVRQ0FORUFsQkFVc0VRQ0FUSUEwUVFEWUNDQ0FDSUJOQkNHcEJBUkNmQWlBTkVHd2dBaWdDQUJDa0FUWUNBQXNnQTBHd0FYRWlBMEVRUndSQUlBRWdBMEVnUmdSL0lBSW9BZ0FGSUFBTE5nSUFDeUFUUVJCcUpBQUZBa0FDUUFKQUFrQUNRQUpBSUFnZ0ZHb3NBQUFPQlFBQkF3SUVCUXNnQVNBQ0tBSUFOZ0lBREFRTElBRWdBaWdDQURZQ0FDQUdRU0FRUFNFSElBSWdBaWdDQUNJUFFRUnFOZ0lBSUE4Z0J6WUNBQXdEQ3lBTkVFa05BaUFOUVFBUXNRRW9BZ0FoQnlBQ0lBSW9BZ0FpRDBFRWFqWUNBQ0FQSUFjMkFnQU1BZ3NnREJCSklCVkZjZzBCSUFJZ0RCQkFJQXdRYkNBQ0tBSUFFS1FCTmdJQURBRUxJQUlvQWdBaEZ5QUVJQlpxSWdRaEJ3TkFBa0FnQlNBSFRRMEFJQVpCZ0JBZ0J5Z0NBQkJPUlEwQUlBZEJCR29oQnd3QkN3c2dEaUlQUVFCS0JFQURRQ0FQUVFCTUlBUWdCMDl5UlFSQUlBZEJCR3NpQnlnQ0FDRVFJQUlnQWlnQ0FDSVJRUVJxTmdJQUlCRWdFRFlDQUNBUFFRRnJJUThNQVFzTElBOUJBRXdFZjBFQUJTQUdRVEFRUFFzaEVRTkFJQUlnQWlnQ0FDSVFRUVJxTmdJQUlBOUJBRW9FUUNBUUlCRTJBZ0FnRDBFQmF5RVBEQUVMQ3lBUUlBazJBZ0FMQWtBZ0JDQUhSZ1JBSUFaQk1CQTlJUThnQWlBQ0tBSUFJaEJCQkdvaUJ6WUNBQ0FRSUE4MkFnQU1BUXNnQ3hCSkJIOUJmd1VnQzBFQUVBc3NBQUFMSVJCQkFDRVBRUUFoRWdOQUlBUWdCMGNFUUFKQUlBOGdFRWNFUUNBUElSRU1BUXNnQWlBQ0tBSUFJaEJCQkdvMkFnQWdFQ0FLTmdJQVFRQWhFU0FMRUFrZ0VrRUJhaUlTVFFSQUlBOGhFQXdCQ3lBTElCSVFDeTBBQUVIL0FFWUVRRUYvSVJBTUFRc2dDeUFTRUFzc0FBQWhFQXNnQjBFRWF5SUhLQUlBSVE4Z0FpQUNLQUlBSWhoQkJHbzJBZ0FnR0NBUE5nSUFJQkZCQVdvaER3d0JDd3NnQWlnQ0FDRUhDeUFYSUFjUXJRRUxJQlJCQVdvaEZBd0JDd3NMcFFJQkFYOGpBRUVRYXlJS0pBQWdDUUovSUFBRVFDQUNFS0VDSVFBQ1FDQUJCRUFnQ2lBQUVHa2dBeUFLS0FJQU5nQUFJQW9nQUJCb0RBRUxJQW9nQUJDbEFTQURJQW9vQWdBMkFBQWdDaUFBRUVvTElBZ2dDaEJYSUFvUUNob2dCQ0FBRUVnMkFnQWdCU0FBRURnMkFnQWdDaUFBRURjZ0JpQUtFREFnQ2hBS0dpQUtJQUFRU3lBSElBb1FWeUFLRUFvYUlBQVFad3dCQ3lBQ0VLQUNJUUFDUUNBQkJFQWdDaUFBRUdrZ0F5QUtLQUlBTmdBQUlBb2dBQkJvREFFTElBb2dBQkNsQVNBRElBb29BZ0EyQUFBZ0NpQUFFRW9MSUFnZ0NoQlhJQW9RQ2hvZ0JDQUFFRWcyQWdBZ0JTQUFFRGcyQWdBZ0NpQUFFRGNnQmlBS0VEQWdDaEFLR2lBS0lBQVFTeUFISUFvUVZ5QUtFQW9hSUFBUVp3czJBZ0FnQ2tFUWFpUUFDOVFGQVFwL0l3QkJFR3NpRkNRQUlBSWdBRFlDQUNBRFFZQUVjU0VXQTBBZ0ZVRUVSZ1JBSUEwUUNVRUJTd1JBSUJRZ0RSQkFOZ0lJSUFJZ0ZFRUlha0VCRUtZQ0lBMFFiaUFDS0FJQUVLUUJOZ0lBQ3lBRFFiQUJjU0lEUVJCSEJFQWdBU0FEUVNCR0JIOGdBaWdDQUFVZ0FBczJBZ0FMSUJSQkVHb2tBQThMQWtBQ1FBSkFBa0FDUUFKQUlBZ2dGV29zQUFBT0JRQUJBd0lFQlFzZ0FTQUNLQUlBTmdJQURBUUxJQUVnQWlnQ0FEWUNBQ0FHUVNBUUtTRVBJQUlnQWlnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUF3REN5QU5FRWtOQWlBTlFRQVFDeTBBQUNFUElBSWdBaWdDQUNJUVFRRnFOZ0lBSUJBZ0R6b0FBQXdDQ3lBTUVFa2dGa1Z5RFFFZ0FpQU1FRUFnREJCdUlBSW9BZ0FRcEFFMkFnQU1BUXNnQWlnQ0FDRVhJQVFnQjJvaUJDRVJBMEFDUUNBRklCRk5EUUFnQmtHQUVDQVJMQUFBRUVSRkRRQWdFVUVCYWlFUkRBRUxDeUFPSWc5QkFFb0VRQU5BSUE5QkFFd2dCQ0FSVDNKRkJFQWdFVUVCYXlJUkxRQUFJUkFnQWlBQ0tBSUFJaEpCQVdvMkFnQWdFaUFRT2dBQUlBOUJBV3NoRHd3QkN3c2dEMEVBVEFSL1FRQUZJQVpCTUJBcEN5RVNBMEFnQWlBQ0tBSUFJaEJCQVdvMkFnQWdEMEVBU2dSQUlCQWdFam9BQUNBUFFRRnJJUThNQVFzTElCQWdDVG9BQUFzQ1FDQUVJQkZHQkVBZ0JrRXdFQ2toRHlBQ0lBSW9BZ0FpRUVFQmFqWUNBQ0FRSUE4NkFBQU1BUXNnQ3hCSkJIOUJmd1VnQzBFQUVBc3NBQUFMSVJCQkFDRVBRUUFoRXdOQUlBUWdFVVlOQVFKQUlBOGdFRWNFUUNBUElSSU1BUXNnQWlBQ0tBSUFJaEJCQVdvMkFnQWdFQ0FLT2dBQVFRQWhFaUFMRUFrZ0UwRUJhaUlUVFFSQUlBOGhFQXdCQ3lBTElCTVFDeTBBQUVIL0FFWUVRRUYvSVJBTUFRc2dDeUFURUFzc0FBQWhFQXNnRVVFQmF5SVJMUUFBSVE4Z0FpQUNLQUlBSWhoQkFXbzJBZ0FnR0NBUE9nQUFJQkpCQVdvaER3d0FDd0FMSUJjZ0FpZ0NBQkI1Q3lBVlFRRnFJUlVNQUFzQUM2VUNBUUYvSXdCQkVHc2lDaVFBSUFrQ2Z5QUFCRUFnQWhDb0FpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUU1DQUtFQW9hSUFRZ0FCQklPZ0FBSUFVZ0FCQTRPZ0FBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRURBZ0NoQUtHaUFBRUdjTUFRc2dBaENuQWlFQUFrQWdBUVJBSUFvZ0FCQnBJQU1nQ2lnQ0FEWUFBQ0FLSUFBUWFBd0JDeUFLSUFBUXBRRWdBeUFLS0FJQU5nQUFJQW9nQUJCS0N5QUlJQW9RTUNBS0VBb2FJQVFnQUJCSU9nQUFJQVVnQUJBNE9nQUFJQW9nQUJBM0lBWWdDaEF3SUFvUUNob2dDaUFBRUVzZ0J5QUtFREFnQ2hBS0dpQUFFR2NMTmdJQUlBcEJFR29rQUFzSUFDQUFLQUlBUlFzM0FRRi9Jd0JCRUdzaUFpUUFJQUlnQUNnQ0FEWUNDQ0FDSUFJb0FnZ2dBVUVDZEdvMkFnZ2dBaWdDQ0NFQUlBSkJFR29rQUNBQUN3b0FJQUJCbUlnQkVHUUxDZ0FnQUVHZ2lBRVFaQXNKQUNBQUlBRVFyZ0lMSHdFQmZ5QUJLQUlBRVBvQ0lRSWdBQ0FCS0FJQU5nSUVJQUFnQWpZQ0FBdnhEd0VLZnlNQVFiQUVheUlMSkFBZ0N5QUtOZ0trQkNBTElBRTJBcWdFSUF0Qk5qWUNZQ0FMSUF0QmlBRnFJQXRCa0FGcUlBdEI0QUJxSWdFUUhpSVBLQUlBSWdvMkFvUUJJQXNnQ2tHUUEybzJBb0FCSUFFUUVTRVJJQXRCMEFCcUVFY2hEaUFMUVVCckVFY2hEQ0FMUVRCcUVFY2hEU0FMUVNCcUVFY2hFQ01BUVJCcklnRWtBQ0FMQW44Z0FnUkFJQUVnQXhDaEFpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJCWElBRVFDaG9nQVNBQ0VFb2dEQ0FCRUZjZ0FSQUtHaUFMSUFJUVNEWUNkQ0FMSUFJUU9EWUNjQ0FCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkJYSUFFUUNob2dBaEJuREFFTElBRWdBeENnQWlJQ0VHa2dDeUFCS0FJQU5nQjRJQUVnQWhCb0lBMGdBUkJYSUFFUUNob2dBU0FDRUVvZ0RDQUJFRmNnQVJBS0dpQUxJQUlRU0RZQ2RDQUxJQUlRT0RZQ2NDQUJJQUlRTnlBUklBRVFNQ0FCRUFvYUlBRWdBaEJMSUE0Z0FSQlhJQUVRQ2hvZ0FoQm5DellDSENBQlFSQnFKQUFnQ1NBSUtBSUFOZ0lBSUFSQmdBUnhJaEpCQ1hZaEUwRUFJUUZCQUNFQ0EwQWdBaUVLQWtBQ1FBSkFBa0FnQVVFRVJnMEFJQUFnQzBHb0JHb1FOa1VOQUVFQUlRUUNRQUpBQWtBQ1FBSkFBa0FnQzBINEFHb2dBV29zQUFBT0JRRUFCQU1GQ1FzZ0FVRURSZzBISUFkQmdNQUFJQUFRSVJCT0JFQWdDMEVRYWlBQUVLTUNJQkFnQ3lnQ0VCREhBUXdDQ3lBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFZTElBRkJBMFlOQmdzRFFDQUFJQXRCcUFScUVEWkZEUVlnQjBHQXdBQWdBQkFoRUU1RkRRWWdDMEVRYWlBQUVLTUNJQkFnQ3lnQ0VCREhBUXdBQ3dBTElBd1FDVUVBSUEwUUNXdEdEUVFDUUNBTUVBa0VRQ0FORUFrTkFRc2dEQkFKSVFNZ0FCQWhJUUlnQXdSQUlBd1FEU2dDQUNBQ1JnUkFJQUFRSlJvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dJQ3lBR1FRRTZBQUFNQmdzZ0FpQU5FQTBvQWdCSERRVWdBQkFsR2lBR1FRRTZBQUFnRFNBS0lBMFFDVUVCU3hzaEFnd0dDeUFBRUNFZ0RCQU5LQUlBUmdSQUlBQVFKUm9nRENBS0lBd1FDVUVCU3hzaEFnd0dDeUFBRUNFZ0RSQU5LQUlBUmdSQUlBQVFKUm9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFLSUFGQkFrbHlSUVJBUVFBaEFpQVRJQUZCQWtZZ0N5MEFlMEVBUjNGeVJRMEZDeUFMSUE0UVFEWUNDQ0FMUVJCcUlBdEJDR29RcUFFaEFnSkFJQUZGRFFBZ0FTQUxhaTBBZDBFQlN3MEFBMEFDUUNBTElBNFFiRFlDQ0NBQ0lBdEJDR29RVzBVTkFDQUhRWURBQUNBQ0tBSUFLQUlBRUU1RkRRQWdBaENWQVF3QkN3c2dDeUFPRUVBMkFnZ2dBaWdDQUNBTEtBSUlhMEVDZFNJQ0lCQVFDVTBFUUNBTElCQVFiRFlDQ0NBTFFRaHFRUUFnQW1zUW53SWhBeUFRRUd3aEJDQU9FRUFoRkNNQVFTQnJJZ0lrQUNBQ0lBUTJBaEFnQWlBRE5nSVlJQUlnRkRZQ0NBTkFBa0FnQWtFWWFpQUNRUkJxRUZzaUEwVU5BQ0FDS0FJWUtBSUFJQUlvQWdnb0FnQkhEUUFnQWtFWWFoQ1ZBU0FDUVFocUVKVUJEQUVMQ3lBQ1FTQnFKQUFnQTBFQmN3MEJDeUFMSUE0UVFEWUNBQ0FMUVFocUlBc1FxQUVhSUFzZ0N5Z0NDRFlDRUFzZ0N5QUxLQUlRTmdJSUEwQUNRQ0FMSUE0UWJEWUNBQ0FMUVFocUlBc1FXMFVOQUNBQUlBdEJxQVJxRURaRkRRQWdBQkFoSUFzb0FnZ29BZ0JIRFFBZ0FCQWxHaUFMUVFocUVKVUJEQUVMQ3lBU1JRMERJQXNnRGhCc05nSUFJQXRCQ0dvZ0N4QmJSUTBESUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQWdzRFFBSkFJQUFnQzBHb0JHb1FOa1VOQUFKL0lBZEJnQkFnQUJBaElnSVFUZ1JBSUFrb0FnQWlBeUFMS0FLa0JFWUVRQ0FJSUFrZ0MwR2tCR29RaGdFZ0NTZ0NBQ0VEQ3lBSklBTkJCR28yQWdBZ0F5QUNOZ0lBSUFSQkFXb01BUXNnRVJBSlJTQUVSWElOQVNBQ0lBc29BbkJIRFFFZ0N5Z0NoQUVpQWlBTEtBS0FBVVlFUUNBUElBdEJoQUZxSUF0QmdBRnFFSVlCSUFzb0FvUUJJUUlMSUFzZ0FrRUVhallDaEFFZ0FpQUVOZ0lBUVFBTElRUWdBQkFsR2d3QkN3c2dCRVVnQ3lnQ2hBRWlBaUFQS0FJQVJuSkZCRUFnQ3lnQ2dBRWdBa1lFUUNBUElBdEJoQUZxSUF0QmdBRnFFSVlCSUFzb0FvUUJJUUlMSUFzZ0FrRUVhallDaEFFZ0FpQUVOZ0lBQ3dKQUlBc29BaHhCQUV3TkFBSkFJQUFnQzBHb0JHb1FLRVVFUUNBQUVDRWdDeWdDZEVZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDd05BSUFBUUpSb2dDeWdDSEVFQVRBMEJBa0FnQUNBTFFhZ0VhaEFvUlFSQUlBZEJnQkFnQUJBaEVFNE5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdFQ3lBSktBSUFJQXNvQXFRRVJnUkFJQWdnQ1NBTFFhUUVhaENHQVFzZ0FCQWhJUUlnQ1NBSktBSUFJZ05CQkdvMkFnQWdBeUFDTmdJQUlBc2dDeWdDSEVFQmF6WUNIQXdBQ3dBTElBb2hBaUFJS0FJQUlBa29BZ0JIRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3QkN3SkFJQXBGRFFCQkFTRUVBMEFnQ2hBSklBUk5EUUVDUUNBQUlBdEJxQVJxRUNoRkJFQWdBQkFoSUFvZ0JCQ3hBU2dDQUVZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFBRUNVYUlBUkJBV29oQkF3QUN3QUxRUUVoQUNBUEtBSUFJQXNvQW9RQlJnMEFRUUFoQUNBTFFRQTJBaEFnRVNBUEtBSUFJQXNvQW9RQklBdEJFR29RTFNBTEtBSVFCRUFnQlNBRktBSUFRUVJ5TmdJQURBRUxRUUVoQUFzZ0VCQUtHaUFORUFvYUlBd1FDaG9nRGhBS0dpQVJFQW9hSUE4UUhTQUxRYkFFYWlRQUlBQVBDeUFLSVFJTElBRkJBV29oQVF3QUN3QUxId0FnQUNBQkVLWUJFQ2NnQVJDV0FTZ0NBQ0VCSUFBUWxnRWdBVFlDQUFzMEFRRi9Jd0JCRUdzaUFpUUFJQUlnQUNnQ0FEWUNDQ0FDSUFJb0FnZ2dBV28yQWdnZ0FpZ0NDQ0VBSUFKQkVHb2tBQ0FBQ3dvQUlBQkJpSWdCRUdRTENnQWdBRUdRaUFFUVpBdkJBUUVHZnlNQVFSQnJJZ1FrQUNBQUVKWUJLQUlBSVFVQ2Z5QUNLQUlBSUFBb0FnQnJJZ05CLy8vLy93ZEpCRUFnQTBFQmRBd0JDMEYvQ3lJRFFRRWdBeHNoQXlBQktBSUFJUVlnQUNnQ0FDRUhJQVZCTmtZRWYwRUFCU0FBS0FJQUN5QURFSjRCSWdnRVFDQUZRVFpIQkVBZ0FCQ21BUm9MSUFSQk5UWUNCQ0FBSUFSQkNHb2dDQ0FFUVFScUVCNGlCUkNsQWlBRkVCMGdBU0FBS0FJQUlBWWdCMnRxTmdJQUlBSWdBeUFBS0FJQWFqWUNBQ0FFUVJCcUpBQVBDeEFYQUFzbEFRRi9JQUVvQWdBUS93SkJHSFJCR0hVaEFpQUFJQUVvQWdBMkFnUWdBQ0FDT2dBQUM1OFFBUXAvSXdCQnNBUnJJZ3NrQUNBTElBbzJBcVFFSUFzZ0FUWUNxQVFnQzBFMk5nSm9JQXNnQzBHSUFXb2dDMEdRQVdvZ0MwSG9BR29pQVJBZUlnOG9BZ0FpQ2pZQ2hBRWdDeUFLUVpBRGFqWUNnQUVnQVJBUklSRWdDMEhZQUdvUUVTRU9JQXRCeUFCcUVCRWhEQ0FMUVRocUVCRWhEU0FMUVNocUVCRWhFQ01BUVJCcklnRWtBQ0FMQW44Z0FnUkFJQUVnQXhDb0FpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJBd0lBRVFDaG9nQVNBQ0VFb2dEQ0FCRURBZ0FSQUtHaUFMSUFJUVNEb0FkeUFMSUFJUU9Eb0FkaUFCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkF3SUFFUUNob2dBaEJuREFFTElBRWdBeENuQWlJQ0VHa2dDeUFCS0FJQU5nQjRJQUVnQWhCb0lBMGdBUkF3SUFFUUNob2dBU0FDRUVvZ0RDQUJFREFnQVJBS0dpQUxJQUlRU0RvQWR5QUxJQUlRT0RvQWRpQUJJQUlRTnlBUklBRVFNQ0FCRUFvYUlBRWdBaEJMSUE0Z0FSQXdJQUVRQ2hvZ0FoQm5DellDSkNBQlFSQnFKQUFnQ1NBSUtBSUFOZ0lBSUFSQmdBUnhJaEpCQ1hZaEUwRUFJUUZCQUNFQ0EwQWdBaUVLQWtBQ1FBSkFBa0FnQVVFRVJnMEFJQUFnQzBHb0JHb1FNVVVOQUVFQUlRUUNRQUpBQWtBQ1FBSkFBa0FnQzBINEFHb2dBV29zQUFBT0JRRUFCQU1GQ1FzZ0FVRURSZzBISUFkQmdNQUFJQUFRSHhCRUJFQWdDMEVZYWlBQUVLb0NJQkFnQ3l3QUdCQ2hBUXdDQ3lBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFZTElBRkJBMFlOQmdzRFFDQUFJQXRCcUFScUVERkZEUVlnQjBHQXdBQWdBQkFmRUVSRkRRWWdDMEVZYWlBQUVLb0NJQkFnQ3l3QUdCQ2hBUXdBQ3dBTElBd1FDVUVBSUEwUUNXdEdEUVFDUUNBTUVBa0VRQ0FORUFrTkFRc2dEQkFKSVFNZ0FCQWZJUUlnQXdSQUlBeEJBQkFMTFFBQUlBSkIvd0Z4UmdSQUlBQVFJaG9nRENBS0lBd1FDVUVCU3hzaEFnd0lDeUFHUVFFNkFBQU1CZ3NnRFVFQUVBc3RBQUFnQWtIL0FYRkhEUVVnQUJBaUdpQUdRUUU2QUFBZ0RTQUtJQTBRQ1VFQlN4c2hBZ3dHQ3lBQUVCOUIvd0Z4SUF4QkFCQUxMUUFBUmdSQUlBQVFJaG9nRENBS0lBd1FDVUVCU3hzaEFnd0dDeUFBRUI5Qi93RnhJQTFCQUJBTExRQUFSZ1JBSUFBUUlob2dCa0VCT2dBQUlBMGdDaUFORUFsQkFVc2JJUUlNQmdzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN5QUtJQUZCQWtseVJRUkFRUUFoQWlBVElBRkJBa1lnQ3kwQWUwRUFSM0Z5UlEwRkN5QUxJQTRRUURZQ0VDQUxRUmhxSUF0QkVHb1FxQUVoQWdKQUlBRkZEUUFnQVNBTGFpMEFkMEVCU3cwQUEwQUNRQ0FMSUE0UWJqWUNFQ0FDSUF0QkVHb1FXMFVOQUNBSFFZREFBQ0FDS0FJQUxBQUFFRVJGRFFBZ0FoQ1hBUXdCQ3dzZ0N5QU9FRUEyQWhBZ0FpZ0NBQ0FMS0FJUWF5SUNJQkFRQ1UwRVFDQUxJQkFRYmpZQ0VDQUxRUkJxUVFBZ0Ftc1FwZ0loQXlBUUVHNGhCQ0FPRUVBaEZDTUFRU0JySWdJa0FDQUNJQVEyQWhBZ0FpQUROZ0lZSUFJZ0ZEWUNDQU5BQWtBZ0FrRVlhaUFDUVJCcUVGc2lBMFVOQUNBQ0tBSVlMUUFBSUFJb0FnZ3RBQUJIRFFBZ0FrRVlhaENYQVNBQ1FRaHFFSmNCREFFTEN5QUNRU0JxSkFBZ0EwRUJjdzBCQ3lBTElBNFFRRFlDQ0NBTFFSQnFJQXRCQ0dvUXFBRWFJQXNnQ3lnQ0VEWUNHQXNnQ3lBTEtBSVlOZ0lRQTBBQ1FDQUxJQTRRYmpZQ0NDQUxRUkJxSUF0QkNHb1FXMFVOQUNBQUlBdEJxQVJxRURGRkRRQWdBQkFmUWY4QmNTQUxLQUlRTFFBQVJ3MEFJQUFRSWhvZ0MwRVFhaENYQVF3QkN3c2dFa1VOQXlBTElBNFFiallDQ0NBTFFSQnFJQXRCQ0dvUVcwVU5BeUFGSUFVb0FnQkJCSEkyQWdCQkFDRUFEQUlMQTBBQ1FDQUFJQXRCcUFScUVERkZEUUFDZnlBSFFZQVFJQUFRSHlJQ0VFUUVRQ0FKS0FJQUlnTWdDeWdDcEFSR0JFQWdDQ0FKSUF0QnBBUnFFS2tDSUFrb0FnQWhBd3NnQ1NBRFFRRnFOZ0lBSUFNZ0Fqb0FBQ0FFUVFGcURBRUxJQkVRQ1VVZ0JFVnlEUUVnQ3kwQWRpQUNRZjhCY1VjTkFTQUxLQUtFQVNJQ0lBc29Bb0FCUmdSQUlBOGdDMEdFQVdvZ0MwR0FBV29RaGdFZ0N5Z0NoQUVoQWdzZ0N5QUNRUVJxTmdLRUFTQUNJQVEyQWdCQkFBc2hCQ0FBRUNJYURBRUxDeUFFUlNBTEtBS0VBU0lDSUE4b0FnQkdja1VFUUNBTEtBS0FBU0FDUmdSQUlBOGdDMEdFQVdvZ0MwR0FBV29RaGdFZ0N5Z0NoQUVoQWdzZ0N5QUNRUVJxTmdLRUFTQUNJQVEyQWdBTEFrQWdDeWdDSkVFQVRBMEFBa0FnQUNBTFFhZ0VhaEFtUlFSQUlBQVFIMEgvQVhFZ0N5MEFkMFlOQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3REN3TkFJQUFRSWhvZ0N5Z0NKRUVBVEEwQkFrQWdBQ0FMUWFnRWFoQW1SUVJBSUFkQmdCQWdBQkFmRUVRTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0VDeUFKS0FJQUlBc29BcVFFUmdSQUlBZ2dDU0FMUWFRRWFoQ3BBZ3NnQUJBZklRSWdDU0FKS0FJQUlnTkJBV28yQWdBZ0F5QUNPZ0FBSUFzZ0N5Z0NKRUVCYXpZQ0pBd0FDd0FMSUFvaEFpQUlLQUlBSUFrb0FnQkhEUU1nQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdCQ3dKQUlBcEZEUUJCQVNFRUEwQWdDaEFKSUFSTkRRRUNRQ0FBSUF0QnFBUnFFQ1pGQkVBZ0FCQWZRZjhCY1NBS0lBUVFDeTBBQUVZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFBRUNJYUlBUkJBV29oQkF3QUN3QUxRUUVoQUNBUEtBSUFJQXNvQW9RQlJnMEFRUUFoQUNBTFFRQTJBaGdnRVNBUEtBSUFJQXNvQW9RQklBdEJHR29RTFNBTEtBSVlCRUFnQlNBRktBSUFRUVJ5TmdJQURBRUxRUUVoQUFzZ0VCQUtHaUFORUFvYUlBd1FDaG9nRGhBS0dpQVJFQW9hSUE4UUhTQUxRYkFFYWlRQUlBQVBDeUFLSVFJTElBRkJBV29oQVF3QUN3QUxEQUFnQUVFQlFTMFF1d0lhQ3d3QUlBQkJBVUV0RU84Qkdnc0tBQ0FCSUFCclFRSjFDd1FBSUFFTE5RRUJmeU1BUVJCcklnSWtBQ0FDSUFBdEFBQTZBQThnQUNBQkxRQUFPZ0FBSUFFZ0FrRVBhaTBBQURvQUFDQUNRUkJxSkFBTFpBRUJmeU1BUVJCcklnWWtBQ0FHUVFBNkFBOGdCaUFGT2dBT0lBWWdCRG9BRFNBR1FTVTZBQXdnQlFSQUlBWkJEV29nQmtFT2FoQ3dBZ3NnQWlBQklBRWdBaWdDQUJEdUFpQUdRUXhxSUFNZ0FDZ0NBQkFCSUFGcU5nSUFJQVpCRUdva0FBdnlBUUVGZnlNQVFSQnJJZ01rQUNBQ1FnQTNBQUFnQWtJQU53QUlJQU1nQVNrQUNEY0RDQ0FESUFFcEFBQTNBd0FEUUNBQUlBVnFJUVpCQUNFQkEwQWdCaTBBQUVFSElBRnJka0VCY1FSQUlBSWdBeENkQVFzZ0F5MEFEeUVISUFOQkRHb2lCQ0FETFFBTFFSOTBJQVFRbEFGQkFYWnlFSk1CSUFOQkNHb2lCQ0FETFFBSFFSOTBJQVFRbEFGQkFYWnlFSk1CSUFOQkJHb2lCQ0FETFFBRFFSOTBJQVFRbEFGQkFYWnlFSk1CSUFNZ0F4Q1VBVUVCZGhDVEFTQUhRUUZ4QkVBZ0F5QURMUUFBUWVFQmN6b0FBQXNnQVVFQmFpSUJRUWhIRFFBTElBVkJBV29pQlVFUVJ3MEFDeUFEUVJCcUpBQUxRUUFnQVNBQ0lBTWdCRUVFRUZnaEFTQURMUUFBUVFSeFJRUkFJQUFnQVVIUUQyb2dBVUhzRG1vZ0FTQUJRZVFBU0JzZ0FVSEZBRWdiUWV3T2F6WUNBQXNMUUFBZ0FpQURJQUJCQ0dvZ0FDZ0NDQ2dDQkJFQUFDSUFJQUJCb0FKcUlBVWdCRUVBRUxJQklBQnJJZ0JCbndKTUJFQWdBU0FBUVF4dFFReHZOZ0lBQ3d0QUFDQUNJQU1nQUVFSWFpQUFLQUlJS0FJQUVRQUFJZ0FnQUVHb0FXb2dCU0FFUVFBUXNnRWdBR3NpQUVHbkFVd0VRQ0FCSUFCQkRHMUJCMjgyQWdBTEMwRUFJQUVnQWlBRElBUkJCQkJaSVFFZ0F5MEFBRUVFY1VVRVFDQUFJQUZCMEE5cUlBRkI3QTVxSUFFZ0FVSGtBRWdiSUFGQnhRQklHMEhzRG1zMkFnQUxDMEFBSUFJZ0F5QUFRUWhxSUFBb0FnZ29BZ1FSQUFBaUFDQUFRYUFDYWlBRklBUkJBQkMwQVNBQWF5SUFRWjhDVEFSQUlBRWdBRUVNYlVFTWJ6WUNBQXNMUUFBZ0FpQURJQUJCQ0dvZ0FDZ0NDQ2dDQUJFQUFDSUFJQUJCcUFGcUlBVWdCRUVBRUxRQklBQnJJZ0JCcHdGTUJFQWdBU0FBUVF4dFFRZHZOZ0lBQ3dzRUFFRUNDNjhGQVFwL0l3QkJFR3NpQ1NRQUlBWVFPeUVLSUFrZ0JoQ01BU0lORURjZ0JTQUROZ0lBQWtBQ1FDQUFJZ2N0QUFBaUJrRXJhdzREQUFFQUFRc2dDaUFHUVJoMFFSaDFFRDBoQmlBRklBVW9BZ0FpQjBFRWFqWUNBQ0FISUFZMkFnQWdBRUVCYWlFSEN3SkFBa0FnQWlBSElnWnJRUUZNRFFBZ0J5MEFBRUV3UncwQUlBY3RBQUZCSUhKQitBQkhEUUFnQ2tFd0VEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0NpQUhMQUFCRUQwaEJpQUZJQVVvQWdBaUNFRUVhallDQUNBSUlBWTJBZ0FnQjBFQ2FpSUhJUVlEUUNBQ0lBWk5EUUlnQml3QUFCQVdFTmdDUlEwQ0lBWkJBV29oQmd3QUN3QUxBMEFnQWlBR1RRMEJJQVlzQUFBaENCQVdHaUFJRUVWRkRRRWdCa0VCYWlFR0RBQUxBQXNDUUNBSkVFa0VRQ0FLSUFjZ0JpQUZLQUlBRUdNZ0JTQUZLQUlBSUFZZ0IydEJBblJxTmdJQURBRUxJQWNnQmhCNUlBMFFPQ0VPSUFjaENBTkFJQVlnQ0UwRVFDQURJQWNnQUd0QkFuUnFJQVVvQWdBUXJRRUZBa0FnQ1NBTEVBc3NBQUJCQUV3TkFDQU1JQWtnQ3hBTExBQUFSdzBBSUFVZ0JTZ0NBQ0lNUVFScU5nSUFJQXdnRGpZQ0FDQUxJQXNnQ1JBSlFRRnJTV29oQzBFQUlRd0xJQW9nQ0N3QUFCQTlJUThnQlNBRktBSUFJaEJCQkdvMkFnQWdFQ0FQTmdJQUlBaEJBV29oQ0NBTVFRRnFJUXdNQVFzTEN3SkFBa0FEUUNBQ0lBWk5EUUVnQmkwQUFDSUhRUzVIQkVBZ0NpQUhRUmgwUVJoMUVEMGhCeUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQWMyQWdBZ0JrRUJhaUVHREFFTEN5QU5FRWdoQnlBRklBVW9BZ0FpQzBFRWFpSUlOZ0lBSUFzZ0J6WUNBQ0FHUVFGcUlRWU1BUXNnQlNnQ0FDRUlDeUFLSUFZZ0FpQUlFR01nQlNBRktBSUFJQUlnQm10QkFuUnFJZ1UyQWdBZ0JDQUZJQU1nQVNBQWEwRUNkR29nQVNBQ1JoczJBZ0FnQ1JBS0dpQUpRUkJxSkFBTHVBRUJCWDhqQUVFUWF5SUhKQUFqQUVFUWF5SUZKQUFDUUNBQlFlLy8vLzhEVFFSQUFrQWdBVUVCVFFSQUlBQWdBUkE2SUFBaEJnd0JDeUFBSUFBZ0FSQ0NBVUVCYWlJREVJRUJJZ1lRVFNBQUlBTVFUQ0FBSUFFUU9Rc2dCaUVFSUFFaUF3Ui9JQU1FUUFOQUlBUWdBallDQUNBRVFRUnFJUVFnQTBFQmF5SUREUUFMQzBFQUJTQUVDeG9nQlVFQU5nSU1JQVlnQVVFQ2RHb2dCVUVNYWhBeklBVkJFR29rQUF3QkN4QVhBQXNnQjBFUWFpUUFJQUFMbVFVQkNuOGpBRUVRYXlJSkpBQWdCaEF5SVFvZ0NTQUdFSTRCSWcwUU55QUZJQU0yQWdBQ1FBSkFJQUFpQnkwQUFDSUdRU3RyRGdNQUFRQUJDeUFLSUFaQkdIUkJHSFVRS1NFR0lBVWdCU2dDQUNJSFFRRnFOZ0lBSUFjZ0Jqb0FBQ0FBUVFGcUlRY0xBa0FDUUNBQ0lBY2lCbXRCQVV3TkFDQUhMUUFBUVRCSERRQWdCeTBBQVVFZ2NrSDRBRWNOQUNBS1FUQVFLU0VHSUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQmpvQUFDQUtJQWNzQUFFUUtTRUdJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCam9BQUNBSFFRSnFJZ2NoQmdOQUlBSWdCazBOQWlBR0xBQUFFQllRMkFKRkRRSWdCa0VCYWlFR0RBQUxBQXNEUUNBQ0lBWk5EUUVnQml3QUFDRUlFQllhSUFnUVJVVU5BU0FHUVFGcUlRWU1BQXNBQ3dKQUlBa1FTUVJBSUFvZ0J5QUdJQVVvQWdBUWJ5QUZJQVVvQWdBZ0JpQUhhMm8yQWdBTUFRc2dCeUFHRUhrZ0RSQTRJUTRnQnlFSUEwQWdCaUFJVFFSQUlBTWdCeUFBYTJvZ0JTZ0NBQkI1QlFKQUlBa2dEQkFMTEFBQVFRQk1EUUFnQ3lBSklBd1FDeXdBQUVjTkFDQUZJQVVvQWdBaUMwRUJhallDQUNBTElBNDZBQUFnRENBTUlBa1FDVUVCYTBscUlReEJBQ0VMQ3lBS0lBZ3NBQUFRS1NFUElBVWdCU2dDQUNJUVFRRnFOZ0lBSUJBZ0R6b0FBQ0FJUVFGcUlRZ2dDMEVCYWlFTERBRUxDd3NEUUFKQUlBSWdCa3NFUUNBR0xRQUFJZ2RCTGtjTkFTQU5FRWdoQnlBRklBVW9BZ0FpQ0VFQmFqWUNBQ0FJSUFjNkFBQWdCa0VCYWlFR0N5QUtJQVlnQWlBRktBSUFFRzhnQlNBRktBSUFJQUlnQm10cUlnVTJBZ0FnQkNBRklBTWdBU0FBYTJvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQVBDeUFLSUFkQkdIUkJHSFVRS1NFSElBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0J6b0FBQ0FHUVFGcUlRWU1BQXNBQy9RQkFRbC9JQUVRRFNFRUlBRVFDU0VISXdCQklHc2lBU1FBQWtBZ0FVRVlhaUFBRUlRRElnZ3RBQUJGRFFBZ0FVRUlhaUFBRU1BQklRa2dBQ0FBS0FJQVFReHJLQUlBYWlJRktBSUVJUW9DUUVGL0lBVWlBaWdDVEJCZVJRUkFJQUlvQWt3aEFnd0JDeUFDQW44akFFRVFheUlESkFBZ0EwRUlhaUlHSUFJUUR5QUdFREpCSUJBcElRSWdCaEFPSUFOQkVHb2tBQ0FDQ3pZQ1RBc2dBa0VZZEVFWWRTRUNJQUVnQ1NnQ0FDQUVJQVFnQjJvaUF5QUVJQXBCc0FGeFFTQkdHeUFESUFVZ0FoQldOZ0lRSUFFb0FoQU5BQ0FBSUFBb0FnQkJER3NvQWdCcVFRVVFnQUVMSUFnUWdnTWdBVUVnYWlRQUN6WUJBbjlCOUFFUUdTSUNCSDhnQWlBQUlBRkJBM1FRaVFNaUFFRUFTQVJBSUFJUUVFRUFEd3NnQWlBQU5nTHdBU0FDQlNBREN3dWRBd0VDZnlNQVFlQUNheUlBSkFBZ0FDQUNOZ0xRQWlBQUlBRTJBdGdDSUFNUVhDRUdJQU1nQUVIZ0FXb1FtUUVoQnlBQVFkQUJhaUFESUFCQnpBSnFFSmdCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFkZ0NhaEFoSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFvQXN3Q0lBQkIwQUZxSUFCQkVHb2dBRUVNYWlBSEVJc0JEUUFnQUVIWUFtb1FKUm9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERIQWpZQ0FDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRZUFDYWlRQUlBSUxWQUVDZnlNQVFSQnJJZ01rQUNBRFFRSTJBZ3dnQWlBQkVBa2lCRXNFUUJBWEFBc2dBUkFOSVFFZ0F5QUVJQUpyTmdJRUlBQWdBU0FDYWlBRFFReHFJQU5CQkdvUW9nRW9BZ0FROWdFZ0EwRVFhaVFBQzBJQkFYOGpBRUVRYXlJREpBQWdBeUFCTmdJTUlBTWdBallDQ0NBRElBTkJER29RVWlFQklBQkI4eHNnQXlnQ0NCRGlBaUVBSUFFUVVTQURRUkJxSkFBZ0FBc1lBQ0FBSUFBb0FnQkJER3NvQWdCcVFRSVJBQUFhSUFBTHNRSUNCSDRGZnlNQVFTQnJJZ2drQUFKQUFrQUNRQ0FCSUFKSEJFQkIxSUVCS0FJQUlReEIxSUVCUVFBMkFnQWpBRUVRYXlJSkpBQVFGaG9qQUVFUWF5SUtKQUFqQUVFUWF5SUxKQUFnQ3lBQklBaEJIR3BCQWhEWUFTQUxLUU1BSVFRZ0NpQUxLUU1JTndNSUlBb2dCRGNEQUNBTFFSQnFKQUFnQ2lrREFDRUVJQWtnQ2lrRENEY0RDQ0FKSUFRM0F3QWdDa0VRYWlRQUlBa3BBd0FoQkNBSUlBa3BBd2czQXhBZ0NDQUVOd01JSUFsQkVHb2tBQ0FJS1FNUUlRUWdDQ2tEQ0NFRlFkU0JBU2dDQUNJQlJRMEJJQWdvQWh3Z0FrY05BaUFGSVFZZ0JDRUhJQUZCeEFCSERRTU1BZ3NnQTBFRU5nSUFEQUlMUWRTQkFTQU1OZ0lBSUFnb0Fod2dBa1lOQVFzZ0EwRUVOZ0lBSUFZaEJTQUhJUVFMSUFBZ0JUY0RBQ0FBSUFRM0F3Z2dDRUVnYWlRQUM3WUJBZ0o4QTM4akFFRVFheUlGSkFBQ1FBSkFBa0FnQUNBQlJ3UkFRZFNCQVNnQ0FDRUhRZFNCQVVFQU5nSUFFQllhSXdCQkVHc2lCaVFBSUFZZ0FDQUZRUXhxUVFFUTJBRWdCaWtEQUNBR0tRTUlFTjBCSVFNZ0JrRVFhaVFBUWRTQkFTZ0NBQ0lBUlEwQklBVW9BZ3dnQVVjTkFpQURJUVFnQUVIRUFFY05Bd3dDQ3lBQ1FRUTJBZ0FNQWd0QjFJRUJJQWMyQWdBZ0JTZ0NEQ0FCUmcwQkN5QUNRUVEyQWdBZ0JDRURDeUFGUVJCcUpBQWdBd3UyQVFJQ2ZRTi9Jd0JCRUdzaUJTUUFBa0FDUUFKQUlBQWdBVWNFUUVIVWdRRW9BZ0FoQjBIVWdRRkJBRFlDQUJBV0dpTUFRUkJySWdZa0FDQUdJQUFnQlVFTWFrRUFFTmdCSUFZcEF3QWdCaWtEQ0JEa0FpRURJQVpCRUdva0FFSFVnUUVvQWdBaUFFVU5BU0FGS0FJTUlBRkhEUUlnQXlFRUlBQkJ4QUJIRFFNTUFnc2dBa0VFTmdJQURBSUxRZFNCQVNBSE5nSUFJQVVvQWd3Z0FVWU5BUXNnQWtFRU5nSUFJQVFoQXdzZ0JVRVFhaVFBSUFNTHhnRUNBMzhCZmlNQVFSQnJJZ1FrQUFKK0FrQUNRQ0FBSUFGSEJFQUNRQUpBSUFBdEFBQWlCVUV0UncwQUlBQkJBV29pQUNBQlJ3MEFEQUVMUWRTQkFTZ0NBQ0VHUWRTQkFVRUFOZ0lBSUFBZ0JFRU1haUFERUJZUTJRRWhCd0pBUWRTQkFTZ0NBQ0lBQkVBZ0JDZ0NEQ0FCUncwQklBQkJ4QUJHRFFRTUJRdEIxSUVCSUFZMkFnQWdCQ2dDRENBQlJnMEVDd3NMSUFKQkJEWUNBRUlBREFJTElBSkJCRFlDQUVKL0RBRUxRZ0FnQjMwZ0J5QUZRUzFHR3dzaEJ5QUVRUkJxSkFBZ0J3dlhBUUlEZndGK0l3QkJFR3NpQkNRQUFuOENRQUpBQWtBZ0FDQUJSd1JBQWtBQ1FDQUFMUUFBSWdWQkxVY05BQ0FBUVFGcUlnQWdBVWNOQUF3QkMwSFVnUUVvQWdBaEJrSFVnUUZCQURZQ0FDQUFJQVJCREdvZ0F4QVdFTmtCSVFjQ1FFSFVnUUVvQWdBaUFBUkFJQVFvQWd3Z0FVY05BU0FBUWNRQVJnMEZEQVFMUWRTQkFTQUdOZ0lBSUFRb0Fnd2dBVVlOQXdzTEN5QUNRUVEyQWdCQkFBd0RDeUFIUXYvLy8vOFBXQTBCQ3lBQ1FRUTJBZ0JCZnd3QkMwRUFJQWVuSWdCcklBQWdCVUV0UmhzTElRQWdCRUVRYWlRQUlBQUxrZ01CQVg4akFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBREVGd2hCaUFBUWRBQmFpQURJQUJCL3dGcUVKb0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQVlnQWlBQVFid0JhaUFBUVFocUlBQXNBUDhCSUFCQjBBRnFJQUJCRUdvZ0FFRU1ha0hnMEFBUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWNDTmdJQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUdJQW1vZ0FFR0FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ2lBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkJrQUpxSkFBZ0FndmNBUUlEZndGK0l3QkJFR3NpQkNRQUFuOENRQUpBQWtBZ0FDQUJSd1JBQWtBQ1FDQUFMUUFBSWdWQkxVY05BQ0FBUVFGcUlnQWdBVWNOQUF3QkMwSFVnUUVvQWdBaEJrSFVnUUZCQURZQ0FDQUFJQVJCREdvZ0F4QVdFTmtCSVFjQ1FFSFVnUUVvQWdBaUFBUkFJQVFvQWd3Z0FVY05BU0FBUWNRQVJnMEZEQVFMUWRTQkFTQUdOZ0lBSUFRb0Fnd2dBVVlOQXdzTEN5QUNRUVEyQWdCQkFBd0RDeUFIUXYvL0ExZ05BUXNnQWtFRU5nSUFRZi8vQXd3QkMwRUFJQWVuSWdCcklBQWdCVUV0UmhzTElRQWdCRUVRYWlRQUlBQkIvLzhEY1F1MkFRSUJmZ0ovSXdCQkVHc2lCU1FBQWtBQ1FDQUFJQUZIQkVCQjFJRUJLQUlBSVFaQjFJRUJRUUEyQWdBZ0FDQUZRUXhxSUFNUUZoRFBBaUVFQWtCQjFJRUJLQUlBSWdBRVFDQUZLQUlNSUFGSERRRWdBRUhFQUVZTkF3d0VDMEhVZ1FFZ0JqWUNBQ0FGS0FJTUlBRkdEUU1MQ3lBQ1FRUTJBZ0JDQUNFRURBRUxJQUpCQkRZQ0FDQUVRZ0JWQkVCQy8vLy8vLy8vLy8vL0FDRUVEQUVMUW9DQWdJQ0FnSUNBZ0g4aEJBc2dCVUVRYWlRQUlBUUx3d0VDQW44QmZpTUFRUkJySWdRa0FBSi9Ba0FDUUNBQUlBRkhCRUJCMUlFQktBSUFJUVZCMUlFQlFRQTJBZ0FnQUNBRVFReHFJQU1RRmhEUEFpRUdBa0JCMUlFQktBSUFJZ0FFUUNBRUtBSU1JQUZIRFFFZ0FFSEVBRVlOQkF3REMwSFVnUUVnQlRZQ0FDQUVLQUlNSUFGR0RRSUxDeUFDUVFRMkFnQkJBQXdDQ3lBR1FvQ0FnSUI0VXlBR1F2Ly8vLzhIVlhJTkFDQUdwd3dCQ3lBQ1FRUTJBZ0JCLy8vLy93Y2dCa0lBVlEwQUdrR0FnSUNBZUFzaEFDQUVRUkJxSkFBZ0FBdm1BZ0VFZnlBQVFVQnJJZ05CdkNnMkFnQWdBMEgwSVRZQ0FDQUFRZndsTmdJQUlBTkJwQ1kyQWdBZ0FFR1FKallDQ0NBQVFiUW1LQUlBSWdFMkFnQWdBQ0FCUVF4cktBSUFha0c0SmlnQ0FEWUNBQ0FBUVFBMkFnUWdBQ0FBS0FJQVFReHJLQUlBYWlJQ1FRQTJBaFFnQWlBQVFReHFJZ0UyQWhnZ0FrRUFOZ0lNSUFKQ2dxQ0FnT0FBTndJRUlBSWdBVVUyQWhBZ0FrRWdha0VBUVNnUVJob2dBa0VjYWhDUEFpQUNRUUEyQWtnZ0FrRi9OZ0pNSUFCQkNHb2lBa0c4SmlnQ0FDSUVOZ0lBSUFJZ0JFRU1heWdDQUdwQndDWW9BZ0EyQWdBZ0FFR3dKaWdDQUNJQ05nSUFJQUFnQWtFTWF5Z0NBR3BCeENZb0FnQTJBZ0FnQUVISUppZ0NBRFlDQ0NBQVFmd2xOZ0lBSUFOQnBDWTJBZ0FnQUVHUUpqWUNDQ0FCUWJ3Zk5nSUFJQUZCQkdvUWp3SWdBVUlBTndJWUlBRkNBRGNDRUNBQlFnQTNBZ2dnQVVHMElUWUNBQ0FCUVNCcUVCRWFJQUZCR0RZQ01DQUJRUUEyQWl3Z0FBc0tBQ0FCSUFCclFReHRDNVFCQVFSL0l3QkJFR3NpQlNRQUlBRWdBaENpQWlJRVFlLy8vLzhEVFFSQUFrQWdCRUVCVFFSQUlBQWdCQkE2SUFBaEF3d0JDeUFBSUFBZ0JCQ0NBVUVCYWlJR0VJRUJJZ01RVFNBQUlBWVFUQ0FBSUFRUU9Rc0RRQ0FCSUFKSEJFQWdBeUFCRURNZ0EwRUVhaUVESUFGQkJHb2hBUXdCQ3dzZ0JVRUFOZ0lNSUFNZ0JVRU1haEF6SUFWQkVHb2tBQThMRUJjQUN4WUFJQUFnQVNBQ1FvQ0FnSUNBZ0lDQWdIOFEwQUlMa2dRQ0IzOEVmaU1BUVJCcklnZ2tBQUpBQWtBQ1FDQUNRU1JNQkVBZ0FDMEFBQ0lGRFFFZ0FDRUVEQUlMUWRTQkFVRWNOZ0lBUWdBaEF3d0NDeUFBSVFRQ1FBTkFJQVZCR0hSQkdIVVFjRVVOQVNBRUxRQUJJUVVnQkVFQmFpRUVJQVVOQUFzTUFRc0NRQ0FFTFFBQUlnVkJLMnNPQXdBQkFBRUxRWDlCQUNBRlFTMUdHeUVISUFSQkFXb2hCQXNDZndKQUlBSkJiM0VOQUNBRUxRQUFRVEJIRFFCQkFTRUpJQVF0QUFGQjN3RnhRZGdBUmdSQUlBUkJBbW9oQkVFUURBSUxJQVJCQVdvaEJDQUNRUWdnQWhzTUFRc2dBa0VLSUFJYkN5SUtyQ0VNUVFBaEFnTkFBa0JCVUNFRkFrQWdCQ3dBQUNJR1FUQnJRZjhCY1VFS1NRMEFRYWwvSVFVZ0JrSGhBR3RCL3dGeFFScEpEUUJCU1NFRklBWkJ3UUJyUWY4QmNVRVpTdzBCQ3lBRklBWnFJZ1lnQ2s0TkFDQUlJQXhDQUNBTFFnQVFLMEVCSVFVQ1FDQUlLUU1JUWdCU0RRQWdDeUFNZmlJTklBYXNJZzVDZjRWV0RRQWdEU0FPZkNFTFFRRWhDU0FDSVFVTElBUkJBV29oQkNBRklRSU1BUXNMSUFFRVFDQUJJQVFnQUNBSkd6WUNBQXNDUUFKQUlBSUVRRUhVZ1FGQnhBQTJBZ0FnQjBFQUlBTkNBWU1pREZBYklRY2dBeUVMREFFTElBTWdDMVlOQVNBRFFnR0RJUXdMSUF5bklBZHlSUVJBUWRTQkFVSEVBRFlDQUNBRFFnRjlJUU1NQWdzZ0F5QUxXZzBBUWRTQkFVSEVBRFlDQUF3QkN5QUxJQWVzSWdPRklBTjlJUU1MSUFoQkVHb2tBQ0FEQ3pFQkFYOUIySVlCS0FJQUlRRWdBQVJBUWRpR0FVSG9oUUVnQUNBQVFYOUdHellDQUF0QmZ5QUJJQUZCNklVQlJoc0xyUWdCQlg4Z0FTZ0NBQ0VFQWtBQ1FBSkFBa0FDUUFKQUFrQUNmd0pBQWtBQ1FBSkFJQU5GRFFBZ0F5Z0NBQ0lHUlEwQUlBQkZCRUFnQWlFRERBTUxJQU5CQURZQ0FDQUNJUU1NQVFzQ1FFSFloZ0VvQWdBb0FnQkZCRUFnQUVVTkFTQUNSUTBNSUFJaEJnTkFJQVFzQUFBaUF3UkFJQUFnQTBIL3Z3TnhOZ0lBSUFCQkJHb2hBQ0FFUVFGcUlRUWdCa0VCYXlJR0RRRU1EZ3NMSUFCQkFEWUNBQ0FCUVFBMkFnQWdBaUFHYXc4TElBSWhBeUFBUlEwRERBVUxJQVFRa2dFUEMwRUJJUVVNQXd0QkFBd0JDMEVCQ3lFRkEwQWdCVVVFUUNBRUxRQUFRUU4ySWdWQkVHc2dCa0VhZFNBRmFuSkJCMHNOQXdKL0lBUkJBV29pQlNBR1FZQ0FnQkJ4UlEwQUdpQUZMUUFBUWNBQmNVR0FBVWNFUUNBRVFRRnJJUVFNQndzZ0JFRUNhaUlGSUFaQmdJQWdjVVVOQUJvZ0JTMEFBRUhBQVhGQmdBRkhCRUFnQkVFQmF5RUVEQWNMSUFSQkEyb0xJUVFnQTBFQmF5RURRUUVoQlF3QkN3TkFBa0FnQkVFRGNTQUVMUUFBSWdaQkFXdEIvZ0JMY2cwQUlBUW9BZ0FpQmtHQmdvUUlheUFHY2tHQWdZS0VlSEVOQUFOQUlBTkJCR3NoQXlBRUtBSUVJUVlnQkVFRWFpRUVJQVlnQmtHQmdvUUlhM0pCZ0lHQ2hIaHhSUTBBQ3dzZ0JrSC9BWEVpQlVFQmEwSCtBRTBFUUNBRFFRRnJJUU1nQkVFQmFpRUVEQUVMQ3lBRlFjSUJheUlGUVRKTERRTWdCRUVCYWlFRUlBVkJBblJCd0N0cUtBSUFJUVpCQUNFRkRBQUxBQXNEUUNBRlJRUkFJQU5GRFFjRFFBSkFBa0FDUUNBRUxRQUFJZ1ZCQVdzaUIwSCtBRXNFUUNBRklRWU1BUXNnQkVFRGNTQURRUVZKY2cwQkFrQURRQ0FFS0FJQUlnWkJnWUtFQ0dzZ0JuSkJnSUdDaEhoeERRRWdBQ0FHUWY4QmNUWUNBQ0FBSUFRdEFBRTJBZ1FnQUNBRUxRQUNOZ0lJSUFBZ0JDMEFBellDRENBQVFSQnFJUUFnQkVFRWFpRUVJQU5CQkdzaUEwRUVTdzBBQ3lBRUxRQUFJUVlMSUFaQi93RnhJZ1ZCQVdzaEJ3c2dCMEgrQUVzTkFRc2dBQ0FGTmdJQUlBQkJCR29oQUNBRVFRRnFJUVFnQTBFQmF5SUREUUVNQ1FzTElBVkJ3Z0ZySWdWQk1rc05BeUFFUVFGcUlRUWdCVUVDZEVIQUsyb29BZ0FoQmtFQklRVU1BUXNnQkMwQUFDSUZRUU4ySWdkQkVHc2dCeUFHUVJwMWFuSkJCMHNOQVFKQUFrQUNmeUFFUVFGcUlnY2dCVUdBQVdzZ0JrRUdkSElpQlVFQVRnMEFHaUFITFFBQVFZQUJheUlIUVQ5TERRRWdCRUVDYWlJSUlBY2dCVUVHZEhJaUJVRUFUZzBBR2lBSUxRQUFRWUFCYXlJSFFUOUxEUUVnQnlBRlFRWjBjaUVGSUFSQkEyb0xJUVFnQUNBRk5nSUFJQU5CQVdzaEF5QUFRUVJxSVFBTUFRdEIxSUVCUVJrMkFnQWdCRUVCYXlFRURBVUxRUUFoQlF3QUN3QUxJQVJCQVdzaEJDQUdEUUVnQkMwQUFDRUdDeUFHUWY4QmNRMEFJQUFFUUNBQVFRQTJBZ0FnQVVFQU5nSUFDeUFDSUFOckR3dEIxSUVCUVJrMkFnQWdBRVVOQVFzZ0FTQUVOZ0lBQzBGL0R3c2dBU0FFTmdJQUlBSUxJd0VDZnlBQUlRRURRQ0FCSWdKQkJHb2hBU0FDS0FJQURRQUxJQUlnQUd0QkFuVUxEZ0FnQUJEZkFnUkFJQUFRRUFzTFV3RUVmd0pBSUFGQkFFd05BQ0FCUVFGcklnUkZEUUFEUUNBQUlBSnFJZ010QUFBaEJTQURJQUFnQWtFQmNtb2lBeTBBQURvQUFDQURJQVU2QUFBZ0FrRUNhaUlDSUFGT0RRRWdBaUFFUncwQUN3c0xMQUVCZnlNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQUVIa0FFSHVIQ0FCRUxVQklRQWdBa0VRYWlRQUlBQUxLUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBRTJBZ3dnQUVIMEhDQUJFT0lDSVFBZ0FrRVFhaVFBSUFBTEZnQWdBQkJGUVFCSElBQkJJSEpCNFFCclFRWkpjZ3U4QWdBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUZCQ1dzT0VnQUlDUW9JQ1FFQ0F3UUtDUW9LQ0FrRkJnY0xJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBU2dDQURZQ0FBOExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVElCQURjREFBOExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVE1CQURjREFBOExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVEFBQURjREFBOExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVEVBQURjREFBOExJQUlnQWlnQ0FFRUhha0Y0Y1NJQlFRaHFOZ0lBSUFBZ0FTc0RBRGtEQUE4TElBQWdBa0V6RVFNQUN3OExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVFFDQURjREFBOExJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBQWdBVFVDQURjREFBOExJQUlnQWlnQ0FFRUhha0Y0Y1NJQlFRaHFOZ0lBSUFBZ0FTa0RBRGNEQUF2K0ZBRU9meU1BUVVCcUlnTWtBQ0FEUVFBMkFoQWdBMEVBTmdJTUlBTkJBRFlDQ0NBRFFRQTJBZ1FnQXlBRFFSQnFJZ1EyQWhRZ0F5QURRUXhxSWdnMkFoZ2dBeWdDRkJvZ0F5QURRUWhxSWdvMkFod2dBeWdDR0JvZ0F5QURRUVJxSWdZMkFpQWdBeWdDSEJvZ0F5Z0NJQm9qQUVFUWF5SUhKQUFnQmlBQUxRQUNJQUF0QUFFZ0FDMEFBSE56UVJoMFFSaDFJZ1ZCTUhNZ0JVRUJkRUdmZjNKcVFRRnFJZ1UyQWdBZ0NpQUZRWDl6SUFGeElBVWdBVUYvY3lJTWNXc2lCVUYrY2lBRlFYNXhha0VCYWlJRk5nSUFJQVFnQlJBWk5nSUFJQWdnQmlnQ0FDSUpFQmsyQWdBRFFBSkFRYjN1K2FGK0lRVURRQUpBQWtBZ0JVRzg3dm1oZmt3RVFDQUZRZTNzaE9ONVJnMEJJQVZCaWEzTjIzeEdEUUlnQlVHSWhZTGNmRWNOQXlBSFFSQnFKQUFNQkFzZ0JVSDJqb2JWQkVjRVFDQUZRWnFlbzhrRFJnUkFRUUFoQzBIdDdJVGplU0VGREFRTElBVkJ2ZTc1b1g1SERRTWdCeUFKTmdJSVFmYU9odFVFUVpxZW84a0RJQWNvQWdoQkFFb2JJUVVNQXdzZ0JpZ0NBQ0lGUVg5eklBRnhJQVVnREhGcklnbEJmbk1nQ1VFQmRFRjhjV29nQUdvdEFBRWhEU0FJS0FJQUlBVWdCeWdDQ0d0cUlBQWdCeWdDQ0NJRlFYOXpJQUZ4UVFGMElBRWdCWE5yYWkwQUFDQUFJQWxxUVFKckxRQUFJQTF6Y3pvQUFDQUhLQUlJUVFGcklRa01CQXNnQnlBTE5nSU1RWW10emR0OFFZaUZndHg4SUFvb0FnQWdCeWdDREVvYklRVU1BUXNnQkNnQ0FDQUhLQUlNYWlBQUlBY29BZ3hCQVdvaUMyb3RBQUE2QUFCQjdleUU0M2toQlF3QUN3QUxDeUFESUFNb0FneEJyeDRnQXlnQ0JCQytBVFlDSkVITnV2YWVCU0VBQTBBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FBUWNyd3FhSUJUQVJBSUFCQi9iWGE3MzVNQkVBZ0FFR1IxWXVVZTBZTkJ5QUFRYzJWNjlwN1JnMERJQUJCZ05Ibi9YeEhEUWxCa2RXTGxIc2hBRUVBSVFFTUNRc2dBRUgrdGRydmZrWU5CQ0FBUWE2bTAvWUFSZzBCSUFCQjBhQzVHRWNOQ0NBREtBSVFFQkFnQXlnQ0RCQVFJQU1vQWlBYUlBTW9BaHdhSUFNb0FoZ2FJQU1vQWhRYUlBTW9BaXdoQUNBRFFVQnJKQUFnQUE4TElBQkI3NFRyOVFKTUJFQWdBRUhMOEttaUFVWU5CeUFBUVl6QXlvQUNSdzBJSUFNb0FoQWhDQ0FES0FJSUlRNUJBQ0VKUVFBaENrRUFJUVZCQUNFSFFRQWhDeU1BUVJCcklnUWtBRUdTbU96REJVRzc3THlJQkNBQ0d5RUdRZFVBSVF4QitnRWhEUU5BQWtCQjVxcWZlaUVBQTBBQ1FBSkFBa0FDUUFKQUlBQkJwTldEOWdGTUJFQWdBRUhveXBDNWZFd0VRQ0FBUWZpMStQdDVSZzBHSUFCQjVOQ1d0M3BHRFFVZ0FFR1k5ZTNPZVVjTkJ5QUVRUkJxSkFBTUNBc2dBRUhweXBDNWZFWU5BU0FBUWVhcW4zcEhEUVlnQkNBSk5nSUVJQVFnRFRvQUN5QUVJQXc2QUF4QjZjcVF1WHhCbVBYdHpua2dCQ2dDQkNBT1NCc2hBQXdHQ3lBQVFiRHRpcmtFVEFSQUlBQkJwZFdEOWdGR0RRSWdBRUc3N0x5SUJFY05Ca0g0dGZqN2VTRUFJQVFzQUEwZ0JDZ0NCQkRvQWlFS0RBWUxJQUJCc2UyS3VRUkdEUUlnQUVHU21PekRCVWNOQlVINHRmajdlU0VBSUFRc0FBMGdCQ2dDQkJEaEFpRUtEQVVMUWFYVmcvWUJRYkh0aXJrRUlBUW9BZ1JCQW05QkFVWWJJUUFNQkFzZ0NDQUVLQUlFYWkwQUFDSUZJQVF0QUF4eklRZEI1TkNXdDNvaEFDQUVMUUFMSVFzTUF3c2dDQ0FFS0FJRWFpMEFBQ0lMSUFRdEFBdHpJUWRCNU5DV3Qzb2hBQ0FFTFFBTUlRVU1BZ3NnQkNBTE9nQU9JQVFnQnpvQURTQUVJQVU2QUE4Z0JpRUFEQUVMQ3lBSUlBUW9BZ1JxSUFvNkFBQWdCQ2dDQkVFQmFpRUpJQVF0QUE4aERDQUVMUUFPSVEwTUFRc0xRZkNFNi9VQ0lRQU1DQXNnQUVId2hPdjFBa1lOQWlBQVFaalhxcEVEUmcwRUlBQkJ6YnIybmdWSERRZEJycWJUOWdCQnpaWHIybnNnQXlnQ0pCc2hBQXdIQzBHTXdNcUFBa0hObGV2YWV5QURLQUlNUWJZZUlBTW9BZ1FRdmdFYklRQU1CZ3NnQXlnQ0VDRUlJQU1vQWdnaEJVRUFJUXBCQUNFTlFRQWhCMEVBSVF0QkFDRUpRUUFoRENNQVFSQnJJZ1FrQUNBSUlBVVExUUpCc3FiYml3UkJ1ditEb25rZ0Foc2hCa0hWQUNFT1Fmb0JJUThEUUFKQVFiU1cwYm9DSVFBRFFBSkFBa0FDUUNBQVFiT1cwYm9DVEFSQUlBQkJwZkhhMjMxTUJFQWdBRUc2LzRPaWVVWU5CQ0FBUVovVW5waDdSZzBESUFCQjAraTY0M2hIRFFVZ0NDQUZFTlVDSUFSQkVHb2tBQXdHQ3lBQVFhYngydHQ5UmcwQklBQkJnNmFaclFGSERRUkJsNFhjdmdSQnB2SGEyMzBnQkNnQ0JFRUNiMEVCUmhzaEFBd0VDd0pBQWtBZ0FFR1doZHkrQkV3RVFDQUFRYlNXMGJvQ1JnMEJJQUJCc3FiYml3UkhEUVpCLzdMbGx3VWhBQ0FFTEFBTklBUW9BZ1FRNFFJaENnd0dDeUFBUVplRjNMNEVSZzBCSUFCQi83TGxsd1ZIRFFVZ0NDQUVLQUlFYWlBRUxRQU1JZ0FnQ25NZ0FDQUtRWDl6Y1VFQmRHczZBQUFnQkNnQ0JFRUJhaUVOSUFRdEFBOGhEaUFFTFFBT0lROE1Cd3NnQkNBTk5nSUVJQVFnRHpvQUNpQUVJQTQ2QUF0Qmc2YVpyUUZCMCtpNjQzZ2dCQ2dDQkNBRlNCc2hBQXdFQ3lBSUlBUW9BZ1JxTFFBQUlnY2dCQzBBQzNNaEMwR2YxSjZZZXlFQUlBUXRBQW9oQ1NBRUxRQUtJUXdNQXdzZ0NDQUVLQUlFYWkwQUFDSUpJQVF0QUFweklRdEJuOVNlbUhzaEFDQUVMUUFMSVFjZ0JDMEFDeUVNREFJTElBUWdDem9BRFNBRUlBdzZBQXdnQkNBSk9nQU9JQVFnQnpvQUR5QUdJUUFNQVF0Qi83TGxsd1VoQUNBRUxBQU5JQVFvQWdRUTZBSWhDZ3dBQ3dBTEMwSHdoT3YxQWlFQURBVUxJQU1DZjBFQUlRUWpBRUVRYXlJR0lBTW9BaEFzQUFBMkFnZ2dCaUFHS0FJSVFTOUtPZ0FPSUFZZ0JpZ0NDRUU2U0RvQUQwR000SlNDZWlFQUEwQUNRQ0FBUWF6Y2g0aDdUQVJBSUFCQmxlckJ1bmhHQkVCQi93RWhCRUd0M0llSWV5RUFEQU1MSUFCQmpPQ1VnbnBHRFFFZ0FFRzhvT2ZMZWtjTkFpQUdLQUlJSWdCQjRRQnpJQUJCQVhSQnZYNXlha0VCYWlJQVFRRjBRUlJ4SUFCQkNuTnFJUVJCcmR5SGlIc2hBQXdDQ3lBQVFhM2NoNGg3UndSQUlBQkJtcVg0NndKSEJFQWdBRUhBNHJEQ0EwY05BeUFHS0FJSUlnQkJ6d0Z5SUFCQnp3Rnhha0VCYWlFRVFhM2NoNGg3SVFBTUF3dEJ2S0RueTNwQmxlckJ1bmdnQmlnQ0NFSDdBRWdiUVpYcXdicDRJQVlvQWdoQjRBQktHeUVBREFJTElBUkJHSFJCR0hVTUFndEJ3T0t3d2dOQm1xWDQ2d0lnQmkwQUQwRUJjUnRCbXFYNDZ3SWdCaTBBRGtFQmNSc2hBQXdBQ3dBTElnQTJBZ1FnQXlBREtBSUlJZ1lnQUVGL2MzRWdBQ0FHUVg5emNXc2lCa0YrY2lBR1FYNXhha0VCYWpZQ0tDQURJQVlRR1RZQ0xDQURJQUJCQVhSQkFuRWdBRUVCYzJvUUdUWUNNRUVBSVJBZ0F5Z0NLQ0FES0FJc2FrRUFPZ0FBSUFNb0FnUWdBeWdDTUdwQkFEb0FBRUgrdGRydmZpRUFEQVFMSUFNZ0VEWUNPRUdZMTZxUkEwR0EwZWY5ZkNBREtBSW9JQU1vQWpoS0d5RUFEQU1MSUFNb0Fpd2dBeWdDT0dvZ0F5Z0NPQ0lBUVFGMFFRSnlJQUJCZm5OcVFRRnFJaEFnQXlnQ0VHb3RBQUE2QUFCQi9yWGE3MzRoQUF3Q0N5QURJQU1vQWdRMkFqUWdBeUFCTmdJOFFjdndxYUlCUWRHZ3VSZ2dBeWdDTkNBREtBSThTaHNoQUF3QkN5QURLQUl3SUFNb0FqeHFJQU1vQWhBZ0F5Z0NDQ0FES0FJMGF5SUFJQU1vQWp3aUFYSkJBWFFnQUNBQmMydHFMUUFBT2dBQUlBTW9BanhCQVdvaEFVR1IxWXVVZXlFQURBQUxBQXRyQVFSL0lBQW9BZ0FzQUFBUVJVVUVRRUVBRHdzRFFDQUFLQUlBSVFOQmZ5RUJJQUpCekptejVnQk5CRUJCZnlBRExBQUFRVEJySWdRZ0FrRUtiQ0lCYWlBRVFmLy8vLzhISUFGclNoc2hBUXNnQUNBRFFRRnFOZ0lBSUFFaEFpQURMQUFCRUVVTkFBc2dBUXYwRWdJUmZ3RitJd0JCMEFCcklnVWtBQ0FGSUFFMkFrd2dCVUUzYWlFVUlBVkJPR29oRUVFQUlRRUNRQUpBQWtBQ1FBTkFJQUZCLy8vLy93Y2dDMnRLRFFFZ0FTQUxhaUVMSUFVb0Frd2lDaUVCQWtBQ1FBSkFJQW90QUFBaUNRUkFBMEFDUUFKQUlBbEIvd0Z4SWdaRkJFQWdBU0VKREFFTElBWkJKVWNOQVNBQklRa0RRQ0FCTFFBQlFTVkhEUUVnQlNBQlFRSnFJZ1kyQWt3Z0NVRUJhaUVKSUFFdEFBSWhDQ0FHSVFFZ0NFRWxSZzBBQ3dzZ0NTQUtheUlCUWYvLy8vOEhJQXRySWhWS0RRY2dBQVJBSUFBZ0NpQUJFQ29MSUFFTkJrRi9JUTVCQVNFR0lBVW9Ba3dzQUFFUVJTRUJJQVVvQWt3aENBSkFJQUZGRFFBZ0NDMEFBa0VrUncwQUlBZ3NBQUZCTUdzaERrRUJJUkpCQXlFR0N5QUZJQVlnQ0dvaUFUWUNURUVBSVF3Q1FDQUJMQUFBSWhGQklHc2lDRUVmU3dSQUlBRWhCZ3dCQ3lBQklRWkJBU0FJZENJSFFZblJCSEZGRFFBRFFDQUZJQUZCQVdvaUJqWUNUQ0FISUF4eUlRd2dBU3dBQVNJUlFTQnJJZ2hCSUU4TkFTQUdJUUZCQVNBSWRDSUhRWW5SQkhFTkFBc0xBa0FnRVVFcVJnUkFJQVVDZndKQUlBWXNBQUVRUlVVTkFDQUZLQUpNSWdFdEFBSkJKRWNOQUNBQkxBQUJRUUowSUFScVFjQUJhMEVLTmdJQUlBRXNBQUZCQTNRZ0EycEJnQU5yS0FJQUlRMUJBU0VTSUFGQkEyb01BUXNnRWcwR1FRQWhFa0VBSVEwZ0FBUkFJQUlnQWlnQ0FDSUJRUVJxTmdJQUlBRW9BZ0FoRFFzZ0JTZ0NURUVCYWdzaUFUWUNUQ0FOUVFCT0RRRkJBQ0FOYXlFTklBeEJnTUFBY2lFTURBRUxJQVZCekFCcUVOc0NJZzFCQUVnTkNDQUZLQUpNSVFFTFFRQWhCa0YvSVFjQ2YwRUFJQUV0QUFCQkxrY05BQm9nQVMwQUFVRXFSZ1JBSUFVQ2Z3SkFJQUVzQUFJUVJVVU5BQ0FGS0FKTUlnRXRBQU5CSkVjTkFDQUJMQUFDUVFKMElBUnFRY0FCYTBFS05nSUFJQUVzQUFKQkEzUWdBMnBCZ0FOcktBSUFJUWNnQVVFRWFnd0JDeUFTRFFZZ0FBUi9JQUlnQWlnQ0FDSUJRUVJxTmdJQUlBRW9BZ0FGUVFBTElRY2dCU2dDVEVFQ2Fnc2lBVFlDVENBSFFYOXpRUjkyREFFTElBVWdBVUVCYWpZQ1RDQUZRY3dBYWhEYkFpRUhJQVVvQWt3aEFVRUJDeUVUQTBBZ0JpRVBRUndoQ1NBQkxBQUFRY0VBYTBFNVN3MEpJQVVnQVVFQmFpSVJOZ0pNSUFFc0FBQWhCaUFSSVFFZ0JpQVBRVHBzYWtHUExtb3RBQUFpQmtFQmEwRUlTUTBBQ3dKQUFrQWdCa0ViUndSQUlBWkZEUXNnRGtFQVRnUkFJQVFnRGtFQ2RHb2dCallDQUNBRklBTWdEa0VEZEdvcEF3QTNBMEFNQWdzZ0FFVU5DQ0FGUVVCcklBWWdBaERaQWlBRktBSk1JUkVNQWdzZ0RrRUFUZzBLQzBFQUlRRWdBRVVOQndzZ0RFSC8vM3R4SWdnZ0RDQU1RWURBQUhFYklRWkJBQ0VNUWU4YUlRNGdFQ0VKQWtBQ1FBSkFBbjhDUUFKQUFrQUNRQUovQWtBQ1FBSkFBa0FDUUFKQUFrQWdFVUVCYXl3QUFDSUJRVjl4SUFFZ0FVRVBjVUVEUmhzZ0FTQVBHeUlCUWRnQWF3NGhCQlFVRkJRVUZCUVVEaFFQQmc0T0RoUUdGQlFVRkFJRkF4UVVDUlFCRkJRRUFBc0NRQ0FCUWNFQWF3NEhEaFFMRkE0T0RnQUxJQUZCMHdCR0RRa01Fd3NnQlNrRFFDRVdRZThhREFVTFFRQWhBUUpBQWtBQ1FBSkFBa0FDUUFKQUlBOUIvd0Z4RGdnQUFRSURCQm9GQmhvTElBVW9Ba0FnQ3pZQ0FBd1pDeUFGS0FKQUlBczJBZ0FNR0FzZ0JTZ0NRQ0FMckRjREFBd1hDeUFGS0FKQUlBczdBUUFNRmdzZ0JTZ0NRQ0FMT2dBQURCVUxJQVVvQWtBZ0N6WUNBQXdVQ3lBRktBSkFJQXVzTndNQURCTUxJQWRCQ0NBSFFRaExHeUVISUFaQkNISWhCa0g0QUNFQkN5QVFJUWdnQVVFZ2NTRVBJQVVwQTBBaUZsQkZCRUFEUUNBSVFRRnJJZ2dnRnFkQkQzRkJvREpxTFFBQUlBOXlPZ0FBSUJaQ0QxWWhDaUFXUWdTSUlSWWdDZzBBQ3dzZ0NDRUtJQVpCQ0hGRklBVXBBMEJRY2cwRElBRkJCSFpCN3hwcUlRNUJBaUVNREFNTElCQWhBU0FGS1FOQUloWlFSUVJBQTBBZ0FVRUJheUlCSUJhblFRZHhRVEJ5T2dBQUlCWkNCMVloQ0NBV1FnT0lJUllnQ0EwQUN3c2dBU0VLSUFaQkNIRkZEUUlnQnlBUUlBcHJJZ0ZCQVdvZ0FTQUhTQnNoQnd3Q0N5QUZLUU5BSWhaQ0FGTUVRQ0FGUWdBZ0ZuMGlGamNEUUVFQklReEI3eG9NQVFzZ0JrR0FFSEVFUUVFQklReEI4Qm9NQVF0QjhScEI3eG9nQmtFQmNTSU1Hd3NoRGlBV0lCQVFqd0VoQ2dzZ0UwRUFJQWRCQUVnYkRRNGdCa0gvLzN0eElBWWdFeHNoQmlBRktRTkFJaFpDQUZJZ0IzSkZCRUFnRUNFS1FRQWhCd3dNQ3lBSElCWlFJQkFnQ210cUlnRWdBU0FIU0JzaEJ3d0xDeUFGS0FKQUlnRkJnQjhnQVJzaUNpSUpRUUJCLy8vLy93Y2dCeUFIUVFCSUd5SUdFTndCSWdFZ0NXc2dCaUFCR3lJQklBcHFJUWtnQjBFQVRnUkFJQWdoQmlBQklRY01Dd3NnQ0NFR0lBRWhCeUFKTFFBQURRME1DZ3NnQndSQUlBVW9Ba0FNQWd0QkFDRUJJQUJCSUNBTlFRQWdCaEF1REFJTElBVkJBRFlDRENBRklBVXBBMEErQWdnZ0JTQUZRUWhxSWdFMkFrQkJmeUVISUFFTElRbEJBQ0VCQWtBRFFDQUpLQUlBSWdoRkRRRWdCVUVFYWlBSUVONENJZ3BCQUVnaUNDQUtJQWNnQVd0TGNrVUVRQ0FKUVFScUlRa2dCeUFCSUFwcUlnRkxEUUVNQWdzTElBZ05EUXRCUFNFSklBRkJBRWdOQ3lBQVFTQWdEU0FCSUFZUUxpQUJSUVJBUVFBaEFRd0JDMEVBSVFjZ0JTZ0NRQ0VKQTBBZ0NTZ0NBQ0lJUlEwQklBVkJCR29nQ0JEZUFpSUlJQWRxSWdjZ0FVc05BU0FBSUFWQkJHb2dDQkFxSUFsQkJHb2hDU0FCSUFkTERRQUxDeUFBUVNBZ0RTQUJJQVpCZ01BQWN4QXVJQTBnQVNBQklBMUlHeUVCREFnTElCTkJBQ0FIUVFCSUd3MElRVDBoQ1NBQUlBVXJBMEFnRFNBSElBWWdBVUV5RVIwQUlnRkJBRTROQnd3SkN5QUZJQVVwQTBBOEFEZEJBU0VISUJRaENpQUlJUVlNQkFzZ0JTQUJRUUZxSWdZMkFrd2dBUzBBQVNFSklBWWhBUXdBQ3dBTElBQU5CeUFTUlEwQ1FRRWhBUU5BSUFRZ0FVRUNkR29vQWdBaUFBUkFJQU1nQVVFRGRHb2dBQ0FDRU5rQ1FRRWhDeUFCUVFGcUlnRkJDa2NOQVF3SkN3dEJBU0VMSUFGQkNrOE5Cd05BSUFRZ0FVRUNkR29vQWdBTkFTQUJRUUZxSWdGQkNrY05BQXNNQnd0QkhDRUpEQVFMSUFrZ0Ntc2lEeUFISUFjZ0QwZ2JJZ2hCLy8vLy93Y2dER3RLRFFKQlBTRUpJQWdnREdvaUJ5QU5JQWNnRFVvYklnRWdGVW9OQXlBQVFTQWdBU0FISUFZUUxpQUFJQTRnREJBcUlBQkJNQ0FCSUFjZ0JrR0FnQVJ6RUM0Z0FFRXdJQWdnRDBFQUVDNGdBQ0FLSUE4UUtpQUFRU0FnQVNBSElBWkJnTUFBY3hBdURBRUxDMEVBSVFzTUF3dEJQU0VKQzBIVWdRRWdDVFlDQUF0QmZ5RUxDeUFGUWRBQWFpUUFJQXNMZndJQmZ3RitJQUM5SWdOQ05JaW5RZjhQY1NJQ1FmOFBSd1I4SUFKRkJFQWdBU0FBUkFBQUFBQUFBQUFBWVFSL1FRQUZJQUJFQUFBQUFBQUE4RU9pSUFFUTNRSWhBQ0FCS0FJQVFVQnFDellDQUNBQUR3c2dBU0FDUWY0SGF6WUNBQ0FEUXYvLy8vLy8vLytIZ0grRFFvQ0FnSUNBZ0lEd1A0Uy9CU0FBQ3dzU0FDQUFSUVJBUVFBUEN5QUFJQUVRMmdFTEpRQWdBRUVBUnlBQVFjZ3RSM0VnQUVIZ0xVZHhJQUJCZ0ljQlIzRWdBRUdZaHdGSGNRdm9BZ0VEZndKQUlBRXRBQUFOQUVHS0hoRGJBU0lCQkVBZ0FTMEFBQTBCQ3lBQVFReHNRWUF1YWhEYkFTSUJCRUFnQVMwQUFBMEJDMEdSSGhEYkFTSUJCRUFnQVMwQUFBMEJDMEduSGlFQkN3SkFBMEFnQVNBQ2FpMEFBQ0lFUlNBRVFTOUdja1VFUUVFWElRUWdBa0VCYWlJQ1FSZEhEUUVNQWdzTElBSWhCQXRCcHg0aEF3SkFBa0FDUUFKQUFrQWdBUzBBQUNJQ1FTNUdEUUFnQVNBRWFpMEFBQTBBSUFFaEF5QUNRY01BUncwQkN5QURMUUFCUlEwQkN5QURRYWNlRUxZQlJRMEFJQU5COFIwUXRnRU5BUXNnQUVVRVFFR2tMU0VDSUFNdEFBRkJMa1lOQWd0QkFBOExRUUFoQVVIOGhnRW9BZ0FpQWdSQUEwQWdBeUFDUVFocUVMWUJSUTBDSUFJb0FpQWlBZzBBQ3d0QkpCQVpJZ0lFUUNBQ1FhUXRLUUlBTndJQUlBSkJDR29pQVNBRElBUVFRaG9nQVNBRWFrRUFPZ0FBSUFKQi9JWUJLQUlBTmdJZ1FmeUdBU0FDTmdJQUlBSWhBUXNnQVVHa0xTQUFJQUZ5R3lFQ0N5QUNDeThBSUFFUTdBSWlBU0FBUWY4QmNTSUFjVUVCZENBQUlBRnphaUlBUVJWeVFRRjBJQUJCRlhOclFSaDBRUmgxQzQwZUFnOS9CWDRqQUVHUUFXc2lCQ1FBSUFSQkFFR1FBUkJHSWdOQmZ6WUNUQ0FESUFBMkFpd2dBMEV4TmdJZ0lBTWdBRFlDVkNBQklRUWdBaUVPSXdCQnNBSnJJZ1lrQUNBREtBSk1HZ0pBQWtBQ1FBSkFJQU1vQWdRTkFDQURFT2tCR2lBREtBSUVEUUFNQVFzZ0JDMEFBQ0lBUlEwQ0FrQURRQUpBQWtBZ0FFSC9BWEVRY0FSQUEwQWdCQ0lBUVFGcUlRUWdBQzBBQVJCd0RRQUxJQU5DQUJCVEEwQUNmeUFES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QURFQklMRUhBTkFBc2dBeWdDQkNFRUlBTXBBM0JDQUZrRVFDQURJQVJCQVdzaUJEWUNCQXNnQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkF3QkN3Si9Ba0FDUUNBRUxRQUFRU1ZHQkVBZ0JDMEFBU0lBUVNwR0RRRWdBRUVsUncwQ0N5QURRZ0FRVXdKQUlBUXRBQUJCSlVZRVFBTkFBbjhnQXlnQ0JDSUFJQU1vQW1oSEJFQWdBeUFBUVFGcU5nSUVJQUF0QUFBTUFRc2dBeEFTQ3lJQUVIQU5BQXNnQkVFQmFpRUVEQUVMSUFNb0FnUWlBQ0FES0FKb1J3UkFJQU1nQUVFQmFqWUNCQ0FBTFFBQUlRQU1BUXNnQXhBU0lRQUxJQVF0QUFBZ0FFY0VRQ0FES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUN5QUFRUUJPRFFwQkFDRU1JQTFGRFFnTUNnc2dBeWdDQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkNBRUlRQU1Bd3RCQUNFQ0lBUkJBbW9NQVFzQ1FDQUFFRVZGRFFBZ0JDMEFBa0VrUncwQUlBUXRBQUZCTUdzaEFDTUFRUkJySWdFZ0RqWUNEQ0FCSUE0Z0FFRUNkRUVFYTBFQUlBQkJBVXNiYWlJQVFRUnFOZ0lJSUFBb0FnQWhBaUFFUVFOcURBRUxJQTRvQWdBaEFpQU9RUVJxSVE0Z0JFRUJhZ3NoQUVFQUlReEJBQ0VFSUFBdEFBQVFSUVJBQTBBZ0FDMEFBQ0FFUVFwc2FrRXdheUVFSUFBdEFBRWhBU0FBUVFGcUlRQWdBUkJGRFFBTEN5QUFMUUFBSWdWQjdRQkhCSDhnQUFWQkFDRUpJQUpCQUVjaERDQUFMUUFCSVFWQkFDRUtJQUJCQVdvTElnRkJBV29oQUVFRElRY0NRQUpBQWtBQ1FBSkFBa0FnQlVIQkFHc09PZ1FKQkFrRUJBUUpDUWtKQXdrSkNRa0pDUVFKQ1FrSkJBa0pCQWtKQ1FrSkJBa0VCQVFFQkFBRUJRa0JDUVFFQkFrSkJBSUVDUWtFQ1FJSkN5QUJRUUpxSUFBZ0FTMEFBVUhvQUVZaUFSc2hBRUYrUVg4Z0FSc2hCd3dFQ3lBQlFRSnFJQUFnQVMwQUFVSHNBRVlpQVJzaEFFRURRUUVnQVJzaEJ3d0RDMEVCSVFjTUFndEJBaUVIREFFTFFRQWhCeUFCSVFBTFFRRWdCeUFBTFFBQUlnRkJMM0ZCQTBZaUJSc2hEd0pBSUFGQklISWdBU0FGR3lJTFFkc0FSZzBBQWtBZ0MwSHVBRWNFUUNBTFFlTUFSdzBCSUFSQkFTQUVRUUZLR3lFRURBSUxJQUlnRHlBVUVPTUNEQUlMSUFOQ0FCQlRBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTEVIQU5BQXNnQXlnQ0JDRUJJQU1wQTNCQ0FGa0VRQ0FESUFGQkFXc2lBVFlDQkFzZ0FTQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZBc2dBeUFFckNJU0VGTUNRQ0FES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUU1BUXNnQXhBU1FRQklEUVFMSUFNcEEzQkNBRmtFUUNBRElBTW9BZ1JCQVdzMkFnUUxRUkFoQVFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FMUWRnQWF3NGhCZ3NMQWdzTEN3c0xBUXNDQkFFQkFRc0ZDd3NMQ3dzREJnc0xBZ3NFQ3dzR0FBc2dDMEhCQUdzaUFVRUdTMEVCSUFGMFFmRUFjVVZ5RFFvTElBWkJDR29nQXlBUFFRQVE1Z0lnQXlrRGVFSUFJQU1vQWdRZ0F5Z0NMR3VzZlZFTkR5QUNSUTBKSUFZcEF4QWhFaUFHS1FNSUlSTWdEdzREQlFZSENRc2dDMEh2QVhGQjR3QkdCRUFnQmtFZ2FrRi9RWUVDRUVZYUlBWkJBRG9BSUNBTFFmTUFSdzBJSUFaQkFEb0FRU0FHUVFBNkFDNGdCa0VBTmdFcURBZ0xJQVpCSUdvZ0FDMEFBU0lCUWQ0QVJpSUZRWUVDRUVZYUlBWkJBRG9BSUNBQVFRSnFJQUJCQVdvZ0JSc2hDQUovQWtBQ1FDQUFRUUpCQVNBRkcyb3RBQUFpQUVFdFJ3UkFJQUJCM1FCR0RRRWdBVUhlQUVjaEJ5QUlEQU1MSUFZZ0FVSGVBRWNpQnpvQVRnd0JDeUFHSUFGQjNnQkhJZ2M2QUg0TElBaEJBV29MSVFBRFFBSkFJQUF0QUFBaUFVRXRSd1JBSUFGRkRROGdBVUhkQUVjTkFRd0tDMEV0SVFFZ0FDMEFBU0lGUlNBRlFkMEFSbklOQUNBQVFRRnFJUWdDUUNBRklBQkJBV3N0QUFBaUFFMEVRQ0FGSVFFTUFRc0RRQ0FBUVFGcUlnQWdCa0VnYW1vZ0J6b0FBQ0FBSUFndEFBQWlBVWtOQUFzTElBZ2hBQXNnQVNBR2FpQUhPZ0FoSUFCQkFXb2hBQXdBQ3dBTFFRZ2hBUXdDQzBFS0lRRU1BUXRCQUNFQkMwSUFJUkpCQUNFRlFRQWhDRUVBSVFjakFFRVFheUlRSkFBQ1FDQUJRUUZISUFGQkpFMXhSUVJBUWRTQkFVRWNOZ0lBREFFTEEwQUNmeUFES0FJRUlnUWdBeWdDYUVjRVFDQURJQVJCQVdvMkFnUWdCQzBBQUF3QkN5QURFQklMSWdRUWNBMEFDd0pBQWtBZ0JFRXJhdzREQUFFQUFRdEJmMEVBSUFSQkxVWWJJUWNnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBaEJBd0JDeUFERUJJaEJBc0NRQUpBQWtBQ1FDQUJRVzl4SUFSQk1FZHlSUVJBQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRVjl4UWRnQVJnUkFRUkFoQVFKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUd4S1dvdEFBQkJFRWtOQXlBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDeUFEUWdBUVV3d0dDeUFCRFFGQkNDRUJEQUlMSUFGQkNpQUJHeUlCSUFSQnNTbHFMUUFBU3cwQUlBTXBBM0JDQUZrRVFDQURJQU1vQWdSQkFXczJBZ1FMSUFOQ0FCQlRRZFNCQVVFY05nSUFEQVFMSUFGQkNrY05BQ0FFUVRCcklnVkJDVTBFUUVFQUlRRURRQ0FCUVFwc0lBVnFJZ0ZCbWJQbXpBRkpBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRVFUQnJJZ1ZCQ1UxeERRQUxJQUd0SVJJTEFrQWdCVUVKU3cwQUlCSkNDbjRoRXlBRnJTRVZBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTElnUkJNR3NpQlVFSlN5QVRJQlY4SWhKQ21yUG16Sm16NXN3WlduSU5BU0FTUWdwK0loTWdCYTBpRlVKL2hWZ05BQXRCQ2lFQkRBSUxRUW9oQVNBRlFRbE5EUUVNQWdzZ0FTQUJRUUZyY1FSQUlBUkJzU2xxTFFBQUlnZ2dBVWtFUUFOQUlBRWdCV3dnQ0dvaUJVSEg0L0U0U1FKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUd4S1dvdEFBQWlDQ0FCU1hFTkFBc2dCYTBoRWdzZ0FTQUlUUTBCSUFHdElSTURRQ0FTSUJOK0loVWdDSzFDL3dHREloWkNmNFZXRFFJZ0ZTQVdmQ0VTSUFFQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1JCc1NscUxRQUFJZ2hORFFJZ0VDQVRRZ0FnRWtJQUVDc2dFQ2tEQ0ZBTkFBc01BUXNnQVVFWGJFRUZka0VIY1VHeEsyb3NBQUFoRVNBRVFiRXBhaTBBQUNJRklBRkpCRUFEUUNBSUlCRjBJQVZ5SWdoQmdJQ0F3QUJKQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRYkVwYWkwQUFDSUZJQUZKY1EwQUN5QUlyU0VTQ3lBQklBVk5EUUJDZnlBUnJTSVRpQ0lWSUJKVURRQURRQ0FGclVML0FZTWdFaUFUaG9RaEVpQUJBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRVFiRXBhaTBBQUNJRlRRMEJJQklnRlZnTkFBc0xJQUVnQkVHeEtXb3RBQUJORFFBRFFDQUJBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQzBHeEtXb3RBQUJMRFFBTFFkU0JBVUhFQURZQ0FFRUFJUWRDZnlFU0N5QURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQzBFQUlCSkNmMUVnQjBFQmNoc0VRRUhVZ1FGQnhBQTJBZ0JDZmlFU0RBRUxJQklnQjZ3aUU0VWdFMzBoRWdzZ0VFRVFhaVFBSUFNcEEzaENBQ0FES0FJRUlBTW9BaXhyckgxUkRRb2dBa1VnQzBId0FFZHlSUVJBSUFJZ0VqNENBQXdGQ3lBQ0lBOGdFaERqQWd3RUN5QUNJQk1nRWhEa0FqZ0NBQXdEQ3lBQ0lCTWdFaERkQVRrREFBd0NDeUFDSUJNM0F3QWdBaUFTTndNSURBRUxJQVJCQVdwQkh5QUxRZU1BUmlJRkd5RUhBa0FDUUNBUFFRRkhJZ2hGQkVBZ0FpRUJJQXdFUUNBSFFRSjBFQmtpQVVVTkJnc2dCa0lBTndPb0FrRUFJUVFEUUNBQklRb0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzaUFTQUdhaTBBSVVVTkF5QUdJQUU2QUJzZ0JrRWNhaUFHUVJ0cVFRRWdCa0dvQW1vUXR3RWlBVUYrUmcwQVFRQWhDU0FCUVg5R0RRa2dDZ1JBSUFvZ0JFRUNkR29nQmlnQ0hEWUNBQ0FFUVFGcUlRUUxJQXdnQkNBSFJuRkZEUUFMSUFvZ0IwRUJkRUVCY2lJSFFRSjBFSjRCSWdFTkFBc01Cd3NnREFSQVFRQWhCQ0FIRUJraUFVVU5CUU5BSUFFaENRTkFBbjhnQXlnQ0JDSUJJQU1vQW1oSEJFQWdBeUFCUVFGcU5nSUVJQUV0QUFBTUFRc2dBeEFTQ3lJQklBWnFMUUFoUlFSQVFRQWhDZ3dGQ3lBRUlBbHFJQUU2QUFBZ0JFRUJhaUlFSUFkSERRQUxRUUFoQ2lBSklBZEJBWFJCQVhJaUJ4Q2VBU0lCRFFBTERBY0xRUUFoQkNBQ0JFQURRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzaUFTQUdhaTBBSVFSQUlBSWdCR29nQVRvQUFDQUVRUUZxSVFRTUFRVkJBQ0VLSUFJaENRd0VDd0FMQUFzRFFBSi9JQU1vQWdRaUFTQURLQUpvUndSQUlBTWdBVUVCYWpZQ0JDQUJMUUFBREFFTElBTVFFZ3NnQm1vdEFDRU5BQXRCQUNFSlFRQWhDZ3dCQzBFQUlRa2dCa0dvQW1vRWZ5QUdLQUtvQWdWQkFBc05CUXNnQXlnQ0JDRUJJQU1wQTNCQ0FGa0VRQ0FESUFGQkFXc2lBVFlDQkFzZ0F5a0RlQ0FCSUFNb0FpeHJySHdpRTFBZ0MwSGpBRVlnRWlBVFVuRnlEUVlDUUNBTVJRMEFJQWhGQkVBZ0FpQUtOZ0lBREFFTElBSWdDVFlDQUFzZ0JRMEFJQW9FUUNBS0lBUkJBblJxUVFBMkFnQUxJQWxGQkVCQkFDRUpEQUVMSUFRZ0NXcEJBRG9BQUFzZ0F5Z0NCQ0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQ0FOSUFKQkFFZHFJUTBMSUFCQkFXb2hCQ0FBTFFBQklnQU5BUXdGQ3d0QkFDRUpRUUFoQ2dzZ0RRMEJDMEYvSVEwTElBeEZEUUFnQ1JBUUlBb1FFQXNnQmtHd0Ftb2tBQ0FOSVFBZ0EwR1FBV29rQUNBQUMwTUFBa0FnQUVVTkFBSkFBa0FDUUFKQUlBRkJBbW9PQmdBQkFnSUVBd1FMSUFBZ0Fqd0FBQThMSUFBZ0FqMEJBQThMSUFBZ0FqNENBQThMSUFBZ0FqY0RBQXNMdEFNQ0EzOEJmaU1BUVNCcklnTWtBQUpBSUFGQy8vLy8vLy8vLy8vL0FJTWlCVUtBZ0lDQWdJREF3RDk5SUFWQ2dJQ0FnSUNBd0wvQUFIMVVCRUFnQVVJWmlLY2hCQ0FBVUNBQlF2Ly8vdytESWdWQ2dJQ0FDRlFnQlVLQWdJQUlVUnRGQkVBZ0JFR0JnSUNBQkdvaEFnd0NDeUFFUVlDQWdJQUVhaUVDSUFBZ0JVS0FnSUFJaFlSQ0FGSU5BU0FDSUFSQkFYRnFJUUlNQVFzZ0FGQWdCVUtBZ0lDQWdJREEvLzhBVkNBRlFvQ0FnSUNBZ01ELy93QlJHMFVFUUNBQlFobUlwMEgvLy84QmNVR0FnSUQrQjNJaEFnd0JDMEdBZ0lEOEJ5RUNJQVZDLy8vLy8vLy92Ny9BQUZZTkFFRUFJUUlnQlVJd2lLY2lCRUdSL2dCSkRRQWdBMEVRYWlBQUlBRkMvLy8vLy8vL1A0TkNnSUNBZ0lDQXdBQ0VJZ1VnQkVHQi9nQnJFQzhnQXlBQUlBVkJnZjhBSUFSckVId2dBeWtEQ0NJQVFobUlweUVDSUFNcEF3QWdBeWtERUNBREtRTVloRUlBVXEyRUlnVlFJQUJDLy8vL0Q0TWlBRUtBZ0lBSVZDQUFRb0NBZ0FoUkcwVUVRQ0FDUVFGcUlRSU1BUXNnQlNBQVFvQ0FnQWlGaEVJQVVnMEFJQUpCQVhFZ0Ftb2hBZ3NnQTBFZ2FpUUFJQUlnQVVJZ2lLZEJnSUNBZ0hoeGNyNExnUVFDQTM4QmZnSkFBa0FDUUFKL0lBQW9BZ1FpQWlBQUtBSm9Sd1JBSUFBZ0FrRUJhallDQkNBQ0xRQUFEQUVMSUFBUUVnc2lBMEVyYXc0REFRQUJBQXNnQTBFd2F5RUJEQUVMSUFOQkxVWWhCQUpBSUFGRkFuOGdBQ2dDQkNJQ0lBQW9BbWhIQkVBZ0FDQUNRUUZxTmdJRUlBSXRBQUFNQVFzZ0FCQVNDeUlDUVRCcklnRkJDa2x5RFFBZ0FDa0RjRUlBVXcwQUlBQWdBQ2dDQkVFQmF6WUNCQXNnQWlFREN3SkFJQUZCQ2trRVFFRUFJUUlEUUNBRElBSkJDbXhxSVFFQ2Z5QUFLQUlFSWdJZ0FDZ0NhRWNFUUNBQUlBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQUVCSUxJUU1nQVVFd2F5RUNJQUpCekptejVnQklJQU5CTUdzaUFVRUpUWEVOQUFzZ0Fxd2hCUUpBSUFGQkNrOE5BQU5BSUFPdElBVkNDbjU4UWpCOUlRVUNmeUFBS0FJRUlnRWdBQ2dDYUVjRVFDQUFJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QUFFQklMSWdOQk1Hc2lBVUVKU3cwQklBVkNybytGMThmQzY2TUJVdzBBQ3dzZ0FVRUtTUVJBQTBBQ2Z5QUFLQUlFSWdFZ0FDZ0NhRWNFUUNBQUlBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBQUVCSUxRVEJyUVFwSkRRQUxDeUFBS1FOd1FnQlpCRUFnQUNBQUtBSUVRUUZyTmdJRUMwSUFJQVY5SUFVZ0JCc2hCUXdCQzBLQWdJQ0FnSUNBZ0lCL0lRVWdBQ2tEY0VJQVV3MEFJQUFnQUNnQ0JFRUJhellDQkVLQWdJQ0FnSUNBZ0lCL0R3c2dCUXVnTWdNUWZ3ZCtBWHdqQUVFd2F5SU1KQUFDUUNBQ1FRSk5CRUFnQWtFQ2RDSUNRWndwYWlnQ0FDRVBJQUpCa0NscUtBSUFJUTREUUFKL0lBRW9BZ1FpQWlBQktBSm9Sd1JBSUFFZ0FrRUJhallDQkNBQ0xRQUFEQUVMSUFFUUVnc2lBaEJ3RFFBTFFRRWhCZ0pBQWtBZ0FrRXJhdzREQUFFQUFRdEJmMEVCSUFKQkxVWWJJUVlnQVNnQ0JDSUNJQUVvQW1oSEJFQWdBU0FDUVFGcU5nSUVJQUl0QUFBaEFnd0JDeUFCRUJJaEFnc0NRQUpBQTBBZ0JVR0tHbW9zQUFBZ0FrRWdja1lFUUFKQUlBVkJCa3NOQUNBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFDRUNEQUVMSUFFUUVpRUNDeUFGUVFGcUlnVkJDRWNOQVF3Q0N3c2dCVUVEUndSQUlBVkJDRVlOQVNBRFJTQUZRUVJKY2cwQ0lBVkJDRVlOQVFzZ0FTa0RjQ0lVUWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3lBRFJTQUZRUVJKY2cwQUlCUkNBRk1oQWdOQUlBSkZCRUFnQVNBQktBSUVRUUZyTmdJRUN5QUZRUUZySWdWQkEwc05BQXNMUWdBaEZDTUFRUkJySWdJa0FBSitJQWF5UXdBQWdIK1V2Q0lEUWYvLy8vOEhjU0lCUVlDQWdBUnJRZi8vLy9jSFRRUkFJQUd0UWhtR1FvQ0FnSUNBZ0lEQVAzd01BUXNnQTYxQ0dZWkNnSUNBZ0lDQXdQLy9BSVFnQVVHQWdJRDhCMDhOQUJwQ0FDQUJSUTBBR2lBQ0lBR3RRZ0FnQVdjaUFVSFJBR29RTHlBQ0tRTUFJUlFnQWlrRENFS0FnSUNBZ0lEQUFJVkJpZjhBSUFGcnJVSXdob1FMSVJVZ0RDQVVOd01BSUF3Z0ZTQURRWUNBZ0lCNGNhMUNJSWFFTndNSUlBSkJFR29rQUNBTUtRTUlJUlFnRENrREFDRVZEQUlMQWtBQ1FBSkFJQVVOQUVFQUlRVURRQ0FGUWNjY2Fpd0FBQ0FDUVNCeVJ3MEJBa0FnQlVFQlN3MEFJQUVvQWdRaUFpQUJLQUpvUndSQUlBRWdBa0VCYWpZQ0JDQUNMUUFBSVFJTUFRc2dBUkFTSVFJTElBVkJBV29pQlVFRFJ3MEFDd3dCQ3dKQUFrQWdCUTRFQUFFQkFnRUxBa0FnQWtFd1J3MEFBbjhnQVNnQ0JDSUZJQUVvQW1oSEJFQWdBU0FGUVFGcU5nSUVJQVV0QUFBTUFRc2dBUkFTQzBGZmNVSFlBRVlFUUNNQVFiQURheUlDSkFBQ2Z5QUJLQUlFSWdVZ0FTZ0NhRWNFUUNBQklBVkJBV28yQWdRZ0JTMEFBQXdCQ3lBQkVCSUxJUVVDUUFKL0EwQWdCVUV3UndSQUFrQWdCVUV1UncwRUlBRW9BZ1FpQlNBQktBSm9SZzBBSUFFZ0JVRUJhallDQkNBRkxRQUFEQU1MQlNBQktBSUVJZ1VnQVNnQ2FFY0VmMEVCSVFvZ0FTQUZRUUZxTmdJRUlBVXRBQUFGUVFFaENpQUJFQklMSVFVTUFRc0xJQUVRRWdzaEJVRUJJUVFnQlVFd1J3MEFBMEFnRjBJQmZTRVhBbjhnQVNnQ0JDSUZJQUVvQW1oSEJFQWdBU0FGUVFGcU5nSUVJQVV0QUFBTUFRc2dBUkFTQ3lJRlFUQkdEUUFMUVFFaENndENnSUNBZ0lDQXdQOC9JUlVDUUFOQUFrQWdCVUVnY2lFTEFrQUNRQ0FGUVRCcklnaEJDa2tOQUNBRlFTNUhJQXRCNFFCclFRWlBjUTBFSUFWQkxrY05BQ0FFRFFKQkFTRUVJQlFoRnd3QkN5QUxRZGNBYXlBSUlBVkJPVW9iSVFVQ1FDQVVRZ2RYQkVBZ0JTQUpRUVIwYWlFSkRBRUxJQlJDSEZjRVFDQUNRVEJxSUFVUVFTQUNRU0JxSUJrZ0ZVSUFRb0NBZ0lDQWdNRDlQeEFZSUFKQkVHb2dBaWtESUNJWklBSXBBeWdpRlNBQ0tRTXdJQUlwQXpnUUdDQUNJQllnR0NBQ0tRTVFJQUlwQXhnUVBDQUNLUU1JSVJnZ0Fpa0RBQ0VXREFFTElBVkZJQWR5RFFBZ0FrSFFBR29nR1NBVlFnQkNnSUNBZ0lDQWdQOC9FQmdnQWtGQWF5QVdJQmdnQWlrRFVDQUNLUU5ZRUR3Z0Fpa0RTQ0VZUVFFaEJ5QUNLUU5BSVJZTElCUkNBWHdoRkVFQklRb0xJQUVvQWdRaUJTQUJLQUpvUndSL0lBRWdCVUVCYWpZQ0JDQUZMUUFBQlNBQkVCSUxJUVVNQVFzTFFTNGhCUXNDZmlBS1JRUkFBa0FDUUNBQktRTndRZ0JaQkVBZ0FTQUJLQUlFSWdWQkFXczJBZ1FnQTBVTkFTQUJJQVZCQW1zMkFnUWdCRVVOQWlBQklBVkJBMnMyQWdRTUFnc2dBdzBCQ3lBQlFnQVFVd3NnQWtIZ0FHb2dCcmRFQUFBQUFBQUFBQUNpRUYwZ0Fpa0RZQ0VXSUFJcEEyZ01BUXNnRkVJSFZ3UkFJQlFoRlFOQUlBbEJCSFFoQ1NBVlFnRjhJaFZDQ0ZJTkFBc0xBa0FDUUFKQUlBVkJYM0ZCMEFCR0JFQWdBU0FERU9VQ0loVkNnSUNBZ0lDQWdJQ0FmMUlOQXlBREJFQWdBU2tEY0VJQVdRMENEQU1MUWdBaEZpQUJRZ0FRVTBJQURBUUxRZ0FoRlNBQktRTndRZ0JURFFJTElBRWdBU2dDQkVFQmF6WUNCQXRDQUNFVkN5QUpSUVJBSUFKQjhBQnFJQWEzUkFBQUFBQUFBQUFBb2hCZElBSXBBM0FoRmlBQ0tRTjREQUVMSUJjZ0ZDQUVHMElDaGlBVmZFSWdmU0lVUVFBZ0QydXRWUVJBUWRTQkFVSEVBRFlDQUNBQ1FhQUJhaUFHRUVFZ0FrR1FBV29nQWlrRG9BRWdBaWtEcUFGQ2YwTC8vLy8vLy8rLy8vOEFFQmdnQWtHQUFXb2dBaWtEa0FFZ0Fpa0RtQUZDZjBMLy8vLy8vLysvLy84QUVCZ2dBaWtEZ0FFaEZpQUNLUU9JQVF3QkN5QVBRZUlCYTZ3Z0ZGY0VRQ0FKUVFCT0JFQURRQ0FDUWFBRGFpQVdJQmhDQUVLQWdJQ0FnSURBLzc5L0VEd2dGaUFZUW9DQWdJQ0FnSUQvUHhEZ0FTRUJJQUpCa0FOcUlCWWdHQ0FXSUFJcEE2QURJQUZCQUVnaUF4c2dHQ0FDS1FPb0F5QURHeEE4SUJSQ0FYMGhGQ0FDS1FPWUF5RVlJQUlwQTVBRElSWWdDVUVCZENBQlFRQk9jaUlKUVFCT0RRQUxDd0orSUJRZ0Q2eDlRaUI4SWhXbklnRkJBQ0FCUVFCS0d5QU9JQlVnRHExVEd5SUJRZkVBVGdSQUlBSkJnQU5xSUFZUVFTQUNLUU9JQXlFWElBSXBBNEFESVJsQ0FBd0JDeUFDUWVBQ2FrR1FBU0FCYXhEZkFSQmRJQUpCMEFKcUlBWVFRU0FDUWZBQ2FpQUNLUVBnQWlBQ0tRUG9BaUFDS1FQUUFpSVpJQUlwQTlnQ0loY1E2d0lnQWlrRCtBSWhHaUFDS1FQd0Fnc2hGU0FDUWNBQ2FpQUpJQWxCQVhGRklCWWdHRUlBUWdBUWUwRUFSeUFCUVNCSWNYRWlBV29Ra0FFZ0FrR3dBbW9nR1NBWElBSXBBOEFDSUFJcEE4Z0NFQmdnQWtHUUFtb2dBaWtEc0FJZ0Fpa0R1QUlnRlNBYUVEd2dBa0dnQW1wQ0FDQVdJQUViUWdBZ0dDQUJHeUFaSUJjUUdDQUNRWUFDYWlBQ0tRT2dBaUFDS1FPb0FpQUNLUU9RQWlBQ0tRT1lBaEE4SUFKQjhBRnFJQUlwQTRBQ0lBSXBBNGdDSUJVZ0doRGVBU0FDS1FQd0FTSVZJQUlwQS9nQkloZENBRUlBRUh0RkJFQkIxSUVCUWNRQU5nSUFDeUFDUWVBQmFpQVZJQmNnRktjUTZnSWdBaWtENEFFaEZpQUNLUVBvQVF3QkMwSFVnUUZCeEFBMkFnQWdBa0hRQVdvZ0JoQkJJQUpCd0FGcUlBSXBBOUFCSUFJcEE5Z0JRZ0JDZ0lDQWdJQ0F3QUFRR0NBQ1FiQUJhaUFDS1FQQUFTQUNLUVBJQVVJQVFvQ0FnSUNBZ01BQUVCZ2dBaWtEc0FFaEZpQUNLUU80QVFzaEZDQU1JQlkzQXhBZ0RDQVVOd01ZSUFKQnNBTnFKQUFnRENrREdDRVVJQXdwQXhBaEZRd0dDeUFCS1FOd1FnQlREUUFnQVNBQktBSUVRUUZyTmdJRUN5QUJJUVVnQmlFSklBTWhDa0VBSVFaQkFDRURJd0JCa01ZQWF5SUVKQUJCQUNBT0lBOXFJaEpySVJNQ1FBSi9BMEFnQWtFd1J3UkFBa0FnQWtFdVJ3MEVJQVVvQWdRaUFTQUZLQUpvUmcwQUlBVWdBVUVCYWpZQ0JDQUJMUUFBREFNTEJTQUZLQUlFSWdFZ0JTZ0NhRWNFZjBFQklRWWdCU0FCUVFGcU5nSUVJQUV0QUFBRlFRRWhCaUFGRUJJTElRSU1BUXNMSUFVUUVnc2hBa0VCSVFjZ0FrRXdSdzBBQTBBZ0ZFSUJmU0VVQW44Z0JTZ0NCQ0lCSUFVb0FtaEhCRUFnQlNBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQlJBU0N5SUNRVEJHRFFBTFFRRWhCZ3NnQkVFQU5nS1FCZ0orQWtBQ1FBSkFBa0FDUUNBQ1FTNUdJZ0ZGSUFKQk1Hc2lDRUVKUzNGRkJFQURRQUpBSUFGQkFYRUVRQ0FIUlFSQUlCVWhGRUVCSVFjTUFnc2dCa1VoQVF3RUN5QVZRZ0Y4SVJVZ0EwSDhEMHdFUUNBTklCV25JQUpCTUVZYklRMGdCRUdRQm1vZ0EwRUNkR29pQVNBTEJIOGdBaUFCS0FJQVFRcHNha0V3YXdVZ0NBczJBZ0JCQVNFR1FRQWdDMEVCYWlJQklBRkJDVVlpQVJzaEN5QUJJQU5xSVFNTUFRc2dBa0V3UmcwQUlBUWdCQ2dDZ0VaQkFYSTJBb0JHUWR5UEFTRU5Dd0ovSUFVb0FnUWlBU0FGS0FKb1J3UkFJQVVnQVVFQmFqWUNCQ0FCTFFBQURBRUxJQVVRRWdzaUFrRXVSaUlCSUFKQk1Hc2lDRUVLU1hJTkFBc0xJQlFnRlNBSEd5RVVJQVpGSUFKQlgzRkJ4UUJIY2tVRVFBSkFJQVVnQ2hEbEFpSVdRb0NBZ0lDQWdJQ0FnSDlTRFFBZ0NrVU5CVUlBSVJZZ0JTa0RjRUlBVXcwQUlBVWdCU2dDQkVFQmF6WUNCQXNnQmtVTkF5QVVJQlo4SVJRTUJRc2dCa1VoQVNBQ1FRQklEUUVMSUFVcEEzQkNBRk1OQUNBRklBVW9BZ1JCQVdzMkFnUUxJQUZGRFFJTFFkU0JBVUVjTmdJQUMwSUFJUlVnQlVJQUVGTkNBQXdCQ3lBRUtBS1FCaUlCUlFSQUlBUWdDYmRFQUFBQUFBQUFBQUNpRUYwZ0JDa0RBQ0VWSUFRcEF3Z01BUXNnRkNBVlVpQVZRZ2xWY2lBT1FSNU1RUUFnQVNBT2RodHlSUVJBSUFSQk1Hb2dDUkJCSUFSQklHb2dBUkNRQVNBRVFSQnFJQVFwQXpBZ0JDa0RPQ0FFS1FNZ0lBUXBBeWdRR0NBRUtRTVFJUlVnQkNrREdBd0JDeUFQUVg1dHJTQVVVd1JBUWRTQkFVSEVBRFlDQUNBRVFlQUFhaUFKRUVFZ0JFSFFBR29nQkNrRFlDQUVLUU5vUW45Qy8vLy8vLy8vdi8vL0FCQVlJQVJCUUdzZ0JDa0RVQ0FFS1FOWVFuOUMvLy8vLy8vL3YvLy9BQkFZSUFRcEEwQWhGU0FFS1FOSURBRUxJQTlCNGdGcnJDQVVWUVJBUWRTQkFVSEVBRFlDQUNBRVFaQUJhaUFKRUVFZ0JFR0FBV29nQkNrRGtBRWdCQ2tEbUFGQ0FFS0FnSUNBZ0lEQUFCQVlJQVJCOEFCcUlBUXBBNEFCSUFRcEE0Z0JRZ0JDZ0lDQWdJQ0F3QUFRR0NBRUtRTndJUlVnQkNrRGVBd0JDeUFMQkVBZ0MwRUlUQVJBSUFSQmtBWnFJQU5CQW5ScUlnRW9BZ0FoQlFOQUlBVkJDbXdoQlNBTFFRRnFJZ3RCQ1VjTkFBc2dBU0FGTmdJQUN5QURRUUZxSVFNTEFrQWdEU0FVcHlJSFNpQU5RUWxPY2lBSFFSRktjZzBBSUFkQkNVWUVRQ0FFUWNBQmFpQUpFRUVnQkVHd0FXb2dCQ2dDa0FZUWtBRWdCRUdnQVdvZ0JDa0R3QUVnQkNrRHlBRWdCQ2tEc0FFZ0JDa0R1QUVRR0NBRUtRT2dBU0VWSUFRcEE2Z0JEQUlMSUFkQkNFd0VRQ0FFUVpBQ2FpQUpFRUVnQkVHQUFtb2dCQ2dDa0FZUWtBRWdCRUh3QVdvZ0JDa0RrQUlnQkNrRG1BSWdCQ2tEZ0FJZ0JDa0RpQUlRR0NBRVFlQUJha0VBSUFkclFRSjBRWkFwYWlnQ0FCQkJJQVJCMEFGcUlBUXBBL0FCSUFRcEEvZ0JJQVFwQStBQklBUXBBK2dCRU9rQ0lBUXBBOUFCSVJVZ0JDa0QyQUVNQWdzZ0RpQUhRWDFzYWtFYmFpSUJRUjVNUVFBZ0JDZ0NrQVlpQWlBQmRoc05BQ0FFUWVBQ2FpQUpFRUVnQkVIUUFtb2dBaENRQVNBRVFjQUNhaUFFS1FQZ0FpQUVLUVBvQWlBRUtRUFFBaUFFS1FQWUFoQVlJQVJCc0FKcUlBZEJBblJCeUNocUtBSUFFRUVnQkVHZ0Ftb2dCQ2tEd0FJZ0JDa0R5QUlnQkNrRHNBSWdCQ2tEdUFJUUdDQUVLUU9nQWlFVklBUXBBNmdDREFFTEEwQWdCRUdRQm1vZ0F5SUNRUUZySWdOQkFuUnFLQUlBUlEwQUMwRUFJUXNDUUNBSFFRbHZJZ0ZGQkVCQkFDRUJEQUVMSUFFZ0FVRUphaUFIUVFCT0d5RURBa0FnQWtVRVFFRUFJUUZCQUNFQ0RBRUxRWUNVNjl3RFFRQWdBMnRCQW5SQmtDbHFLQUlBSWdadElRcEJBQ0VJUVFBaEJVRUFJUUVEUUNBRVFaQUdhaUFGUVFKMGFpSU5JQWdnRFNnQ0FDSU5JQVp1SWhCcUlnZzJBZ0FnQVVFQmFrSC9EM0VnQVNBSVJTQUJJQVZHY1NJSUd5RUJJQWRCQ1dzZ0J5QUlHeUVISUFvZ0RTQUdJQkJzYTJ3aENDQUZRUUZxSWdVZ0FrY05BQXNnQ0VVTkFDQUVRWkFHYWlBQ1FRSjBhaUFJTmdJQUlBSkJBV29oQWdzZ0J5QURhMEVKYWlFSEN3TkFBa0FnQjBFa1RnUkFJQWRCSkVjTkFTQUVRWkFHYWlBQlFRSjBhaWdDQUVIUjZma0VUdzBCQ3lBQ1FmOFBhaUVHUVFBaENBTkFJQWl0SUFSQmtBWnFJQVpCL3c5eElnTkJBblJxSWdZMUFnQkNIWVo4SWhSQ2daVHIzQU5VQkg5QkFBVWdGQ0FVUW9DVTY5d0RnQ0lWUW9DVTY5d0RmbjBoRkNBVnB3c2hDQ0FHSUJTbklnWTJBZ0FnQWlBQ0lBSWdBeUFHR3lBQklBTkdHeUFESUFKQkFXdEIvdzl4UnhzaEFpQURRUUZySVFZZ0FTQURSdzBBQ3lBTFFSMXJJUXNnQ0VVTkFTQUNJQUZCQVd0Qi93OXhJZ0ZHQkVBZ0JFR1FCbW9pQXlBQ1FmNFBha0gvRDNGQkFuUnFJZ1lnQmlnQ0FDQUNRUUZyUWY4UGNTSUNRUUowSUFOcUtBSUFjallDQUFzZ0IwRUphaUVISUFSQmtBWnFJQUZCQW5ScUlBZzJBZ0FNQVFzTEFrQURRQ0FDUVFGcVFmOFBjU0VESUFSQmtBWnFJQUpCQVd0Qi93OXhRUUowYWlFSUEwQWdBU0VHUVFBaEJRSkFBa0FEUUFKQUlBVWdCbXBCL3c5eElnRWdBa1lOQUNBRVFaQUdhaUFCUVFKMGFpZ0NBQ0lCSUFWQkFuUkI0Q2hxS0FJQUlncEpEUUFnQVNBS1N3MENJQVZCQVdvaUJVRUVSdzBCQ3dzZ0IwRWtSdzBBUWdBaEZFRUFJUVZDQUNFVkEwQWdBaUFGSUFacVFmOFBjU0lCUmdSQUlBSkJBV3BCL3c5eElnSkJBblFnQkdwQkFEWUNqQVlMSUFSQmdBWnFJQlFnRlVJQVFvQ0FnSURsbXJlT3dBQVFHQ0FFUWZBRmFpQUVRWkFHYWlBQlFRSjBhaWdDQUJDUUFTQUVRZUFGYWlBRUtRT0FCaUFFS1FPSUJpQUVLUVB3QlNBRUtRUDRCUkE4SUFRcEErZ0ZJUlVnQkNrRDRBVWhGQ0FGUVFGcUlnVkJCRWNOQUFzZ0JFSFFCV29nQ1JCQklBUkJ3QVZxSUJRZ0ZTQUVLUVBRQlNBRUtRUFlCUkFZSUFRcEE4Z0ZJUlZDQUNFVUlBUXBBOEFGSVJZZ0MwSHhBR29pQnlBUGF5SURRUUFnQTBFQVNoc2dEaUFESUE1SUlnVWJJZ0ZCOEFCTURRRU1CQXRCQ1VFQklBZEJMVW9iSWdvZ0Myb2hDeUFHSUFJaUFVWU5BVUdBbE92Y0F5QUtkaUVOUVg4Z0NuUkJmM01oRUVFQUlRVWdCaUVCQTBBZ0JFR1FCbW9nQmtFQ2RHb2lFU0FGSUJFb0FnQWlFU0FLZG1vaUJUWUNBQ0FCUVFGcVFmOFBjU0FCSUFWRklBRWdCa1p4SWdVYklRRWdCMEVKYXlBSElBVWJJUWNnRUNBUmNTQU5iQ0VGSUFaQkFXcEIvdzl4SWdZZ0FrY05BQXNnQlVVTkFTQUJJQU5IQkVBZ0JFR1FCbW9nQWtFQ2RHb2dCVFlDQUNBRElRSU1Bd3NnQ0NBSUtBSUFRUUZ5TmdJQUlBTWhBUXdCQ3dzTElBUkJrQVZxUWVFQklBRnJFTjhCRUYwZ0JFR3dCV29nQkNrRGtBVWdCQ2tEbUFVZ0ZpQVZFT3NDSUFRcEE3Z0ZJUmtnQkNrRHNBVWhHQ0FFUVlBRmFrSHhBQ0FCYXhEZkFSQmRJQVJCb0FWcUlCWWdGU0FFS1FPQUJTQUVLUU9JQlJEbkFpQUVRZkFFYWlBV0lCVWdCQ2tEb0FVaUZDQUVLUU9vQlNJWEVONEJJQVJCNEFScUlCZ2dHU0FFS1FQd0JDQUVLUVA0QkJBOElBUXBBK2dFSVJVZ0JDa0Q0QVFoRmdzQ1FDQUdRUVJxUWY4UGNTSUtJQUpHRFFBQ1FDQUVRWkFHYWlBS1FRSjBhaWdDQUNJS1FmL0p0ZTRCVFFSQUlBcEZJQVpCQldwQi93OXhJQUpHY1EwQklBUkI4QU5xSUFtM1JBQUFBQUFBQU5BL29oQmRJQVJCNEFOcUlCUWdGeUFFS1FQd0F5QUVLUVA0QXhBOElBUXBBK2dESVJjZ0JDa0Q0QU1oRkF3QkN5QUtRWURLdGU0QlJ3UkFJQVJCMEFScUlBbTNSQUFBQUFBQUFPZy9vaEJkSUFSQndBUnFJQlFnRnlBRUtRUFFCQ0FFS1FQWUJCQThJQVFwQThnRUlSY2dCQ2tEd0FRaEZBd0JDeUFKdHlFYklBSWdCa0VGYWtIL0QzRkdCRUFnQkVHUUJHb2dHMFFBQUFBQUFBRGdQNklRWFNBRVFZQUVhaUFVSUJjZ0JDa0RrQVFnQkNrRG1BUVFQQ0FFS1FPSUJDRVhJQVFwQTRBRUlSUU1BUXNnQkVHd0JHb2dHMFFBQUFBQUFBRG9QNklRWFNBRVFhQUVhaUFVSUJjZ0JDa0RzQVFnQkNrRHVBUVFQQ0FFS1FPb0JDRVhJQVFwQTZBRUlSUUxJQUZCN3dCS0RRQWdCRUhRQTJvZ0ZDQVhRZ0JDZ0lDQWdJQ0F3UDgvRU9jQ0lBUXBBOUFESUFRcEE5Z0RRZ0JDQUJCN0RRQWdCRUhBQTJvZ0ZDQVhRZ0JDZ0lDQWdJQ0F3UDgvRUR3Z0JDa0R5QU1oRnlBRUtRUEFBeUVVQ3lBRVFiQURhaUFXSUJVZ0ZDQVhFRHdnQkVHZ0Eyb2dCQ2tEc0FNZ0JDa0R1QU1nR0NBWkVONEJJQVFwQTZnRElSVWdCQ2tEb0FNaEZnSkFRWDRnRW1zZ0IwSC8vLy8vQjNGT0RRQWdCQ0FWUXYvLy8vLy8vLy8vL3dDRE53T1lBeUFFSUJZM0E1QURJQVJCZ0FOcUlCWWdGVUlBUW9DQWdJQ0FnSUQvUHhBWUlBUXBBNUFESWhnZ0JDa0RtQU1pR1VLQWdJQ0FnSUNBdU1BQUVPQUJJUUlnRlNBRUtRT0lBeUFDUVFCSUlnWWJJUlVnRmlBRUtRT0FBeUFHR3lFV0lCTWdDeUFDUVFCT2FpSUxRZTRBYWs0RVFDQUZJQVVnQVNBRFIzRWdHQ0FaUW9DQWdJQ0FnSUM0d0FBUTRBRkJBRWdiUVFGSERRRWdGQ0FYUWdCQ0FCQjdSUTBCQzBIVWdRRkJ4QUEyQWdBTElBUkI4QUpxSUJZZ0ZTQUxFT29DSUFRcEEvQUNJUlVnQkNrRCtBSUxJUlFnRENBVk53TWdJQXdnRkRjREtDQUVRWkRHQUdva0FDQU1LUU1vSVJRZ0RDa0RJQ0VWREFRTElBRXBBM0JDQUZrRVFDQUJJQUVvQWdSQkFXczJBZ1FMREFFTEFrQUNmeUFCS0FJRUlnSWdBU2dDYUVjRVFDQUJJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUJFQklMUVNoR0JFQkJBU0VGREFFTFFvQ0FnSUNBZ09ELy93QWhGQ0FCS1FOd1FnQlREUU1nQVNBQktBSUVRUUZyTmdJRURBTUxBMEFDZnlBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFCRUJJTElnSkJNR3RCQ2trZ0FrSEJBR3RCR2tseUlBSkIzd0JHY2tVZ0FrSGhBR3RCR2s5eFJRUkFJQVZCQVdvaEJRd0JDd3RDZ0lDQWdJQ0E0UC8vQUNFVUlBSkJLVVlOQWlBQktRTndJaGRDQUZrRVFDQUJJQUVvQWdSQkFXczJBZ1FMQWtBZ0F3UkFJQVVOQVF3RUN3d0JDd05BSUFWQkFXc2hCU0FYUWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3lBRkRRQUxEQUlMUWRTQkFVRWNOZ0lBSUFGQ0FCQlRDMElBSVJRTElBQWdGVGNEQUNBQUlCUTNBd2dnREVFd2FpUUFDOG9HQWdSL0EzNGpBRUdBQVdzaUJTUUFBa0FDUUFKQUlBTWdCRUlBUWdBUWUwVU5BQUovSUFSQy8vLy8vLy8vUDRNaENRSi9JQVJDTUlpblFmLy9BWEVpQmtILy93RkhCRUJCQkNBR0RRRWFRUUpCQXlBRElBbUVVQnNNQWdzZ0F5QUpoRkFMQzBVTkFDQUNRakNJcHlJSVFmLy9BWEVpQmtILy93RkhEUUVMSUFWQkVHb2dBU0FDSUFNZ0JCQVlJQVVnQlNrREVDSUJJQVVwQXhnaUFpQUJJQUlRNlFJZ0JTa0RDQ0VDSUFVcEF3QWhCQXdCQ3lBQklBSkMvLy8vLy8vL1A0TWdCcTFDTUlhRUlnb2dBeUFFUXYvLy8vLy8veitESUFSQ01JaW5RZi8vQVhFaUI2MUNNSWFFSWdrUWUwRUFUQVJBSUFFZ0NpQURJQWtRZXdSQUlBRWhCQXdDQ3lBRlFmQUFhaUFCSUFKQ0FFSUFFQmdnQlNrRGVDRUNJQVVwQTNBaEJBd0JDeUFHQkg0Z0FRVWdCVUhnQUdvZ0FTQUtRZ0JDZ0lDQWdJQ0F3THZBQUJBWUlBVXBBMmdpQ2tJd2lLZEIrQUJySVFZZ0JTa0RZQXNoQkNBSFJRUkFJQVZCMEFCcUlBTWdDVUlBUW9DQWdJQ0FnTUM3d0FBUUdDQUZLUU5ZSWdsQ01JaW5RZmdBYXlFSElBVXBBMUFoQXdzZ0NVTC8vLy8vLy84L2cwS0FnSUNBZ0lEQUFJUWhDU0FLUXYvLy8vLy8veitEUW9DQWdJQ0FnTUFBaENFS0lBWWdCMG9FUUFOQUFuNGdDaUFKZlNBRElBUldyWDBpQzBJQVdRUkFJQXNnQkNBRGZTSUVoRkFFUUNBRlFTQnFJQUVnQWtJQVFnQVFHQ0FGS1FNb0lRSWdCU2tESUNFRURBVUxJQXRDQVlZZ0JFSS9pSVFNQVFzZ0NrSUJoaUFFUWorSWhBc2hDaUFFUWdHR0lRUWdCa0VCYXlJR0lBZEtEUUFMSUFjaEJnc0NRQ0FLSUFsOUlBTWdCRmF0ZlNJSlFnQlRCRUFnQ2lFSkRBRUxJQWtnQkNBRGZTSUVoRUlBVWcwQUlBVkJNR29nQVNBQ1FnQkNBQkFZSUFVcEF6Z2hBaUFGS1FNd0lRUU1BUXNnQ1VMLy8vLy8vLzgvV0FSQUEwQWdCRUkvaUNFQklBWkJBV3NoQmlBRVFnR0dJUVFnQVNBSlFnR0doQ0lKUW9DQWdJQ0FnTUFBVkEwQUN3c2dDRUdBZ0FKeElRY2dCa0VBVEFSQUlBVkJRR3NnQkNBSlF2Ly8vLy8vL3orRElBWkIrQUJxSUFkeXJVSXdob1JDQUVLQWdJQ0FnSURBd3o4UUdDQUZLUU5JSVFJZ0JTa0RRQ0VFREFFTElBbEMvLy8vLy8vL1A0TWdCaUFIY3ExQ01JYUVJUUlMSUFBZ0JEY0RBQ0FBSUFJM0F3Z2dCVUdBQVdva0FBc3lBQ0FBUWY4QmNTSUFJQUVRN0FJaUFVRi9jM0ZCQVhRZ0FDQUJjMnNpQUVGcWNVRUJkQ0FBUVJWemEwRVlkRUVZZFF1cUR3SUZmdzUrSXdCQjBBSnJJZ1VrQUNBRVF2Ly8vLy8vL3orRElRc2dBa0wvLy8vLy8vOC9neUVLSUFJZ0JJVkNnSUNBZ0lDQWdJQ0FmNE1oRFNBRVFqQ0lwMEgvL3dGeElRZ0NRQUpBSUFKQ01JaW5RZi8vQVhFaUNVRUJhMEg5L3dGTkJFQWdDRUVCYTBIKy93RkpEUUVMSUFGUUlBSkMvLy8vLy8vLy8vLy9BSU1pREVLQWdJQ0FnSURBLy84QVZDQU1Rb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUNRb0NBZ0lDQWdDQ0VJUTBNQWdzZ0ExQWdCRUwvLy8vLy8vLy8vLzhBZ3lJQ1FvQ0FnSUNBZ01ELy93QlVJQUpDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQVJDZ0lDQWdJQ0FJSVFoRFNBRElRRU1BZ3NnQVNBTVFvQ0FnSUNBZ01ELy93Q0ZoRkFFUUNBRElBSkNnSUNBZ0lDQXdQLy9BSVdFVUFSQVFnQWhBVUtBZ0lDQWdJRGcvLzhBSVEwTUF3c2dEVUtBZ0lDQWdJREEvLzhBaENFTlFnQWhBUXdDQ3lBRElBSkNnSUNBZ0lDQXdQLy9BSVdFVUFSQVFnQWhBUXdDQ3lBQklBeUVVQVJBUW9DQWdJQ0FnT0QvL3dBZ0RTQUNJQU9FVUJzaERVSUFJUUVNQWdzZ0FpQURoRkFFUUNBTlFvQ0FnSUNBZ01ELy93Q0VJUTFDQUNFQkRBSUxJQXhDLy8vLy8vLy9QMWdFUUNBRlFjQUNhaUFCSUFvZ0FTQUtJQXBRSWdZYmVTQUdRUVowclh5bklnWkJEMnNRTDBFUUlBWnJJUVlnQlNrRHlBSWhDaUFGS1FQQUFpRUJDeUFDUXYvLy8vLy8vejlXRFFBZ0JVR3dBbW9nQXlBTElBTWdDeUFMVUNJSEcza2dCMEVHZEsxOHB5SUhRUTlyRUM4Z0JpQUhha0VRYXlFR0lBVXBBN2dDSVFzZ0JTa0RzQUloQXdzZ0JVR2dBbW9nQzBLQWdJQ0FnSURBQUlRaUVrSVBoaUFEUWpHSWhDSUNRZ0JDZ0lDQWdMRG12SUwxQUNBQ2ZTSUVRZ0FRS3lBRlFaQUNha0lBSUFVcEE2Z0NmVUlBSUFSQ0FCQXJJQVZCZ0FKcUlBVXBBNWdDUWdHR0lBVXBBNUFDUWorSWhDSUVRZ0FnQWtJQUVDc2dCVUh3QVdvZ0JFSUFRZ0FnQlNrRGlBSjlRZ0FRS3lBRlFlQUJhaUFGS1FQNEFVSUJoaUFGS1FQd0FVSS9pSVFpQkVJQUlBSkNBQkFySUFWQjBBRnFJQVJDQUVJQUlBVXBBK2dCZlVJQUVDc2dCVUhBQVdvZ0JTa0QyQUZDQVlZZ0JTa0QwQUZDUDRpRUlnUkNBQ0FDUWdBUUt5QUZRYkFCYWlBRVFnQkNBQ0FGS1FQSUFYMUNBQkFySUFWQm9BRnFJQUpDQUNBRktRTzRBVUlCaGlBRktRT3dBVUkvaUlSQ0FYMGlBa0lBRUNzZ0JVR1FBV29nQTBJUGhrSUFJQUpDQUJBcklBVkI4QUJxSUFKQ0FFSUFJQVVwQTZnQklBVXBBNkFCSWd3Z0JTa0RtQUY4SWdRZ0RGU3RmQ0FFUWdGV3JYeDlRZ0FRS3lBRlFZQUJha0lCSUFSOVFnQWdBa0lBRUNzZ0JpQUpJQWhyYWlFR0FuOGdCU2tEY0NJVFFnR0dJZzRnQlNrRGlBRWlEMElCaGlBRktRT0FBVUkvaUlSOEloQkM1K3dBZlNJVVFpQ0lJZ0lnQ2tLQWdJQ0FnSURBQUlRaUZVSWZpRUwvLy8vL0Q0TWlCSDRpRVNBQlFnR0dJZ3hDSUlnaUN5QVFJQlJXclNBT0lCQldyU0FGS1FONFFnR0dJQk5DUDRpRUlBOUNQNGg4Zkh4Q0FYMGlFMElnaUNJUWZud2lEaUFSVkswZ0RpQU9JQk5DLy8vLy93K0RJaE1nQVVJL2lDSVdJQXBDQVlhRVF2Ly8vLzhQZ3lJS2Zud2lEbGF0ZkNBRUlCQitmQ0FFSUJOK0loRWdDaUFRZm53aUR5QVJWSzFDSUlZZ0QwSWdpSVI4SUE0Z0RpQVBRaUNHZkNJT1ZxMThJQTRnRGlBVVF2Ly8vLzhQZ3lJVUlBcCtJaEVnQWlBTGZud2lEeUFSVkswZ0R5QVBJQk1nREVMKy8vLy9ENE1pRVg1OElnOVdyWHg4SWc1V3JYd2dEaUFFSUJSK0loY2dFQ0FSZm53aUJDQUNJQXArZkNJS0lBc2dFMzU4SWhCQ0lJZ2dDaUFRVnEwZ0JDQVhWSzBnQkNBS1ZxMThmRUlnaG9SOElnUWdEbFN0ZkNBRUlBOGdBaUFSZmlJQ0lBc2dGSDU4SWd0Q0lJZ2dBaUFMVnExQ0lJYUVmQ0lDSUE5VXJTQUNJQkJDSUlaOElBSlVyWHg4SWdJZ0JGU3RmQ0lFUXYvLy8vLy8vLzhBV0FSQUlCVkNBWVlnRm9RaEZTQUZRZEFBYWlBQ0lBUWdBeUFTRUNzZ0FVSXhoaUFGS1FOWWZTQUZLUU5RSWdGQ0FGS3RmU0VLUWdBZ0FYMGhDeUFHUWY3L0FHb01BUXNnQlVIZ0FHb2dCRUkvaGlBQ1FnR0loQ0lDSUFSQ0FZZ2lCQ0FESUJJUUt5QUJRakNHSUFVcEEyaDlJQVVwQTJBaURFSUFVcTE5SVFwQ0FDQU1mU0VMSUFFaERDQUdRZi8vQUdvTElnWkIvLzhCVGdSQUlBMUNnSUNBZ0lDQXdQLy9BSVFoRFVJQUlRRU1BUXNDZmlBR1FRQktCRUFnQ2tJQmhpQUxRaitJaENFS0lBUkMvLy8vLy8vL1A0TWdCcTFDTUlhRUlRd2dDMElCaGd3QkN5QUdRWTkvVEFSQVFnQWhBUXdDQ3lBRlFVQnJJQUlnQkVFQklBWnJFSHdnQlVFd2FpQU1JQlVnQmtId0FHb1FMeUFGUVNCcUlBTWdFaUFGS1FOQUlnSWdCU2tEU0NJTUVDc2dCU2tET0NBRktRTW9RZ0dHSUFVcEF5QWlBVUkvaUlSOUlBVXBBekFpQkNBQlFnR0dJZ0ZVclgwaENpQUVJQUY5Q3lFRUlBVkJFR29nQXlBU1FnTkNBQkFySUFVZ0F5QVNRZ1ZDQUJBcklBd2dBaUFDSUFNZ0FrSUJneUlCSUFSOElnTlVJQW9nQVNBRFZxMThJZ0VnRWxZZ0FTQVNVUnV0ZkNJQ1ZxMThJZ1FnQWlBQ0lBUkNnSUNBZ0lDQXdQLy9BRlFnQXlBRktRTVFWaUFCSUFVcEF4Z2lCRllnQVNBRVVSdHhyWHdpQWxhdGZDSUVJQUlnQkVLQWdJQ0FnSURBLy84QVZDQURJQVVwQXdCV0lBRWdCU2tEQ0NJRFZpQUJJQU5SRzNHdGZDSUJJQUpVclh3Z0RZUWhEUXNnQUNBQk53TUFJQUFnRFRjRENDQUZRZEFDYWlRQUM3OENBUUYvSXdCQjBBQnJJZ1FrQUFKQUlBTkJnSUFCVGdSQUlBUkJJR29nQVNBQ1FnQkNnSUNBZ0lDQWdQLy9BQkFZSUFRcEF5Z2hBaUFFS1FNZ0lRRWdBMEgvL3dGSUJFQWdBMEgvL3dCcklRTU1BZ3NnQkVFUWFpQUJJQUpDQUVLQWdJQ0FnSUNBLy84QUVCZ2dBMEg5L3dJZ0EwSDkvd0pJRzBIKy93RnJJUU1nQkNrREdDRUNJQVFwQXhBaEFRd0JDeUFEUVlHQWYwb05BQ0FFUVVCcklBRWdBa0lBUW9DQWdJQ0FnSUE1RUJnZ0JDa0RTQ0VDSUFRcEEwQWhBU0FEUWZTQWZrb0VRQ0FEUVkzL0FHb2hBd3dCQ3lBRVFUQnFJQUVnQWtJQVFvQ0FnSUNBZ0lBNUVCZ2dBMEhvZ1gwZ0EwSG9nWDFLRzBHYS9nRnFJUU1nQkNrRE9DRUNJQVFwQXpBaEFRc2dCQ0FCSUFKQ0FDQURRZi8vQUdxdFFqQ0dFQmdnQUNBRUtRTUlOd01JSUFBZ0JDa0RBRGNEQUNBRVFkQUFhaVFBQ3pVQUlBQWdBVGNEQUNBQUlBSkMvLy8vLy8vL1A0TWdCRUl3aUtkQmdJQUNjU0FDUWpDSXAwSC8vd0Z4Y3ExQ01JYUVOd01JQzQ0QkFRTi9Jd0JCRUdzaEFRTkFRZXljcjk4RElRSUNRQU5BSUFKQjNiYmh2QVpHRFFFZ0FrR1d6OEsrQkVjRVFDQUNRZXljcjk4RFJ3MEJJQUVnQURZQ0RDQUJJQU0yQWdoQmxzL0N2Z1JCM2JiaHZBWWdBU2dDREJzaEFnd0JDd3NnQVNnQ0NDSUFRUUYwUVFKeElBQkJBWE5xSVFNZ0FTZ0NEQ0FCS0FJTVFRRnJjU0VBREFFTEN5QUJLQUlJQ3l3QUlBQW9BZ0FhSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FnQUJDSkFXb2FJQUFvQWdBZ0FCQ0ZBV29hQ3djQUlBRWdBR3NMQ1FBZ0FDQUJFTzRDQ3lzQkFYOGdBQ2dDQUNJQkJFQWdBUkQ3QWtGL0VGNUZCRUFnQUNnQ0FFVVBDeUFBUVFBMkFnQUxRUUVMS3dFQmZ5QUFLQUlBSWdFRVFDQUJFSUFEUVg4UVhrVUVRQ0FBS0FJQVJROExJQUJCQURZQ0FBdEJBUXNOQUVFQUlBQWdBRUYvRUY0YkM0MEJBUVIvSXdCQkVHc2lCU1FBSUFFZ0FoRHZBaUlFUVc5TkJFQUNRQ0FFUVFwTkJFQWdBQ0FFRURvZ0FDRUREQUVMSUFBZ0JCQ1JBVUVCYWlJR0VGOGlBeEJOSUFBZ0JoQk1JQUFnQkJBNUN3TkFJQUVnQWtjRVFDQURJQUVRTkNBRFFRRnFJUU1nQVVFQmFpRUJEQUVMQ3lBRlFRQTZBQThnQXlBRlFROXFFRFFnQlVFUWFpUUFEd3NRRndBTDVRUUJCMzhnQUNnQ0JDQUFFRU1vQWdCSEJFQWpBRUVRYXlJQ0pBQWdBaUFBTmdJQUlBSWdBQ2dDQkNJRE5nSUVJQUlnQTBFQmFqWUNDQ0FBRUVNZ0FpZ0NCQ0FCRUl3Q0lBSWdBaWdDQkVFQmFqWUNCQ0FDRUlrQ0lBSkJFR29rQUE4TEl3QkJJR3NpQnlRQUlBQVFReUlJQW44Z0IwRUlhaUVDQW44Z0FCQ0pBVUVCYWlFR0l3QkJFR3NpQlNRQUlBVWdCallDRENNQVFSQnJJZ1FrQUNBQUVFTWFJQVJCZnpZQ0RDQUVRZi8vLy84SE5nSUlJQVJCREdvZ0JFRUlhaENpQVNnQ0FDRURJQVJCRUdva0FDQURJQVpQQkVBZ0FCQ0ZBU0lFSUFOQkFYWkpCRUFnQlNBRVFRRjBOZ0lJSUFWQkNHb2dCVUVNYWhCMktBSUFJUU1MSUFWQkVHb2tBQ0FEREFFTFFhY2JFSllDQUFzaEJTQUFFSWtCSVFaQkFDRURJd0JCRUdzaUJDUUFJQVJCQURZQ0RDQUNRUXhxSUFSQkRHb2dDQkNFQWlBRkJFQWdBaWdDRUJvZ0JSQmZJUU1MSUFJZ0F6WUNBQ0FDSUFNZ0Jtb2lCallDQ0NBQ0lBWTJBZ1FnQWhDREFTQURJQVZxTmdJQUlBUkJFR29rQUNBQ0tBSUlDeUFCRUl3Q0lBSWdBaWdDQ0VFQmFqWUNDQ0FBRU8wQ0lBQVFReUFBS0FJQUlBQW9BZ1FnQWtFRWFpSUJFSU1DSUFBZ0FSQjFJQUJCQkdvZ0FrRUlhaEIxSUFBUVF5QUNFSU1CRUhVZ0FpQUNLQUlFTmdJQUlBQVFpUUVhSUFBb0FnQWFJQUFvQWdBZ0FCQ0ZBV29hSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FhSUFJb0FnUWlBQ0FDS0FJSVJ3UkFBMEFnQWlnQ0VCb2dBaUFDS0FJSVFRRnJOZ0lJSUFJb0FnZ2dBRWNOQUFzTElBSW9BZ0FFUUNBQ0tBSVFHaUFDS0FJQUlRQWdBaENEQVNnQ0FDQUNLQUlBYXhvZ0FCQVFDeUFIUVNCcUpBQUxEd0FnQUNBQUtBSVlJQUZxTmdJWUN4Y0FJQUFnQWpZQ0hDQUFJQUUyQWhRZ0FDQUJOZ0lZQzFZQkFuOENRQ0FBS0FJQUlnSkZEUUFDZnlBQ0tBSVlJZ01nQWlnQ0hFWUVRQ0FDSUFFZ0FpZ0NBQ2dDTkJFQ0FBd0JDeUFDSUFOQkJHbzJBaGdnQXlBQk5nSUFJQUVMUVg4UVhrVU5BQ0FBUVFBMkFnQUxDeVlCQVg4Q1FDQUFLQUlBSWdKRkRRQWdBaUFCRVA0Q1FYOFFYa1VOQUNBQVFRQTJBZ0FMQ3drQUlBQVE1QUVRRUFzeEFRRi9JQUFvQWd3aUFTQUFLQUlRUmdSQUlBQWdBQ2dDQUNnQ0tCRUFBQThMSUFBZ0FVRUVhallDRENBQktBSUFDeWNCQVg4Z0FDZ0NEQ0lCSUFBb0FoQkdCRUFnQUNBQUtBSUFLQUlrRVFBQUR3c2dBU2dDQUFzUUFDQUFFUEFDSUFFUThBSnpRUUZ6QzRzRUFRWi9Jd0JCSUdzaUFpUUFJQUpCQURZQ0hDTUFRU0JySWdRa0FDQUNRUmhxSWdaQkFEb0FBQ0FBSUFBb0FnQkJER3NvQWdCcUVMa0JJUVVnQUNBQUtBSUFRUXhyS0FJQWFpRURBa0FnQlFSQUlBTW9Ba2dFUUNBQUlBQW9BZ0JCREdzb0FnQnFLQUpJRUlZREN3SkFJQUFnQUNnQ0FFRU1heWdDQUdvb0FnUkJnQ0J4UlEwQUlBUkJHR29pQXlBQUlBQW9BZ0JCREdzb0FnQnFFQThnQXhBeUlRY2dBeEFPSUFSQkVHb2dBQkRBQVNFRElBUkJDR29RaFFNaEJRTkFBa0FnQXlBRkVERkZEUUFnQjBHQXdBQWdBeEFmRUVSRkRRQWdBeEFpR2d3QkN3c2dBeUFGRUNaRkRRQWdBQ0FBS0FJQVFReHJLQUlBYWtFR0VJQUJDeUFHSUFBZ0FDZ0NBRUVNYXlnQ0FHb1F1UUU2QUFBTUFRc2dBMEVFRUlBQkN5QUVRU0JxSkFBZ0JpMEFBQVJBSUFKQkVHb2lCQ0FBSUFBb0FnQkJER3NvQWdCcUVBOGdCRUhJaHdFUVpDRURJQUpCQ0dvZ0FCREFBU0VHSUFJUWhRTWhCU0FESUFZb0FnQWdCU2dDQUNBQUlBQW9BZ0JCREdzb0FnQnFJQUpCSEdvZ0FrRVVhaUFES0FJQUtBSVFFUVVBR2lBRUVBNGdBUUovSUFJb0FoUkJnSUNBZ0hoSUJFQWdBaUFDS0FJY1FRUnlOZ0ljUVlDQWdJQjREQUVMSUFJb0FoUkIvLy8vL3dkS0JFQWdBaUFDS0FJY1FRUnlOZ0ljUWYvLy8vOEhEQUVMSUFJb0FoUUxOZ0lBSUFBZ0FDZ0NBRUVNYXlnQ0FHb2dBaWdDSEJDQUFRc2dBa0VnYWlRQUN6c0JBWDhnQUNnQ0dDSUNJQUFvQWh4R0JFQWdBQ0FCRUdVZ0FDZ0NBQ2dDTkJFQ0FBOExJQUFnQWtFQmFqWUNHQ0FDSUFFNkFBQWdBUkJsQ3pNQkFYOGdBQ2dDRENJQklBQW9BaEJHQkVBZ0FDQUFLQUlBS0FJb0VRQUFEd3NnQUNBQlFRRnFOZ0lNSUFFc0FBQVFaUXNwQVFGL0lBQW9BZ3dpQVNBQUtBSVFSZ1JBSUFBZ0FDZ0NBQ2dDSkJFQUFBOExJQUVzQUFBUVpRc1FBQ0FBRVBFQ0lBRVE4UUp6UVFGekM0MEJBUUYvQWtBZ0FDZ0NCQ0lCSUFFb0FnQkJER3NvQWdCcUtBSVlSUTBBSUFBb0FnUWlBU0FCS0FJQVFReHJLQUlBYWhDNUFVVU5BQ0FBS0FJRUlnRWdBU2dDQUVFTWF5Z0NBR29vQWdSQmdNQUFjVVVOQUNBQUtBSUVJZ0VnQVNnQ0FFRU1heWdDQUdvb0FoZ1Fnd05CZjBjTkFDQUFLQUlFSWdBZ0FDZ0NBRUVNYXlnQ0FHcEJBUkNBQVFzTER3QWdBQ0FBS0FJQUtBSVlFUUFBQzFVQUlBQWdBVFlDQkNBQVFRQTZBQUFnQVNBQktBSUFRUXhyS0FJQWFoQzVBUVJBSUFFZ0FTZ0NBRUVNYXlnQ0FHb29Ba2dFUUNBQklBRW9BZ0JCREdzb0FnQnFLQUpJRUlZREN5QUFRUUU2QUFBTElBQUxDd0FnQUVFQU5nSUFJQUFMYmdFQ2Z5TUFRUkJySWdFa0FDQUFJQUFvQWdCQkRHc29BZ0JxS0FJWUJFQUNRQ0FCUVFocUlBQVFoQU1pQWkwQUFFVU5BQ0FBSUFBb0FnQkJER3NvQWdCcUtBSVlFSU1EUVg5SERRQWdBQ0FBS0FJQVFReHJLQUlBYWtFQkVJQUJDeUFDRUlJREN5QUJRUkJxSkFBTENRQWdBQkRsQVJBUUN3UUFRWDhMeGdnQkJuOGdBQ0FCS0FBQUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2lJRk5nSUFJQUFnQVNnQUJDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUJqWUNCQ0FBSUFFb0FBZ2lBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeUlnYzJBZ2dnQUNBQktBQU1JZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUVOZ0lNQWtBZ0FrR0FBVVlFUUVFQUlRTURRQ0FBSUFSQkZuWkIvQWR4UVlBSWFpMEFBU0FFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCWE1nQkVFR2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFmOEJjVUVDZEVHQUNHb3RBQUZCQ0hSemN5QURRWUFhYWkwQUFFRVlkSE1pQlRZQ0VDQUFJQVVnQm5NaUJqWUNGQ0FBSUFZZ0IzTWlCellDR0NBQUlBUWdCM01pQkRZQ0hDQUFRUkJxSVFCQkNpRUJJQU5CQVdvaUEwRUtSdzBBQ3d3QkN5QUFJQUVvQUJBaUEwRVlkQ0FEUVFoMFFZQ0EvQWR4Y2lBRFFRaDJRWUQrQTNFZ0EwRVlkbkp5TmdJUUlBQWdBU2dBRkNJRFFSaDBJQU5CQ0hSQmdJRDhCM0Z5SUFOQkNIWkJnUDREY1NBRFFSaDJjbklpQXpZQ0ZDQUNRY0FCUmdSQVFRQWhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUZCZ0JwcUxRQUFRUmgwY3lJRk5nSVlJQUFnQlNBR2N5SUdOZ0ljSUFBZ0JpQUhjeUlITmdJZ0lBQWdCQ0FIY3lJRU5nSWtJQUZCQjBZRVFFRU1Ed1VnQUNBQUtBSVFJQVJ6SWdJMkFpZ2dBQ0FDSUFOeklnTTJBaXdnQVVFQmFpRUJJQUJCR0dvaEFBd0JDd0FMQUFzZ0FDQUJLQUFZSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljallDR0NBQUlBRW9BQndpQVVFWWRDQUJRUWgwUVlDQS9BZHhjaUFCUVFoMlFZRCtBM0VnQVVFWWRuSnlJZ00yQWh4QmZ5RUJJQUpCZ0FKSERRQkJBQ0VDUVE0aEFRTkFJQUFnQTBFV2RrSDhCM0ZCZ0FocUxRQUJJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUZjeUFEUVFaMlFmd0hjVUdBQ0dvdEFBSkJFSFJ6SUFOQi93RnhRUUowUVlBSWFpMEFBVUVJZEhOeklBSkJnQnBxTFFBQVFSaDBjeUlGTmdJZ0lBQWdCU0FHY3lJR05nSWtJQUFnQmlBSGN5SUhOZ0lvSUFBZ0JDQUhjeUlFTmdJc0lBSkJCa1lOQVNBQUlBUkIvd0Z4UVFKMFFZQUlhaTBBQVNBQUtBSVFJQVJCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNYTWdCRUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjeUFFUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ6Y3lJSU5nSXdJQUFnQ0NBQUtBSVVjeUlJTmdJMElBQWdBQ2dDR0NBSWN5SUlOZ0k0SUFBZ0F5QUljeUlETmdJOElBSkJBV29oQWlBQVFTQnFJUUFNQUFzQUN5QUJDeTRBSUFBZ0FDZ0NBQ2dDSkJFQUFFRi9SZ1JBUVg4UEN5QUFJQUFvQWd3aUFFRUJhallDRENBQUxBQUFFR1VMQkFCQmZ3dS9BUUVFZnlNQVFSQnJJZ1FrQUFOQUFrQWdBaUFGVEEwQUFrQWdBQ2dDRENJRElBQW9BaEFpQmtrRVFDQUVRZi8vLy84SE5nSU1JQVFnQmlBRGF6WUNDQ0FFSUFJZ0JXczJBZ1FnQkVFTWFpQUVRUWhxSUFSQkJHb1F1Z0VRdWdFaEF5QUJJQUFvQWd3Z0F5Z0NBQ0lERUZVZ0FDQUFLQUlNSUFOcU5nSU1EQUVMSUFBZ0FDZ0NBQ2dDS0JFQUFDSURRWDlHRFFFZ0FTQURFSndCT2dBQVFRRWhBd3NnQVNBRGFpRUJJQU1nQldvaEJRd0JDd3NnQkVFUWFpUUFJQVVMQ1FBZ0FFSi9FTHNCQ3drQUlBQkNmeEM3QVFzRUFDQUFDd2tBSUFBUXZBRVFFQXNJQUNBQUVINFFFQXNIQUNBQUtBSU1DeEFBSXdBZ0FHdEJjSEVpQUNRQUlBQUxCZ0FnQUNRQUN3UUFJd0FMREFBZ0FCREJBUm9nQUJBUUN3a0FJQUFRd1FFUUVBc0ZBRUgrR3dzYkFDQUFJQUVvQWdnZ0JSQStCRUFnQVNBQ0lBTWdCQkRFQVFzTE9BQWdBQ0FCS0FJSUlBVVFQZ1JBSUFFZ0FpQURJQVFReEFFUEN5QUFLQUlJSWdBZ0FTQUNJQU1nQkNBRklBQW9BZ0FvQWhRUkNRQUxsZ0lCQm44Z0FDQUJLQUlJSUFVUVBnUkFJQUVnQWlBRElBUVF4QUVQQ3lBQkxRQTFJUWNnQUNnQ0RDRUdJQUZCQURvQU5TQUJMUUEwSVFnZ0FVRUFPZ0EwSUFCQkVHb2lDU0FCSUFJZ0F5QUVJQVVRd2dFZ0J5QUJMUUExSWdweUlRY2dDQ0FCTFFBMElndHlJUWdDUUNBR1FRSklEUUFnQ1NBR1FRTjBhaUVKSUFCQkdHb2hCZ05BSUFFdEFEWU5BUUpBSUFzRVFDQUJLQUlZUVFGR0RRTWdBQzBBQ0VFQ2NRMEJEQU1MSUFwRkRRQWdBQzBBQ0VFQmNVVU5BZ3NnQVVFQU93RTBJQVlnQVNBQ0lBTWdCQ0FGRU1JQklBRXRBRFVpQ2lBSGNpRUhJQUV0QURRaUN5QUljaUVJSUFaQkNHb2lCaUFKU1EwQUN3c2dBU0FIUWY4QmNVRUFSem9BTlNBQklBaEIvd0Z4UVFCSE9nQTBDNUlCQUNBQUlBRW9BZ2dnQkJBK0JFQWdBU0FDSUFNUXd3RVBDd0pBSUFBZ0FTZ0NBQ0FFRUQ1RkRRQUNRQ0FDSUFFb0FoQkhCRUFnQVNnQ0ZDQUNSdzBCQ3lBRFFRRkhEUUVnQVVFQk5nSWdEd3NnQVNBQ05nSVVJQUVnQXpZQ0lDQUJJQUVvQWloQkFXbzJBaWdDUUNBQktBSWtRUUZIRFFBZ0FTZ0NHRUVDUncwQUlBRkJBVG9BTmdzZ0FVRUVOZ0lzQ3d2ekFRQWdBQ0FCS0FJSUlBUVFQZ1JBSUFFZ0FpQURFTU1CRHdzQ1FDQUFJQUVvQWdBZ0JCQStCRUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFJZ0FVRUJOZ0lnRHdzZ0FTQUROZ0lnQWtBZ0FTZ0NMRUVFUmcwQUlBRkJBRHNCTkNBQUtBSUlJZ0FnQVNBQ0lBSkJBU0FFSUFBb0FnQW9BaFFSQ1FBZ0FTMEFOUVJBSUFGQkF6WUNMQ0FCTFFBMFJRMEJEQU1MSUFGQkJEWUNMQXNnQVNBQ05nSVVJQUVnQVNnQ0tFRUJhallDS0NBQktBSWtRUUZIRFFFZ0FTZ0NHRUVDUncwQklBRkJBVG9BTmc4TElBQW9BZ2dpQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQ2dBTEM1MEVBUU4vSUFBZ0FTZ0NDQ0FFRUQ0RVFDQUJJQUlnQXhEREFROExBa0FnQUNBQktBSUFJQVFRUGdSQUFrQWdBaUFCS0FJUVJ3UkFJQUVvQWhRZ0FrY05BUXNnQTBFQlJ3MENJQUZCQVRZQ0lBOExJQUVnQXpZQ0lDQUJLQUlzUVFSSEJFQWdBRUVRYWlJRklBQW9BZ3hCQTNScUlRZEJBQ0VESUFFQ2Z3SkFBMEFDUUNBRklBZFBEUUFnQVVFQU93RTBJQVVnQVNBQ0lBSkJBU0FFRU1JQklBRXRBRFlOQUFKQUlBRXRBRFZGRFFBZ0FTMEFOQVJBUVFFaEF5QUJLQUlZUVFGR0RRUkJBU0VHSUFBdEFBaEJBbkVOQVF3RUMwRUJJUVlnQUMwQUNFRUJjVVVOQXdzZ0JVRUlhaUVGREFFTEMwRUVJQVpGRFFFYUMwRURDellDTENBRFFRRnhEUUlMSUFFZ0FqWUNGQ0FCSUFFb0FpaEJBV28yQWlnZ0FTZ0NKRUVCUncwQklBRW9BaGhCQWtjTkFTQUJRUUU2QURZUEN5QUFLQUlNSVFVZ0FFRVFhaUlHSUFFZ0FpQURJQVFRb0FFZ0JVRUNTQTBBSUFZZ0JVRURkR29oQmlBQVFSaHFJUVVDUUNBQUtBSUlJZ0JCQW5GRkJFQWdBU2dDSkVFQlJ3MEJDd05BSUFFdEFEWU5BaUFGSUFFZ0FpQURJQVFRb0FFZ0JVRUlhaUlGSUFaSkRRQUxEQUVMSUFCQkFYRkZCRUFEUUNBQkxRQTJEUUlnQVNnQ0pFRUJSZzBDSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXdDQ3dBTEEwQWdBUzBBTmcwQklBRW9BaVJCQVVZRVFDQUJLQUlZUVFGR0RRSUxJQVVnQVNBQ0lBTWdCQkNnQVNBRlFRaHFJZ1VnQmtrTkFBc0xDd2NBSUFBb0FnUUxid0VDZnlBQUlBRW9BZ2hCQUJBK0JFQWdBU0FDSUFNUXhnRVBDeUFBS0FJTUlRUWdBRUVRYWlJRklBRWdBaUFERVBBQkFrQWdCRUVDU0EwQUlBVWdCRUVEZEdvaEJDQUFRUmhxSVFBRFFDQUFJQUVnQWlBREVQQUJJQUV0QURZTkFTQUFRUWhxSWdBZ0JFa05BQXNMQ3pJQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REdBUThMSUFBb0FnZ2lBQ0FCSUFJZ0F5QUFLQUlBS0FJY0VRZ0FDeGtBSUFBZ0FTZ0NDRUVBRUQ0RVFDQUJJQUlnQXhER0FRc0x1Z01CQlg4akFFRkFhaUlFSkFBQ2YwRUJJQUFnQVVFQUVENE5BQnBCQUNBQlJRMEFHaU1BUVVCcUlnTWtBQ0FCS0FJQUlnVkJCR3NvQWdBaEJpQUZRUWhyS0FJQUlRY2dBMEVBTmdJVUlBTkJyUDBBTmdJUUlBTWdBVFlDRENBRFFkejlBRFlDQ0VFQUlRVWdBMEVZYWtFQVFTY1FSaG9nQVNBSGFpRUJBa0FnQmtIYy9RQkJBQkErQkVBZ0EwRUJOZ0k0SUFZZ0EwRUlhaUFCSUFGQkFVRUFJQVlvQWdBb0FoUVJDUUFnQVVFQUlBTW9BaUJCQVVZYklRVU1BUXNnQmlBRFFRaHFJQUZCQVVFQUlBWW9BZ0FvQWhnUkNnQUNRQUpBSUFNb0Fpd09BZ0FCQWdzZ0F5Z0NIRUVBSUFNb0FpaEJBVVliUVFBZ0F5Z0NKRUVCUmh0QkFDQURLQUl3UVFGR0d5RUZEQUVMSUFNb0FpQkJBVWNFUUNBREtBSXdEUUVnQXlnQ0pFRUJSdzBCSUFNb0FpaEJBVWNOQVFzZ0F5Z0NHQ0VGQ3lBRFFVQnJKQUJCQUNBRklnRkZEUUFhSUFSQkNHb2lBMEVFY2tFQVFUUVFSaG9nQkVFQk5nSTRJQVJCZnpZQ0ZDQUVJQUEyQWhBZ0JDQUJOZ0lJSUFFZ0F5QUNLQUlBUVFFZ0FTZ0NBQ2dDSEJFSUFDQUVLQUlnSWdCQkFVWUVRQ0FDSUFRb0FoZzJBZ0FMSUFCQkFVWUxJUUFnQkVGQWF5UUFJQUFMQlFBUUZ3QUxBd0FBQ3drQVFkeUtBUkFLR2dzdkFBSkFRZWlLQVMwQUFFRUJjUTBBUWVpS0FSQWtSUTBBUWR5S0FVSGcxUUFRaEFGQjZJb0JFQ01MUWR5S0FRc0pBRUhNaWdFUUNob0xMZ0FDUUVIWWlnRXRBQUJCQVhFTkFFSFlpZ0VRSkVVTkFFSE1pZ0ZCNmhzUVZCcEIySW9CRUNNTFFjeUtBUXNKQUVHOGlnRVFDaG9MTHdBQ1FFSElpZ0V0QUFCQkFYRU5BRUhJaWdFUUpFVU5BRUc4aWdGQmpOVUFFSVFCUWNpS0FSQWpDMEc4aWdFTENRQkJySW9CRUFvYUN5NEFBa0JCdUlvQkxRQUFRUUZ4RFFCQnVJb0JFQ1JGRFFCQnJJb0JRZHdkRUZRYVFiaUtBUkFqQzBHc2lnRUxDUUJCbklvQkVBb2FDeThBQWtCQnFJb0JMUUFBUVFGeERRQkJxSW9CRUNSRkRRQkJuSW9CUWVqVUFCQ0VBVUdvaWdFUUl3dEJuSW9CQ3drQVFZeUtBUkFLR2dzdUFBSkFRWmlLQVMwQUFFRUJjUTBBUVppS0FSQWtSUTBBUVl5S0FVSDNIUkJVR2tHWWlnRVFJd3RCaklvQkN3a0FRZnlKQVJBS0dnc3ZBQUpBUVlpS0FTMEFBRUVCY1EwQVFZaUtBUkFrUlEwQVFmeUpBVUhFMUFBUWhBRkJpSW9CRUNNTFFmeUpBUXNKQUVIc2lRRVFDaG9MTGdBQ1FFSDRpUUV0QUFCQkFYRU5BRUg0aVFFUUpFVU5BRUhzaVFGQjVob1FWQnBCK0lrQkVDTUxRZXlKQVFzYkFFSG9rZ0VoQUFOQUlBQkJER3NRQ2lJQVFkQ1NBVWNOQUFzTGZRQUNRRUhvaVFFdEFBQkJBWEVOQUVIb2lRRVFKRVVOQUFKQVFlaVNBUzBBQUVFQmNRMEFRZWlTQVJBa1JRMEFRZENTQVNFQUEwQWdBQkJIUVF4cUlnQkI2SklCUncwQUMwSG9rZ0VRSXd0QjBKSUJRZkQ3QUJBVVFkeVNBVUg4K3dBUUZFSGtpUUZCMEpJQk5nSUFRZWlKQVJBakMwSGtpUUVvQWdBTEd3QkJ5SklCSVFBRFFDQUFRUXhyRUFvaUFFR3drZ0ZIRFFBTEMzc0FBa0JCNElrQkxRQUFRUUZ4RFFCQjRJa0JFQ1JGRFFBQ1FFSElrZ0V0QUFCQkFYRU5BRUhJa2dFUUpFVU5BRUd3a2dFaEFBTkFJQUFRRVVFTWFpSUFRY2lTQVVjTkFBdEJ5SklCRUNNTFFiQ1NBVUdISGhBVlFieVNBVUdFSGhBVlFkeUpBVUd3a2dFMkFnQkI0SWtCRUNNTFFkeUpBU2dDQUFzYkFFR2drZ0VoQUFOQUlBQkJER3NRQ2lJQVFZQ1FBVWNOQUFzTDJRSUFBa0JCMklrQkxRQUFRUUZ4RFFCQjJJa0JFQ1JGRFFBQ1FFR2drZ0V0QUFCQkFYRU5BRUdna2dFUUpFVU5BRUdBa0FFaEFBTkFJQUFRUjBFTWFpSUFRYUNTQVVjTkFBdEJvSklCRUNNTFFZQ1FBVUhvOXdBUUZFR01rQUZCaVBnQUVCUkJtSkFCUWF6NEFCQVVRYVNRQVVIRStBQVFGRUd3a0FGQjNQZ0FFQlJCdkpBQlFlejRBQkFVUWNpUUFVR0ErUUFRRkVIVWtBRkJsUGtBRUJSQjRKQUJRYkQ1QUJBVVFleVFBVUhZK1FBUUZFSDRrQUZCK1BrQUVCUkJoSkVCUVp6NkFCQVVRWkNSQVVIQStnQVFGRUdja1FGQjBQb0FFQlJCcUpFQlFlRDZBQkFVUWJTUkFVSHcrZ0FRRkVIQWtRRkIzUGdBRUJSQnpKRUJRWUQ3QUJBVVFkaVJBVUdRK3dBUUZFSGtrUUZCb1BzQUVCUkI4SkVCUWJEN0FCQVVRZnlSQVVIQSt3QVFGRUdJa2dGQjBQc0FFQlJCbEpJQlFlRDdBQkFVUWRTSkFVR0FrQUUyQWdCQjJJa0JFQ01MUWRTSkFTZ0NBQXNiQUVId2p3RWhBQU5BSUFCQkRHc1FDaUlBUWRDTkFVY05BQXNMd1FJQUFrQkIwSWtCTFFBQVFRRnhEUUJCMElrQkVDUkZEUUFDUUVId2p3RXRBQUJCQVhFTkFFSHdqd0VRSkVVTkFFSFFqUUVoQUFOQUlBQVFFVUVNYWlJQVFmQ1BBVWNOQUF0QjhJOEJFQ01MUWRDTkFVR2NHaEFWUWR5TkFVR1RHaEFWUWVpTkFVSGdIQkFWUWZTTkFVSFdIQkFWUVlDT0FVSGlHaEFWUVl5T0FVSExIUkFWUVppT0FVR2tHaEFWUWFTT0FVR1VHeEFWUWJDT0FVRy9HeEFWUWJ5T0FVR3VHeEFWUWNpT0FVRzJHeEFWUWRTT0FVSEpHeEFWUWVDT0FVSExIQkFWUWV5T0FVSFlIUkFWUWZpT0FVSGlHeEFWUVlTUEFVR2pHeEFWUVpDUEFVSGlHaEFWUVp5UEFVSDZHeEFWUWFpUEFVSFBIQkFWUWJTUEFVSG1IQkFWUWNDUEFVSG1HeEFWUWN5UEFVR2JHeEFWUWRpUEFVR01HeEFWUWVTUEFVSFVIUkFWUWN5SkFVSFFqUUUyQWdCQjBJa0JFQ01MUWN5SkFTZ0NBQXNiQUVISWpRRWhBQU5BSUFCQkRHc1FDaUlBUWFDTUFVY05BQXNMOVFFQUFrQkJ5SWtCTFFBQVFRRnhEUUJCeUlrQkVDUkZEUUFDUUVISWpRRXRBQUJCQVhFTkFFSElqUUVRSkVVTkFFR2dqQUVoQUFOQUlBQVFSMEVNYWlJQVFjaU5BVWNOQUF0QnlJMEJFQ01MUWFDTUFVR1U5UUFRRkVHc2pBRkJzUFVBRUJSQnVJd0JRY3oxQUJBVVFjU01BVUhzOVFBUUZFSFFqQUZCbFBZQUVCUkIzSXdCUWJqMkFCQVVRZWlNQVVIVTlnQVFGRUgwakFGQitQWUFFQlJCZ0kwQlFZajNBQkFVUVl5TkFVR1k5d0FRRkVHWWpRRkJxUGNBRUJSQnBJMEJRYmozQUJBVVFiQ05BVUhJOXdBUUZFRzhqUUZCMlBjQUVCUkJ4SWtCUWFDTUFUWUNBRUhJaVFFUUl3dEJ4SWtCS0FJQUN4c0FRWmlNQVNFQUEwQWdBRUVNYXhBS0lnQkI4SW9CUncwQUN3dm5BUUFDUUVIQWlRRXRBQUJCQVhFTkFFSEFpUUVRSkVVTkFBSkFRWmlNQVMwQUFFRUJjUTBBUVppTUFSQWtSUTBBUWZDS0FTRUFBMEFnQUJBUlFReHFJZ0JCbUl3QlJ3MEFDMEdZakFFUUl3dEI4SW9CUWMwYUVCVkIvSW9CUWRRYUVCVkJpSXNCUWJJYUVCVkJsSXNCUWJvYUVCVkJvSXNCUWFrYUVCVkJySXNCUWRzYUVCVkJ1SXNCUWNRYUVCVkJ4SXNCUWZZYkVCVkIwSXNCUWNNY0VCVkIzSXNCUWNFZEVCVkI2SXNCUWRBZEVCVkI5SXNCUVpBYkVCVkJnSXdCUWR3Y0VCVkJqSXdCUVo4YkVCVkJ2SWtCUWZDS0FUWUNBRUhBaVFFUUl3dEJ2SWtCS0FJQUN3c0FJQUJCck5RQUVJUUJDd29BSUFCQnhSMFFWQm9MQ3dBZ0FFR1kxQUFRaEFFTENnQWdBRUc4SFJCVUdnc01BQ0FBSUFGQkVHb1EwUUVMREFBZ0FDQUJRUXhxRU5FQkN3Y0FJQUFzQUFrTEJ3QWdBQ3dBQ0FzSkFDQUFFSVlDRUJBTENRQWdBQkNIQWhBUUMrWURBUVYvSUFJaEFBTkFBa0FnQkNBSVRTQUFJQU5QY2cwQUlBQXNBQUFpQmtIL0FYRWhBUUpBSUFaQkFFNEVRRUVCSVFZZ0FVSC8vOE1BVFEwQkRBSUxJQUZCd2dGSkRRRWdBVUhmQVUwRVFDQURJQUJyUVFKSURRSWdBQzBBQVNJRlFjQUJjVUdBQVVjTkFrRUNJUVlnQlVFL2NTQUJRUVowUWNBUGNYSkIvLy9EQUUwTkFRd0NDd0pBQWtBZ0FVSHZBVTBFUUNBRElBQnJRUU5JRFFRZ0FDMEFBaUVISUFBdEFBRWhCU0FCUWUwQlJnMEJJQUZCNEFGR0JFQWdCVUhnQVhGQm9BRkdEUU1NQlFzZ0JVSEFBWEZCZ0FGSERRUU1BZ3NnQXlBQWEwRUVTQ0FCUWZRQlMzSU5BeUFBTFFBRElRY2dBQzBBQWlFSklBQXRBQUVoQlFKQUFrQUNRQUpBSUFGQjhBRnJEZ1VBQWdJQ0FRSUxJQVZCOEFCcVFmOEJjVUV3U1EwQ0RBWUxJQVZCOEFGeFFZQUJSZzBCREFVTElBVkJ3QUZ4UVlBQlJ3MEVDeUFKUWNBQmNVR0FBVWNnQjBIQUFYRkJnQUZIY2cwRFFRUWhCaUFIUVQ5eElBbEJCblJCd0I5eElBRkJFblJCZ0lEd0FIRWdCVUUvY1VFTWRISnlja0gvLzhNQVN3MEREQUlMSUFWQjRBRnhRWUFCUncwQ0N5QUhRY0FCY1VHQUFVY05BVUVESVFZZ0IwRS9jU0FCUVF4MFFZRGdBM0VnQlVFL2NVRUdkSEp5UWYvL3d3QkxEUUVMSUFoQkFXb2hDQ0FBSUFacUlRQU1BUXNMSUFBZ0Ftc0w0Z1FCQlg4akFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ0NRQUpBQTBBQ1FDQUFLQUlNSWdJZ0EwOE5BQ0FBS0FJSUlnd2dCazhOQUNBQ0xBQUFJZ1ZCL3dGeElRRUNRQ0FGUVFCT0JFQWdBVUgvLzhNQVRRUkFRUUVoQlF3Q0MwRUNEQVlMUVFJaENpQUJRY0lCU1EwRElBRkIzd0ZOQkVBZ0F5QUNhMEVDU0EwRklBSXRBQUVpQ0VIQUFYRkJnQUZIRFFSQkFpRUZJQWhCUDNFZ0FVRUdkRUhBRDNGeUlnRkIvLy9EQUUwTkFRd0VDeUFCUWU4QlRRUkFJQU1nQW10QkEwZ05CU0FDTFFBQ0lRa2dBaTBBQVNFSUFrQUNRQ0FCUWUwQlJ3UkFJQUZCNEFGSERRRWdDRUhnQVhGQm9BRkdEUUlNQndzZ0NFSGdBWEZCZ0FGR0RRRU1CZ3NnQ0VIQUFYRkJnQUZIRFFVTElBbEJ3QUZ4UVlBQlJ3MEVRUU1oQlNBSlFUOXhJQUZCREhSQmdPQURjU0FJUVQ5eFFRWjBjbklpQVVILy84TUFUUTBCREFRTElBRkI5QUZMRFFNZ0F5QUNhMEVFU0EwRUlBSXRBQU1oQ1NBQ0xRQUNJUXNnQWkwQUFTRUlBa0FDUUFKQUFrQWdBVUh3QVdzT0JRQUNBZ0lCQWdzZ0NFSHdBR3BCL3dGeFFUQkpEUUlNQmdzZ0NFSHdBWEZCZ0FGR0RRRU1CUXNnQ0VIQUFYRkJnQUZIRFFRTElBdEJ3QUZ4UVlBQlJ5QUpRY0FCY1VHQUFVZHlEUU5CQkNFRklBbEJQM0VnQzBFR2RFSEFIM0VnQVVFU2RFR0FnUEFBY1NBSVFUOXhRUXgwY25KeUlnRkIvLy9EQUVzTkF3c2dEQ0FCTmdJQUlBQWdBaUFGYWpZQ0RDQUFJQUFvQWdoQkJHbzJBZ2dNQVFzTElBSWdBMGtoQ2dzZ0Nnd0JDMEVCQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUxqZ1FBSXdCQkVHc2lBQ1FBSUFBZ0FqWUNEQ0FBSUFVMkFnZ0NmeUFBSUFJMkFnd2dBQ0FGTmdJSUlBQW9BZ3doQVFKQUEwQWdBU0FEVHdSQVFRQWhBZ3dDQzBFQ0lRSWdBU2dDQUNJQlFZQndjVUdBc0FOR0lBRkIvLy9EQUV0eURRRUNRQUpBSUFGQi93Qk5CRUJCQVNFQ0lBWWdBQ2dDQ0NJRmEwRUFUQTBFSUFBZ0JVRUJhallDQ0NBRklBRTZBQUFNQVFzZ0FVSC9EMDBFUUNBR0lBQW9BZ2dpQW10QkFrZ05BaUFBSUFKQkFXbzJBZ2dnQWlBQlFRWjJRY0FCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBRkJQM0ZCZ0FGeU9nQUFEQUVMSUFZZ0FDZ0NDQ0lDYXlFRklBRkIvLzhEVFFSQUlBVkJBMGdOQWlBQUlBSkJBV28yQWdnZ0FpQUJRUXgyUWVBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCQm5aQlAzRkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQ1FRRnFOZ0lJSUFJZ0FVRS9jVUdBQVhJNkFBQU1BUXNnQlVFRVNBMEJJQUFnQWtFQmFqWUNDQ0FDSUFGQkVuWkI4QUZ5T2dBQUlBQWdBQ2dDQ0NJQ1FRRnFOZ0lJSUFJZ0FVRU1ka0UvY1VHQUFYSTZBQUFnQUNBQUtBSUlJZ0pCQVdvMkFnZ2dBaUFCUVFaMlFUOXhRWUFCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBRkJQM0ZCZ0FGeU9nQUFDeUFBSUFBb0FneEJCR29pQVRZQ0RBd0JDd3RCQVF3QkN5QUNDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTDdnTUJCSDhnQWlFQUEwQUNRQ0FFSUFaTklBQWdBMDl5RFFBZ0FDMEFBQ0lCUWYvL3d3QkxEUUFDZnlBQVFRRnFJQUZCR0hSQkdIVkJBRTROQUJvZ0FVSENBVWtOQVNBQlFkOEJUUVJBSUFNZ0FHdEJBa2dOQWlBQUxRQUJJZ1ZCd0FGeFFZQUJSeUFGUVQ5eElBRkJCblJCd0E5eGNrSC8vOE1BUzNJTkFpQUFRUUpxREFFTEFrQUNRQ0FCUWU4QlRRUkFJQU1nQUd0QkEwZ05CQ0FBTFFBQ0lRY2dBQzBBQVNFRklBRkI3UUZHRFFFZ0FVSGdBVVlFUUNBRlFlQUJjVUdnQVVZTkF3d0ZDeUFGUWNBQmNVR0FBVWNOQkF3Q0N5QURJQUJyUVFSSUlBRkI5QUZMY2lBRUlBWnJRUUpKY2cwRElBQXRBQU1oQnlBQUxRQUNJUWdnQUMwQUFTRUZBa0FDUUFKQUFrQWdBVUh3QVdzT0JRQUNBZ0lCQWdzZ0JVSHdBR3BCL3dGeFFUQkpEUUlNQmdzZ0JVSHdBWEZCZ0FGR0RRRU1CUXNnQlVIQUFYRkJnQUZIRFFRTElBaEJ3QUZ4UVlBQlJ5QUhRY0FCY1VHQUFVZHlJQWRCUDNFZ0NFRUdkRUhBSDNFZ0FVRVNkRUdBZ1BBQWNTQUZRVDl4UVF4MGNuSnlRZi8vd3dCTGNnMERJQVpCQVdvaEJpQUFRUVJxREFJTElBVkI0QUZ4UVlBQlJ3MENDeUFIUWNBQmNVR0FBVWNnQjBFL2NTQUJRUXgwUVlEZ0EzRWdCVUUvY1VFR2RISnlRZi8vd3dCTGNnMEJJQUJCQTJvTElRQWdCa0VCYWlFR0RBRUxDeUFBSUFKckM5TUZBUVIvSXdCQkVHc2lBQ1FBSUFBZ0FqWUNEQ0FBSUFVMkFnZ0NmeUFBSUFJMkFnd2dBQ0FGTmdJSUFrQUNRQUpBQTBBQ1FDQUFLQUlNSWdFZ0EwOE5BQ0FBS0FJSUlnVWdCazhOQUVFQ0lRb2dBUzBBQUNJQ1FmLy93d0JMRFFRZ0FBSi9JQUpCR0hSQkdIVkJBRTRFUUNBRklBSTdBUUFnQVVFQmFnd0JDeUFDUWNJQlNRMEZJQUpCM3dGTkJFQWdBeUFCYTBFQ1NBMEZJQUV0QUFFaUNFSEFBWEZCZ0FGSERRUWdDRUUvY1NBQ1FRWjBRY0FQY1hJaUFrSC8vOE1BU3cwRUlBVWdBanNCQUNBQlFRSnFEQUVMSUFKQjd3Rk5CRUFnQXlBQmEwRURTQTBGSUFFdEFBSWhDU0FCTFFBQklRZ0NRQUpBSUFKQjdRRkhCRUFnQWtIZ0FVY05BU0FJUWVBQmNVR2dBVVlOQWd3SEN5QUlRZUFCY1VHQUFVWU5BUXdHQ3lBSVFjQUJjVUdBQVVjTkJRc2dDVUhBQVhGQmdBRkhEUVFnQ1VFL2NTQUlRVDl4UVFaMElBSkJESFJ5Y2lJQ1FmLy9BM0ZCLy8vREFFc05CQ0FGSUFJN0FRQWdBVUVEYWd3QkN5QUNRZlFCU3cwRlFRRWhDaUFESUFGclFRUklEUU1nQVMwQUF5RUpJQUV0QUFJaENDQUJMUUFCSVFFQ1FBSkFBa0FDUUNBQ1FmQUJhdzRGQUFJQ0FnRUNDeUFCUWZBQWFrSC9BWEZCTUU4TkNBd0NDeUFCUWZBQmNVR0FBVWNOQnd3QkN5QUJRY0FCY1VHQUFVY05CZ3NnQ0VIQUFYRkJnQUZISUFsQndBRnhRWUFCUjNJTkJTQUdJQVZyUVFSSURRTkJBaUVLSUFsQlAzRWlDU0FJUVFaMElndEJ3Qjl4SUFGQkRIUkJnT0FQY1NBQ1FRZHhJZ0pCRW5SeWNuSkIvLy9EQUVzTkF5QUZJQWhCQkhaQkEzRWdBVUVDZENJQlFjQUJjU0FDUVFoMGNpQUJRVHh4Y25KQndQOEFha0dBc0FOeU93RUFJQUFnQlVFQ2FqWUNDQ0FGSUF0QndBZHhJQWx5UVlDNEEzSTdBUUlnQUNnQ0RFRUVhZ3MyQWd3Z0FDQUFLQUlJUVFKcU5nSUlEQUVMQ3lBQklBTkpJUW9MSUFvTUFndEJBUXdCQzBFQ0N5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMK2dVQkFYOGpBRUVRYXlJQUpBQWdBQ0FDTmdJTUlBQWdCVFlDQ0FKL0lBQWdBallDRENBQUlBVTJBZ2dnQUNnQ0RDRUNBa0FDUUFOQUlBSWdBMDhFUUVFQUlRVU1Bd3RCQWlFRklBSXZBUUFpQVVILy84TUFTdzBDQWtBQ1FDQUJRZjhBVFFSQVFRRWhCU0FHSUFBb0FnZ2lBbXRCQUV3TkJTQUFJQUpCQVdvMkFnZ2dBaUFCT2dBQURBRUxJQUZCL3c5TkJFQWdCaUFBS0FJSUlnSnJRUUpJRFFRZ0FDQUNRUUZxTmdJSUlBSWdBVUVHZGtIQUFYSTZBQUFnQUNBQUtBSUlJZ0pCQVdvMkFnZ2dBaUFCUVQ5eFFZQUJjam9BQUF3QkN5QUJRZit2QTAwRVFDQUdJQUFvQWdnaUFtdEJBMGdOQkNBQUlBSkJBV28yQWdnZ0FpQUJRUXgyUWVBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCQm5aQlAzRkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQ1FRRnFOZ0lJSUFJZ0FVRS9jVUdBQVhJNkFBQU1BUXNnQVVIL3R3Tk5CRUJCQVNFRklBTWdBbXRCQkVnTkJTQUNMd0VDSWdoQmdQZ0RjVUdBdUFOSERRSWdCaUFBS0FJSWEwRUVTQTBGSUFoQi93ZHhJQUZCQ25SQmdQZ0RjU0FCUWNBSGNTSUZRUXAwY25KQmdJQUVha0gvLzhNQVN3MENJQUFnQWtFQ2FqWUNEQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQVZCQm5aQkFXb2lBa0VDZGtId0FYSTZBQUFnQUNBQUtBSUlJZ1ZCQVdvMkFnZ2dCU0FDUVFSMFFUQnhJQUZCQW5aQkQzRnlRWUFCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBaEJCblpCRDNFZ0FVRUVkRUV3Y1hKQmdBRnlPZ0FBSUFBZ0FDZ0NDQ0lCUVFGcU5nSUlJQUVnQ0VFL2NVR0FBWEk2QUFBTUFRc2dBVUdBd0FOSkRRUWdCaUFBS0FJSUlnSnJRUU5JRFFNZ0FDQUNRUUZxTmdJSUlBSWdBVUVNZGtIZ0FYSTZBQUFnQUNBQUtBSUlJZ0pCQVdvMkFnZ2dBaUFCUVFaMlFUOXhRWUFCY2pvQUFDQUFJQUFvQWdnaUFrRUJhallDQ0NBQ0lBRkJQM0ZCZ0FGeU9nQUFDeUFBSUFBb0FneEJBbW9pQWpZQ0RBd0JDd3RCQWd3Q0MwRUJEQUVMSUFVTElRRWdCQ0FBS0FJTU5nSUFJQWNnQUNnQ0NEWUNBQ0FBUVJCcUpBQWdBUXNWQUNBQUtBSUlJZ0JGQkVCQkFROExJQUFRaWdJTGtBRUJCbjhEUUFKQUlBSWdBMFlnQkNBSVRYSU5BRUVCSVFjZ0FDZ0NDQ0VGSXdCQkVHc2lCaVFBSUFZZ0JUWUNEQ0FHUVFocUlBWkJER29RVWlFS1FRQWdBaUFESUFKcklBRkJ0SWNCSUFFYkVMY0JJUVVnQ2hCUklBWkJFR29rQUFKQUFrQWdCVUVDYWc0REFnSUJBQXNnQlNFSEN5QUlRUUZxSVFnZ0J5QUphaUVKSUFJZ0Iyb2hBZ3dCQ3dzZ0NRdG1BUU4vSUFBb0FnZ2hBaU1BUVJCcklnRWtBQ0FCSUFJMkFnd2dBVUVJYWlBQlFReHFFRkloQWlNQVFSQnJJZ01rQUNBRFFSQnFKQUJCQUNFRElBSVFVU0FCUVJCcUpBQWdBd1IvUVg4RklBQW9BZ2dpQUVVRVFFRUJEd3NnQUJDS0FrRUJSZ3NMa2dFQkFYOGpBRUVRYXlJRkpBQWdCQ0FDTmdJQUFuOUJBaUFGUVF4cVFRQWdBQ2dDQ0JETEFTSUFRUUZxUVFKSkRRQWFRUUVnQUVFQmF5SUJJQU1nQkNnQ0FHdExEUUFhSUFWQkRHb2hBZ04vSUFFRWZ5QUNMUUFBSVFBZ0JDQUVLQUlBSWdOQkFXbzJBZ0FnQXlBQU9nQUFJQUZCQVdzaEFTQUNRUUZxSVFJTUFRVkJBQXNMQ3lFQ0lBVkJFR29rQUNBQ0M4c0dBUXgvSXdCQkVHc2lFU1FBSUFJaENBTkFBa0FnQXlBSVJnUkFJQU1oQ0F3QkN5QUlMUUFBUlEwQUlBaEJBV29oQ0F3QkN3c2dCeUFGTmdJQUlBUWdBallDQUFOQUFrQUNmd0pBSUFJZ0EwWWdCU0FHUm5JTkFDQVJJQUVwQWdBM0F3Z2dBQ2dDQ0NFSkl3QkJFR3NpRUNRQUlCQWdDVFlDRENBUVFRaHFJQkJCREdvUVVpRVRJQWdnQW1zaERVRUFJUW9qQUVHUUNHc2lDeVFBSUFzZ0JDZ0NBQ0lPTmdJTUlBVWdDMEVRYWlBRkd5RVBBa0FDUUFKQUlBNUZJQVlnQld0QkFuVkJnQUlnQlJzaURFVnlEUUFEUUNBTlFRSjJJZ2tnREVrZ0RVR0RBVTF4RFFJZ0R5QUxRUXhxSUF3Z0NTQUpJQXhQR3lBQkVOSUNJaEpCZjBZRVFFRi9JUXBCQUNFTUlBc29BZ3doRGd3Q0N5QU1RUUFnRWlBUElBdEJFR3BHR3lJSmF5RU1JQThnQ1VFQ2RHb2hEeUFOSUE1cUlBc29BZ3dpRG10QkFDQU9HeUVOSUFvZ0Vtb2hDaUFPUlEwQklBd05BQXNMSUE1RkRRRUxJQXhGSUExRmNnMEFJQW9oQ1FOQUFrQUNRQ0FQSUE0Z0RTQUJFTGNCSWdwQkFtcEJBazBFUUFKQUFrQWdDa0VCYWc0Q0JnQUJDeUFMUVFBMkFnd01BZ3NnQVVFQU5nSUFEQUVMSUFzZ0N5Z0NEQ0FLYWlJT05nSU1JQWxCQVdvaENTQU1RUUZySWd3TkFRc2dDU0VLREFJTElBOUJCR29oRHlBTklBcHJJUTBnQ1NFS0lBME5BQXNMSUFVRVFDQUVJQXNvQWd3MkFnQUxJQXRCa0FocUpBQWdDaUVKSUJNUVVTQVFRUkJxSkFBQ1FBSkFBa0FDUUNBSlFYOUdCRUFEUUFKQUlBY2dCVFlDQUNBQ0lBUW9BZ0JHRFFCQkFTRUdBa0FDUUFKQUlBVWdBaUFJSUFKcklCRkJDR29nQUNnQ0NCQ0xBaUlCUVFKcURnTUlBQUlCQ3lBRUlBSTJBZ0FNQlFzZ0FTRUdDeUFDSUFacUlRSWdCeWdDQUVFRWFpRUZEQUVMQ3lBRUlBSTJBZ0FNQlFzZ0J5QUhLQUlBSUFsQkFuUnFJZ1UyQWdBZ0JTQUdSZzBESUFRb0FnQWhBaUFESUFoR0JFQWdBeUVJREFnTElBVWdBa0VCSUFFZ0FDZ0NDQkNMQWtVTkFRdEJBZ3dFQ3lBSElBY29BZ0JCQkdvMkFnQWdCQ0FFS0FJQVFRRnFJZ0kyQWdBZ0FpRUlBMEFnQXlBSVJnUkFJQU1oQ0F3R0N5QUlMUUFBUlEwRklBaEJBV29oQ0F3QUN3QUxJQVFnQWpZQ0FFRUJEQUlMSUFRb0FnQWhBZ3NnQWlBRFJ3c2hBQ0FSUVJCcUpBQWdBQThMSUFjb0FnQWhCUXdBQ3dBTHN3VUJESDhqQUVFUWF5SU5KQUFnQWlFSUEwQUNRQ0FESUFoR0JFQWdBeUVJREFFTElBZ29BZ0JGRFFBZ0NFRUVhaUVJREFFTEN5QUhJQVUyQWdBZ0JDQUNOZ0lBQTBBQ1FBSkFJQUlnQTBZZ0JTQUdSbklFZnlBQ0JTQU5JQUVwQWdBM0F3aEJBU0VRSUFBb0FnZ2hDU01BUVJCcklnNGtBQ0FPSUFrMkFnd2dEa0VJYWlBT1FReHFFRkloRXlBR0lBVWlDV3NoQ2tFQUlROGpBRUVRYXlJUkpBQUNRQ0FFS0FJQUlndEZJQWdnQW10QkFuVWlFa1Z5RFFBZ0NrRUFJQWtiSVFvRFFDQVJRUXhxSUFrZ0NrRUVTUnNnQ3lnQ0FCRGFBU0lNUVg5R0JFQkJmeUVQREFJTElBa0VmeUFLUVFOTkJFQWdDaUFNU1EwRElBa2dFVUVNYWlBTUVFSWFDeUFLSUF4cklRb2dDU0FNYWdWQkFBc2hDU0FMS0FJQVJRUkFRUUFoQ3d3Q0N5QU1JQTlxSVE4Z0MwRUVhaUVMSUJKQkFXc2lFZzBBQ3dzZ0NRUkFJQVFnQ3pZQ0FBc2dFVUVRYWlRQUlBOGhDU0FURUZFZ0RrRVFhaVFBQWtBQ1FBSkFBa0FDUUNBSlFRRnFEZ0lBQmdFTElBY2dCVFlDQUFOQUFrQWdBaUFFS0FJQVJnMEFJQVVnQWlnQ0FDQUFLQUlJRU1zQklnRkJmMFlOQUNBSElBY29BZ0FnQVdvaUJUWUNBQ0FDUVFScUlRSU1BUXNMSUFRZ0FqWUNBQXdCQ3lBSElBY29BZ0FnQ1dvaUJUWUNBQ0FGSUFaR0RRSWdBeUFJUmdSQUlBUW9BZ0FoQWlBRElRZ01Cd3NnRFVFRWFrRUFJQUFvQWdnUXl3RWlDRUYvUncwQkMwRUNJUkFNQXdzZ0RVRUVhaUVDSUFZZ0J5Z0NBR3NnQ0VrTkFnTkFJQWdFUUNBQ0xRQUFJUVVnQnlBSEtBSUFJZ2xCQVdvMkFnQWdDU0FGT2dBQUlBaEJBV3NoQ0NBQ1FRRnFJUUlNQVFzTElBUWdCQ2dDQUVFRWFpSUNOZ0lBSUFJaENBTkFJQU1nQ0VZRVFDQURJUWdNQlFzZ0NDZ0NBRVVOQkNBSVFRUnFJUWdNQUFzQUN5QUVLQUlBQ3lBRFJ5RVFDeUFOUVJCcUpBQWdFQThMSUFjb0FnQWhCUXdBQ3dBTENRQWdBQkNZQWhBUUN6Y0FJd0JCRUdzaUFDUUFJQUFnQkRZQ0RDQUFJQU1nQW1zMkFnZ2dBRUVNYWlBQVFRaHFFS0lCS0FJQUlRRWdBRUVRYWlRQUlBRUxOQUFEUUNBQklBSkdSUVJBSUFRZ0FTd0FBQ0lBSUFNZ0FFRUFUaHM2QUFBZ0JFRUJhaUVFSUFGQkFXb2hBUXdCQ3dzZ0Fnc01BQ0FCSUFJZ0FVRUFUaHNMS2dBRFFDQUJJQUpHUlFSQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCREFFTEN5QUNDMEFBQTBBZ0FTQUNSd1JBSUFFZ0FTd0FBQ0lBUVFCT0JIOUIwTVFBS0FJQUlBRXNBQUJCQW5ScUtBSUFCU0FBQ3pvQUFDQUJRUUZxSVFFTUFRc0xJQUlMSndBZ0FVRUFUZ1IvUWRERUFDZ0NBQ0FCUWY4QmNVRUNkR29vQWdBRklBRUxRUmgwUVJoMUN6OEFBMEFnQVNBQ1J3UkFJQUVnQVN3QUFDSUFRUUJPQkg5QndEZ29BZ0FnQVN3QUFFRUNkR29vQWdBRklBQUxPZ0FBSUFGQkFXb2hBUXdCQ3dzZ0Fnc21BQ0FCUVFCT0JIOUJ3RGdvQWdBZ0FVSC9BWEZCQW5ScUtBSUFCU0FCQzBFWWRFRVlkUXNKQUNBQUVJNENFQkFMTlFBRFFDQUJJQUpHUlFSQUlBUWdBU2dDQUNJQUlBTWdBRUdBQVVrYk9nQUFJQVJCQVdvaEJDQUJRUVJxSVFFTUFRc0xJQUlMRXdBZ0FTQUNJQUZCZ0FGSkcwRVlkRUVZZFFzcUFBTkFJQUVnQWtaRkJFQWdBeUFCTEFBQU5nSUFJQU5CQkdvaEF5QUJRUUZxSVFFTUFRc0xJQUlMUVFBRFFDQUJJQUpIQkVBZ0FTQUJLQUlBSWdCQi93Qk5CSDlCME1RQUtBSUFJQUVvQWdCQkFuUnFLQUlBQlNBQUN6WUNBQ0FCUVFScUlRRU1BUXNMSUFJTEhnQWdBVUgvQUUwRWYwSFF4QUFvQWdBZ0FVRUNkR29vQWdBRklBRUxDMEFBQTBBZ0FTQUNSd1JBSUFFZ0FTZ0NBQ0lBUWY4QVRRUi9RY0E0S0FJQUlBRW9BZ0JCQW5ScUtBSUFCU0FBQ3pZQ0FDQUJRUVJxSVFFTUFRc0xJQUlMSFFBZ0FVSC9BRTBFZjBIQU9DZ0NBQ0FCUVFKMGFpZ0NBQVVnQVFzTFJBQUNRQU5BSUFJZ0EwWU5BUUpBSUFJb0FnQkIvd0JMRFFCQnNESW9BZ0FnQWlnQ0FFRUJkR292QVFBZ0FYRkZEUUFnQWtFRWFpRUNEQUVMQ3lBQ0lRTUxJQU1MUXdBRFFBSkFJQUlnQTBjRWZ5QUNLQUlBUWY4QVN3MEJRYkF5S0FJQUlBSW9BZ0JCQVhScUx3RUFJQUZ4UlEwQklBSUZJQU1MRHdzZ0FrRUVhaUVDREFBTEFBdEZBQU5BSUFFZ0FrY0VRQ0FESUFFb0FnQkIvd0JOQkg5QnNESW9BZ0FnQVNnQ0FFRUJkR292QVFBRlFRQUxPd0VBSUFOQkFtb2hBeUFCUVFScUlRRU1BUXNMSUFJTEl3QWdBa0gvQUUwRWYwR3dNaWdDQUNBQ1FRRjBhaThCQUNBQmNVRUFSd1ZCQUFzTFFBRUNmeUFBS0FJQUtBSUFJZ0FvQWdBZ0FDZ0NDQ0lDUVFGMWFpRUJJQUFvQWdRaEFDQUJJQUpCQVhFRWZ5QUJLQUlBSUFCcUtBSUFCU0FBQ3hFQkFBc1BBQ0FBSUFBb0FnQW9BZ1FSQVFBTEh3QWdBQUovUWZpSUFVSDRpQUVvQWdCQkFXb2lBRFlDQUNBQUN6WUNCQXNKQUNBQUVKTUNFQkFMbUFFQUl3QkJFR3NpQXlRQUFrQWdCUkExUlFSQUlBQWdCU2dDQ0RZQ0NDQUFJQVVwQWdBM0FnQU1BUXNnQlNnQ0FDRUVBa0FDUUFKQUlBVW9BZ1FpQWtFQlRRUkFJQUFoQVNBQUlBSVFPZ3dCQ3lBQ1FlLy8vLzhEU3cwQklBQWdBQ0FDRUlJQlFRRnFJZ1VRZ1FFaUFSQk5JQUFnQlJCTUlBQWdBaEE1Q3lBQklBUWdBa0VCYWhCeERBRUxFQmNBQ3dzZ0EwRVFhaVFBQ3drQUlBQWdCUkRSQVF1R0F3RUlmeU1BUWZBRGF5SUFKQUFnQUVIb0Eyb2lCaUFERUE4Z0JoQTdJUW9nQlJBSkJFQWdCVUVBRUxFQktBSUFJQXBCTFJBOVJpRUxDeUFDSUFzZ0FFSG9BMm9nQUVIZ0Eyb2dBRUhjQTJvZ0FFSFlBMm9nQUVISUEyb1FFU0lNSUFCQnVBTnFFRWNpQmlBQVFhZ0RhaEJISWdjZ0FFR2tBMm9RbXdJZ0FFRTFOZ0lRSUFCQkNHcEJBQ0FBUVJCcUlnSVFIaUVJQWtBQ2Z5QUZFQWtnQUNnQ3BBTktCRUFnQlJBSklRa2dBQ2dDcEFNaERTQUhFQWtnQ1NBTmEwRUJkR29nQmhBSmFpQUFLQUtrQTJwQkFXb01BUXNnQnhBSklBWVFDV29nQUNnQ3BBTnFRUUpxQ3lJSlFlVUFTUTBBSUFnZ0NVRUNkQkFaRUNjZ0NDZ0NBQ0lDRFFBUUZ3QUxJQUlnQUVFRWFpQUFJQU1vQWdRZ0JSQU5JQVVRRFNBRkVBbEJBblJxSUFvZ0N5QUFRZUFEYWlBQUtBTGNBeUFBS0FMWUF5QU1JQVlnQnlBQUtBS2tBeENhQWlBQklBSWdBQ2dDQkNBQUtBSUFJQU1nQkJCaUlRRWdDQkFkSUFjUUNob2dCaEFLR2lBTUVBb2FJQUJCNkFOcUVBNGdBRUh3QTJva0FDQUJDN3NFQVF0L0l3QkJzQWhySWdBa0FDQUFJQVUzQXhBZ0FDQUdOd01ZSUFBZ0FFSEFCMm9pQnpZQ3ZBY2dCeUFBUVJCcUVOWUNJUWNnQUVFMU5nS2dCQ0FBUVpnRWFrRUFJQUJCb0FScUlna1FIaUVPSUFCQk5UWUNvQVFnQUVHUUJHcEJBQ0FKRUI0aENnSkFJQWRCNUFCUEJFQVFGaUVISUFBZ0JUY0RBQ0FBSUFZM0F3Z2dBRUc4QjJvZ0IwSHVIQ0FBRUZvaUIwRi9SZzBCSUE0Z0FDZ0N2QWNRSnlBS0lBZEJBblFRR1JBbklBb1FuZ0lOQVNBS0tBSUFJUWtMSUFCQmlBUnFJZ2dnQXhBUElBZ1FPeUlSSUFBb0Fyd0hJZ2dnQnlBSWFpQUpFR01nQjBFQVNnUkFJQUFvQXJ3SExRQUFRUzFHSVE4TElBSWdEeUFBUVlnRWFpQUFRWUFFYWlBQVFmd0RhaUFBUWZnRGFpQUFRZWdEYWhBUkloQWdBRUhZQTJvUVJ5SUlJQUJCeUFOcUVFY2lDeUFBUWNRRGFoQ2JBaUFBUVRVMkFqQWdBRUVvYWtFQUlBQkJNR29pQWhBZUlRd0NmeUFBS0FMRUF5SU5JQWRJQkVBZ0N4QUpJQWNnRFd0QkFYUnFJQWdRQ1dvZ0FDZ0N4QU5xUVFGcURBRUxJQXNRQ1NBSUVBbHFJQUFvQXNRRGFrRUNhZ3NpRFVIbEFFOEVRQ0FNSUExQkFuUVFHUkFuSUF3b0FnQWlBa1VOQVFzZ0FpQUFRU1JxSUFCQklHb2dBeWdDQkNBSklBa2dCMEVDZEdvZ0VTQVBJQUJCZ0FScUlBQW9BdndESUFBb0F2Z0RJQkFnQ0NBTElBQW9Bc1FERUpvQ0lBRWdBaUFBS0FJa0lBQW9BaUFnQXlBRUVHSWhBU0FNRUIwZ0N4QUtHaUFJRUFvYUlCQVFDaG9nQUVHSUJHb1FEaUFLRUIwZ0RoQWRJQUJCc0FocUpBQWdBUThMRUJjQUMvNENBUWgvSXdCQndBRnJJZ0FrQUNBQVFiZ0JhaUlHSUFNUUR5QUdFREloQ2lBRkVBa0VRQ0FGUVFBUUN5MEFBQ0FLUVMwUUtVSC9BWEZHSVFzTElBSWdDeUFBUWJnQmFpQUFRYkFCYWlBQVFhOEJhaUFBUWE0QmFpQUFRYUFCYWhBUklnd2dBRUdRQVdvUUVTSUdJQUJCZ0FGcUVCRWlCeUFBUWZ3QWFoQ2RBaUFBUVRVMkFoQWdBRUVJYWtFQUlBQkJFR29pQWhBZUlRZ0NRQUovSUFVUUNTQUFLQUo4U2dSQUlBVVFDU0VKSUFBb0Fud2hEU0FIRUFrZ0NTQU5hMEVCZEdvZ0JoQUphaUFBS0FKOGFrRUJhZ3dCQ3lBSEVBa2dCaEFKYWlBQUtBSjhha0VDYWdzaUNVSGxBRWtOQUNBSUlBa1FHUkFuSUFnb0FnQWlBZzBBRUJjQUN5QUNJQUJCQkdvZ0FDQURLQUlFSUFVUURTQUZFQTBnQlJBSmFpQUtJQXNnQUVHd0FXb2dBQ3dBcndFZ0FDd0FyZ0VnRENBR0lBY2dBQ2dDZkJDY0FpQUJJQUlnQUNnQ0JDQUFLQUlBSUFNZ0JCQldJUUVnQ0JBZElBY1FDaG9nQmhBS0dpQU1FQW9hSUFCQnVBRnFFQTRnQUVIQUFXb2tBQ0FCQzdJRUFRdC9Jd0JCMEFOcklnQWtBQ0FBSUFVM0F4QWdBQ0FHTndNWUlBQWdBRUhnQW1vaUJ6WUMzQUlnQnlBQVFSQnFFTllDSVFjZ0FFRTFOZ0x3QVNBQVFlZ0Jha0VBSUFCQjhBRnFJZ2tRSGlFT0lBQkJOVFlDOEFFZ0FFSGdBV3BCQUNBSkVCNGhDZ0pBSUFkQjVBQlBCRUFRRmlFSElBQWdCVGNEQUNBQUlBWTNBd2dnQUVIY0Ftb2dCMEh1SENBQUVGb2lCMEYvUmcwQklBNGdBQ2dDM0FJUUp5QUtJQWNRR1JBbklBb1FuZ0lOQVNBS0tBSUFJUWtMSUFCQjJBRnFJZ2dnQXhBUElBZ1FNaUlSSUFBb0F0d0NJZ2dnQnlBSWFpQUpFRzhnQjBFQVNnUkFJQUFvQXR3Q0xRQUFRUzFHSVE4TElBSWdEeUFBUWRnQmFpQUFRZEFCYWlBQVFjOEJhaUFBUWM0QmFpQUFRY0FCYWhBUkloQWdBRUd3QVdvUUVTSUlJQUJCb0FGcUVCRWlDeUFBUVp3QmFoQ2RBaUFBUVRVMkFqQWdBRUVvYWtFQUlBQkJNR29pQWhBZUlRd0NmeUFBS0FLY0FTSU5JQWRJQkVBZ0N4QUpJQWNnRFd0QkFYUnFJQWdRQ1dvZ0FDZ0NuQUZxUVFGcURBRUxJQXNRQ1NBSUVBbHFJQUFvQXB3QmFrRUNhZ3NpRFVIbEFFOEVRQ0FNSUEwUUdSQW5JQXdvQWdBaUFrVU5BUXNnQWlBQVFTUnFJQUJCSUdvZ0F5Z0NCQ0FKSUFjZ0NXb2dFU0FQSUFCQjBBRnFJQUFzQU04QklBQXNBTTRCSUJBZ0NDQUxJQUFvQXB3QkVKd0NJQUVnQWlBQUtBSWtJQUFvQWlBZ0F5QUVFRlloQVNBTUVCMGdDeEFLR2lBSUVBb2FJQkFRQ2hvZ0FFSFlBV29RRGlBS0VCMGdEaEFkSUFCQjBBTnFKQUFnQVE4TEVCY0FDNmNGQVFOL0l3QkJ3QU5ySWdBa0FDQUFJQUkyQXJBRElBQWdBVFlDdUFNZ0FFRTJOZ0lVSUFCQkdHb2dBRUVnYWlBQVFSUnFJZ2NRSGlFSklBQkJFR29pQVNBRUVBOGdBUkE3SVFnZ0FFRUFPZ0FQSUFCQnVBTnFJQUlnQXlBQklBUW9BZ1FnQlNBQVFROXFJQWdnQ1NBSElBQkJzQU5xRUtRQ0JFQWpBRUVRYXlJQkpBQUNRQ0FHRURVRVFDQUdLQUlBSVFJZ0FVRUFOZ0lNSUFJZ0FVRU1haEF6SUFaQkFCQTVEQUVMSUFGQkFEWUNDQ0FHSUFGQkNHb1FNeUFHUVFBUU9nc2dBVUVRYWlRQUlBQXRBQThFUUNBR0lBaEJMUkE5RU1jQkN5QUlRVEFRUFNFQklBa29BZ0FoQkNBQUtBSVVJZ2hCQkdzaEFnTkFBa0FnQWlBRVRRMEFJQVFvQWdBZ0FVY05BQ0FFUVFScUlRUU1BUXNMSXdCQkVHc2lBU1FBSUFZUUNTRUNJQVlRendFaEF3SkFJQVFnQ0JDaUFpSUhSUTBBSUFZUURTQUVUUVIvSUFRZ0JoQU5JQVlRQ1VFQ2RHcE5CVUVBQzBVRVFDQUhJQU1nQW10TEJFQWdCaUFESUFJZ0Iyb2dBMnNnQWlBQ0VQTUJDeUFHRUEwZ0FrRUNkR29oQXdOQUlBUWdDRWNFUUNBRElBUVFNeUFFUVFScUlRUWdBMEVFYWlFRERBRUxDeUFCUVFBMkFnQWdBeUFCRURNZ0JpQUNJQWRxRUhnTUFRc2pBRUVRYXlJQ0pBQWdBU0FFSUFnUXpnSWdBa0VRYWlRQUlBRVFEU0VJSUFFUUNTRUNJd0JCRUdzaUJDUUFBa0FnQWlBR0VNOEJJZ2NnQmhBSklnTnJUUVJBSUFKRkRRRWdCaEFOSWdjZ0EwRUNkR29nQ0NBQ0VIRWdCaUFDSUFOcUlnSVFlQ0FFUVFBMkFnd2dCeUFDUVFKMGFpQUVRUXhxRURNTUFRc2dCaUFISUFJZ0Eyb2dCMnNnQXlBRFFRQWdBaUFJRVBRQkN5QUVRUkJxSkFBZ0FSQUtHZ3NnQVVFUWFpUUFDeUFBUWJnRGFpQUFRYkFEYWhBb0JFQWdCU0FGS0FJQVFRSnlOZ0lBQ3lBQUtBSzRBeUVCSUFCQkVHb1FEaUFKRUIwZ0FFSEFBMm9rQUNBQkM5Y0RBUUovSXdCQjhBUnJJZ0FrQUNBQUlBSTJBdUFFSUFBZ0FUWUM2QVFnQUVFMk5nSVFJQUJCeUFGcUlBQkIwQUZxSUFCQkVHb1FIaUVCSUFCQndBRnFJZ2NnQkJBUElBY1FPeUVJSUFCQkFEb0F2d0VDUUNBQVFlZ0VhaUFDSUFNZ0J5QUVLQUlFSUFVZ0FFRy9BV29nQ0NBQklBQkJ4QUZxSUFCQjRBUnFFS1FDUlEwQUlBQkJveDRvQUFBMkFMY0JJQUJCbkI0cEFBQTNBN0FCSUFnZ0FFR3dBV29nQUVHNkFXb2dBRUdBQVdvUVl5QUFRVFUyQWhBZ0FFRUlha0VBSUFCQkVHb2lBaEFlSVFNQ1FDQUFLQUxFQVNBQktBSUFhMEdKQTA0RVFDQURJQUFvQXNRQklBRW9BZ0JyUVFKMVFRSnFFQmtRSnlBREtBSUFSUTBCSUFNb0FnQWhBZ3NnQUMwQXZ3RUVRQ0FDUVMwNkFBQWdBa0VCYWlFQ0N5QUJLQUlBSVFRRFFDQUFLQUxFQVNBRVRRUkFBa0FnQWtFQU9nQUFJQUFnQmpZQ0FDQUFRUkJxSUFBUTF3SkJBVWNOQUNBREVCME1CQXNGSUFJZ0FFR3dBV29nQUVHQUFXb2lCeUFIUVNocUlBUVEwZ0VnQjJ0QkFuVnFMUUFBT2dBQUlBSkJBV29oQWlBRVFRUnFJUVFNQVFzTEVCY0FDeEFYQUFzZ0FFSG9CR29nQUVIZ0JHb1FLQVJBSUFVZ0JTZ0NBRUVDY2pZQ0FBc2dBQ2dDNkFRaEFpQUFRY0FCYWhBT0lBRVFIU0FBUWZBRWFpUUFJQUlMcEFVQkEzOGpBRUdnQVdzaUFDUUFJQUFnQWpZQ2tBRWdBQ0FCTmdLWUFTQUFRVFkyQWhRZ0FFRVlhaUFBUVNCcUlBQkJGR29pQnhBZUlRa2dBRUVRYWlJQklBUVFEeUFCRURJaENDQUFRUUE2QUE4Z0FFR1lBV29nQWlBRElBRWdCQ2dDQkNBRklBQkJEMm9nQ0NBSklBY2dBRUdFQVdvUXF3SUVRQ01BUVJCcklnRWtBQUpBSUFZUU5RUkFJQVlvQWdBaEFpQUJRUUE2QUE4Z0FpQUJRUTlxRURRZ0JrRUFFRGtNQVFzZ0FVRUFPZ0FPSUFZZ0FVRU9haEEwSUFaQkFCQTZDeUFCUVJCcUpBQWdBQzBBRHdSQUlBWWdDRUV0RUNrUW9RRUxJQWhCTUJBcElRRWdDU2dDQUNFRUlBQW9BaFFpQ0VFQmF5RUNJQUZCL3dGeElRRURRQUpBSUFJZ0JFME5BQ0FFTFFBQUlBRkhEUUFnQkVFQmFpRUVEQUVMQ3lNQVFSQnJJZ0VrQUNBR0VBa2hBaUFHRUJNaEF3SkFJQVFnQ0JEdkFpSUhSUTBBSUFZUURTQUVUUVIvSUFRZ0JoQU5JQVlRQ1dwTkJVRUFDMFVFUUNBSElBTWdBbXRMQkVBZ0JpQURJQUlnQjJvZ0Eyc2dBaUFDRU1nQkN5QUdFQTBnQW1vaEF3TkFJQVFnQ0VjRVFDQURJQVFRTkNBRVFRRnFJUVFnQTBFQmFpRUREQUVMQ3lBQlFRQTZBQThnQXlBQlFROXFFRFFnQmlBQ0lBZHFFSGdNQVFzakFFRVFheUlDSkFBZ0FTQUVJQWdROHdJZ0FrRVFhaVFBSUFFUURTRUlJQUVRQ1NFQ0l3QkJFR3NpQkNRQUFrQWdBaUFHRUJNaUJ5QUdFQWtpQTJ0TkJFQWdBa1VOQVNBR0VBMGlCeUFEYWlBSUlBSVFWU0FHSUFJZ0Eyb2lBaEI0SUFSQkFEb0FEeUFDSUFkcUlBUkJEMm9RTkF3QkN5QUdJQWNnQWlBRGFpQUhheUFESUFOQkFDQUNJQWdRK0FFTElBUkJFR29rQUNBQkVBb2FDeUFCUVJCcUpBQUxJQUJCbUFGcUlBQkJrQUZxRUNZRVFDQUZJQVVvQWdCQkFuSTJBZ0FMSUFBb0FwZ0JJUUVnQUVFUWFoQU9JQWtRSFNBQVFhQUJhaVFBSUFFTHpRTUJBbjhqQUVHZ0Ftc2lBQ1FBSUFBZ0FqWUNrQUlnQUNBQk5nS1lBaUFBUVRZMkFoQWdBRUdZQVdvZ0FFR2dBV29nQUVFUWFoQWVJUUVnQUVHUUFXb2lCeUFFRUE4Z0J4QXlJUWdnQUVFQU9nQ1BBUUpBSUFCQm1BSnFJQUlnQXlBSElBUW9BZ1FnQlNBQVFZOEJhaUFJSUFFZ0FFR1VBV29nQUVHRUFtb1Fxd0pGRFFBZ0FFR2pIaWdBQURZQWh3RWdBRUdjSGlrQUFEY0RnQUVnQ0NBQVFZQUJhaUFBUVlvQmFpQUFRZllBYWhCdklBQkJOVFlDRUNBQVFRaHFRUUFnQUVFUWFpSUNFQjRoQXdKQUlBQW9BcFFCSUFFb0FnQnJRZU1BVGdSQUlBTWdBQ2dDbEFFZ0FTZ0NBR3RCQW1vUUdSQW5JQU1vQWdCRkRRRWdBeWdDQUNFQ0N5QUFMUUNQQVFSQUlBSkJMVG9BQUNBQ1FRRnFJUUlMSUFFb0FnQWhCQU5BSUFBb0FwUUJJQVJOQkVBQ1FDQUNRUUE2QUFBZ0FDQUdOZ0lBSUFCQkVHb2dBQkRYQWtFQlJ3MEFJQU1RSFF3RUN3VWdBaUFBUWZZQWFpSUhJQWRCQ21vZ0JCRFZBU0FBYXlBQWFpMEFDam9BQUNBQ1FRRnFJUUlnQkVFQmFpRUVEQUVMQ3hBWEFBc1FGd0FMSUFCQm1BSnFJQUJCa0FKcUVDWUVRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcGdDSVFJZ0FFR1FBV29RRGlBQkVCMGdBRUdnQW1va0FDQUNDNWdDQVFKL0l3QkJvQU5ySWdna0FDQUlJQWhCb0FOcUlnTTJBZ3dqQUVHUUFXc2lCeVFBSUFjZ0IwR0VBV28yQWh3Z0FFRUlhaUFIUVNCcUlnSWdCMEVjYWlBRUlBVWdCaEN4QWlBSFFnQTNBeEFnQnlBQ05nSU1JQWhCRUdvaUFpQUlLQUlNRUs0Q0lRUWdBQ2dDQ0NFRkl3QkJFR3NpQUNRQUlBQWdCVFlDRENBQVFRaHFJQUJCREdvUVVpRUZJQUlnQjBFTWFpQUVJQWRCRUdvUTBnSWhCQ0FGRUZFZ0FFRVFhaVFBSUFSQmYwWUVRQkFYQUFzZ0NDQUNJQVJCQW5ScU5nSU1JQWRCa0FGcUpBQWdDQ2dDRENFRUl3QkJFR3NpQUNRQUlBQWdBVFlDQ0FOQUlBSWdCRWNFUUNBQVFRaHFJQUlvQWdBUTl3SWdBa0VFYWlFQ0RBRUxDeUFBS0FJSUlRRWdBRUVRYWlRQUlBTWtBQ0FCQzRVQkFDTUFRWUFCYXlJQ0pBQWdBaUFDUWZRQWFqWUNEQ0FBUVFocUlBSkJFR29pQUNBQ1FReHFJQVFnQlNBR0VMRUNJQUFoQkNBQ0tBSU1JUU1qQUVFUWF5SUFKQUFnQUNBQk5nSUlBMEFnQXlBRVJ3UkFJQUJCQ0dvZ0JDd0FBQkQ0QWlBRVFRRnFJUVFNQVFzTElBQW9BZ2doQVNBQVFSQnFKQUFnQWtHQUFXb2tBQ0FCQytBTUFRRi9Jd0JCUUdvaUJ5UUFJQWNnQVRZQ09DQUVRUUEyQWdBZ0J5QURFQThnQnhBN0lRZ2dCeEFPQW44Q1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFaQndRQnJEamtBQVJjRUZ3VVhCZ2NYRnhjS0Z4Y1hGdzRQRUJjWEZ4TVZGeGNYRnhjWEZ3QUJBZ01ERnhjQkZ3Z1hGd2tMRnd3WERSY0xGeGNSRWhRV0N5QUFJQVZCR0dvZ0IwRTRhaUFDSUFRZ0NCQzFBZ3dZQ3lBQUlBVkJFR29nQjBFNGFpQUNJQVFnQ0JDMEFnd1hDeUFISUFBZ0FTQUNJQU1nQkNBRklBQkJDR29nQUNnQ0NDZ0NEQkVBQUNJQUVBMGdBQkFOSUFBUUNVRUNkR29RWURZQ09Bd1dDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkFFeHlJQUJCSDBweVJRUkFJQVVnQURZQ0RBd0JDeUFFSUFGQkJISTJBZ0FMREJVTElBZEJ1TkVBS1FNQU53TVlJQWRCc05FQUtRTUFOd01RSUFkQnFORUFLUU1BTndNSUlBZEJvTkVBS1FNQU53TUFJQWNnQUNBQklBSWdBeUFFSUFVZ0J5QUhRU0JxRUdBMkFqZ01GQXNnQjBIWTBRQXBBd0EzQXhnZ0IwSFEwUUFwQXdBM0F4QWdCMEhJMFFBcEF3QTNBd2dnQjBIQTBRQXBBd0EzQXdBZ0J5QUFJQUVnQWlBRElBUWdCU0FISUFkQklHb1FZRFlDT0F3VEN5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCRjBweVJRUkFJQVVnQURZQ0NBd0JDeUFFSUFGQkJISTJBZ0FMREJJTElBZEJPR29nQWlBRUlBaEJBaEJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVBVEhJZ0FFRU1TbkpGQkVBZ0JTQUFOZ0lJREFFTElBUWdBVUVFY2pZQ0FBc01FUXNnQjBFNGFpQUNJQVFnQ0VFREVGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFlMENTbkpGQkVBZ0JTQUFOZ0ljREFFTElBUWdBVUVFY2pZQ0FBc01FQXNnQjBFNGFpQUNJQVFnQ0VFQ0VGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFReEtja1VFUUNBRklBQkJBV3MyQWhBTUFRc2dCQ0FCUVFSeU5nSUFDd3dQQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJPMHB5UlFSQUlBVWdBRFlDQkF3QkN5QUVJQUZCQkhJMkFnQUxEQTRMSUFkQk9Hb2hBQ01BUVJCcklnRWtBQ0FCSUFJMkFnZ0RRQUpBSUFBZ0FVRUlhaEEyUlEwQUlBaEJnTUFBSUFBUUlSQk9SUTBBSUFBUUpSb01BUXNMSUFBZ0FVRUlhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFCUVJCcUpBQU1EUXNnQjBFNGFpRUJBa0FnQUVFSWFpQUFLQUlJS0FJSUVRQUFJZ0FRQ1VFQUlBQkJER29RQ1d0R0JFQWdCQ0FFS0FJQVFRUnlOZ0lBREFFTElBRWdBaUFBSUFCQkdHb2dDQ0FFUVFBUXNnRWdBR3NpQVNBRktBSUlJZ0JCREVkeVJRUkFJQVZCQURZQ0NBd0JDeUFCUVF4SElBQkJDMHB5UlFSQUlBVWdBRUVNYWpZQ0NBc0xEQXdMSUFkQjRORUFRU3dRUWlJR0lBQWdBU0FDSUFNZ0JDQUZJQVlnQmtFc2FoQmdOZ0k0REFzTElBZEJvTklBS0FJQU5nSVFJQWRCbU5JQUtRTUFOd01JSUFkQmtOSUFLUU1BTndNQUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQnlBSFFSUnFFR0EyQWpnTUNnc2dCMEU0YWlBQ0lBUWdDRUVDRUZnaEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR4S2NrVUVRQ0FGSUFBMkFnQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3SkN5QUhRY2pTQUNrREFEY0RHQ0FIUWNEU0FDa0RBRGNERUNBSFFialNBQ2tEQURjRENDQUhRYkRTQUNrREFEY0RBQ0FISUFBZ0FTQUNJQU1nQkNBRklBY2dCMEVnYWhCZ05nSTREQWdMSUFkQk9Hb2dBaUFFSUFoQkFSQllJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUdTbkpGQkVBZ0JTQUFOZ0lZREFFTElBUWdBVUVFY2pZQ0FBc01Cd3NnQUNBQklBSWdBeUFFSUFVZ0FDZ0NBQ2dDRkJFRkFBd0hDeUFISUFBZ0FTQUNJQU1nQkNBRklBQkJDR29nQUNnQ0NDZ0NHQkVBQUNJQUVBMGdBQkFOSUFBUUNVRUNkR29RWURZQ09Bd0ZDeUFGUVJScUlBZEJPR29nQWlBRUlBZ1Fzd0lNQkFzZ0IwRTRhaUFDSUFRZ0NFRUVFRmdoQUNBRUxRQUFRUVJ4UlFSQUlBVWdBRUhzRG1zMkFoUUxEQU1MSUFaQkpVWU5BUXNnQkNBRUtBSUFRUVJ5TmdJQURBRUxJd0JCRUdzaUFDUUFJQUFnQWpZQ0NFRUdJUUVDUUFKQUlBZEJPR29pQWlBQVFRaHFFQ2dOQUVFRUlRRWdDQ0FDRUNFUWh3RkJKVWNOQUVFQ0lRRWdBaEFsSUFCQkNHb1FLRVVOQVFzZ0JDQUVLQUlBSUFGeU5nSUFDeUFBUVJCcUpBQUxJQWNvQWpnTElRQWdCMEZBYXlRQUlBQUxSd0VCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEE3SVFFZ0JoQU9JQVZCRkdvZ0JrRUlhaUFDSUFRZ0FSQ3pBaUFHS0FJSUlRQWdCa0VRYWlRQUlBQUxTUUVCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEE3SVFFZ0JoQU9JQUFnQlVFUWFpQUdRUWhxSUFJZ0JDQUJFTFFDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXRKQVFGL0l3QkJFR3NpQmlRQUlBWWdBVFlDQ0NBR0lBTVFEeUFHRURzaEFTQUdFQTRnQUNBRlFSaHFJQVpCQ0dvZ0FpQUVJQUVRdFFJZ0JpZ0NDQ0VBSUFaQkVHb2tBQ0FBQ3pBQUlBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDRkJFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlBdGNBUUYvSXdCQklHc2lCaVFBSUFaQnlOSUFLUU1BTndNWUlBWkJ3TklBS1FNQU53TVFJQVpCdU5JQUtRTUFOd01JSUFaQnNOSUFLUU1BTndNQUlBQWdBU0FDSUFNZ0JDQUZJQVlnQmtFZ2FpSUJFR0FoQUNBQkpBQWdBQXRNQVFGL1FjU0JBVUhBZ1FFZ0Foc2dBVFlDQUNBQlFRQktCRUJCb0lFQlFZQ0JBU0FDR3lFRFFRQWhBZ05BSUFJZ0Eyb2dBQ0FDYWkwQUFEb0FBQ0FDUVFGcUlnSWdBVWNOQUFzTEM1QU1BUUovSXdCQklHc2lCeVFBSUFjZ0FUWUNHQ0FFUVFBMkFnQWdCMEVJYWlJSklBTVFEeUFKRURJaENDQUpFQTRDZndKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQmtIQkFHc09PUUFCRndRWEJSY0dCeGNYRndvWEZ4Y1hEZzhRRnhjWEV4VVhGeGNYRnhjWEFBRUNBd01YRndFWENCY1hDUXNYREJjTkZ3c1hGeEVTRkJZTElBQWdCVUVZYWlBSFFSaHFJQUlnQkNBSUVMZ0NEQmdMSUFBZ0JVRVFhaUFIUVJocUlBSWdCQ0FJRUxjQ0RCY0xJQWNnQUNBQklBSWdBeUFFSUFVZ0FFRUlhaUFBS0FJSUtBSU1FUUFBSWdBUURTQUFFQTBnQUJBSmFoQmhOZ0lZREJZTElBZEJHR29nQWlBRUlBaEJBaEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVBVEhJZ0FFRWZTbkpGQkVBZ0JTQUFOZ0lNREFFTElBUWdBVUVFY2pZQ0FBc01GUXNnQjBLbDJyMnB3dXpMa3ZrQU53TUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVJCcUVHRTJBaGdNRkFzZ0IwS2xzcldwMHEzTGt1UUFOd01JSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFSQnFFR0UyQWhnTUV3c2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVJkS2NrVUVRQ0FGSUFBMkFnZ01BUXNnQkNBQlFRUnlOZ0lBQ3d3U0N5QUhRUmhxSUFJZ0JDQUlRUUlRV1NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCQUV4eUlBQkJERXB5UlFSQUlBVWdBRFlDQ0F3QkN5QUVJQUZCQkhJMkFnQUxEQkVMSUFkQkdHb2dBaUFFSUFoQkF4QlpJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFSHRBa3B5UlFSQUlBVWdBRFlDSEF3QkN5QUVJQUZCQkhJMkFnQUxEQkFMSUFkQkdHb2dBaUFFSUFoQkFoQlpJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRU1TbkpGQkVBZ0JTQUFRUUZyTmdJUURBRUxJQVFnQVVFRWNqWUNBQXNNRHdzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRVHRLY2tVRVFDQUZJQUEyQWdRTUFRc2dCQ0FCUVFSeU5nSUFDd3dPQ3lBSFFSaHFJUUFqQUVFUWF5SUJKQUFnQVNBQ05nSUlBMEFDUUNBQUlBRkJDR29RTVVVTkFDQUlRWURBQUNBQUVCOFFSRVVOQUNBQUVDSWFEQUVMQ3lBQUlBRkJDR29RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQVVFUWFpUUFEQTBMSUFkQkdHb2hBUUpBSUFCQkNHb2dBQ2dDQ0NnQ0NCRUFBQ0lBRUFsQkFDQUFRUXhxRUFsclJnUkFJQVFnQkNnQ0FFRUVjallDQUF3QkN5QUJJQUlnQUNBQVFSaHFJQWdnQkVFQUVMUUJJQUJySWdFZ0JTZ0NDQ0lBUVF4SGNrVUVRQ0FGUVFBMkFnZ01BUXNnQVVFTVJ5QUFRUXRLY2tVRVFDQUZJQUJCREdvMkFnZ0xDd3dNQ3lBSFFaVFJBQ2dBQURZQUR5QUhRWTNSQUNrQUFEY0RDQ0FISUFBZ0FTQUNJQU1nQkNBRklBZEJDR29nQjBFVGFoQmhOZ0lZREFzTElBZEJuTkVBTFFBQU9nQU1JQWRCbU5FQUtBQUFOZ0lJSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFRMXFFR0UyQWhnTUNnc2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR4S2NrVUVRQ0FGSUFBMkFnQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3SkN5QUhRcVdRNmFuU3ljNlMwd0EzQXdnZ0J5QUFJQUVnQWlBRElBUWdCU0FIUVFocUlBZEJFR29RWVRZQ0dBd0lDeUFIUVJocUlBSWdCQ0FJUVFFUVdTRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkJrcHlSUVJBSUFVZ0FEWUNHQXdCQ3lBRUlBRkJCSEkyQWdBTERBY0xJQUFnQVNBQ0lBTWdCQ0FGSUFBb0FnQW9BaFFSQlFBTUJ3c2dCeUFBSUFFZ0FpQURJQVFnQlNBQVFRaHFJQUFvQWdnb0FoZ1JBQUFpQUJBTklBQVFEU0FBRUFscUVHRTJBaGdNQlFzZ0JVRVVhaUFIUVJocUlBSWdCQ0FJRUxZQ0RBUUxJQWRCR0dvZ0FpQUVJQWhCQkJCWklRQWdCQzBBQUVFRWNVVUVRQ0FGSUFCQjdBNXJOZ0lVQ3d3REN5QUdRU1ZHRFFFTElBUWdCQ2dDQUVFRWNqWUNBQXdCQ3lNQVFSQnJJZ0FrQUNBQUlBSTJBZ2hCQmlFQkFrQUNRQ0FIUVJocUlnSWdBRUVJYWhBbURRQkJCQ0VCSUFnZ0FoQWZFSWdCUVNWSERRQkJBaUVCSUFJUUlpQUFRUWhxRUNaRkRRRUxJQVFnQkNnQ0FDQUJjallDQUFzZ0FFRVFhaVFBQ3lBSEtBSVlDeUVBSUFkQklHb2tBQ0FBQzBjQkFYOGpBRUVRYXlJR0pBQWdCaUFCTmdJSUlBWWdBeEFQSUFZUU1pRUJJQVlRRGlBRlFSUnFJQVpCQ0dvZ0FpQUVJQUVRdGdJZ0JpZ0NDQ0VBSUFaQkVHb2tBQ0FBQzBrQkFYOGpBRUVRYXlJR0pBQWdCaUFCTmdJSUlBWWdBeEFQSUFZUU1pRUJJQVlRRGlBQUlBVkJFR29nQmtFSWFpQUNJQVFnQVJDM0FpQUdLQUlJSVFBZ0JrRVFhaVFBSUFBTFNRRUJmeU1BUVJCcklnWWtBQ0FHSUFFMkFnZ2dCaUFERUE4Z0JoQXlJUUVnQmhBT0lBQWdCVUVZYWlBR1FRaHFJQUlnQkNBQkVMZ0NJQVlvQWdnaEFDQUdRUkJxSkFBZ0FBc3RBQ0FBSUFFZ0FpQURJQVFnQlNBQVFRaHFJQUFvQWdnb0FoUVJBQUFpQUJBTklBQVFEU0FBRUFscUVHRUxQd0VCZnlNQVFSQnJJZ1lrQUNBR1FxV1E2YW5TeWM2UzB3QTNBd2dnQUNBQklBSWdBeUFFSUFVZ0JrRUlhaUFHUVJCcUlnRVFZU0VBSUFFa0FDQUFDNjRCQVFWL0l3QkIwQUZySWdBa0FDQUFRWXZSQUM4QUFEc0J6QUVnQUVHSDBRQW9BQUEyQXNnQkVCWWhCaUFBSUFRMkFnQWdBRUd3QVdvaUJ5QUhJQWRCRkNBR0lBQkJ5QUZxSUFBUUxDSUlhaUlFSUFJUVB5RUdJQUJCRUdvaUJTQUNFQThnQlJBN0lRa2dCUkFPSUFrZ0J5QUVJQVVRWXlBQklBVWdDRUVDZENBRmFpSUJJQVlnQUd0QkFuUWdBR3BCc0FWcklBUWdCa1liSUFFZ0FpQURFR0loQVNBQVFkQUJhaVFBSUFFTGdBUUJCMzhqQUVHd0Eyc2lBQ1FBSUFCQ0pUY0RxQU1nQUVHb0EycEJBWEpCang0Z0FpZ0NCQkN2QVNFSUlBQWdBRUdBQTJvMkF2d0NFQlloQmdKL0lBZ0VRQ0FDS0FJSUlRY2dBRUZBYXlBRk53TUFJQUFnQkRjRE9DQUFJQWMyQWpBZ0FFR0FBMnBCSGlBR0lBQkJxQU5xSUFCQk1Hb1FMQXdCQ3lBQUlBUTNBMUFnQUNBRk53TllJQUJCZ0FOcVFSNGdCaUFBUWFnRGFpQUFRZEFBYWhBc0N5RUdJQUJCTlRZQ2dBRWdBRUh3QW1wQkFDQUFRWUFCYWhBZUlRa2dBRUdBQTJvaUNpRUhBa0FnQmtFZVRnUkFFQlloQmdKL0lBZ0VRQ0FDS0FJSUlRY2dBQ0FGTndNUUlBQWdCRGNEQ0NBQUlBYzJBZ0FnQUVIOEFtb2dCaUFBUWFnRGFpQUFFRm9NQVFzZ0FDQUVOd01nSUFBZ0JUY0RLQ0FBUWZ3Q2FpQUdJQUJCcUFOcUlBQkJJR29RV2dzaUJrRi9SZzBCSUFrZ0FDZ0MvQUlRSnlBQUtBTDhBaUVIQ3lBSElBWWdCMm9pQ3lBQ0VEOGhEQ0FBUVRVMkFvQUJJQUJCK0FCcVFRQWdBRUdBQVdvUUhpRUhBa0FnQUNnQy9BSWdBRUdBQTJwR0JFQWdBRUdBQVdvaEJnd0JDeUFHUVFOMEVCa2lCa1VOQVNBSElBWVFKeUFBS0FMOEFpRUtDeUFBUWVnQWFpSUlJQUlRRHlBS0lBd2dDeUFHSUFCQjlBQnFJQUJCOEFCcUlBZ1F1Z0lnQ0JBT0lBRWdCaUFBS0FKMElBQW9BbkFnQWlBREVHSWhBU0FIRUIwZ0NSQWRJQUJCc0FOcUpBQWdBUThMRUJjQUM5d0RBUWQvSXdCQmdBTnJJZ0FrQUNBQVFpVTNBL2dDSUFCQitBSnFRUUZ5UWFRZklBSW9BZ1FRcndFaEJ5QUFJQUJCMEFKcU5nTE1BaEFXSVFVQ2Z5QUhCRUFnQWlnQ0NDRUdJQUFnQkRrREtDQUFJQVkyQWlBZ0FFSFFBbXBCSGlBRklBQkIrQUpxSUFCQklHb1FMQXdCQ3lBQUlBUTVBekFnQUVIUUFtcEJIaUFGSUFCQitBSnFJQUJCTUdvUUxBc2hCU0FBUVRVMkFsQWdBRUhBQW1wQkFDQUFRZEFBYWhBZUlRZ2dBRUhRQW1vaUNTRUdBa0FnQlVFZVRnUkFFQlloQlFKL0lBY0VRQ0FDS0FJSUlRWWdBQ0FFT1FNSUlBQWdCallDQUNBQVFjd0NhaUFGSUFCQitBSnFJQUFRV2d3QkN5QUFJQVE1QXhBZ0FFSE1BbW9nQlNBQVFmZ0NhaUFBUVJCcUVGb0xJZ1ZCZjBZTkFTQUlJQUFvQXN3Q0VDY2dBQ2dDekFJaEJnc2dCaUFGSUFacUlnb2dBaEEvSVFzZ0FFRTFOZ0pRSUFCQnlBQnFRUUFnQUVIUUFHb1FIaUVHQWtBZ0FDZ0N6QUlnQUVIUUFtcEdCRUFnQUVIUUFHb2hCUXdCQ3lBRlFRTjBFQmtpQlVVTkFTQUdJQVVRSnlBQUtBTE1BaUVKQ3lBQVFUaHFJZ2NnQWhBUElBa2dDeUFLSUFVZ0FFSEVBR29nQUVGQWF5QUhFTG9DSUFjUURpQUJJQVVnQUNnQ1JDQUFLQUpBSUFJZ0F4QmlJUUVnQmhBZElBZ1FIU0FBUVlBRGFpUUFJQUVQQ3hBWEFBdWlBUUVFZnlNQVFZQUNheUlBSkFBZ0FFSWxOd1A0QVNBQVFmZ0JhaUlHUVFGeVFkTWNRUUFnQWlnQ0JCQnRFQlloQnlBQUlBUTNBd0FnQUVIZ0FXb2lCU0FGUVJnZ0J5QUdJQUFRTENBRmFpSUhJQUlRUHlFSUlBQkJFR29pQmlBQ0VBOGdCU0FJSUFjZ0FFRWdhaUlGSUFCQkhHb2dBRUVZYWlBR0VLNEJJQVlRRGlBQklBVWdBQ2dDSENBQUtBSVlJQUlnQXhCaUlRRWdBRUdBQW1va0FDQUJDN1FCQVFOL0l3QkJvQUZySWdBa0FDQUFRWVhSQUM4QUFEc0JuQUVnQUVHQjBRQW9BQUEyQXBnQklBQkJtQUZxSWdWQkFYSkIyaHhCQUNBQ0tBSUVFRzBRRmlFR0lBQWdCRFlDQUNBQVFZc0JhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFyZ0VnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVHSWhBU0FBUWFBQmFpUUFJQUVMb2dFQkJIOGpBRUdBQW1zaUFDUUFJQUJDSlRjRCtBRWdBRUg0QVdvaUJrRUJja0hUSEVFQklBSW9BZ1FRYlJBV0lRY2dBQ0FFTndNQUlBQkI0QUZxSWdVZ0JVRVlJQWNnQmlBQUVDd2dCV29pQnlBQ0VEOGhDQ0FBUVJCcUlnWWdBaEFQSUFVZ0NDQUhJQUJCSUdvaUJTQUFRUnhxSUFCQkdHb2dCaEN1QVNBR0VBNGdBU0FGSUFBb0Fod2dBQ2dDR0NBQ0lBTVFZaUVCSUFCQmdBSnFKQUFnQVFzV0FFR2dnUUZCeElFQktBSUFJQUlnQUNBQkVPWUJDN1FCQVFOL0l3QkJvQUZySWdBa0FDQUFRWVhSQUM4QUFEc0JuQUVnQUVHQjBRQW9BQUEyQXBnQklBQkJtQUZxSWdWQkFYSkIyaHhCQVNBQ0tBSUVFRzBRRmlFR0lBQWdCRFlDQUNBQVFZc0JhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFyZ0VnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVHSWhBU0FBUWFBQmFpUUFJQUVMelFFQkFYOGpBRUV3YXlJRkpBQWdCU0FCTmdJb0FrQWdBaWdDQkVFQmNVVUVRQ0FBSUFFZ0FpQURJQVFnQUNnQ0FDZ0NHQkVHQUNFQ0RBRUxJQVZCR0dvaUFDQUNFQThnQUJDTUFTRUJJQUFRRGdKQUlBUUVRQ0FGUVJocUlBRVFTd3dCQ3lBRlFSaHFJQUVRU2dzZ0JTQUZRUmhxRUVBMkFoQURRQ0FGSUFWQkdHb1FiRFlDQ0NBRlFSQnFJQVZCQ0dvUVd3UkFJQVZCS0dvZ0JVRVFhaUlBS0FJQUtBSUFFUGNDSUFBUWxRRU1BUVVnQlNnQ0tDRUNJQVZCR0dvUUNob0xDd3NnQlVFd2FpUUFJQUlMcEFFQkJYOGpBRUhnQUdzaUFDUUFJQUJCaTlFQUx3QUFPd0ZjSUFCQmg5RUFLQUFBTmdKWUVCWWhCaUFBSUFRMkFnQWdBRUZBYXlJSElBY2dCMEVVSUFZZ0FFSFlBR29nQUJBc0lnaHFJZ1FnQWhBL0lRWWdBRUVRYWlJRklBSVFEeUFGRURJaENTQUZFQTRnQ1NBSElBUWdCUkJ2SUFFZ0JTQUZJQWhxSWdFZ0JpQUFheUFBYWtFd2F5QUVJQVpHR3lBQklBSWdBeEJXSVFFZ0FFSGdBR29rQUNBQkM0QUVBUWQvSXdCQmdBSnJJZ0FrQUNBQVFpVTNBL2dCSUFCQitBRnFRUUZ5UVk4ZUlBSW9BZ1FRcndFaENDQUFJQUJCMEFGcU5nTE1BUkFXSVFZQ2Z5QUlCRUFnQWlnQ0NDRUhJQUJCUUdzZ0JUY0RBQ0FBSUFRM0F6Z2dBQ0FITmdJd0lBQkIwQUZxUVI0Z0JpQUFRZmdCYWlBQVFUQnFFQ3dNQVFzZ0FDQUVOd05RSUFBZ0JUY0RXQ0FBUWRBQmFrRWVJQVlnQUVINEFXb2dBRUhRQUdvUUxBc2hCaUFBUVRVMkFvQUJJQUJCd0FGcVFRQWdBRUdBQVdvUUhpRUpJQUJCMEFGcUlnb2hCd0pBSUFaQkhrNEVRQkFXSVFZQ2Z5QUlCRUFnQWlnQ0NDRUhJQUFnQlRjREVDQUFJQVEzQXdnZ0FDQUhOZ0lBSUFCQnpBRnFJQVlnQUVINEFXb2dBQkJhREFFTElBQWdCRGNESUNBQUlBVTNBeWdnQUVITUFXb2dCaUFBUWZnQmFpQUFRU0JxRUZvTElnWkJmMFlOQVNBSklBQW9Bc3dCRUNjZ0FDZ0N6QUVoQndzZ0J5QUdJQWRxSWdzZ0FoQS9JUXdnQUVFMU5nS0FBU0FBUWZnQWFrRUFJQUJCZ0FGcUVCNGhCd0pBSUFBb0Fzd0JJQUJCMEFGcVJnUkFJQUJCZ0FGcUlRWU1BUXNnQmtFQmRCQVpJZ1pGRFFFZ0J5QUdFQ2NnQUNnQ3pBRWhDZ3NnQUVIb0FHb2lDQ0FDRUE4Z0NpQU1JQXNnQmlBQVFmUUFhaUFBUWZBQWFpQUlFTHdDSUFnUURpQUJJQVlnQUNnQ2RDQUFLQUp3SUFJZ0F4QldJUUVnQnhBZElBa1FIU0FBUVlBQ2FpUUFJQUVQQ3hBWEFBdmNBd0VIZnlNQVFkQUJheUlBSkFBZ0FFSWxOd1BJQVNBQVFjZ0Jha0VCY2tHa0h5QUNLQUlFRUs4QklRY2dBQ0FBUWFBQmFqWUNuQUVRRmlFRkFuOGdCd1JBSUFJb0FnZ2hCaUFBSUFRNUF5Z2dBQ0FHTmdJZ0lBQkJvQUZxUVI0Z0JTQUFRY2dCYWlBQVFTQnFFQ3dNQVFzZ0FDQUVPUU13SUFCQm9BRnFRUjRnQlNBQVFjZ0JhaUFBUVRCcUVDd0xJUVVnQUVFMU5nSlFJQUJCa0FGcVFRQWdBRUhRQUdvUUhpRUlJQUJCb0FGcUlna2hCZ0pBSUFWQkhrNEVRQkFXSVFVQ2Z5QUhCRUFnQWlnQ0NDRUdJQUFnQkRrRENDQUFJQVkyQWdBZ0FFR2NBV29nQlNBQVFjZ0JhaUFBRUZvTUFRc2dBQ0FFT1FNUUlBQkJuQUZxSUFVZ0FFSElBV29nQUVFUWFoQmFDeUlGUVg5R0RRRWdDQ0FBS0FLY0FSQW5JQUFvQXB3QklRWUxJQVlnQlNBR2FpSUtJQUlRUHlFTElBQkJOVFlDVUNBQVFjZ0Fha0VBSUFCQjBBQnFFQjRoQmdKQUlBQW9BcHdCSUFCQm9BRnFSZ1JBSUFCQjBBQnFJUVVNQVFzZ0JVRUJkQkFaSWdWRkRRRWdCaUFGRUNjZ0FDZ0NuQUVoQ1FzZ0FFRTRhaUlISUFJUUR5QUpJQXNnQ2lBRklBQkJ4QUJxSUFCQlFHc2dCeEM4QWlBSEVBNGdBU0FGSUFBb0FrUWdBQ2dDUUNBQ0lBTVFWaUVCSUFZUUhTQUlFQjBnQUVIUUFXb2tBQ0FCRHdzUUZ3QUxvUUVCQkg4akFFSHdBR3NpQUNRQUlBQkNKVGNEYUNBQVFlZ0FhaUlHUVFGeVFkTWNRUUFnQWlnQ0JCQnRFQlloQnlBQUlBUTNBd0FnQUVIUUFHb2lCU0FGUVJnZ0J5QUdJQUFRTENBRmFpSUhJQUlRUHlFSUlBQkJFR29pQmlBQ0VBOGdCU0FJSUFjZ0FFRWdhaUlGSUFCQkhHb2dBRUVZYWlBR0VMQUJJQVlRRGlBQklBVWdBQ2dDSENBQUtBSVlJQUlnQXhCV0lRRWdBRUh3QUdva0FDQUJDN0VCQVFOL0l3QkIwQUJySWdBa0FDQUFRWVhSQUM4QUFEc0JUQ0FBUVlIUkFDZ0FBRFlDU0NBQVFjZ0FhaUlGUVFGeVFkb2NRUUFnQWlnQ0JCQnRFQlloQmlBQUlBUTJBZ0FnQUVFN2FpSUVJQVJCRFNBR0lBVWdBQkFzSUFScUlnWWdBaEEvSVFjZ0FFRVFhaUlGSUFJUUR5QUVJQWNnQmlBQVFTQnFJZ1FnQUVFY2FpQUFRUmhxSUFVUXNBRWdCUkFPSUFFZ0JDQUFLQUljSUFBb0FoZ2dBaUFERUZZaEFTQUFRZEFBYWlRQUlBRUxvUUVCQkg4akFFSHdBR3NpQUNRQUlBQkNKVGNEYUNBQVFlZ0FhaUlHUVFGeVFkTWNRUUVnQWlnQ0JCQnRFQlloQnlBQUlBUTNBd0FnQUVIUUFHb2lCU0FGUVJnZ0J5QUdJQUFRTENBRmFpSUhJQUlRUHlFSUlBQkJFR29pQmlBQ0VBOGdCU0FJSUFjZ0FFRWdhaUlGSUFCQkhHb2dBRUVZYWlBR0VMQUJJQVlRRGlBQklBVWdBQ2dDSENBQUtBSVlJQUlnQXhCV0lRRWdBRUh3QUdva0FDQUJDKzBSQVE1L0l3QkJ3QUpySWdZa0FDQUdJQUVnQWtFQkVOb0NOZ0tVQWlBR0lBWW9BcFFDRUpJQk5nS1lBa0dqK0lhcmYwR2NsTUxsZlNBRUd5RU9JQUJGSVE5QnNaZlh1bm9oQVFOQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUVpQUVId3V0N2VBVXdFUUNBQVFjaXl0ZEo3VEFSQUlBQkJ4c3VyaUhwTUJFQWdBRUh0NUxHamVFWU5DeUFBUVl5R3A3eDVSZzBLSUFCQmw4emc5WGxIRFJJZ0JpZ0N0QUpCZ0lFQmFpQUdMUUNmQWpvQUFFR1hyTXdwSVFFTUVnc2dBRUd4bDllNmVrWU5BaUFBUWV5WnB1SjZSZzBMSUFCQng4dXJpSHBIRFJFZ0JrSEFBbW9rQUE4TElBQkI5TGUxNG41TUJFQWdBRUhKc3JYU2UwWU5CQ0FBUVp5VXd1VjlSZzBHSUFCQmpQeXJ4SDVIRFJFTUVBc2dBRUgxdDdYaWZrWU5CQ0FBUWFQNGhxdC9SZzBHSUFCQmw2ek1LVWNORUNBR0tBSzBBa0VCYWlFTlFZUzE0OFVISVFFTUVBc2dBRUd1MDh6REJVd0VRQ0FBUWZUSHZ0Z0NUQVJBSUE0aEFTQUFRZkc2M3Q0QlJnMFJJQUFoQVNBQVFlUDJycDRDUncwUklBWkJvQUZxRUFvYUlBWW9BcUFDR2d3UUN5QUFRZlhIdnRnQ1JnME1JQUJCME9EVmh3TkdEUWNnQUVIazNmTzNCRWNORUNBR0tBSzBBa0dnZ1FGcUlBWXRBSjhDT2dBQVFaZXN6Q2toQVF3UUN5QUFRZHlBaExNR1RBUkFJQUJCcjlQTXd3VkdEUXNnQUVHMDI1SE1CVVlORGlBQVFaWGcrTjRGUncwUVFjU0JBU0FETmdJQVFmRzYzdDRCSVFFTUVBc2dBRUhkZ0lTekJrWU5EQ0FBUWRYZndmTUdSZzBCSUFCQmhMWGp4UWRIRFE4Z0JpQU5OZ0swQWtHTWhxZThlVUdNL0t2RWZpQUdLQUswQWlBRFNCc2hBUXdQQzBFQUlRY2dCaUFFUVFCS09nQ2RBa0hWMzhIekJrSEpzclhTZXlBR0xRQ2RBa0VCY1JzaEFTQUdLQUtVQWlFS0RBNExJQVpCaUFKcUlBWW9BcFFDRUZRaUVDRUtRUUFoQ0VFQUlRa2pBRUVRYXlJQkpBQWdDaEFKSVFzakFFRVFheUlISkFBZ0JrSDRBV29pQUVJQU53SUFJQWRCQURZQ0RDQUFRUWhxSUFkQkRHb1F6UUVnQjBFUWFpUUFBa0FnQzBVTkFBTkFBa0FnQ2lBSkVBc3RBQUJCUFVZTkFDQUtJQWtRQ3kwQUFDSUhRU3RHSUFkQklISkI0UUJyUVJwSkJIOUJBUVVnQnhCRlFRQkhDMEVBUjNJZ0IwRXZSbkpGRFFBZ0MwRUJheUVMSUFGQkRHb2dDR29nQ2lBSkVBc3RBQUE2QUFCQkFDRUhJQWhCQVdvaUNFRUVSZ1JBQTBBZ0FVRU1haUFIYWlJSUlBZ3NBQUFROVFFNkFBQWdCMEVCYWlJSFFRUkhEUUFMSUFFZ0FTMEFEeUFCTFFBT0lnZEJCblJxT2dBTElBRWdBUzBBRFNJSVFRUjJRUU54SUFFdEFBeEJBblJ5T2dBSklBRWdCMEVDZGtFUGNTQUlRUVIwY2pvQUNrRUFJUWhCQUNFSEEwQWdBQ0FCUVFscUlBZHFFUFFDSUFkQkFXb2lCMEVEUncwQUN3c2dDVUVCYWlFSklBc05BUXNMSUFoRkRRQWdDRUVEVEFSQUlBRkJER29nQ0dwQkFFRUVJQWhyRUVZYUMwRUFJUWNEUUNBQlFReHFJQWRxSWdrZ0NTd0FBQkQxQVRvQUFDQUhRUUZxSWdkQkJFY05BQXNnQVNBQkxRQVBJQUV0QUE0aUIwRUdkR282QUFzZ0FTQUJMUUFOSWdsQkJIWkJBM0VnQVMwQURFRUNkSEk2QUFrZ0FTQUhRUUoyUVE5eElBbEJCSFJ5T2dBS0lBaEJBa2dOQUNBSVFRRnJJUWhCQUNFSEEwQWdBQ0FCUVFscUlBZHFFUFFDSUFkQkFXb2lCeUFJUncwQUN3c2dBVUVRYWlRQUlBQVFpUUVoRVNBQUtBSUFJUXdnQmtHdEh5Z0FBRFlDOEFFZ0JrR2xIeWtBQURjRDZBRWdCa0lBTndQWUFTQUdRZ0EzQTlBQklBWkNBRGNEeUFFZ0JrSUFOd1BBQVNBR1FnQTNBN2dCSUFaQ0FEY0RzQUVnQUJDSkFTRUxJQVpCc0FGcUlRb2pBRUV3YXlJQkpBQWdBVUVnYWlFSUlBVWdCQkMrQWlJSEJFQWdDRUlBTndBQUlBaENBRGNBQ0NBSElBZ2dDQkNuQVFzZ0JrRy9BbW9oRWlBR1FkQUJhaUVUSUFjRWZ5TUFRUkJySWdra0FDQUJRUkJxSWdnZ0Jpa0E2QUUzQUFBZ0NDQUdLQUR3QVRZQUNDQUlRWUNBZ0FnMkFBd2dDVUVRYWlRQUl3QkJFR3NpQ1NRQUlBc0VRQ0FKSUFncEFBQTNBd0FnQ1NBSUtRQUlOd01JSUFrUTZ3RWdCeUFKSUF3Z0N5QUtFSVVDQ3lBSlFSQnFKQUFqQUVFUWF5SUpKQUFnQVVJQU53QUFJQUZDQURjQUNDQUJRU0JxSWd3Z0VrRUFJQUVRdndFZ0RDQUtJQXNnQVJDL0FTQUpRZ0FRN1FFZ0NVRUljaUFMUVFOMHJSRHRBU0FNSUFsQkVDQUJFTDhCSUFsQkVHb2tBQ0FISUFnZ0FVRVFJQk1RaFFJZ0J4QVFRUUFGUVg4TEdpQUJRVEJxSkFBZ0FCRHRBaUFBS0FJQUJFQWdBQ2dDQkNJQklBQW9BZ0FpQjBjRVFBTkFJQUFRUXhvZ0J5QUJRUUZySWdGSERRQUxDeUFBSUFjMkFnUWdBQkJER2lBQUtBSUFJUUVnQUJDRkFSb2dBUkFRQ3lBUUVBb2FRU0JCRUNBUlFUQkdHeUVIUWNteXRkSjdJUUVNRFFzZ0JpQVBPZ0NlQWlBR0lBYzJBckFDSUFZZ0NqWUNyQUpCOWJlMTRuNUJsZUQ0M2dVZ0JpMEFuZ0pCQVhFYklRRU1EQXRCd0lFQklBTTJBZ0JCOGJyZTNnRWhBUXdMQzBIUTROV0hBMEdqK0lhcmZ5QUdLQUtZQWlBRFJoc2hBUXdLQzBIUTROV0hBMEh0NUxHamVDQUdLQUt3QWtFUVJodEI3ZVN4bzNnZ0JpMEFuUUpCQVhFYklRRU1DUXRCaExYanhRY2hBVUVBSVEwTUNBc2dCaUFHS0FLc0FpQUdLQUswQW1vdEFBQTZBSjhDSUFZdEFKOENHa0dYek9EMWVVSGszZk8zQkNBR0xRQ2VBa0VCY1JzaEFRd0hDeUFHSUFaQm9BRnFJZ0EyQXFBQ0lBWW9BcUFDR2lBQUlBWW9BcXdDRUZRYVFleVpwdUo2SVFGQkFDRUNEQVlMSUFZZ0FqWUN1QUpCcjlQTXd3VkI0L2F1bmdJZ0JpZ0N1QUlnQTBnYklRRU1CUXNnQmlBR1FSQnFJZ0EyQXFRQ0lBWW9BcVFDR2lBQUVNd0NHaUFHSUFaQkRHb2lDRFlDcUFJZ0JpZ0NxQUlhSUFZb0FxUUNRUWhxRU1JQ0lRa2dCa0d3QVdvaUFTQUdRYUFCYWlBR0tBSzRBa0VCZEJEQUFpQUpJQUVRdlFJZ0FSQUtHaUFBSUFnUS9RSkI5Y2UrMkFKQjNZQ0Vzd1lnQmkwQW5nSkJBWEViSVFFTUJBc2dCaWdDdUFKQmdJRUJhaUFHS0FJTU9nQUFRYlRia2N3RklRRU1Bd3NnQmlnQ3VBSkJvSUVCYWlBR0tBSU1PZ0FBUWJUYmtjd0ZJUUVNQWdzZ0JpZ0NxQUlhSUFaQkVHb1FpZ0VhSUFZb0FxUUNHaUFHS0FLNEFpSUFRUUYwUVFKeElBQkJBWE5xSVFKQjdKbW00bm9oQVF3QkMwSEh5NnVJZWlFQkRBQUxBQXV4QVFFRGZ5TUFRZEFBYXlJQUpBQWdBRUdGMFFBdkFBQTdBVXdnQUVHQjBRQW9BQUEyQWtnZ0FFSElBR29pQlVFQmNrSGFIRUVCSUFJb0FnUVFiUkFXSVFZZ0FDQUVOZ0lBSUFCQk8yb2lCQ0FFUVEwZ0JpQUZJQUFRTENBRWFpSUdJQUlRUHlFSElBQkJFR29pQlNBQ0VBOGdCQ0FISUFZZ0FFRWdhaUlFSUFCQkhHb2dBRUVZYWlBRkVMQUJJQVVRRGlBQklBUWdBQ2dDSENBQUtBSVlJQUlnQXhCV0lRRWdBRUhRQUdva0FDQUJDODBCQVFGL0l3QkJNR3NpQlNRQUlBVWdBVFlDS0FKQUlBSW9BZ1JCQVhGRkJFQWdBQ0FCSUFJZ0F5QUVJQUFvQWdBb0FoZ1JCZ0FoQWd3QkN5QUZRUmhxSWdBZ0FoQVBJQUFRamdFaEFTQUFFQTRDUUNBRUJFQWdCVUVZYWlBQkVFc01BUXNnQlVFWWFpQUJFRW9MSUFVZ0JVRVlhaEJBTmdJUUEwQWdCU0FGUVJocUVHNDJBZ2dnQlVFUWFpQUZRUWhxRUZzRVFDQUZRU2hxSUFWQkVHb2lBQ2dDQUN3QUFCRDRBaUFBRUpjQkRBRUZJQVVvQWlnaEFpQUZRUmhxRUFvYUN3c0xJQVZCTUdva0FDQUNDL0lDQVFGL0l3QkI0QUpySWdBa0FDQUFJQUkyQXRBQ0lBQWdBVFlDMkFJZ0FFSFFBV29RRVNFR0lBQkJFR29pQWlBREVBOGdBaEE3UWVEUUFFSDYwQUFnQUVIZ0FXb1FZeUFDRUE0Z0FFSEFBV29RRVNJRElBTVFFeEFNSUFBZ0EwRUFFQXNpQVRZQ3ZBRWdBQ0FDTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBREVBa2dBV3BHQkVBZ0F4QUpJUUlnQXlBREVBbEJBWFFRRENBRElBTVFFeEFNSUFBZ0FpQURRUUFRQ3lJQmFqWUN2QUVMSUFCQjJBSnFFQ0ZCRUNBQklBQkJ2QUZxSUFCQkNHcEJBQ0FHSUFCQkVHb2dBRUVNYWlBQVFlQUJhaENMQVEwQUlBQkIyQUpxRUNVYURBRUxDeUFESUFBb0Fyd0JJQUZyRUF3Z0F4QU5JUUlRRmlFQklBQWdCVFlDQUNBQ0lBRWdBQkRCQWtFQlJ3UkFJQVJCQkRZQ0FBc2dBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBU0FERUFvYUlBWVFDaG9nQUVIZ0Ftb2tBQ0FCQzlJREFRRitJd0JCZ0FOcklnQWtBQ0FBSUFJMkF2QUNJQUFnQVRZQytBSWdBRUhZQVdvZ0F5QUFRZkFCYWlBQVFld0JhaUFBUWVnQmFoRFVBU0FBUWNnQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0xFQVNBQUlBQkJJR28yQWh3Z0FFRUFOZ0lZSUFCQkFUb0FGeUFBUWNVQU9nQVdBMEFDUUNBQVFmZ0NhaUFBUWZBQ2FoQTJSUTBBSUFBb0FzUUJJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdMRUFRc2dBRUg0QW1vUUlTQUFRUmRxSUFCQkZtb2dBaUFBUWNRQmFpQUFLQUxzQVNBQUtBTG9BU0FBUWRnQmFpQUFRU0JxSUFCQkhHb2dBRUVZYWlBQVFmQUJhaERUQVEwQUlBQkIrQUpxRUNVYURBRUxDd0pBSUFCQjJBRnFFQWxGRFFBZ0FDMEFGMFVOQUNBQUtBSWNJZ01nQUVFZ2FtdEJud0ZLRFFBZ0FDQURRUVJxTmdJY0lBTWdBQ2dDR0RZQ0FBc2dBQ0FDSUFBb0FzUUJJQVFRd3dJZ0FDa0RBQ0VHSUFVZ0FDa0RDRGNEQ0NBRklBWTNBd0FnQUVIWUFXb2dBRUVnYWlBQUtBSWNJQVFRTFNBQVFmZ0NhaUFBUWZBQ2FoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUw0QWlFQ0lBRVFDaG9nQUVIWUFXb1FDaG9nQUVHQUEyb2tBQ0FDQzdzREFDTUFRZkFDYXlJQUpBQWdBQ0FDTmdMZ0FpQUFJQUUyQXVnQ0lBQkJ5QUZxSUFNZ0FFSGdBV29nQUVIY0FXb2dBRUhZQVdvUTFBRWdBRUc0QVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN0QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQ0FBUVFFNkFBY2dBRUhGQURvQUJnTkFBa0FnQUVIb0Ftb2dBRUhnQW1vUU5rVU5BQ0FBS0FLMEFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDdEFFTElBQkI2QUpxRUNFZ0FFRUhhaUFBUVFacUlBSWdBRUcwQVdvZ0FDZ0MzQUVnQUNnQzJBRWdBRUhJQVdvZ0FFRVFhaUFBUVF4cUlBQkJDR29nQUVIZ0FXb1Ewd0VOQUNBQVFlZ0NhaEFsR2d3QkN3c0NRQ0FBUWNnQmFoQUpSUTBBSUFBdEFBZEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLMEFTQUVFTVFDT1FNQUlBQkJ5QUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhvQW1vZ0FFSGdBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzZBSWhBaUFCRUFvYUlBQkJ5QUZxRUFvYUlBQkI4QUpxSkFBZ0FndTdBd0FqQUVId0Ftc2lBQ1FBSUFBZ0FqWUM0QUlnQUNBQk5nTG9BaUFBUWNnQmFpQURJQUJCNEFGcUlBQkIzQUZxSUFCQjJBRnFFTlFCSUFCQnVBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJRQklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnZ0FFRUJPZ0FISUFCQnhRQTZBQVlEUUFKQUlBQkI2QUpxSUFCQjRBSnFFRFpGRFFBZ0FDZ0N0QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyUUJDeUFBUWVnQ2FoQWhJQUJCQjJvZ0FFRUdhaUFDSUFCQnRBRnFJQUFvQXR3QklBQW9BdGdCSUFCQnlBRnFJQUJCRUdvZ0FFRU1haUFBUVFocUlBQkI0QUZxRU5NQkRRQWdBRUhvQW1vUUpSb01BUXNMQWtBZ0FFSElBV29RQ1VVTkFDQUFMUUFIUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N0QUVnQkJERkFqZ0NBQ0FBUWNnQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjZBSnFJQUJCNEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdWdDSVFJZ0FSQUtHaUFBUWNnQmFoQUtHaUFBUWZBQ2FpUUFJQUlMblFNQkFuOGpBRUhnQW1zaUFDUUFJQUFnQWpZQzBBSWdBQ0FCTmdMWUFpQURFRndoQmlBRElBQkI0QUZxRUprQklRY2dBRUhRQVdvZ0F5QUFRY3dDYWhDWUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFkZ0NhaUFBUWRBQ2FoQTJSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUhZQW1vUUlTQUdJQUlnQUVHOEFXb2dBRUVJYWlBQUtBTE1BaUFBUWRBQmFpQUFRUkJxSUFCQkRHb2dCeENMQVEwQUlBQkIyQUpxRUNVYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzhBU0FFSUFZUXhnSTNBd0FnQUVIUUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFkZ0NhaUFBUWRBQ2FoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUxZQWlFQ0lBRVFDaG9nQUVIUUFXb1FDaG9nQUVIZ0Ftb2tBQ0FDQzUwREFRSi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBeEJjSVFZZ0F5QUFRZUFCYWhDWkFTRUhJQUJCMEFGcUlBTWdBRUhNQW1vUW1BRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFSFlBbW9nQUVIUUFtb1FOa1VOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCMkFKcUVDRWdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDZ0N6QUlnQUVIUUFXb2dBRUVRYWlBQVFReHFJQWNRaXdFTkFDQUFRZGdDYWhBbEdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNa0NPd0VBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFSFlBbW9nQUVIUUFtb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDMkFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQjRBSnFKQUFnQWd1ZEF3RUNmeU1BUWVBQ2F5SUFKQUFnQUNBQ05nTFFBaUFBSUFFMkF0Z0NJQU1RWENFR0lBTWdBRUhnQVdvUW1RRWhCeUFBUWRBQmFpQURJQUJCekFKcUVKZ0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkIyQUpxSUFCQjBBSnFFRFpGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUWRnQ2FoQWhJQVlnQWlBQVFid0JhaUFBUVFocUlBQW9Bc3dDSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFIRUlzQkRRQWdBRUhZQW1vUUpSb01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREtBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkIyQUpxSUFCQjBBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXRnQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFlQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKa0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1lBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF5d0kyQWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0Mrd0JBUUYvSXdCQklHc2lCaVFBSUFZZ0FUWUNHQUpBSUFNb0FnUkJBWEZGQkVBZ0JrRi9OZ0lBSUFZZ0FDQUJJQUlnQXlBRUlBWWdBQ2dDQUNnQ0VCRUZBQ0lCTmdJWUFrQUNRQUpBSUFZb0FnQU9BZ0FCQWdzZ0JVRUFPZ0FBREFNTElBVkJBVG9BQUF3Q0N5QUZRUUU2QUFBZ0JFRUVOZ0lBREFFTElBWWdBeEFQSUFZUU95RUJJQVlRRGlBR0lBTVFEeUFHRUl3QklRQWdCaEFPSUFZZ0FCQkxJQVpCREhJZ0FCQktJQVVnQmtFWWFpSURJQUlnQmlBRElBRWdCRUVCRUxJQklBWkdPZ0FBSUFZb0FoZ2hBUU5BSUFOQkRHc1FDaUlESUFaSERRQUxDeUFHUVNCcUpBQWdBUXZ5QWdFQmZ5TUFRWkFDYXlJQUpBQWdBQ0FDTmdLQUFpQUFJQUUyQW9nQ0lBQkIwQUZxRUJFaEJpQUFRUkJxSWdJZ0F4QVBJQUlRTWtIZzBBQkIrdEFBSUFCQjRBRnFFRzhnQWhBT0lBQkJ3QUZxRUJFaUF5QURFQk1RRENBQUlBTkJBQkFMSWdFMkFyd0JJQUFnQWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0F4QUpJQUZxUmdSQUlBTVFDU0VDSUFNZ0F4QUpRUUYwRUF3Z0F5QURFQk1RRENBQUlBSWdBMEVBRUFzaUFXbzJBcndCQ3lBQVFZZ0NhaEFmUVJBZ0FTQUFRYndCYWlBQVFRaHFRUUFnQmlBQVFSQnFJQUJCREdvZ0FFSGdBV29RalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NnQXlBQUtBSzhBU0FCYXhBTUlBTVFEU0VDRUJZaEFTQUFJQVUyQWdBZ0FpQUJJQUFRd1FKQkFVY0VRQ0FFUVFRMkFnQUxJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUVnQXhBS0dpQUdFQW9hSUFCQmtBSnFKQUFnQVF2U0F3RUJmaU1BUWFBQ2F5SUFKQUFnQUNBQ05nS1FBaUFBSUFFMkFwZ0NJQUJCNEFGcUlBTWdBRUh3QVdvZ0FFSHZBV29nQUVIdUFXb1Exd0VnQUVIUUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDekFFZ0FDQUFRU0JxTmdJY0lBQkJBRFlDR0NBQVFRRTZBQmNnQUVIRkFEb0FGZ05BQWtBZ0FFR1lBbW9nQUVHUUFtb1FNVVVOQUNBQUtBTE1BU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3pBRUxJQUJCbUFKcUVCOGdBRUVYYWlBQVFSWnFJQUlnQUVITUFXb2dBQ3dBN3dFZ0FDd0E3Z0VnQUVIZ0FXb2dBRUVnYWlBQVFSeHFJQUJCR0dvZ0FFSHdBV29RMWdFTkFDQUFRWmdDYWhBaUdnd0JDd3NDUUNBQVFlQUJhaEFKUlEwQUlBQXRBQmRGRFFBZ0FDZ0NIQ0lESUFCQklHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0hDQURJQUFvQWhnMkFnQUxJQUFnQWlBQUtBTE1BU0FFRU1NQ0lBQXBBd0FoQmlBRklBQXBBd2czQXdnZ0JTQUdOd01BSUFCQjRBRnFJQUJCSUdvZ0FDZ0NIQ0FFRUMwZ0FFR1lBbW9nQUVHUUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDbUFJaEFpQUJFQW9hSUFCQjRBRnFFQW9hSUFCQm9BSnFKQUFnQWd1N0F3QWpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQUFRZEFCYWlBRElBQkI0QUZxSUFCQjN3RnFJQUJCM2dGcUVOY0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dnQUVFQk9nQUhJQUJCeFFBNkFBWURRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBQkJCMm9nQUVFR2FpQUNJQUJCdkFGcUlBQXNBTjhCSUFBc0FONEJJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUFRUWhxSUFCQjRBRnFFTllCRFFBZ0FFR0lBbW9RSWhvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUxRQUhSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQkRFQWprREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRWkFDYWlRQUlBSUx1d01BSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQUVIUUFXb2dBeUFBUWVBQmFpQUFRZDhCYWlBQVFkNEJhaERYQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUlBQkJBVG9BQnlBQVFjVUFPZ0FHQTBBQ1FDQUFRWWdDYWlBQVFZQUNhaEF4UlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVHSUFtb1FIeUFBUVFkcUlBQkJCbW9nQWlBQVFid0JhaUFBTEFEZkFTQUFMQURlQVNBQVFkQUJhaUFBUVJCcUlBQkJER29nQUVFSWFpQUFRZUFCYWhEV0FRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQzBBQjBVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRUXhRSTRBZ0FnQUVIUUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFZZ0NhaUFBUVlBQ2FoQW1CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUtJQWlFQ0lBRVFDaG9nQUVIUUFXb1FDaG9nQUVHUUFtb2tBQ0FDQzVJREFRRi9Jd0JCa0FKcklnQWtBQ0FBSUFJMkFvQUNJQUFnQVRZQ2lBSWdBeEJjSVFZZ0FFSFFBV29nQXlBQVFmOEJhaENhQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBTEFEL0FTQUFRZEFCYWlBQVFSQnFJQUJCREdwQjROQUFFSTBCRFFBZ0FFR0lBbW9RSWhvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhER0FqY0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMSlFBZ0FDZ0NCQm9nQUNBQUtBSUVRYlYvY1RZQ0JDQUFJQUFvQWdSQkNISTJBZ1FnQUF1U0F3RUJmeU1BUVpBQ2F5SUFKQUFnQUNBQ05nS0FBaUFBSUFFMkFvZ0NJQU1RWENFR0lBQkIwQUZxSUFNZ0FFSC9BV29RbWdFZ0FFSEFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3ZBRWdBQ0FBUVJCcU5nSU1JQUJCQURZQ0NBTkFBa0FnQUVHSUFtb2dBRUdBQW1vUU1VVU5BQ0FBS0FLOEFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDdkFFTElBQkJpQUpxRUI4Z0JpQUNJQUJCdkFGcUlBQkJDR29nQUN3QS93RWdBRUhRQVdvZ0FFRVFhaUFBUVF4cVFlRFFBQkNOQVEwQUlBQkJpQUpxRUNJYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzhBU0FFSUFZUXlRSTdBUUFnQUVIUUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFZZ0NhaUFBUVlBQ2FoQW1CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUtJQWlFQ0lBRVFDaG9nQUVIUUFXb1FDaG9nQUVHUUFtb2tBQ0FDQzVJREFRRi9Jd0JCa0FKcklnQWtBQ0FBSUFJMkFvQUNJQUFnQVRZQ2lBSWdBeEJjSVFZZ0FFSFFBV29nQXlBQVFmOEJhaENhQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBTEFEL0FTQUFRZEFCYWlBQVFSQnFJQUJCREdwQjROQUFFSTBCRFFBZ0FFR0lBbW9RSWhvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhES0FqY0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMa2dNQkFYOGpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQURFRndoQmlBQVFkQUJhaUFESUFCQi93RnFFSm9CSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFzQVA4QklBQkIwQUZxSUFCQkVHb2dBRUVNYWtIZzBBQVFqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1zQ05nSUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVHSUFtb2dBRUdBQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NpQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCa0FKcUpBQWdBZ3ZWQlFFSWZ5TUFRZEFCYXlJR0pBQWdBeEFaSVFjZ0JpQUNOZ0s4QVNBR0lBYzJBcmdCUWJlcG11WjhRZW4zOHZKNUlBVkJFRVliUWVuMzh2SjVJQU5CSUVZYklRc2dCa0VnYWlFTUEwQkJ5dmZtOXdJaEFnTkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRYnZUcWJCOVRBUkFJQUpCZ3NPb2pueE1CRUFnQWtIbitJZTVlRVlOQWlBQ1FkUzMrc0I0UmcwRklBSkI2ZmZ5OG5sSERRcEJnOE9vam53aEFrRUFJUWNNQ2dzZ0FrR0R3NmlPZkVZTkJ5QUNRWTZGc3VSOFJnMEZJQUpCdDZtYTVueEhEUWtnQmlBR1FhZ0JhaUlDTmdMQUFTQUdLQUxBQVJvZ0FpQUdLQUs0QVJCVUdrR09oYkxrZkNFQ1FRQWhDQXdKQ3lBQ1FZbUN0TzRDU2cwQklBSkJ2Tk9wc0gxR0RRSWdBa0hTNDd5U0FrWU5CU0FDUWVXLytKOENSdzBJSUFaQnFBRnFFQW9hSUFZb0FzQUJHZ3RCaW9LMDdnSWhBZ3dIQ3lBQ1FjcjM1dmNDUndSQUlBSkJwc2ZWcGdSR0RRWWdBa0dLZ3JUdUFrY05CeUFHS0FLNEFSQVFJQVpCMEFGcUpBQVBDeUFHSUFvMkFzUUJRZFMzK3NCNFFielRxYkI5SUFZb0FzUUJJQU5JR3lFQ0RBWUxRY1NCQVNBRk5nSUFJQUFnQVNBRUlBWW9BcmdCSUFNUTVnRWdDeUVDREFVTElBWW9BcmdCSUFZb0FzUUJhaUFHS0FLOEFTQUdLQUxFQVdvdEFBQTZBQUFnQmlnQ3hBRkJBV29oQ2d3RkN5QUdJQWcyQXNnQlFkTGp2SklDUWVXLytKOENJQVlvQXNnQklBVklHeUVDREFNTElBWkJHR29pRFJETUFpRUNJQXdRd2dJaENDQUdRUWhxSWdrZ0JrR29BV29nQmlnQ3lBRkJBWFFRd0FJZ0NDQUpFTDBDSUFrUUNob2dEU0FKRVAwQ0lBWW9Bc2dCUWFDQkFXb2dCaWdDQ0RvQUFDQUNFSW9CR2lBR0tBTElBVUVCYWlFSVFZNkZzdVI4SVFJTUFnc2dCaUFITmdMTUFVR214OVdtQkVIbitJZTVlQ0FHS0FMTUFTQUZTQnNoQWd3QkN5QUdLQUxNQVVHZ2dRRnFJQVlvQXJnQklBWW9Bc3dCYWkwQUFEb0FBQ0FHS0FMTUFVRUJhaUVIUVlQRHFJNThJUUlNQUFzQUN3QUw3QUVCQVg4akFFRWdheUlHSkFBZ0JpQUJOZ0lZQWtBZ0F5Z0NCRUVCY1VVRVFDQUdRWDgyQWdBZ0JpQUFJQUVnQWlBRElBUWdCaUFBS0FJQUtBSVFFUVVBSWdFMkFoZ0NRQUpBQWtBZ0JpZ0NBQTRDQUFFQ0N5QUZRUUE2QUFBTUF3c2dCVUVCT2dBQURBSUxJQVZCQVRvQUFDQUVRUVEyQWdBTUFRc2dCaUFERUE4Z0JoQXlJUUVnQmhBT0lBWWdBeEFQSUFZUWpnRWhBQ0FHRUE0Z0JpQUFFRXNnQmtFTWNpQUFFRW9nQlNBR1FSaHFJZ01nQWlBR0lBTWdBU0FFUVFFUXRBRWdCa1k2QUFBZ0JpZ0NHQ0VCQTBBZ0EwRU1heEFLSWdNZ0JrY05BQXNMSUFaQklHb2tBQ0FCQzBBQkFYOUJBQ0VBQTM4Z0FTQUNSZ1IvSUFBRklBRW9BZ0FnQUVFRWRHb2lBRUdBZ0lDQWYzRWlBMEVZZGlBRGNpQUFjeUVBSUFGQkJHb2hBUXdCQ3dzTEd3QWpBRUVRYXlJQkpBQWdBQ0FDSUFNUXpnSWdBVUVRYWlRQUMxUUJBbjhDUUFOQUlBTWdCRWNFUUVGL0lRQWdBU0FDUmcwQ0lBRW9BZ0FpQlNBREtBSUFJZ1pJRFFJZ0JTQUdTZ1JBUVFFUEJTQURRUVJxSVFNZ0FVRUVhaUVCREFJTEFBc0xJQUVnQWtjaEFBc2dBQXRBQVFGL1FRQWhBQU4vSUFFZ0FrWUVmeUFBQlNBQkxBQUFJQUJCQkhScUlnQkJnSUNBZ0g5eElnTkJHSFlnQTNJZ0FITWhBQ0FCUVFGcUlRRU1BUXNMQy9jQkFRTi9JQUJGQkVCQndJRUJLQUlBSVFBakFFRWdheUlFSkFCQmdJRUJJQUFRdmdJaUJRUi9JQVFnQXlrQUFEY0RFQ0FFSUFNcEFBZzNBeGdnQWdSQUEwQWdCU0FFUVJCcUlBUVFwd0VnQWtFUUlBSkJFRWtiSVFOQkFDRUFBMEFnQUNBQmFpSUdJQVl0QUFBZ0FDQUVhaTBBQUhNNkFBQWdBRUVCYWlJQUlBTkhEUUFMSUFJZ0Eyc2hBaUFCSUFOcUlRRkJEeUVBQTBBQ1FDQUFJZ01nQkVFUWFtb2lBQ0FBTFFBQVFRRnFJZ0E2QUFBZ0FFSC9BWEVOQUNBRFFRRnJJUUFnQXcwQkN3c2dBZzBBQ3dzZ0JSQVFRUUFGUVg4TEdpQUVRU0JxSkFBUEMwR2dnUUZCeElFQktBSUFJQU1nQVNBQ0VPWUJDeHNBSXdCQkVHc2lBU1FBSUFBZ0FpQURFUE1DSUFGQkVHb2tBQXRlQVFOL0lBRWdCQ0FEYTJvaEJRSkFBMEFnQXlBRVJ3UkFRWDhoQUNBQklBSkdEUUlnQVN3QUFDSUdJQU1zQUFBaUIwZ05BaUFHSUFkS0JFQkJBUThGSUFOQkFXb2hBeUFCUVFGcUlRRU1BZ3NBQ3dzZ0FpQUZSeUVBQ3lBQUM2a0JBUVIvSUFBb0FsUWlBeWdDQkNJRklBQW9BaFFnQUNnQ0hDSUdheUlFSUFRZ0JVc2JJZ1FFUUNBREtBSUFJQVlnQkJCQ0dpQURJQU1vQWdBZ0JHbzJBZ0FnQXlBREtBSUVJQVJySWdVMkFnUUxJQU1vQWdBaEJDQUZJQUlnQWlBRlN4c2lCUVJBSUFRZ0FTQUZFRUlhSUFNZ0F5Z0NBQ0FGYWlJRU5nSUFJQU1nQXlnQ0JDQUZhellDQkFzZ0JFRUFPZ0FBSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQ0N5a0FJQUVnQVNnQ0FFRUhha0Y0Y1NJQlFSQnFOZ0lBSUFBZ0FTa0RBQ0FCS1FNSUVOMEJPUU1BQzdRWUF4Si9BWHdDZmlNQVFiQUVheUlMSkFBZ0MwRUFOZ0lzQWtBZ0FiMGlHVUlBVXdSQVFRRWhFRUg1R2lFVElBR2FJZ0c5SVJrTUFRc2dCRUdBRUhFRVFFRUJJUkJCL0JvaEV3d0JDMEgvR2tINkdpQUVRUUZ4SWhBYklSTWdFRVVoRkFzQ1FDQVpRb0NBZ0lDQWdJRDQvd0NEUW9DQWdJQ0FnSUQ0L3dCUkJFQWdBRUVnSUFJZ0VFRURhaUlESUFSQi8vOTdjUkF1SUFBZ0V5QVFFQ29nQUVISEhFR0FIaUFGUVNCeElnVWJRZW9jUVpZZUlBVWJJQUVnQVdJYlFRTVFLaUFBUVNBZ0FpQURJQVJCZ01BQWN4QXVJQUlnQXlBQ0lBTktHeUVKREFFTElBdEJFR29oRVFKQUFuOENRQ0FCSUF0QkxHb1EzUUlpQVNBQm9DSUJSQUFBQUFBQUFBQUFZZ1JBSUFzZ0N5Z0NMQ0lHUVFGck5nSXNJQVZCSUhJaURrSGhBRWNOQVF3REN5QUZRU0J5SWc1QjRRQkdEUUlnQ3lnQ0xDRUtRUVlnQXlBRFFRQklHd3dCQ3lBTElBWkJIV3NpQ2pZQ0xDQUJSQUFBQUFBQUFMQkJvaUVCUVFZZ0F5QURRUUJJR3dzaERDQUxRVEJxSUF0QjBBSnFJQXBCQUVnYklnMGhCd05BSUFjQ2Z5QUJSQUFBQUFBQUFQQkJZeUFCUkFBQUFBQUFBQUFBWm5FRVFDQUJxd3dCQzBFQUN5SUROZ0lBSUFkQkJHb2hCeUFCSUFPNG9VUUFBQUFBWmMzTlFhSWlBVVFBQUFBQUFBQUFBR0lOQUFzQ1FDQUtRUUJNQkVBZ0NpRURJQWNoQmlBTklRZ01BUXNnRFNFSUlBb2hBd05BSUFOQkhTQURRUjFJR3lFREFrQWdCMEVFYXlJR0lBaEpEUUFnQTYwaEdrSUFJUmtEUUNBR0lCbEMvLy8vL3crRElBWTFBZ0FnR29aOEloa2dHVUtBbE92Y0E0QWlHVUtBbE92Y0EzNTlQZ0lBSUFaQkJHc2lCaUFJVHcwQUN5QVpweUlHUlEwQUlBaEJCR3NpQ0NBR05nSUFDd05BSUFnZ0J5SUdTUVJBSUFaQkJHc2lCeWdDQUVVTkFRc0xJQXNnQ3lnQ0xDQURheUlETmdJc0lBWWhCeUFEUVFCS0RRQUxDeUFNUVJscVFRbHVJUWNnQTBFQVNBUkFJQWRCQVdvaEVpQU9RZVlBUmlFVkEwQkJBQ0FEYXlJRFFRa2dBMEVKU0JzaENRSkFJQVlnQ0VzRVFFR0FsT3ZjQXlBSmRpRVdRWDhnQ1hSQmYzTWhEMEVBSVFNZ0NDRUhBMEFnQnlBRElBY29BZ0FpRnlBSmRtbzJBZ0FnRHlBWGNTQVdiQ0VESUFkQkJHb2lCeUFHU1EwQUN5QUlLQUlBSVFjZ0EwVU5BU0FHSUFNMkFnQWdCa0VFYWlFR0RBRUxJQWdvQWdBaEJ3c2dDeUFMS0FJc0lBbHFJZ00yQWl3Z0RTQUlJQWRGUVFKMGFpSUlJQlViSWdjZ0VrRUNkR29nQmlBR0lBZHJRUUoxSUJKS0d5RUdJQU5CQUVnTkFBc0xRUUFoQXdKQUlBWWdDRTBOQUNBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDVUVLU1EwQUEwQWdBMEVCYWlFRElBa2dCMEVLYkNJSFR3MEFDd3NnREVFQUlBTWdEa0htQUVZYmF5QU9RZWNBUmlBTVFRQkhjV3NpQnlBR0lBMXJRUUoxUVFsc1FRbHJTQVJBUVFSQnBBSWdDa0VBU0JzZ0Myb2dCMEdBeUFCcUlnbEJDVzBpRDBFQ2RHcEIwQjlySVFwQkNpRUhJQWtnRDBFSmJHc2lDVUVIVEFSQUEwQWdCMEVLYkNFSElBbEJBV29pQ1VFSVJ3MEFDd3NDUUNBS0tBSUFJaElnRWlBSGJpSVZJQWRzYXlJSlJTQUtRUVJxSWc4Z0JrWnhEUUFDUUNBVlFRRnhSUVJBUkFBQUFBQUFBRUJESVFFZ0IwR0FsT3ZjQTBjZ0NDQUtUM0lOQVNBS1FRUnJMUUFBUVFGeFJRMEJDMFFCQUFBQUFBQkFReUVCQzBRQUFBQUFBQURnUDBRQUFBQUFBQUR3UDBRQUFBQUFBQUQ0UHlBR0lBOUdHMFFBQUFBQUFBRDRQeUFKSUFkQkFYWWlEMFliSUFrZ0Qwa2JJUmdDUUNBVURRQWdFeTBBQUVFdFJ3MEFJQmlhSVJnZ0Fab2hBUXNnQ2lBU0lBbHJJZ2syQWdBZ0FTQVlvQ0FCWVEwQUlBb2dCeUFKYWlJRE5nSUFJQU5CZ0pUcjNBTlBCRUFEUUNBS1FRQTJBZ0FnQ0NBS1FRUnJJZ3BMQkVBZ0NFRUVheUlJUVFBMkFnQUxJQW9nQ2lnQ0FFRUJhaUlETmdJQUlBTkIvNVByM0FOTERRQUxDeUFOSUFoclFRSjFRUWxzSVFOQkNpRUhJQWdvQWdBaUNVRUtTUTBBQTBBZ0EwRUJhaUVESUFrZ0IwRUtiQ0lIVHcwQUN3c2dDa0VFYWlJSElBWWdCaUFIU3hzaEJnc0RRQ0FHSWdjZ0NFMGlDVVVFUUNBSFFRUnJJZ1lvQWdCRkRRRUxDd0pBSUE1QjV3QkhCRUFnQkVFSWNTRUtEQUVMSUFOQmYzTkJmeUFNUVFFZ0RCc2lCaUFEU2lBRFFYdEtjU0lLR3lBR2FpRU1RWDlCZmlBS0d5QUZhaUVGSUFSQkNIRWlDZzBBUVhjaEJnSkFJQWtOQUNBSFFRUnJLQUlBSWc1RkRRQkJDaUVKUVFBaEJpQU9RUXB3RFFBRFFDQUdJZ3BCQVdvaEJpQU9JQWxCQ213aUNYQkZEUUFMSUFwQmYzTWhCZ3NnQnlBTmEwRUNkVUVKYkNFSklBVkJYM0ZCeGdCR0JFQkJBQ0VLSUF3Z0JpQUpha0VKYXlJR1FRQWdCa0VBU2hzaUJpQUdJQXhLR3lFTURBRUxRUUFoQ2lBTUlBTWdDV29nQm1wQkNXc2lCa0VBSUFaQkFFb2JJZ1lnQmlBTVNoc2hEQXRCZnlFSklBeEIvZi8vL3dkQi92Ly8vd2NnQ2lBTWNpSUdHMG9OQVNBTUlBWkJBRWNpRW1wQkFXb2hEZ0pBSUFWQlgzRWlGRUhHQUVZRVFDQURRZi8vLy84SElBNXJTZzBESUFOQkFDQURRUUJLR3lFR0RBRUxJQkVnQXlBRFFSOTFJZ1pxSUFaenJTQVJFSThCSWdaclFRRk1CRUFEUUNBR1FRRnJJZ1pCTURvQUFDQVJJQVpyUVFKSURRQUxDeUFHUVFKcklnOGdCVG9BQUNBR1FRRnJRUzFCS3lBRFFRQklHem9BQUNBUklBOXJJZ1pCLy8vLy93Y2dEbXRLRFFJTElBWWdEbW9pQXlBUVFmLy8vLzhIYzBvTkFTQUFRU0FnQWlBRElCQnFJZ1VnQkJBdUlBQWdFeUFRRUNvZ0FFRXdJQUlnQlNBRVFZQ0FCSE1RTGdKQUFrQUNRQ0FVUWNZQVJnUkFJQXRCRUdvaUJrRUljaUVESUFaQkNYSWhDaUFOSUFnZ0NDQU5TeHNpQ1NFSUEwQWdDRFVDQUNBS0VJOEJJUVlDUUNBSUlBbEhCRUFnQmlBTFFSQnFUUTBCQTBBZ0JrRUJheUlHUVRBNkFBQWdCaUFMUVJCcVN3MEFDd3dCQ3lBR0lBcEhEUUFnQzBFd09nQVlJQU1oQmdzZ0FDQUdJQW9nQm1zUUtpQUlRUVJxSWdnZ0RVME5BQXRCQUNFR0lCSkZEUUlnQUVIK0hrRUJFQ29nREVFQVRDQUhJQWhOY2cwQkEwQWdDRFVDQUNBS0VJOEJJZ1lnQzBFUWFrc0VRQU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdDMEVRYWtzTkFBc0xJQUFnQmlBTVFRa2dERUVKU0JzUUtpQU1RUWxySVFZZ0NFRUVhaUlJSUFkUERRTWdERUVKU2lFRElBWWhEQ0FERFFBTERBSUxBa0FnREVFQVNBMEFJQWNnQ0VFRWFpQUhJQWhMR3lFSklBdEJFR29pQTBFSmNpRU5JQU5CQ0hJaEF5QUlJUWNEUUNBTklBYzFBZ0FnRFJDUEFTSUdSZ1JBSUF0Qk1Eb0FHQ0FESVFZTEFrQWdCeUFJUndSQUlBWWdDMEVRYWswTkFRTkFJQVpCQVdzaUJrRXdPZ0FBSUFZZ0MwRVFha3NOQUFzTUFRc2dBQ0FHUVFFUUtpQUdRUUZxSVFaQkFDQU1RUUJNSUFvYkRRQWdBRUgrSGtFQkVDb0xJQUFnQmlBTklBWnJJZ1lnRENBR0lBeElHeEFxSUF3Z0Jtc2hEQ0FIUVFScUlnY2dDVThOQVNBTVFRQk9EUUFMQ3lBQVFUQWdERUVTYWtFU1FRQVFMaUFBSUE4Z0VTQVBheEFxREFJTElBd2hCZ3NnQUVFd0lBWkJDV3BCQ1VFQUVDNExJQUJCSUNBQ0lBVWdCRUdBd0FCekVDNGdBaUFGSUFJZ0JVb2JJUWtNQVFzZ0V5QUZRUnAwUVI5MVFRbHhhaUVNQWtBZ0EwRUxTdzBBUVF3Z0Eyc2hCa1FBQUFBQUFBQXdRQ0VZQTBBZ0dFUUFBQUFBQUFBd1FLSWhHQ0FHUVFGcklnWU5BQXNnREMwQUFFRXRSZ1JBSUJnZ0Fab2dHS0dnbWlFQkRBRUxJQUVnR0tBZ0dLRWhBUXNnRVNBTEtBSXNJZ1lnQmtFZmRTSUdhaUFHYzYwZ0VSQ1BBU0lHUmdSQUlBdEJNRG9BRHlBTFFROXFJUVlMSUJCQkFuSWhDaUFGUVNCeElRZ2dDeWdDTENFSElBWkJBbXNpRFNBRlFROXFPZ0FBSUFaQkFXdEJMVUVySUFkQkFFZ2JPZ0FBSUFSQkNIRWhCaUFMUVJCcUlRY0RRQ0FISWdVQ2Z5QUJtVVFBQUFBQUFBRGdRV01FUUNBQnFnd0JDMEdBZ0lDQWVBc2lCMEdnTW1vdEFBQWdDSEk2QUFCQkFTQURRUUJLSUFFZ0I3ZWhSQUFBQUFBQUFEQkFvaUlCUkFBQUFBQUFBQUFBWW5JZ0JodEZJQVZCQVdvaUJ5QUxRUkJxYTBFQlIzSkZCRUFnQlVFdU9nQUJJQVZCQW1vaEJ3c2dBVVFBQUFBQUFBQUFBR0lOQUF0QmZ5RUpRZjMvLy84SElBb2dFU0FOYXlJRmFpSUdheUFEU0EwQUlBQkJJQ0FDSUFZQ2Z3SkFJQU5GRFFBZ0J5QUxRUkJxYXlJSVFRSnJJQU5PRFFBZ0EwRUNhZ3dCQ3lBSElBdEJFR3BySWdnTElnZHFJZ01nQkJBdUlBQWdEQ0FLRUNvZ0FFRXdJQUlnQXlBRVFZQ0FCSE1RTGlBQUlBdEJFR29nQ0JBcUlBQkJNQ0FISUFoclFRQkJBQkF1SUFBZ0RTQUZFQ29nQUVFZ0lBSWdBeUFFUVlEQUFITVFMaUFDSUFNZ0FpQURTaHNoQ1FzZ0MwR3dCR29rQUNBSkMxUUJBbjhnQVNBQUtBSlVJZ0VnQVVFQUlBSkJnQUpxSWdNUTNBRWlCQ0FCYXlBRElBUWJJZ01nQWlBQ0lBTkxHeUlDRUVJYUlBQWdBU0FEYWlJRE5nSlVJQUFnQXpZQ0NDQUFJQUVnQW1vMkFnUWdBZ3NKQUNBQUVPRUJFQkFMRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERpQVFzVEFDQUFJQUFvQWdCQkRHc29BZ0JxRUlvQkN3b0FJQUJCQ0dzUTRnRUxDZ0FnQUVFSWF4Q0tBUXNhQUNBQUlBRWdBaWtEQ0VFQUlBTWdBU2dDQUNnQ0VCRVdBQXNKQUNBQUVOQUJFQkFMbEFJQ0FYOERmaUFCS0FJWUlBRW9BaXhMQkVBZ0FTQUJLQUlZTmdJc0MwSi9JUWdDUUNBRVFSaHhJZ1ZGSUFWQkdFWWdBMEVCUm5GeURRQWdBU2dDTENJRkJFQWdCU0FCUVNCcUVBMXJyQ0VHQ3dKQUFrQUNRQ0FERGdNQ0FBRURDeUFFUVFoeEJFQWdBU2dDRENBQktBSUlhNndoQnd3Q0N5QUJLQUlZSUFFb0FoUnJyQ0VIREFFTElBWWhCd3NnQWlBSGZDSUNRZ0JUSUFJZ0JsVnlEUUFnQkVFSWNTRURBa0FnQWxBTkFDQURCRUFnQVNnQ0RFVU5BZ3NnQkVFUWNVVU5BQ0FCS0FJWVJRMEJDeUFEQkVBZ0FTQUJLQUlJSUFFb0FnZ2dBcWRxSUFFb0Fpd1Ftd0VMSUFSQkVIRUVRQ0FCSUFFb0FoUWdBU2dDSEJEMkFpQUJJQUtuRVBVQ0N5QUNJUWdMSUFBZ0NCQzdBUXVEQWdFSmZ5TUFRUkJySWdNa0FBSi9JQUZCZnhCZVJRUkFJQUFvQWd3aEJDQUFLQUlJSVFVZ0FDZ0NHQ0FBS0FJY1JnUkFRWDhnQUMwQU1FRVFjVVVOQWhvZ0FDZ0NHQ0VHSUFBb0FoUWhCeUFBS0FJc0lRZ2dBQ2dDRkNFSklBQkJJR29pQWtFQUVLRUJJQUlnQWhBVEVBd2dBQ0FDRUEwaUNpQUNFQWtnQ21vUTlnSWdBQ0FHSUFkckVQVUNJQUFnQUNnQ0ZDQUlJQWxyYWpZQ0xBc2dBeUFBS0FJWVFRRnFOZ0lNSUFBZ0EwRU1haUFBUVN4cUVIWW9BZ0EyQWl3Z0FDMEFNRUVJY1FSQUlBQWdBRUVnYWhBTklnSWdBaUFFSUFWcmFpQUFLQUlzRUpzQkN5QUFJQUVRbkFFUS9nSU1BUXNnQVJEeUFnc2hBQ0FEUVJCcUpBQWdBQXVnQVFFQmZ5QUFLQUlZSUFBb0FpeExCRUFnQUNBQUtBSVlOZ0lzQ3dKQUlBQW9BZ2dnQUNnQ0RFOE5BQ0FCUVg4UVhnUkFJQUFnQUNnQ0NDQUFLQUlNUVFGcklBQW9BaXdRbXdFZ0FSRHlBZzhMSUFBdEFEQkJFSEZGQkVBZ0FSQ2NBU0FBS0FJTVFRRnJMQUFBRUY1RkRRRUxJQUFnQUNnQ0NDQUFLQUlNUVFGcklBQW9BaXdRbXdFZ0FSQ2NBU0VDSUFBb0Fnd2dBam9BQUNBQkR3dEJmd3RrQUNBQUtBSVlJQUFvQWl4TEJFQWdBQ0FBS0FJWU5nSXNDd0pBSUFBdEFEQkJDSEZGRFFBZ0FDZ0NFQ0FBS0FJc1NRUkFJQUFnQUNnQ0NDQUFLQUlNSUFBb0Fpd1Ftd0VMSUFBb0Fnd2dBQ2dDRUU4TkFDQUFLQUlNTEFBQUVHVVBDMEYvQ3djQUlBQW9BZ2dMRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERqQVFzS0FDQUFRUWhyRU9NQkN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUXVBRUxDZ0FnQUVFSWF4QzRBUXNUQUNBQUlBQW9BZ0JCREdzb0FnQnFFUGtDQ3hNQUlBQWdBQ2dDQUVFTWF5Z0NBR29RNUFFTENRQkJ5SUVCRUFvYUN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUWh3TUxFd0FnQUNBQUtBSUFRUXhyS0FJQWFoRGxBUXV0QVFFRWZ5TUFRUkJySWdVa0FBTkFBa0FnQWlBRVRBMEFJQUFvQWhnaUF5QUFLQUljSWdaUEJFQWdBQ0FCTEFBQUVHVWdBQ2dDQUNnQ05CRUNBRUYvUmcwQklBUkJBV29oQkNBQlFRRnFJUUVGSUFVZ0JpQURhellDRENBRklBSWdCR3MyQWdnZ0JVRU1haUFGUVFocUVMb0JJUU1nQUNnQ0dDQUJJQU1vQWdBaUF4QlZJQUFnQXlBQUtBSVlhallDR0NBRElBUnFJUVFnQVNBRGFpRUJDd3dCQ3dzZ0JVRVFhaVFBSUFRTEMvSmlJZ0JCZ0FnTHN5V2xZMlBHaEh4OCtKbDNkKzZOZTN2MkRmTHkvNzFyYTlheGIyL2VWTVhGa1ZBd01HQURBUUVDcVdkbnpuMHJLMVlaL3Y3bll0Zlh0ZWFycTAyYWRuYnNSY3JLajUyQ2doOUF5Y21KaDMxOStoWDYrdS9yV1ZteXlVZEhqZ3Z3OFB2c3JhMUJaOVRVcy8yaW9sL3FyNjlGdjV5Y0kvZWtwRk9XY25Ma1c4REFtOEszdDNVYy9mM2hycE9UUFdvbUpreGFOalpzUVQ4L2ZnTDM5L1ZQek15RFhEUTBhUFNscFZFMDVlWFJDUEh4K1pOeGNlSnoyTmlyVXpFeFlqOFZGU29NQkFRSVVzZkhsV1VqSTBaZXc4T2RLQmdZTUtHV2xqY1BCUVVLdFpxYUx3a0hCdzQyRWhJa200Q0FHejNpNHQ4bTYrdk5hU2NuVHMyeXNuK2ZkWFhxR3drSkVwNkRneDEwTEN4WUxob2FOQzBiR3pheWJtN2M3bHBhdFB1Z29GdjJVbEtrVFRzN2RtSFcxcmZPczdOOWV5a3BVajdqNDkxeEx5OWVsNFNFRS9WVFU2Wm8wZEc1QUFBQUFDenQ3Y0ZnSUNCQUgvejg0OGl4c1hudFcxdTJ2bXBxMUViTHk0M1p2cjVuU3prNWN0NUtTcFRVVEV5WTZGaFlzRXJQejRWcjBOQzdLdS92eGVXcXFrOFcrL3Z0eFVORGh0ZE5UWnBWTXpObWxJV0ZFYzlGUllvUStmbnBCZ0lDQklGL2YvN3dVRkNnUkR3OGVMcWZueVhqcUtoTDgxRlJvdjZqbzEzQVFFQ0FpbytQQmEyU2tqKzhuWjBoU0RnNGNBVDE5Zkhmdkx4andiYTJkM1hhMnE5aklTRkNNQkFRSUJyLy8rVU84L1A5YmRMU3Ywek56WUVVREF3WU5STVRKaS9zN01QaFgxKytvcGVYTmN4RVJJZzVGeGN1VjhURWsvS25wMVdDZm43OFJ6MDllcXhrWk1qblhWMjZLeGtaTXBWemMrYWdZR0RBbUlHQkdkRlBUNTUvM055alppSWlSSDRxS2xTcmtKQTdnNGlJQzhwR1Jvd3A3dTdIMDdpNGF6d1VGQ2g1M3Q2bjRsNWV2QjBMQ3haMjI5dXRPK0RnMjFZeU1tUk9PanAwSGdvS0ZOdEpTWklLQmdZTWJDUWtTT1JjWExoZHdzS2ZidFBUdmUrc3JFT21ZbUxFcUpHUk9hU1ZsVEUzNU9UVGkzbDU4akxuNTlWRHlNaUxXVGMzYnJkdGJkcU1qWTBCWk5YVnNkSk9UcHpncWFsSnRHeHMyUHBXVnF3SDlQVHpKZXJxejY5bFpjcU9lbnIwNmE2dVJ4Z0lDQkRWdXJwdmlIaDQ4RzhsSlVweUxpNWNKQndjT1BHbXBsZkh0TFJ6VWNiR2x5UG82TXQ4M2QyaG5IUjA2Q0VmSHo3ZFMwdVczTDI5WVlhTGl3MkZpb29Qa0hCdzRFSStQbnpFdGJWeHFtWm16TmhJU0pBRkF3TUdBZmIyOXhJT0RoeWpZV0hDWHpVMWF2bFhWNjdRdWJscGtZYUdGMWpCd1prbkhSMDZ1WjZlSnpqaDRka1QrUGpyczVpWUt6TVJFU0s3YVduU2NOblpxWW1PamdlbmxKUXp0cHViTFNJZUhqeVNoNGNWSU9ucHlVbk96b2YvVlZXcWVDZ29VSHJmMzZXUGpJd0QrS0doV1lDSmlRa1hEUTBhMnIrL1pUSG01dGZHUWtLRXVHaG8wTU5CUVlLd21aa3BkeTB0V2hFUER4N0xzTEI3L0ZSVXFOYTd1MjA2RmhZc1VLZjBVVk5sUVg3RHBCY2FsbDRuT3N0cnF6dnhSWjBmcTFqNnJKTUQ0MHRWK2pBZzltMTJyWkYyeklnbFRBTDEvTmZsVDlmTEtzV0FSRFVtajZOaXRVbGFzZDVuRzdvbG1BN3FSZUhBL2wwQ2RTL0RFdkJNZ2FPWFJvM0crZE5yNTErUEE1V2NraFhyZW0yLzJsbFNsUzJEdnRUVElYUllLV25nU1VUSXlZNXFpY0oxZUhtTzlHcytXSm5kY2JrbnRrL2h2aGV0aVBCbXJDREp0RHJPZlJoSzMyT0NNUnJsWUROUmwwVi9VMkxnZDJTeGhLNXJ1eHlnZ2Y2VUt3ajVXR2hJY0JuOVJZK0hiTjZVdC9oN1VpUFRjNnZpQWt0eVY0OGY0eXFyVldZSEtPdXlBOEsxTDVwN3hZYWxDRGZUOG9jb01MS2x2eU82YWdNQ1hJSVc3U3NjejRxU3RIbW44UElIODZIaWFVN045TnBsMWI0RkJoOWlOTkdLL3FiRW5WTXVOS0JWODZJeTRZb0ZkZXYycERuc2d3dXE3MkJBQnA5eFhsRVFicjM1aWlFK1BRYmRscTRGUHQxR3ZlWk50WTFVa1FWZHhIRnYxQVlFL3hWUVlDVDdtQm1YNmIzV3pFTkFpWGVlMldlOVF1aXdpSXVKQnpoYkdlZmI3c2g1UndwOG9la1BRbnpKSG9UNEFBQUFBSU9HZ0FsSTdTc3lySEFSSGs1eVdtejcvdzc5VmppRkR4N1ZyajBuT1MwMlpOa1BDaUdtWEdqUlZGdWJPaTQySkxGbkNnd1A1MWVUMHBidXRKNlJteHRQeGNDQW9pRGNZV2xMZDFvV0doSWNDcnFUNHVVcW9NQkQ0Q0k4SFJjYkVnc05DUTZ0eDR2eXVhaTJMY2lwSGhTRkdmRlhUQWQxcjd2ZG1lNzlZSCtqbnlZQjk3ejFjbHpGTzJaRU5INzdXM1lwUTR2Y3hpUExhUHp0dG1QeDVMakszREhYRUlWalFrQWlseE1nRWNhRWZTUktoZmc5dTlJUk12bXViYUVweDBzdm5oM3pNTExjN0ZLR0RkRGp3WGRzRnJNcm1ibHdxZnBJbEJFaVpPbEh4SXo4cUJvLzhLRFlMSDFXNzVBeklzZE9TWWZCMFRqWi9xTEtqRFlMMUpqUGdmV21LTjU2cFNhT3Q5cWt2NjAvNUowNkxBMlNlRkNiekY5cVlrWitWTUlUamZib3VOaVFYdmM1THZXdnc0SytnRjJmZkpQUWFha3QxVyt6RWlYUE81bXN5S2Q5R0JCdVk1em9lN3M3MndsNEpzMzBHRmx1QWJlYTdLaWFUNE5sYnBYbWZ1Yi9xZ2pQdkNIbTZCWHYyWnZudXM0MmIwclVDWi9xMW55d0thK3lwREV4SXo4cU1KU2x4c0Jtb2pVM3ZFNTBwc3FDL0xEUWtPQVYyS2N6U3BnRThmZmE3RUVPVU0xL0wvYVJGNDNXVFhaTnNPOURWRTJxek44RWx1VGp0ZEdlRzRocVRMZ2ZMTUYvVVdWR0JPcGVuVjAxakFGemRJZjZMa0VMKzFvZFo3TlMwdHVTTTFZUTZSTkgxbTJNWWRlYWVneWhONDRVK0ZtSlBCUHI3aWVwempYSlliZnQ1UnpoUExGSGVsbmYwcHcvYy9KVmVjNFVHTDgzeDNQcXpmZFRXNnI5WHhSdlBkK0cyMFI0Z2ZPdnlqN0VhTGtzTkNRNFgwQ2p3bkxESFJZTUplSzhpMGs4S0VHVkRmOXhBYWc1M3JNTUNKemt0TmlRd1Zaa1lZVExlM0MyTXRWMFhHeElRbGU0MEZJSmF0VXdOcVU0djBDam5vSHoxL3Q4NHptQ215Ly9oelNPUTBURTN1bkxWSHVVTXFiQ0l6M3VUSlVMUXZyRFRnZ3VvV1lvMlNTeWRsdWlTVzJMMFNWeStQWmtobWlZRnRTa1hNeGRaYmFTYkhCSVVQM3R1ZHBlRlVaWHA0MmRoSkRZcXdDTXZOTUs5K1JZQmJpelJRYlFMQjZQeWo4UEFzR3Z2UU1CRTRwck9wRVJRVTluM09xWDhzL084TFRtYzVhc2RDTG5yVFdGNHZrMzZCeDEzMjVIOFJweEhTbkZpVyszWWc2cUdMNGIvRlkrUzhiU2VTQ2EyOEQrZU0xYTlCL2RxRE9JQjhjeHNSSVFXU2VBN0Y5Z1VYK3BHYlZLRFMzbGVwK1R5Wnp2b09BN1RhNHE5YkRJNjdzOGcxT1pZUmNyQkg2NmQ5WW00V2tVWTFVaERIMEJBZ1FJRUNCQWdCczJhVzVtYVc1cGRIa0FSbVZpY25WaGNua0FTbUZ1ZFdGeWVRQktkV3g1QUZSb2RYSnpaR0Y1QUZSMVpYTmtZWGtBVjJWa2JtVnpaR0Y1QUZOaGRIVnlaR0Y1QUZOMWJtUmhlUUJOYjI1a1lYa0FSbkpwWkdGNUFFMWhlUUFsYlM4bFpDOGxlUUF0S3lBZ0lEQllNSGdBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUU1dmRnQlVhSFVBUVhWbmRYTjBBRTlqZEFCVFlYUUFRWEJ5QUhabFkzUnZjZ0JQWTNSdlltVnlBRTV2ZG1WdFltVnlBRk5sY0hSbGJXSmxjZ0JFWldObGJXSmxjZ0JwYjNOZlltRnpaVG82WTJ4bFlYSUFUV0Z5QUZObGNBQWxTVG9sVFRvbFV5QWxjQUJUZFc0QVNuVnVBSE4wWkRvNlpYaGpaWEIwYVc5dUFGOWZZM2hoWDJkMVlYSmtYMkZqY1hWcGNtVWdaR1YwWldOMFpXUWdjbVZqZFhKemFYWmxJR2x1YVhScFlXeHBlbUYwYVc5dUFFMXZiZ0J1WVc0QVNtRnVBRXAxYkFCc2JBQkJjSEpwYkFCR2Nta0FUV0Z5WTJnQVFYVm5BR2x1WmdBbExqQk1aZ0FsVEdZQVlXeHNiMk5oZEc5eVBGUStPanBoYkd4dlkyRjBaU2h6YVhwbFgzUWdiaWtnSjI0bklHVjRZMlZsWkhNZ2JXRjRhVzExYlNCemRYQndiM0owWldRZ2MybDZaUUIwY25WbEFGUjFaUUJtWVd4elpRQktkVzVsQUZkbFpBQkVaV01BUm1WaUFDVmhJQ1ZpSUNWa0lDVklPaVZOT2lWVElDVlpBRkJQVTBsWUFDVklPaVZOT2lWVEFFNUJUZ0JRVFFCQlRRQk1RMTlCVEV3QVRFRk9Sd0JKVGtZQVF3QXdNVEl6TkRVMk56ZzVBRU11VlZSR0xUZ0FZWEJ3WDNZeUFIZGxZbDkyTWdCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV21GaVkyUmxabWRvYVdwcmJHMXViM0J4Y25OMGRYWjNlSGw2TURFeU16UTFOamM0T1NzdkFDNEFLRzUxYkd3cEFGQjFjbVVnZG1seWRIVmhiQ0JtZFc1amRHbHZiaUJqWVd4c1pXUWhBRnRvUlV1Y3ErNUh5Z1QwQlFBQUFBQUFBQUJvRVFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQUlBQUFBQUFBQUFLQVJBQUFTQUFBQUV3QUFBUGovLy8vNC8vLy9vQkVBQUJRQUFBQVZBQUFBQUJBQUFCUVFBQUFFQUFBQUFBQUFBT2dSQUFBV0FBQUFGd0FBQVB6Ly8vLzgvLy8vNkJFQUFCZ0FBQUFaQUFBQU1CQUFBRVFRQUFBTUFBQUFBQUFBQUlBU0FBQWFBQUFBR3dBQUFBUUFBQUQ0Ly8vL2dCSUFBQndBQUFBZEFBQUE5UC8vLy9ULy8vK0FFZ0FBSGdBQUFCOEFBQUJnRUFBQURCSUFBQ0FTQUFBMEVnQUFTQklBQUlnUUFBQjBFQUFBQUFBQUFPUVNBQUFnQUFBQUlRQUFBQVlBQUFBSEFBQUFJZ0FBQUNNQUFBQUtBQUFBQ3dBQUFBd0FBQUFrQUFBQURnQUFBQ1VBQUFBUUFBQUFKZ0FBQUFBQUFBQW9FUUFBSndBQUFDZ0FBQUJPVTNRelgxOHlPV0poYzJsalgybHZjMGxqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJRQUFBQmcvQUFEOEVBQUFXQlFBQUU1VGRETmZYekl4TldKaGMybGpYM04wY21WaGJXSjFaa2xqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJRQUFBQUR3UGdBQU5CRUFBRTVUZEROZlh6SXhNMkpoYzJsalgybHpkSEpsWVcxSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVVBQUhRL0FBQndFUUFBQUFBQUFBRUFBQUFvRVFBQUEvVC8vMDVUZEROZlh6SXhNMkpoYzJsalgyOXpkSEpsWVcxSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVVBQUhRL0FBQzRFUUFBQUFBQUFBRUFBQUFvRVFBQUEvVC8vd3dBQUFBQUFBQUFvQkVBQUJJQUFBQVRBQUFBOVAvLy8vVC8vLytnRVFBQUZBQUFBQlVBQUFBRUFBQUFBQUFBQU9nUkFBQVdBQUFBRndBQUFQei8vLy84Ly8vLzZCRUFBQmdBQUFBWkFBQUFUbE4wTTE5Zk1qRTBZbUZ6YVdOZmFXOXpkSEpsWVcxSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVVBZEQ4QUFGQVNBQUFEQUFBQUFnQUFBS0FSQUFBQ0FBQUE2QkVBQUFJSUFBQk9VM1F6WDE4eU1UVmlZWE5wWTE5emRISnBibWRpZFdaSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZUbE5mT1dGc2JHOWpZWFJ2Y2tsalJVVkZSUUFBQUJnL0FBQ2dFZ0FBYUJFQUFFQUFBQUFBQUFBQUtCUUFBQ2tBQUFBcUFBQUFPQUFBQVBqLy8vOG9GQUFBS3dBQUFDd0FBQURBLy8vL3dQLy8veWdVQUFBdEFBQUFMZ0FBQVB3U0FBQmdFd0FBbkJNQUFMQVRBQURFRXdBQTJCTUFBSWdUQUFCMEV3QUFKQk1BQUJBVEFBQkFBQUFBQUFBQUFJQVNBQUFhQUFBQUd3QUFBRGdBQUFENC8vLy9nQklBQUJ3QUFBQWRBQUFBd1AvLy84RC8vLytBRWdBQUhnQUFBQjhBQUFCQUFBQUFBQUFBQUtBUkFBQVNBQUFBRXdBQUFNRC8vLy9BLy8vL29CRUFBQlFBQUFBVkFBQUFPQUFBQUFBQUFBRG9FUUFBRmdBQUFCY0FBQURJLy8vL3lQLy8vK2dSQUFBWUFBQUFHUUFBQUU1VGRETmZYekl4T0dKaGMybGpYM04wY21sdVozTjBjbVZoYlVsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVk9VMTg1WVd4c2IyTmhkRzl5U1dORlJVVkZBQUFBQUJnL0FBRGdFd0FBZ0JJQUFBQUFBQUJZRkFBQUx3QUFBREFBQUFCT1UzUXpYMTh5T0dsdmMxOWlZWE5sUlFBQUFQQStBQUJFRkFBQTBYU2VBRmVkdlNxQWNGSVAvLzgrSndvQUFBQmtBQUFBNkFNQUFCQW5BQUNnaGdFQVFFSVBBSUNXbUFBQTRmVUZHQUFBQURVQUFBQnhBQUFBYS8vLy84NzcvLytTdi8vL0FBQUFBQUFBQUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQUVDQXdRRkJnY0lDZi8vLy8vLy8vOEtDd3dORGc4UUVSSVRGQlVXRnhnWkdoc2NIUjRmSUNFaUkvLy8vLy8vL3dvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd0FCQWdRSEF3WUZBQUFBQUFBQUFBSUFBTUFEQUFEQUJBQUF3QVVBQU1BR0FBREFCd0FBd0FnQUFNQUpBQURBQ2dBQXdBc0FBTUFNQUFEQURRQUF3QTRBQU1BUEFBREFFQUFBd0JFQUFNQVNBQURBRXdBQXdCUUFBTUFWQUFEQUZnQUF3QmNBQU1BWUFBREFHUUFBd0JvQUFNQWJBQURBSEFBQXdCMEFBTUFlQUFEQUh3QUF3QUFBQUxNQkFBRERBZ0FBd3dNQUFNTUVBQUREQlFBQXd3WUFBTU1IQUFERENBQUF3d2tBQU1NS0FBRERDd0FBd3d3QUFNTU5BQURURGdBQXd3OEFBTU1BQUF5N0FRQU13d0lBRE1NREFBekRCQUFNMndBQUFBRGVFZ1NWQUFBQUFQLy8vLy8vLy8vLy8vLy8vNUFXQUFBVUFBQUFReTVWVkVZdE9BQkI0QzBMQXFRV0FFR0FMZ3RIVEVOZlExUlpVRVVBQUFBQVRFTmZUbFZOUlZKSlF3QUFURU5mVkVsTlJRQUFBQUFBVEVOZlEwOU1URUZVUlFBQVRFTmZUVTlPUlZSQlVsa0FURU5mVFVWVFUwRkhSVk1BUWRBdUMwRVpBQW9BR1JrWkFBQUFBQVVBQUFBQUFBQUpBQUFBQUFzQUFBQUFBQUFBQUJrQUVRb1pHUmtEQ2djQUFRQUpDeGdBQUFrR0N3QUFDd0FHR1FBQUFCa1pHUUJCb1M4TElRNEFBQUFBQUFBQUFCa0FDZzBaR1JrQURRQUFBZ0FKRGdBQUFBa0FEZ0FBRGdCQjJ5OExBUXdBUWVjdkN4VVRBQUFBQUJNQUFBQUFDUXdBQUFBQUFBd0FBQXdBUVpVd0N3RVFBRUdoTUFzVkR3QUFBQVFQQUFBQUFBa1FBQUFBQUFBUUFBQVFBRUhQTUFzQkVnQkIyekFMSGhFQUFBQUFFUUFBQUFBSkVnQUFBQUFBRWdBQUVnQUFHZ0FBQUJvYUdnQkJrakVMRGhvQUFBQWFHaG9BQUFBQUFBQUpBRUhETVFzQkZBQkJ6ekVMRlJjQUFBQUFGd0FBQUFBSkZBQUFBQUFBRkFBQUZBQkIvVEVMQVJZQVFZa3lDeWtWQUFBQUFCVUFBQUFBQ1JZQUFBQUFBQllBQUJZQUFEQXhNak0wTlRZM09EbEJRa05FUlVaQUdnQkJ3RFFML3dFQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBRElBSWdBaUFDSUFJZ0FnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFXQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFJMkFqWUNOZ0kyQWpZQ05nSTJBallDTmdJMkFUQUJNQUV3QVRBQk1BRXdBVEFDTlVJMVFqVkNOVUkxUWpWQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRVEFCTUFFd0FUQUJNQUV3QWpXQ05ZSTFnaldDTllJMWdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUV3QVRBQk1BRXdBSUFRY0E0Q3dKUUhnQkIxRHdMK1FNQkFBQUFBZ0FBQUFNQUFBQUVBQUFBQlFBQUFBWUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUFBQUVRQUFBQklBQUFBVEFBQUFGQUFBQUJVQUFBQVdBQUFBRndBQUFCZ0FBQUFaQUFBQUdnQUFBQnNBQUFBY0FBQUFIUUFBQUI0QUFBQWZBQUFBSUFBQUFDRUFBQUFpQUFBQUl3QUFBQ1FBQUFBbEFBQUFKZ0FBQUNjQUFBQW9BQUFBS1FBQUFDb0FBQUFyQUFBQUxBQUFBQzBBQUFBdUFBQUFMd0FBQURBQUFBQXhBQUFBTWdBQUFETUFBQUEwQUFBQU5RQUFBRFlBQUFBM0FBQUFPQUFBQURrQUFBQTZBQUFBT3dBQUFEd0FBQUE5QUFBQVBnQUFBRDhBQUFCQUFBQUFRUUFBQUVJQUFBQkRBQUFBUkFBQUFFVUFBQUJHQUFBQVJ3QUFBRWdBQUFCSkFBQUFTZ0FBQUVzQUFBQk1BQUFBVFFBQUFFNEFBQUJQQUFBQVVBQUFBRkVBQUFCU0FBQUFVd0FBQUZRQUFBQlZBQUFBVmdBQUFGY0FBQUJZQUFBQVdRQUFBRm9BQUFCYkFBQUFYQUFBQUYwQUFBQmVBQUFBWHdBQUFHQUFBQUJCQUFBQVFnQUFBRU1BQUFCRUFBQUFSUUFBQUVZQUFBQkhBQUFBU0FBQUFFa0FBQUJLQUFBQVN3QUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQVZBQUFBRlVBQUFCV0FBQUFWd0FBQUZnQUFBQlpBQUFBV2dBQUFIc0FBQUI4QUFBQWZRQUFBSDRBQUFCL0FFSFF4QUFMQW1Ba0FFSGt5QUFMK1FNQkFBQUFBZ0FBQUFNQUFBQUVBQUFBQlFBQUFBWUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUFBQUVRQUFBQklBQUFBVEFBQUFGQUFBQUJVQUFBQVdBQUFBRndBQUFCZ0FBQUFaQUFBQUdnQUFBQnNBQUFBY0FBQUFIUUFBQUI0QUFBQWZBQUFBSUFBQUFDRUFBQUFpQUFBQUl3QUFBQ1FBQUFBbEFBQUFKZ0FBQUNjQUFBQW9BQUFBS1FBQUFDb0FBQUFyQUFBQUxBQUFBQzBBQUFBdUFBQUFMd0FBQURBQUFBQXhBQUFBTWdBQUFETUFBQUEwQUFBQU5RQUFBRFlBQUFBM0FBQUFPQUFBQURrQUFBQTZBQUFBT3dBQUFEd0FBQUE5QUFBQVBnQUFBRDhBQUFCQUFBQUFZUUFBQUdJQUFBQmpBQUFBWkFBQUFHVUFBQUJtQUFBQVp3QUFBR2dBQUFCcEFBQUFhZ0FBQUdzQUFBQnNBQUFBYlFBQUFHNEFBQUJ2QUFBQWNBQUFBSEVBQUFCeUFBQUFjd0FBQUhRQUFBQjFBQUFBZGdBQUFIY0FBQUI0QUFBQWVRQUFBSG9BQUFCYkFBQUFYQUFBQUYwQUFBQmVBQUFBWHdBQUFHQUFBQUJoQUFBQVlnQUFBR01BQUFCa0FBQUFaUUFBQUdZQUFBQm5BQUFBYUFBQUFHa0FBQUJxQUFBQWF3QUFBR3dBQUFCdEFBQUFiZ0FBQUc4QUFBQndBQUFBY1FBQUFISUFBQUJ6QUFBQWRBQUFBSFVBQUFCMkFBQUFkd0FBQUhnQUFBQjVBQUFBZWdBQUFIc0FBQUI4QUFBQWZRQUFBSDRBQUFCL0FFSGcwQUFMd1FFd01USXpORFUyTnpnNVlXSmpaR1ZtUVVKRFJFVkdlRmdyTFhCUWFVbHVUZ0FsQUFBQUFBQWxjQUFBQUFBbFNUb2xUVG9sVXlBbGNDVklPaVZOQUFBQUpRQUFBRzBBQUFBdkFBQUFKUUFBQUdRQUFBQXZBQUFBSlFBQUFIa0FBQUFsQUFBQVdRQUFBQzBBQUFBbEFBQUFiUUFBQUMwQUFBQWxBQUFBWkFBQUFDVUFBQUJKQUFBQU9nQUFBQ1VBQUFCTkFBQUFPZ0FBQUNVQUFBQlRBQUFBSUFBQUFDVUFBQUJ3QUFBQUFBQUFBQ1VBQUFCSUFBQUFPZ0FBQUNVQUFBQk5BRUd3MGdBTDJRTWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUFBQUFBQzBMUUFBUndBQUFFZ0FBQUJKQUFBQUFBQUFBQlF1QUFCS0FBQUFTd0FBQUVrQUFBQk1BQUFBVFFBQUFFNEFBQUJQQUFBQVVBQUFBRkVBQUFCU0FBQUFVd0FBQUFBQUFBQjhMUUFBVkFBQUFGVUFBQUJKQUFBQVZnQUFBRmNBQUFCWUFBQUFXUUFBQUZvQUFBQmJBQUFBWEFBQUFBQUFBQUJNTGdBQVhRQUFBRjRBQUFCSkFBQUFYd0FBQUdBQUFBQmhBQUFBWWdBQUFHTUFBQUFBQUFBQWNDNEFBR1FBQUFCbEFBQUFTUUFBQUdZQUFBQm5BQUFBYUFBQUFHa0FBQUJxQUFBQWRBQUFBSElBQUFCMUFBQUFaUUFBQUFBQUFBQm1BQUFBWVFBQUFHd0FBQUJ6QUFBQVpRQUFBQUFBQUFBbEFBQUFiUUFBQUM4QUFBQWxBQUFBWkFBQUFDOEFBQUFsQUFBQWVRQUFBQUFBQUFBbEFBQUFTQUFBQURvQUFBQWxBQUFBVFFBQUFEb0FBQUFsQUFBQVV3QUFBQUFBQUFBbEFBQUFZUUFBQUNBQUFBQWxBQUFBWWdBQUFDQUFBQUFsQUFBQVpBQUFBQ0FBQUFBbEFBQUFTQUFBQURvQUFBQWxBQUFBVFFBQUFEb0FBQUFsQUFBQVV3QUFBQ0FBQUFBbEFBQUFXUUFBQUFBQUFBQWxBQUFBU1FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUNBQUFBQWxBQUFBY0FCQmxOWUFDNVlKUENzQUFHc0FBQUJzQUFBQVNRQUFBRTVUZEROZlh6STJiRzlqWVd4bE5XWmhZMlYwUlFBQUFCZy9BQUFrS3dBQWdENEFBQUFBQUFDOEt3QUFhd0FBQUcwQUFBQkpBQUFBYmdBQUFHOEFBQUJ3QUFBQWNRQUFBSElBQUFCekFBQUFkQUFBQUhVQUFBQjJBQUFBZHdBQUFIZ0FBQUI1QUFBQVRsTjBNMTlmTWpWamRIbHdaVWwzUlVVQVRsTjBNMTlmTWpFd1kzUjVjR1ZmWW1GelpVVUFBUEErQUFDZUt3QUFkRDhBQUl3ckFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXRDc0FBQUlBQUFBQUFBQUFVQ3dBQUdzQUFBQjZBQUFBU1FBQUFIc0FBQUI4QUFBQWZRQUFBSDRBQUFCL0FBQUFnQUFBQUlFQUFBQk9VM1F6WDE4eU4yTnZaR1ZqZG5SSlkyTXhNVjlmYldKemRHRjBaVjkwUlVVQVRsTjBNMTlmTWpFeVkyOWtaV04yZEY5aVlYTmxSUUFBQUFEd1BnQUFMaXdBQUhRL0FBQU1MQUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBRWdzQUFBQ0FBQUFBQUFBQU1Rc0FBQnJBQUFBZ2dBQUFFa0FBQUNEQUFBQWhBQUFBSVVBQUFDR0FBQUFod0FBQUlnQUFBQ0pBQUFBVGxOME0xOWZNamRqYjJSbFkzWjBTVVJ6WXpFeFgxOXRZbk4wWVhSbFgzUkZSUUFBZEQ4QUFLQXNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFTQ3dBQUFJQUFBQUFBQUFBT0MwQUFHc0FBQUNLQUFBQVNRQUFBSXNBQUFDTUFBQUFqUUFBQUk0QUFBQ1BBQUFBa0FBQUFKRUFBQUJPVTNRelgxOHlOMk52WkdWamRuUkpSR2xqTVRGZlgyMWljM1JoZEdWZmRFVkZBQUIwUHdBQUZDMEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQklMQUFBQWdBQUFFNVRkRE5mWHpJM1kyOWtaV04yZEVsM1l6RXhYMTl0WW5OMFlYUmxYM1JGUlFBQUFIUS9BQUJZTFFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUVnc0FBQUNBQUFBVGxOME0xOWZNalpzYjJOaGJHVTFYMTlwYlhCRkFBQUFHRDhBQUp3dEFBQThLd0FBVGxOME0xOWZNamRqYjJ4c1lYUmxTV05GUlFBWVB3QUF3QzBBQUR3ckFBQk9VM1F6WDE4eU4yTnZiR3hoZEdWSmQwVkZBQmcvQUFEZ0xRQUFQQ3NBQUU1VGRETmZYekkxWTNSNWNHVkpZMFZGQUFBQWREOEFBQUF1QUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBdENzQUFBSUFBQUJPVTNRelgxOHlPRzUxYlhCMWJtTjBTV05GUlFBQUFBQVlQd0FBTkM0QUFEd3JBQUJPVTNRelgxOHlPRzUxYlhCMWJtTjBTWGRGUlFBQUFBQVlQd0FBV0M0QUFEd3JBQUFBQUFBQTFDMEFBSklBQUFDVEFBQUFTUUFBQUpRQUFBQ1ZBQUFBbGdBQUFBQUFBQUQwTFFBQWx3QUFBSmdBQUFCSkFBQUFtUUFBQUpvQUFBQ2JBQUFBQUFBQUFKQXZBQUJyQUFBQW5BQUFBRWtBQUFDZEFBQUFuZ0FBQUo4QUFBQ2dBQUFBb1FBQUFLSUFBQUNqQUFBQXBBQUFBS1VBQUFDbUFBQUFwd0FBQUU1VGRETmZYekkzYm5WdFgyZGxkRWxqVGxOZk1UbHBjM1J5WldGdFluVm1YMmwwWlhKaGRHOXlTV05PVTE4eE1XTm9ZWEpmZEhKaGFYUnpTV05GUlVWRlJVVUFUbE4wTTE5Zk1qbGZYMjUxYlY5blpYUkpZMFZGQUU1VGRETmZYekl4TkY5ZmJuVnRYMmRsZEY5aVlYTmxSUUFBOEQ0QUFGWXZBQUIwUHdBQVFDOEFBQUFBQUFBQkFBQUFjQzhBQUFBQUFBQjBQd0FBL0M0QUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFCNEx3QkJ0TjhBQzhvQlpEQUFBR3NBQUFDb0FBQUFTUUFBQUtrQUFBQ3FBQUFBcXdBQUFLd0FBQUN0QUFBQXJnQUFBSzhBQUFDd0FBQUFzUUFBQUxJQUFBQ3pBQUFBVGxOME0xOWZNamR1ZFcxZloyVjBTWGRPVTE4eE9XbHpkSEpsWVcxaWRXWmZhWFJsY21GMGIzSkpkMDVUWHpFeFkyaGhjbDkwY21GcGRITkpkMFZGUlVWRlJRQk9VM1F6WDE4eU9WOWZiblZ0WDJkbGRFbDNSVVVBQUFCMFB3QUFOREFBQUFBQUFBQUJBQUFBY0M4QUFBQUFBQUIwUHdBQThDOEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQk1NQUJCaU9FQUM5NEJUREVBQUdzQUFBQzBBQUFBU1FBQUFMVUFBQUMyQUFBQXR3QUFBTGdBQUFDNUFBQUF1Z0FBQUxzQUFBQzhBQUFBVGxOME0xOWZNamR1ZFcxZmNIVjBTV05PVTE4eE9XOXpkSEpsWVcxaWRXWmZhWFJsY21GMGIzSkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVWRlJRQk9VM1F6WDE4eU9WOWZiblZ0WDNCMWRFbGpSVVVBVGxOME0xOWZNakUwWDE5dWRXMWZjSFYwWDJKaGMyVkZBQUR3UGdBQUVqRUFBSFEvQUFEOE1BQUFBQUFBQUFFQUFBQXNNUUFBQUFBQUFIUS9BQUM0TUFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQURReEFFSHc0Z0FMdmdFVU1nQUFhd0FBQUwwQUFBQkpBQUFBdmdBQUFMOEFBQURBQUFBQXdRQUFBTUlBQUFEREFBQUF4QUFBQU1VQUFBQk9VM1F6WDE4eU4yNTFiVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekk1WDE5dWRXMWZjSFYwU1hkRlJRQUFBSFEvQUFEa01RQUFBQUFBQUFFQUFBQXNNUUFBQUFBQUFIUS9BQUNnTVFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQVB3eEFFRzQ1QUFMbWdzVU13QUF4Z0FBQU1jQUFBQkpBQUFBeUFBQUFNa0FBQURLQUFBQXl3QUFBTXdBQUFETkFBQUF6Z0FBQVBqLy8vOFVNd0FBendBQUFOQUFBQURSQUFBQTBnQUFBTk1BQUFEVUFBQUExUUFBQUU1VGRETmZYekk0ZEdsdFpWOW5aWFJKWTA1VFh6RTVhWE4wY21WaGJXSjFabDlwZEdWeVlYUnZja2xqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJVVkZBRTVUZEROZlh6STVkR2x0WlY5aVlYTmxSUUR3UGdBQXpUSUFBRTVUZEROZlh6SXlNRjlmZEdsdFpWOW5aWFJmWTE5emRHOXlZV2RsU1dORlJRQUFBUEErQUFEb01nQUFkRDhBQUlneUFBQUFBQUFBQXdBQUFEd3JBQUFDQUFBQTRESUFBQUlBQUFBTU13QUFBQWdBQUFBQUFBQUFOQUFBMWdBQUFOY0FBQUJKQUFBQTJBQUFBTmtBQUFEYUFBQUEyd0FBQU53QUFBRGRBQUFBM2dBQUFQai8vLzhBTkFBQTN3QUFBT0FBQUFEaEFBQUE0Z0FBQU9NQUFBRGtBQUFBNVFBQUFFNVRkRE5mWHpJNGRHbHRaVjluWlhSSmQwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl5TUY5ZmRHbHRaVjluWlhSZlkxOXpkRzl5WVdkbFNYZEZSUUFBOEQ0QUFOVXpBQUIwUHdBQWtETUFBQUFBQUFBREFBQUFQQ3NBQUFJQUFBRGdNZ0FBQWdBQUFQZ3pBQUFBQ0FBQUFBQUFBS1EwQUFEbUFBQUE1d0FBQUVrQUFBRG9BQUFBVGxOME0xOWZNamgwYVcxbFgzQjFkRWxqVGxOZk1UbHZjM1J5WldGdFluVm1YMmwwWlhKaGRHOXlTV05PVTE4eE1XTm9ZWEpmZEhKaGFYUnpTV05GUlVWRlJVVUFUbE4wTTE5Zk1qRXdYMTkwYVcxbFgzQjFkRVVBQUFEd1BnQUFoVFFBQUhRL0FBQkFOQUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBSncwQUFBQUNBQUFBQUFBQUNRMUFBRHBBQUFBNmdBQUFFa0FBQURyQUFBQVRsTjBNMTlmTWpoMGFXMWxYM0IxZEVsM1RsTmZNVGx2YzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1hkT1UxOHhNV05vWVhKZmRISmhhWFJ6U1hkRlJVVkZSVVVBQUFBQWREOEFBTncwQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBbkRRQUFBQUlBQUFBQUFBQXVEVUFBR3NBQUFEc0FBQUFTUUFBQU8wQUFBRHVBQUFBN3dBQUFQQUFBQUR4QUFBQThnQUFBUE1BQUFEMEFBQUE5UUFBQUU1VGRETmZYekl4TUcxdmJtVjVjSFZ1WTNSSlkweGlNRVZGUlFCT1UzUXpYMTh5TVRCdGIyNWxlVjlpWVhObFJRQUFBQUR3UGdBQW1EVUFBSFEvQUFCOE5RQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFMQTFBQUFDQUFBQUFBQUFBQ3cyQUFCckFBQUE5Z0FBQUVrQUFBRDNBQUFBK0FBQUFQa0FBQUQ2QUFBQSt3QUFBUHdBQUFEOUFBQUEvZ0FBQVA4QUFBQk9VM1F6WDE4eU1UQnRiMjVsZVhCMWJtTjBTV05NWWpGRlJVVUFkRDhBQUJBMkFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXNEVUFBQUlBQUFBQUFBQUFvRFlBQUdzQUFBQUFBUUFBU1FBQUFBRUJBQUFDQVFBQUF3RUFBQVFCQUFBRkFRQUFCZ0VBQUFjQkFBQUlBUUFBQ1FFQUFFNVRkRE5mWHpJeE1HMXZibVY1Y0hWdVkzUkpkMHhpTUVWRlJRQjBQd0FBaERZQUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFDd05RQUFBZ0FBQUFBQUFBQVVOd0FBYXdBQUFBb0JBQUJKQUFBQUN3RUFBQXdCQUFBTkFRQUFEZ0VBQUE4QkFBQVFBUUFBRVFFQUFCSUJBQUFUQVFBQVRsTjBNMTlmTWpFd2JXOXVaWGx3ZFc1amRFbDNUR0l4UlVWRkFIUS9BQUQ0TmdBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUxBMUFBQUNBQUFBQUFBQUFMZzNBQUJyQUFBQUZBRUFBRWtBQUFBVkFRQUFGZ0VBQUU1VGRETmZYekk1Ylc5dVpYbGZaMlYwU1dOT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlNVEZmWDIxdmJtVjVYMmRsZEVsalJVVUFBUEErQUFDV053QUFkRDhBQUZBM0FBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXNEY0FRZHp2QUF1YUFWdzRBQUJyQUFBQUZ3RUFBRWtBQUFBWUFRQUFHUUVBQUU1VGRETmZYekk1Ylc5dVpYbGZaMlYwU1hkT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKZDA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KZDBWRlJVVkZSUUJPVTNRelgxOHlNVEZmWDIxdmJtVjVYMmRsZEVsM1JVVUFBUEErQUFBNk9BQUFkRDhBQVBRM0FBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQVZEZ0FRWUh4QUF1WkFUa0FBR3NBQUFBYUFRQUFTUUFBQUJzQkFBQWNBUUFBVGxOME0xOWZNamx0YjI1bGVWOXdkWFJKWTA1VFh6RTViM04wY21WaGJXSjFabDlwZEdWeVlYUnZja2xqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJVVkZBRTVUZEROZlh6SXhNVjlmYlc5dVpYbGZjSFYwU1dORlJRQUE4RDRBQU40NEFBQjBQd0FBbURnQUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFENE9BQkJwUElBQzVvQnBEa0FBR3NBQUFBZEFRQUFTUUFBQUI0QkFBQWZBUUFBVGxOME0xOWZNamx0YjI1bGVWOXdkWFJKZDA1VFh6RTViM04wY21WaGJXSjFabDlwZEdWeVlYUnZja2wzVGxOZk1URmphR0Z5WDNSeVlXbDBjMGwzUlVWRlJVVkZBRTVUZEROZlh6SXhNVjlmYlc5dVpYbGZjSFYwU1hkRlJRQUE4RDRBQUlJNUFBQjBQd0FBUERrQUFBQUFBQUFDQUFBQVBDc0FBQUlBQUFDY09RQkJ5UE1BQzdrSUhEb0FBR3NBQUFBZ0FRQUFTUUFBQUNFQkFBQWlBUUFBSXdFQUFFNVRkRE5mWHpJNGJXVnpjMkZuWlhOSlkwVkZBRTVUZEROZlh6SXhNMjFsYzNOaFoyVnpYMkpoYzJWRkFBQUFBUEErQUFENU9RQUFkRDhBQU9RNUFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQUZEb0FBQUlBQUFBQUFBQUFkRG9BQUdzQUFBQWtBUUFBU1FBQUFDVUJBQUFtQVFBQUp3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpkMFZGQUFBQUFIUS9BQUJjT2dBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUJRNkFBQUNBQUFBVXdBQUFIVUFBQUJ1QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUUwQUFBQnZBQUFBYmdBQUFHUUFBQUJoQUFBQWVRQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQnpBQUFBWkFBQUFHRUFBQUI1QUFBQUFBQUFBRmNBQUFCbEFBQUFaQUFBQUc0QUFBQmxBQUFBY3dBQUFHUUFBQUJoQUFBQWVRQUFBQUFBQUFCVUFBQUFhQUFBQUhVQUFBQnlBQUFBY3dBQUFHUUFBQUJoQUFBQWVRQUFBQUFBQUFCR0FBQUFjZ0FBQUdrQUFBQmtBQUFBWVFBQUFIa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFkUUFBQUhJQUFBQmtBQUFBWVFBQUFIa0FBQUFBQUFBQVV3QUFBSFVBQUFCdUFBQUFBQUFBQUUwQUFBQnZBQUFBYmdBQUFBQUFBQUJVQUFBQWRRQUFBR1VBQUFBQUFBQUFWd0FBQUdVQUFBQmtBQUFBQUFBQUFGUUFBQUJvQUFBQWRRQUFBQUFBQUFCR0FBQUFjZ0FBQUdrQUFBQUFBQUFBVXdBQUFHRUFBQUIwQUFBQUFBQUFBRW9BQUFCaEFBQUFiZ0FBQUhVQUFBQmhBQUFBY2dBQUFIa0FBQUFBQUFBQVJnQUFBR1VBQUFCaUFBQUFjZ0FBQUhVQUFBQmhBQUFBY2dBQUFIa0FBQUFBQUFBQVRRQUFBR0VBQUFCeUFBQUFZd0FBQUdnQUFBQUFBQUFBUVFBQUFIQUFBQUJ5QUFBQWFRQUFBR3dBQUFBQUFBQUFUUUFBQUdFQUFBQjVBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBR1VBQUFBQUFBQUFTZ0FBQUhVQUFBQnNBQUFBZVFBQUFBQUFBQUJCQUFBQWRRQUFBR2NBQUFCMUFBQUFjd0FBQUhRQUFBQUFBQUFBVXdBQUFHVUFBQUJ3QUFBQWRBQUFBR1VBQUFCdEFBQUFZZ0FBQUdVQUFBQnlBQUFBQUFBQUFFOEFBQUJqQUFBQWRBQUFBRzhBQUFCaUFBQUFaUUFBQUhJQUFBQUFBQUFBVGdBQUFHOEFBQUIyQUFBQVpRQUFBRzBBQUFCaUFBQUFaUUFBQUhJQUFBQUFBQUFBUkFBQUFHVUFBQUJqQUFBQVpRQUFBRzBBQUFCaUFBQUFaUUFBQUhJQUFBQUFBQUFBU2dBQUFHRUFBQUJ1QUFBQUFBQUFBRVlBQUFCbEFBQUFZZ0FBQUFBQUFBQk5BQUFBWVFBQUFISUFBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFBQUFBQUVvQUFBQjFBQUFBYmdBQUFBQUFBQUJLQUFBQWRRQUFBR3dBQUFBQUFBQUFRUUFBQUhVQUFBQm5BQUFBQUFBQUFGTUFBQUJsQUFBQWNBQUFBQUFBQUFCUEFBQUFZd0FBQUhRQUFBQUFBQUFBVGdBQUFHOEFBQUIyQUFBQUFBQUFBRVFBQUFCbEFBQUFZd0FBQUFBQUFBQkJBQUFBVFFBQUFBQUFBQUJRQUFBQVRRQkJqUHdBQytJRURETUFBTThBQUFEUUFBQUEwUUFBQU5JQUFBRFRBQUFBMUFBQUFOVUFBQUFBQUFBQStETUFBTjhBQUFEZ0FBQUE0UUFBQU9JQUFBRGpBQUFBNUFBQUFPVUFBQUFBQUFBQWdENEFBQ2dCQUFBcEFRQUFLZ0VBQUU1VGRETmZYekl4TkY5ZmMyaGhjbVZrWDJOdmRXNTBSUUFBQUFEd1BnQUFaRDRBQUU0eE1GOWZZM2g0WVdKcGRqRXhObDlmYzJocGJWOTBlWEJsWDJsdVptOUZBQUFBQUJnL0FBQ0lQZ0FBYUVBQUFFNHhNRjlmWTNoNFlXSnBkakV4TjE5ZlkyeGhjM05mZEhsd1pWOXBibVp2UlFBQUFCZy9BQUM0UGdBQXJENEFBQUFBQUFEY1BnQUFLd0VBQUN3QkFBQXRBUUFBTGdFQUFDOEJBQUF3QVFBQU1RRUFBRElCQUFBQUFBQUFZRDhBQUNzQkFBQXpBUUFBTFFFQUFDNEJBQUF2QVFBQU5BRUFBRFVCQUFBMkFRQUFUakV3WDE5amVIaGhZbWwyTVRJd1gxOXphVjlqYkdGemMxOTBlWEJsWDJsdVptOUZBQUFBQUJnL0FBQTRQd0FBM0Q0QUFBQUFBQUM4UHdBQUt3RUFBRGNCQUFBdEFRQUFMZ0VBQUM4QkFBQTRBUUFBT1FFQUFEb0JBQUJPTVRCZlgyTjRlR0ZpYVhZeE1qRmZYM1p0YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUdEOEFBSlEvQUFEY1BnQUFBQUFBQU93L0FBQTdBUUFBUEFFQUFEMEJBQUJUZERsbGVHTmxjSFJwYjI0QUFBQUE4RDRBQU53L0FBQUFBQUFBR0VBQUFBTUFBQUErQVFBQVB3RUFBRk4wTVRGc2IyZHBZMTlsY25KdmNnQVlQd0FBQ0VBQUFPdy9BQUFBQUFBQVRFQUFBQU1BQUFCQUFRQUFQd0VBQUZOME1USnNaVzVuZEdoZlpYSnliM0lBQUFBQUdEOEFBRGhBQUFBWVFBQUFVM1E1ZEhsd1pWOXBibVp2QUFBQUFQQStBQUJZUUFCQjhJQUJDd0tnYXc9PSIpLF95PWZ1bmN0aW9uKEEpeyhBPUF8fHt9KS5pbnN0YW50aWF0ZVdhc209ZnVuY3Rpb24oQSxnKXt6eShBKS50aGVuKChmdW5jdGlvbihBKXtnKHtleHBvcnRzOkEuZXhwb3J0c30pfSkpfTt2YXIgZyxJPXZvaWQgMCE9PUE/QTp7fSxCPU9iamVjdC5hc3NpZ24sUT1CKHt9LEkpLEM9Ii4vdGhpcy5wcm9ncmFtIixFPSIiO0U9MCE9PShFPXNlbGYubG9jYXRpb24uaHJlZikuaW5kZXhPZigiYmxvYjoiKT9FLnN1YnN0cigwLEUucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixnPWZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZy5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGcucmVzcG9uc2UpfSxJLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciBpLHQsZT1JLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtCKEksUSksUT1udWxsLEkuYXJndW1lbnRzJiZJLmFyZ3VtZW50cyxJLnRoaXNQcm9ncmFtJiYoQz1JLnRoaXNQcm9ncmFtKSxJLnF1aXQmJkkucXVpdCxJLndhc21CaW5hcnkmJihpPUkud2FzbUJpbmFyeSksSS5ub0V4aXRSdW50aW1lLCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgV2ViQXNzZW1ibHk/InVuZGVmaW5lZCI6Tm4oV2ViQXNzZW1ibHkpKSYmUygibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBvLG4scixhLHMsYz0hMSxoPSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIHkoQSxnKXtyZXR1cm4gQT9mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPWcrSSxRPWc7QVtRXSYmIShRPj1CKTspKytRO2lmKFEtZz4xNiYmQS5zdWJhcnJheSYmaClyZXR1cm4gaC5kZWNvZGUoQS5zdWJhcnJheShnLFEpKTtmb3IodmFyIEM9IiI7ZzxROyl7dmFyIEU9QVtnKytdO2lmKDEyOCZFKXt2YXIgaT02MyZBW2crK107aWYoMTkyIT0oMjI0JkUpKXt2YXIgdD02MyZBW2crK107aWYoKEU9MjI0PT0oMjQwJkUpPygxNSZFKTw8MTJ8aTw8Nnx0Oig3JkUpPDwxOHxpPDwxMnx0PDw2fDYzJkFbZysrXSk8NjU1MzYpQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKTtlbHNle3ZhciBlPUUtNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHwxMDIzJmUpfX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJkUpPDw2fGkpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKX1yZXR1cm4gQ30ocixBLGcpOiIifWZ1bmN0aW9uIEQoQSxnLEksQil7aWYoIShCPjApKXJldHVybiAwO2Zvcih2YXIgUT1JLEM9SStCLTEsRT0wO0U8QS5sZW5ndGg7KytFKXt2YXIgaT1BLmNoYXJDb2RlQXQoRSk7aWYoaT49NTUyOTYmJmk8PTU3MzQzJiYoaT02NTUzNisoKDEwMjMmaSk8PDEwKXwxMDIzJkEuY2hhckNvZGVBdCgrK0UpKSxpPD0xMjcpe2lmKEk+PUMpYnJlYWs7Z1tJKytdPWl9ZWxzZSBpZihpPD0yMDQ3KXtpZihJKzE+PUMpYnJlYWs7Z1tJKytdPTE5MnxpPj42LGdbSSsrXT0xMjh8NjMmaX1lbHNlIGlmKGk8PTY1NTM1KXtpZihJKzI+PUMpYnJlYWs7Z1tJKytdPTIyNHxpPj4xMixnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfWVsc2V7aWYoSSszPj1DKWJyZWFrO2dbSSsrXT0yNDB8aT4+MTgsZ1tJKytdPTEyOHxpPj4xMiY2MyxnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfX1yZXR1cm4gZ1tJXT0wLEktUX1mdW5jdGlvbiBmKEEpe2Zvcih2YXIgZz0wLEk9MDtJPEEubGVuZ3RoOysrSSl7dmFyIEI9QS5jaGFyQ29kZUF0KEkpO0I+PTU1Mjk2JiZCPD01NzM0MyYmKEI9NjU1MzYrKCgxMDIzJkIpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytJKSksQjw9MTI3PysrZzpnKz1CPD0yMDQ3PzI6Qjw9NjU1MzU/Mzo0fXJldHVybiBnfWZ1bmN0aW9uIHUoQSxnKXtuLnNldChBLGcpfWZ1bmN0aW9uIHcoQSl7bz1BLEkuSEVBUDg9bj1uZXcgSW50OEFycmF5KEEpLEkuSEVBUDE2PW5ldyBJbnQxNkFycmF5KEEpLEkuSEVBUDMyPWE9bmV3IEludDMyQXJyYXkoQSksSS5IRUFQVTg9cj1uZXcgVWludDhBcnJheShBKSxJLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEEpLEkuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoQSksSS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoQSksSS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoQSl9SS5JTklUSUFMX01FTU9SWTt2YXIgZCxGLGw9W10sRz1bXSxSPVtdLFU9MCxrPW51bGw7ZnVuY3Rpb24gUyhBKXt0aHJvdyBJLm9uQWJvcnQmJkkub25BYm9ydChBKSxlKEE9IkFib3J0ZWQoIitBKyIpIiksYz0hMCxBKz0iLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiIsbmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihBKX1mdW5jdGlvbiBOKEEpe3JldHVybiBBLnN0YXJ0c1dpdGgoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiKX1mdW5jdGlvbiBNKEEpe3RyeXtpZihBPT1kJiZpKXJldHVybiBuZXcgVWludDhBcnJheShpKTtpZihnKXJldHVybiBnKEEpO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChJKXtTKEkpfX1mdW5jdGlvbiBZKEEpe2Zvcig7QS5sZW5ndGg+MDspe3ZhciBnPUEuc2hpZnQoKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyl7dmFyIEI9Zy5mdW5jOyJudW1iZXIiPT10eXBlb2YgQj92b2lkIDA9PT1nLmFyZz9IKEIpKCk6SChCKShnLmFyZyk6Qih2b2lkIDA9PT1nLmFyZz9udWxsOmcuYXJnKX1lbHNlIGcoSSl9fWZ1bmN0aW9uIEgoQSl7cmV0dXJuIHMuZ2V0KEEpfWZ1bmN0aW9uIHAoQSl7dGhpcy5leGNQdHI9QSx0aGlzLnB0cj1BLTE2LHRoaXMuc2V0X3R5cGU9ZnVuY3Rpb24oQSl7YVt0aGlzLnB0cis0Pj4yXT1BfSx0aGlzLmdldF90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIGFbdGhpcy5wdHIrND4+Ml19LHRoaXMuc2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oQSl7YVt0aGlzLnB0cis4Pj4yXT1BfSx0aGlzLmdldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGFbdGhpcy5wdHIrOD4+Ml19LHRoaXMuc2V0X3JlZmNvdW50PWZ1bmN0aW9uKEEpe2FbdGhpcy5wdHI+PjJdPUF9LHRoaXMuc2V0X2NhdWdodD1mdW5jdGlvbihBKXtBPUE/MTowLG5bdGhpcy5wdHIrMTJ8MF09QX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPW5bdGhpcy5wdHIrMTJ8MF19LHRoaXMuc2V0X3JldGhyb3duPWZ1bmN0aW9uKEEpe0E9QT8xOjAsblt0aGlzLnB0cisxM3wwXT1BfSx0aGlzLmdldF9yZXRocm93bj1mdW5jdGlvbigpe3JldHVybiAwIT1uW3RoaXMucHRyKzEzfDBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oQSxnKXt0aGlzLnNldF90eXBlKEEpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZyksdGhpcy5zZXRfcmVmY291bnQoMCksdGhpcy5zZXRfY2F1Z2h0KCExKSx0aGlzLnNldF9yZXRocm93bighMSl9LHRoaXMuYWRkX3JlZj1mdW5jdGlvbigpe3ZhciBBPWFbdGhpcy5wdHI+PjJdO2FbdGhpcy5wdHI+PjJdPUErMX0sdGhpcy5yZWxlYXNlX3JlZj1mdW5jdGlvbigpe3ZhciBBPWFbdGhpcy5wdHI+PjJdO3JldHVybiBhW3RoaXMucHRyPj4yXT1BLTEsMT09PUF9fWZ1bmN0aW9uIEooQSl7dHJ5e3JldHVybiB0Lmdyb3coQS1vLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksdyh0LmJ1ZmZlciksMX1jYXRjaChnKXt9fUkucHJlbG9hZGVkSW1hZ2VzPXt9LEkucHJlbG9hZGVkQXVkaW9zPXt9LE4oZD0iYXcud2FzbSIpfHwoRj1kLGQ9SS5sb2NhdGVGaWxlP0kubG9jYXRlRmlsZShGLEUpOkUrRik7dmFyIEw9e307ZnVuY3Rpb24gdigpe2lmKCF2LnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yPyJ1bmRlZmluZWQiOk5uKG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpDfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gTCl2b2lkIDA9PT1MW2ddP2RlbGV0ZSBBW2ddOkFbZ109TFtnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7di5zdHJpbmdzPUl9cmV0dXJuIHYuc3RyaW5nc31mdW5jdGlvbiBLKEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIG0oQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciB4PVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0scT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIGIoQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPUsoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxDPShCP3g6cSlbUV07aWYoIShnPkMtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1DLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBUKEEsZyxJKXt2YXIgQj1JPjA/STpmKEEpKzEsUT1uZXcgQXJyYXkoQiksQz1EKEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUMpLFF9dmFyIE89e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIFcoQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBwKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7UygiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe3IuY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9ci5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBDPTE7Qzw9NDtDKj0yKXt2YXIgRT1CKigxKy4yL0MpO2lmKEU9TWF0aC5taW4oRSxBKzEwMDY2MzI5NiksSihNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEUpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gdigpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO2FbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKW5bMHxnKytdPUEuY2hhckNvZGVBdChCKTtJfHwoblswfGddPTApfShCLEMpLEkrPUIubGVuZ3RoKzF9KSksMH0sZDpmdW5jdGlvbihBLGcpe3ZhciBJPXYoKTthW0E+PjJdPUkubGVuZ3RoO3ZhciBCPTA7cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qis9QS5sZW5ndGgrMX0pKSxhW2c+PjJdPUIsMH0sYjpmdW5jdGlvbihBLGcsSSxCKXtyZXR1cm4gZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9YVtCKzQwPj4yXSxDPXt0bV9zZWM6YVtCPj4yXSx0bV9taW46YVtCKzQ+PjJdLHRtX2hvdXI6YVtCKzg+PjJdLHRtX21kYXk6YVtCKzEyPj4yXSx0bV9tb246YVtCKzE2Pj4yXSx0bV95ZWFyOmFbQisyMD4+Ml0sdG1fd2RheTphW0IrMjQ+PjJdLHRtX3lkYXk6YVtCKzI4Pj4yXSx0bV9pc2RzdDphW0IrMzI+PjJdLHRtX2dtdG9mZjphW0IrMzY+PjJdLHRtX3pvbmU6UT95KFEpOiIifSxFPXkoSSksaT17IiVjIjoiJWEgJWIgJWQgJUg6JU06JVMgJVkiLCIlRCI6IiVtLyVkLyV5IiwiJUYiOiIlWS0lbS0lZCIsIiVoIjoiJWIiLCIlciI6IiVJOiVNOiVTICVwIiwiJVIiOiIlSDolTSIsIiVUIjoiJUg6JU06JVMiLCIleCI6IiVtLyVkLyV5IiwiJVgiOiIlSDolTTolUyIsIiVFYyI6IiVjIiwiJUVDIjoiJUMiLCIlRXgiOiIlbS8lZC8leSIsIiVFWCI6IiVIOiVNOiVTIiwiJUV5IjoiJXkiLCIlRVkiOiIlWSIsIiVPZCI6IiVkIiwiJU9lIjoiJWUiLCIlT0giOiIlSCIsIiVPSSI6IiVJIiwiJU9tIjoiJW0iLCIlT00iOiIlTSIsIiVPUyI6IiVTIiwiJU91IjoiJXUiLCIlT1UiOiIlVSIsIiVPViI6IiVWIiwiJU93IjoiJXciLCIlT1ciOiIlVyIsIiVPeSI6IiV5In07Zm9yKHZhciB0IGluIGkpRT1FLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIiksaVt0XSk7dmFyIGU9WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLG89WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdO2Z1bmN0aW9uIG4oQSxnLEkpe2Zvcih2YXIgQj0ibnVtYmVyIj09dHlwZW9mIEE/QS50b1N0cmluZygpOkF8fCIiO0IubGVuZ3RoPGc7KUI9SVswXStCO3JldHVybiBCfWZ1bmN0aW9uIHIoQSxnKXtyZXR1cm4gbihBLGcsIjAiKX1mdW5jdGlvbiBzKEEsZyl7ZnVuY3Rpb24gSShBKXtyZXR1cm4gQTwwPy0xOkE+MD8xOjB9dmFyIEI7cmV0dXJuIDA9PT0oQj1JKEEuZ2V0RnVsbFllYXIoKS1nLmdldEZ1bGxZZWFyKCkpKSYmMD09PShCPUkoQS5nZXRNb250aCgpLWcuZ2V0TW9udGgoKSkpJiYoQj1JKEEuZ2V0RGF0ZSgpLWcuZ2V0RGF0ZSgpKSksQn1mdW5jdGlvbiBjKEEpe3N3aXRjaChBLmdldERheSgpKXtjYXNlIDA6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDI5KTtjYXNlIDE6cmV0dXJuIEE7Y2FzZSAyOnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwzKTtjYXNlIDM6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDIpO2Nhc2UgNDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMSk7Y2FzZSA1OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCktMSwxMSwzMSk7Y2FzZSA2OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCktMSwxMSwzMCl9fWZ1bmN0aW9uIGgoQSl7dmFyIGc9YihuZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEEudG1feWRheSksST1uZXcgRGF0ZShnLmdldEZ1bGxZZWFyKCksMCw0KSxCPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSsxLDAsNCksUT1jKEkpLEM9YyhCKTtyZXR1cm4gcyhRLGcpPD0wP3MoQyxnKTw9MD9nLmdldEZ1bGxZZWFyKCkrMTpnLmdldEZ1bGxZZWFyKCk6Zy5nZXRGdWxsWWVhcigpLTF9dmFyIEQ9eyIlYSI6ZnVuY3Rpb24oQSl7cmV0dXJuIGVbQS50bV93ZGF5XS5zdWJzdHJpbmcoMCwzKX0sIiVBIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldfSwiJWIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXS5zdWJzdHJpbmcoMCwzKX0sIiVCIjpmdW5jdGlvbihBKXtyZXR1cm4gb1tBLnRtX21vbl19LCIlQyI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoKEEudG1feWVhcisxOTAwKS8xMDB8MCwyKX0sIiVkIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXksMil9LCIlZSI6ZnVuY3Rpb24oQSl7cmV0dXJuIG4oQS50bV9tZGF5LDIsIiAiKX0sIiVnIjpmdW5jdGlvbihBKXtyZXR1cm4gaChBKS50b1N0cmluZygpLnN1YnN0cmluZygyKX0sIiVHIjpmdW5jdGlvbihBKXtyZXR1cm4gaChBKX0sIiVIIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX2hvdXIsMil9LCIlSSI6ZnVuY3Rpb24oQSl7dmFyIGc9QS50bV9ob3VyO3JldHVybiAwPT1nP2c9MTI6Zz4xMiYmKGctPTEyKSxyKGcsMil9LCIlaiI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tZGF5K20oSyhBLnRtX3llYXIrMTkwMCk/eDpxLEEudG1fbW9uLTEpLDMpfSwiJW0iOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbW9uKzEsMil9LCIlTSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9taW4sMil9LCIlbiI6ZnVuY3Rpb24oKXtyZXR1cm4iXG4ifSwiJXAiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX2hvdXI+PTAmJkEudG1faG91cjwxMj8iQU0iOiJQTSJ9LCIlUyI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9zZWMsMil9LCIldCI6ZnVuY3Rpb24oKXtyZXR1cm4iXHQifSwiJXUiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl8fDd9LCIlVSI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyKzE5MDAsMCwxKSxJPTA9PT1nLmdldERheSgpP2c6YihnLDctZy5nZXREYXkoKSksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCxBLnRtX21vbixBLnRtX21kYXkpO2lmKHMoSSxCKTwwKXt2YXIgUT1tKEsoQi5nZXRGdWxsWWVhcigpKT94OnEsQi5nZXRNb250aCgpLTEpLTMxLEM9MzEtSS5nZXREYXRlKCkrUStCLmdldERhdGUoKTtyZXR1cm4gcihNYXRoLmNlaWwoQy83KSwyKX1yZXR1cm4gMD09PXMoSSxnKT8iMDEiOiIwMCJ9LCIlViI6ZnVuY3Rpb24oQSl7dmFyIGcsST1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDQpLEI9bmV3IERhdGUoQS50bV95ZWFyKzE5MDEsMCw0KSxRPWMoSSksQz1jKEIpLEU9YihuZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEEudG1feWRheSk7cmV0dXJuIHMoRSxRKTwwPyI1MyI6cyhDLEUpPD0wPyIwMSI6KGc9US5nZXRGdWxsWWVhcigpPEEudG1feWVhcisxOTAwP0EudG1feWRheSszMi1RLmdldERhdGUoKTpBLnRtX3lkYXkrMS1RLmdldERhdGUoKSxyKE1hdGguY2VpbChnLzcpLDIpKX0sIiV3IjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV93ZGF5fSwiJVciOmZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBEYXRlKEEudG1feWVhciwwLDEpLEk9MT09PWcuZ2V0RGF5KCk/ZzpiKGcsMD09PWcuZ2V0RGF5KCk/MTo3LWcuZ2V0RGF5KCkrMSksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCxBLnRtX21vbixBLnRtX21kYXkpO2lmKHMoSSxCKTwwKXt2YXIgUT1tKEsoQi5nZXRGdWxsWWVhcigpKT94OnEsQi5nZXRNb250aCgpLTEpLTMxLEM9MzEtSS5nZXREYXRlKCkrUStCLmdldERhdGUoKTtyZXR1cm4gcihNYXRoLmNlaWwoQy83KSwyKX1yZXR1cm4gMD09PXMoSSxnKT8iMDEiOiIwMCJ9LCIleSI6ZnVuY3Rpb24oQSl7cmV0dXJuKEEudG1feWVhcisxOTAwKS50b1N0cmluZygpLnN1YnN0cmluZygyKX0sIiVZIjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV95ZWFyKzE5MDB9LCIleiI6ZnVuY3Rpb24oQSl7dmFyIGc9QS50bV9nbXRvZmYsST1nPj0wO3JldHVybiBnPShnPU1hdGguYWJzKGcpLzYwKS82MCoxMDArZyU2MCwoST8iKyI6Ii0iKStTdHJpbmcoIjAwMDAiK2cpLnNsaWNlKC00KX0sIiVaIjpmdW5jdGlvbihBKXtyZXR1cm4gQS50bV96b25lfSwiJSUiOmZ1bmN0aW9uKCl7cmV0dXJuIiUifX07Zm9yKHZhciB0IGluIEQpRS5pbmNsdWRlcyh0KSYmKEU9RS5yZXBsYWNlKG5ldyBSZWdFeHAodCwiZyIpLERbdF0oQykpKTt2YXIgZj1UKEUsITEpO3JldHVybiBmLmxlbmd0aD5nPzA6KHUoZixBKSxmLmxlbmd0aC0xKX0oQSxnLEksQil9fTshZnVuY3Rpb24oKXt2YXIgQT17YTpPfTtmdW5jdGlvbiBnKEEsZyl7dmFyIEIsUT1BLmV4cG9ydHM7SS5hc209USx3KCh0PUkuYXNtLmkpLmJ1ZmZlcikscz1JLmFzbS50LEI9SS5hc20uaixHLnVuc2hpZnQoQiksZnVuY3Rpb24oKXtpZihVLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoVSksMD09VSYmayl7dmFyIEE9aztrPW51bGwsQSgpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4oaXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZldGNoP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIE0oZCl9KSk6ZmV0Y2goZCx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oKGZ1bmN0aW9uKEEpe2lmKCFBLm9rKXRocm93ImZhaWxlZCB0byBsb2FkIHdhc20gYmluYXJ5IGZpbGUgYXQgJyIrZCsiJyI7cmV0dXJuIEEuYXJyYXlCdWZmZXIoKX0pKS5jYXRjaCgoZnVuY3Rpb24oKXtyZXR1cm4gTShkKX0pKSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGcsQSl9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEF9KSkudGhlbihnLChmdW5jdGlvbihBKXtlKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK0EpLFMoQSl9KSl9aWYoVSsrLEkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKFUpLEkuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gSS5pbnN0YW50aWF0ZVdhc20oQSxnKX1jYXRjaChDKXtyZXR1cm4gZSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitDKSwhMX1pfHwiZnVuY3Rpb24iIT10eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmd8fE4oZCl8fCJmdW5jdGlvbiIhPXR5cGVvZiBmZXRjaD9RKEIpOmZldGNoKGQse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoZyxBKS50aGVuKEIsKGZ1bmN0aW9uKEEpe3JldHVybiBlKCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogIitBKSxlKCJmYWxsaW5nIGJhY2sgdG8gQXJyYXlCdWZmZXIgaW5zdGFudGlhdGlvbiIpLFEoQil9KSl9KSl9KCksSS5fX193YXNtX2NhbGxfY3RvcnM9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fX193YXNtX2NhbGxfY3RvcnM9SS5hc20uaikuYXBwbHkobnVsbCxhcmd1bWVudHMpfTt2YXIgVz1JLl9tYWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oVz1JLl9tYWxsb2M9SS5hc20uaykuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtJLl9mcmVlPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2ZyZWU9SS5hc20ubCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9vcGVuQm94PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX29wZW5Cb3g9SS5hc20ubSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdD1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdD1JLmFzbS5uKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0S2RzS2V5PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0S2RzS2V5PUkuYXNtLm8pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVjcnlwdEtleT1mdW5jdGlvbigpe3JldHVybihJLl9kZWNyeXB0S2V5PUkuYXNtLnApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHRDQkM9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHRDQkM9SS5hc20ucSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9yZWxlYXNlPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3JlbGVhc2U9SS5hc20ucikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9zZXRSYXc9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fc2V0UmF3PUkuYXNtLnMpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIFosaj1JLnN0YWNrU2F2ZT1mdW5jdGlvbigpe3JldHVybihqPUkuc3RhY2tTYXZlPUkuYXNtLnUpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUD1JLnN0YWNrUmVzdG9yZT1mdW5jdGlvbigpe3JldHVybihQPUkuc3RhY2tSZXN0b3JlPUkuYXNtLnYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWD1JLnN0YWNrQWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oWD1JLnN0YWNrQWxsb2M9SS5hc20udykuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtmdW5jdGlvbiBWKEEpe2Z1bmN0aW9uIGcoKXtafHwoWj0hMCxJLmNhbGxlZFJ1bj0hMCxjfHwoWShHKSxJLm9uUnVudGltZUluaXRpYWxpemVkJiZJLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihJLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBJLnBvc3RSdW4mJihJLnBvc3RSdW49W0kucG9zdFJ1bl0pO0kucG9zdFJ1bi5sZW5ndGg7KUE9SS5wb3N0UnVuLnNoaWZ0KCksUi51bnNoaWZ0KEEpO3ZhciBBO1koUil9KCkpKX1VPjB8fChmdW5jdGlvbigpe2lmKEkucHJlUnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wcmVSdW4mJihJLnByZVJ1bj1bSS5wcmVSdW5dKTtJLnByZVJ1bi5sZW5ndGg7KUE9SS5wcmVSdW4uc2hpZnQoKSxsLnVuc2hpZnQoQSk7dmFyIEE7WShsKX0oKSxVPjB8fChJLnNldFN0YXR1cz8oSS5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7SS5zZXRTdGF0dXMoIiIpfSksMSksZygpfSksMSkpOmcoKSkpfWlmKEkuaW50QXJyYXlGcm9tU3RyaW5nPVQsSS5jY2FsbD1mdW5jdGlvbihBLGcsQixRLEMpe3ZhciBFPXtzdHJpbmc6ZnVuY3Rpb24oQSl7dmFyIGc9MDtpZihudWxsIT1BJiYwIT09QSl7dmFyIEk9MSsoQS5sZW5ndGg8PDIpOyFmdW5jdGlvbihBLGcsSSl7RChBLHIsZyxJKX0oQSxnPVgoSSksSSl9cmV0dXJuIGd9LGFycmF5OmZ1bmN0aW9uKEEpe3ZhciBnPVgoQS5sZW5ndGgpO3JldHVybiB1KEEsZyksZ319LGk9ZnVuY3Rpb24oQSl7cmV0dXJuIElbIl8iK0FdfShBKSx0PVtdLGU9MDtpZihRKWZvcih2YXIgbz0wO288US5sZW5ndGg7bysrKXt2YXIgbj1FW0Jbb11dO24/KDA9PT1lJiYoZT1qKCkpLHRbb109bihRW29dKSk6dFtvXT1RW29dfXZhciBhLHM9aS5hcHBseShudWxsLHQpO3JldHVybiBhPXMsMCE9PWUmJlAoZSkscz1mdW5jdGlvbihBKXtyZXR1cm4ic3RyaW5nIj09PWc/eShBKToiYm9vbGVhbiI9PT1nP0Jvb2xlYW4oQSk6QX0oYSl9LEkuVVRGOFRvU3RyaW5nPXksSS5hbGxvY2F0ZVVURjg9ZnVuY3Rpb24oQSl7dmFyIGc9ZihBKSsxLEk9VyhnKTtyZXR1cm4gSSYmRChBLG4sSSxnKSxJfSxrPWZ1bmN0aW9uIEEoKXtafHxWKCksWnx8KGs9QSl9LEkucnVuPVYsSS5wcmVJbml0KWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wcmVJbml0JiYoSS5wcmVJbml0PVtJLnByZUluaXRdKTtJLnByZUluaXQubGVuZ3RoPjA7KUkucHJlSW5pdC5wb3AoKSgpO3JldHVybiBWKCksQS5yZWFkeX0sJHk9X3k7dmFyIEFEPWZ1bmN0aW9uKCl7cmV0dXJuIGRuKChmdW5jdGlvbiBBKCl7dmFyIGcsSTt1bih0aGlzLEEpO3ZhciBCPW5ldyBQcm9taXNlKChmdW5jdGlvbihBLEIpe2c9QSxJPUJ9KSk7cmV0dXJuIEIucmVzb2x2ZT1nLEIucmVqZWN0PUksQn0pLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSl9KCk7UHJvbWlzZS53aXRoUmVzb2x2ZXJzfHwoUHJvbWlzZS53aXRoUmVzb2x2ZXJzPWZ1bmN0aW9uKCl7dmFyIEE9e307cmV0dXJuIEEucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZyxJKXtBLnJlc29sdmU9ZyxBLnJlamVjdD1JfSkpLEF9KTt2YXIgZ0QsSUQsQkQ9MCxRRD0xLENEPWZ1bmN0aW9uKCl7cmV0dXJuIGRuKChmdW5jdGlvbiBBKCl7dW4odGhpcyxBKX0pLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyBBRDtyZXR1cm4gdGhpcy5tb2R1bGU9e29uUnVudGltZUluaXRpYWxpemVkOmZ1bmN0aW9uKCl7QS5yZXNvbHZlKCl9LG9uQWJvcnQ6ZnVuY3Rpb24oZyl7QS5yZWplY3QoZyl9fSwkeSh0aGlzLm1vZHVsZSksQX19LHtrZXk6ImRlc2NyeXB0S2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTYsQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106QkQ7dHJ5e3ZhciBFPWZ1bmN0aW9uKEEpe2lmKCIiPT09QSlyZXR1cm4iIjtmb3IodmFyIGc9W10sST0wO0k8QS5sZW5ndGg7SSsrKWcucHVzaChBLmNoYXJDb2RlQXQoSSkpO3JldHVybiBnfShzZWxmLmF0b2IoQSkpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhOdW1iZXIoRS5sZW5ndGgpKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoRSxJKSxnPWd8fG5ldyBVaW50OEFycmF5LGc9bmV3IFVpbnQ4QXJyYXkoZyksQj10aGlzLm1vZHVsZS5fbWFsbG9jKGcuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGcsQiksdGhpcy5tb2R1bGUuX2RlY3J5cHRLZXkoQyxJLEUubGVuZ3RoLFEsZy5ieXRlTGVuZ3RoLEIpfWNhdGNoKGkpe2NvbnNvbGUubG9nKGkpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToiZGVzY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpCRDt0cnl7dmFyIEM9bmV3IFVpbnQ4QXJyYXkoZyk7ST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKEMuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEMsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0KFEsSSxBLmJ5dGVMZW5ndGgsQik7dmFyIEU9dGhpcy5tb2R1bGUuSEVBUFU4LnNsaWNlKEksSStBLmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgVWludDhBcnJheShFKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToiZGVzY3J5cHRLZHNLZXkiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRT1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MTY7dHJ5e3ZhciBpPW5ldyBVaW50OEFycmF5KGcpLHQ9bmV3IFVpbnQ4QXJyYXkoSSk7Qj10aGlzLm1vZHVsZS5fbWFsbG9jKGkuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGksQiksUT10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsUSksQz10aGlzLm1vZHVsZS5fbWFsbG9jKHQuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KHQsQyksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0S2RzS2V5KEIsaS5ieXRlTGVuZ3RoLFEsQS5ieXRlTGVuZ3RoLEMsRSl9Y2F0Y2godEQpe2NvbnNvbGUubG9nKHREKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKFEpLHRoaXMubW9kdWxlLl9mcmVlKEMpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Q0JDIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEI7dHJ5e3ZhciBRPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBJPXRoaXMubW9kdWxlLl9tYWxsb2MoQS5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoQSxJKSxCPXRoaXMubW9kdWxlLl9tYWxsb2MoUS5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoUSxCKSx0aGlzLm1vZHVsZS5fZGVzY3J5cHRDQkMoSSxBLmJ5dGVMZW5ndGgsQiksdGhpcy5tb2R1bGUuSEVBUFU4LnNsaWNlKEksSStBLmJ5dGVMZW5ndGgpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShJKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJzZXRSYXciLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOlFEO3RyeXt2YXIgQj1uZXcgVWludDhBcnJheShBKTtnPXRoaXMubW9kdWxlLl9tYWxsb2MoQi5ieXRlTGVuZ3RoKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoQixnKSx0aGlzLm1vZHVsZS5fc2V0UmF3KGcsQi5ieXRlTGVuZ3RoLEkpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShnKX19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubW9kdWxlJiYodGhpcy5tb2R1bGU9bnVsbCl9fV0pfSgpO2Z1bmN0aW9uIEVEKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgaUQ9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2dEPW5ldyBhbixJRD1uZXcgRG4oZ0QudmlkZW9UcmFjayxnRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9SUQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPUVuLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxlLG89Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShlPUUuZW5jYSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZGVmYXVsdF9JVl9zaXplLG49RW4uc2VuYyhpLG8pO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxpRC5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9RUQoSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9SUQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7RGEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPWlELmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPWlELmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQ0Q7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",blob="undefined"!=typeof window&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){var e;try{if(!(e=blob&&(window.URL||window.webkitURL).createObjectURL(blob)))throw"";return new Worker(e)}catch(e){return new Worker("data:application/javascript;base64,"+encodedJs)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var Crypto=function(){return _createClass$8((function e(){_classCallCheck$8(this,e),EventEmitter(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}),[{key:"init",value:function(){for(var e=this,t=Object.keys(this.workers),n=0;n<t.length;n++){var r=t[n],i=new WorkerWrapper;i.onmessage=function(t){e.emit(t.data.method,t.data)},this.workers[r]=i}}},{key:"updateHeaderId",value:function(){var e=this.bodyId+1;this.headerId=e,this.bodyId=e}},{key:"destroy",value:function(){for(var e=Object.keys(this.workers),t=0;t<e.length;t++){var n=e[t];this.workers[n].postMessage({method:"destroy"}),this.workers[n].terminate()}this.workers={}}},{key:"getWorker",value:function(e){return this.workers[e?"video":"audio"]}},{key:"decryptHeader",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=this;return this.updateHeaderId(),new Promise((function(i){var a=Math.floor(1e3*Math.random()),o=r.getWorker(t);o&&o.postMessage({method:"decryptHeader",id:a,buf:e,isVideo:t,needRemux:n});var l=function(e){e.id===a&&(r.off("decryptHeader",l),i({data:e.args.data,vid:e.args.vid}))};r.on("decryptHeader",l)}))}},{key:"updateValue",value:function(e){for(var t=Object.keys(this.workers),n=0;n<t.length;n++){var r=t[n];this.workers[r].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=e instanceof ArrayBuffer?e:e.buffer,i=this,a=i.bodyId+1;return i.bodyId=a,new Promise((function(e){var o=function(t){t.id===a&&(i.off("decryptBody",o),e({data:t.args.data,id:a,headerId:i.headerId}))};i.on("decryptBody",o);var l=i.getWorker(t);l&&l.postMessage({method:"decryptBody",id:a,args:{isVideo:t,id:i.workerIndex,aeskey:i.aeskey,buf:r,needRemux:n}},[r])}))}}])}();const Crypto$1=Crypto;var $$1=_export,$find=arrayIteration.find,addToUnscopables=addToUnscopables$4,FIND="find",SKIPS_HOLES=!0;FIND in[]&&Array(1)[FIND]((function(){SKIPS_HOLES=!1})),$$1({target:"Array",proto:!0,forced:SKIPS_HOLES},{find:function(e){return $find(this,e,arguments.length>1?arguments[1]:void 0)}}),addToUnscopables(FIND);var $=_export,repeat2=stringRepeat;$({target:"String",proto:!0},{repeat:repeat2});var Timer=function(){return _createClass$8((function e(t){_classCallCheck$8(this,e),this.onTick_=t,this.cancelPending_=null}),[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var r=!0,i=null;this.cancelPending_=function(){window.clearTimeout(i),r=!1};return i=window.setTimeout((function(){r&&(t.onTick_(),n&&n())}),1e3*e),this}},{key:"tickEvery",value:function(e){var t=this;this.tickAfter(e,(function(){t.tickEvery(e)}))}},{key:"stop",value:function(){this.cancelPending_&&(this.cancelPending_(),this.cancelPending_=null)}}])}(),DefaultConfig={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},GapJump=function(){function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;_classCallCheck$8(this,e),this.player=t,this.mediaElem=t.video,this.config=Object.assign({},n,DefaultConfig),this.timer=new Timer((function(){r.onGapJump()})),this.inBufferTimer=new Timer((function(){r._onBufferStallCheck()})),this.prevReadyState=this.mediaElem.readyState,this.didFireLargeGap=!1,this.seekingEventReceived=!1,this.segmentAppended=!1,this.onWaitFunc=this._onWaiting.bind(this),this.onPlayFunc=this._onPlay.bind(this),this.onPlayingFunc=this._onPlaying.bind(this),this.onPausedFunc=this._onPaused.bind(this),this.isSafari=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),this.hasPlayed=!1,this.lastVideoTime=-1,this.hasPaused=!1,this.resumeFromPaused=!1,this.stallSkip=this.config.stallSkip,this.stallCount=this.config.stallCount,this.stallTimer=this.config.stallTimer,this.reset(),this.requests=i,this.player.on(TASK_REQUEST_ERROR,(function(e){r.requests=e})),!1!==this.config.useGapJump&&this._start()}return _createClass$8(e,[{key:"reset",value:function(){this.stallPoints={}}},{key:"_onWaiting",value:function(){this.onGapJump();var e=this.player.currentTime;this.onRequestFail(e)}},{key:"onRequestFail",value:function(e){if(this.requests){var t=this.requests.video,n=this.requests.audio,r=this._checkIfNextRequestFailed(e,t),i=this._checkIfNextRequestFailed(e,n);if(r.result||i.result){var a=r.result?r.end:i.end;a=a<this.player.duration-.5?a+.5:this.player.duration,this.player.currentTime=a,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*a)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.start-e<1.5,a=r.start<=e&&e<=r.end,o=403!==(null==r?void 0:r.response.status);if(i&&a&&r.count>=this.config.failCount&&o)return{end:r.end,result:!0}}return{result:!1}}},{key:"_onPlay",value:function(){this.hasPlayed=!0}},{key:"_onPaused",value:function(){this.hasPaused=!0}},{key:"_onPlaying",value:function(){this.hasPaused&&(this.hasPaused=!1,this.resumeFromPaused=!0)}},{key:"_start",value:function(){this.mediaElem.addEventListener("waiting",this.onWaitFunc),this.mediaElem.addEventListener("play",this.onPlayFunc),this.mediaElem.addEventListener("playing",this.onPlayingFunc),this.mediaElem.addEventListener("pause",this.onPausedFunc),this.timer.tickEvery(.25),this.inBufferTimer.tickEvery(this.stallTimer)}},{key:"onSegmentAppend",value:function(){this.segmentAppended=!0,this.onGapJump()}},{key:"onSeeking",value:function(){this.seekingEventReceived=!0,this.segmentAppended=!1,this.didFireLargeGap=!1}},{key:"onGapJump",value:function(){if(this.mediaElem.readyState!==HTMLMediaElement.HAVE_NOTHING){if(this.mediaElem.seeking){if(!this.seekingEventReceived)return}else this.seekingEventReceived=!1;if(!this.mediaElem.paused||0===this.mediaElem.currentTime||!this.hasPlayed){this.mediaElem.readyState!==this.prevReadyState&&(this.didFireLargeGap=!1,this.prevReadyState=this.mediaElem.readyState);var t=this.mediaElem.buffered,n=this.config.smallGapLimit||1,r=this.config.gapDetectionThreshold||.5,i=this.mediaElem.currentTime,a=this._getIndex(t,i,r);if(null!==a&&(0!==a||this.segmentAppended)){var o=t.start(a);if(!(o>this.mediaElem.duration)){var l=o-i,d=l<=n;l<e.BROWSER_GAP_TOLERANCE||d&&(this.mediaElem.currentTime=this.isSafari?o+.2:o,debug$1.gap("gapJump gapIndex",a,"isGapSamll",d,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==o&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*o)}}))}}}}}},{key:"_onBufferStallCheck",value:function(){if(this.mediaElem&&!this.mediaElem.paused&&!this.mediaElem.ended&&0!==this.mediaElem.playbackRate&&0!==this.mediaElem.buffered.length){for(var e=this.mediaElem.currentTime,t=this.mediaElem.buffered,n=!1,r=[],i=0;i<t.length;i++){var a=t.start(i),o=t.end(i);r.push({start:a,end:o}),e<a-.1||(e>o-.5||(n=!0))}var l=this.mediaElem.buffered,d=l.length;d>0&&this.mediaElem.duration===l.end(d-1)&&(n=!0);var U=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(n&&U&&this.lastVideoTime===e&&!this.resumeFromPaused&&this.mediaElem.currentTime<this.mediaElem.duration)try{void 0===this.stallPoints[e]&&(this.stallPoints[e]=0),this.stallPoints[e]++,this.stallPoints[e]>this.stallCount&&(this.mediaElem.currentTime<this.mediaElem.duration-this.stallSkip?this.mediaElem.currentTime+=this.stallSkip:this.mediaElem.currentTime=this.mediaElem.duration,console.warn("in buffer stall, small seek",this.lastVideoTime,e,r))}catch(e){}this.lastVideoTime=e,this.resumeFromPaused=!1}}},{key:"_getIndex",value:function(e,t,n){if(!e||!e.length)return null;if(1===e.length&&e.end(0)-e.start(0)<1e-6)return null;for(var r=this._getBuffered(e),i=null,a=0;a<r.length;a++){if(r[a].start>t&&(0===a||r[a-1].end-t<=n)){i=a;break}}return i}},{key:"_getBuffered",value:function(e){if(!e)return[];for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}},{key:"destroy",value:function(){this.mediaElem.removeEventListener("waiting",this.onWaitFunc),this.mediaElem.removeEventListener("play",this.onPlayFunc),this.mediaElem.removeEventListener("playing",this.onPlayingFunc),this.mediaElem.removeEventListener("pause",this.onPausedFunc),this.timer.stop(),this.timer=null,this.inBufferTimer.stop(),this.inBufferTimer=null}}])}();GapJump.BROWSER_GAP_TOLERANCE=.001;var CHANGE_STATES$1=CHANGE_STATES$2,__DASH__=function(){return _createClass$8((function e(t){var n=this;_classCallCheck$8(this,e),_defineProperty$7(this,"_onChangeConfig",(function(e){if(e){var t,r=e.nextBufferLength===(null===(t=n.config)||void 0===t?void 0:t.minBufferLength);if(n._nextBufferLength=e.nextBufferLength,e.nextBufferLength&&!r)try{n.loadData()}catch(e){}}})),_defineProperty$7(this,"startProgressTimer",(function(){n._pluginInst.info({msg:"startProgressTimer"});var e=n;n._loadDataTime=0;var t=n.player,r=n.config;t&&e&&e.isDashCanUse&&e.dash.mse&&(e.dash.mse.progressTimer=new IntervalTimer$1,e.dash.mse.progressTimer.repeat((function(){n._checkAndLoadData("timer")}),1e3*r.tickInSeconds||r.progressTimer||DEFAULT_PROGRESS_TIMER),n._startCheckBufferBreakTimer(),n.player.on(TIME_UPDATE,n._onTimeUpdate))})),_defineProperty$7(this,"_onTimeUpdate",(function(){var e,t;n.isDashCanUse&&n.config.dashOpts&&null!==(e=n.dash)&&void 0!==e&&e.mse&&(n._checkAndLoadData("timeupdate"),n.isEnded(),null===(t=n.dash)||void 0===t||t.onTimeUpdate(),n._seekingCheckBuffer())})),_defineProperty$7(this,"_checkAndLoadData",(function(){var e=n.config;if(n.isDashCanUse&&n.dash.mse&&n.dash.mse.progressTimer){var t=1e3*e.tickInSeconds||e.progressTimer||DEFAULT_PROGRESS_TIMER,r=util$1.nowTime();r-n._loadDataTime>=t&&(n._loadDataTime=r,n.checkRemoveBuffer(),n.handleUrlExpire(),n.loadData(void 0),n.isEnded())}})),_defineProperty$7(this,"_onAutoDescChange",(function(e){var t,r=e.definition,i=e.reset,a=e.fps,o=e.item;i||(n.player.curDefinition=_objectSpread2$5({},o)),debug$1.log(n.config.vid,"abritem autoDescChange",null===(t=n.player.curDefinition)||void 0===t?void 0:t.definition),n.updateAutoDefiDesc(r,i,a,o)})),this._pluginInst=t.pluginInst;var r=this._pluginInst,i=r.player,a=r.config;this._minDuration=1/0,this.player=i,this.config=a,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var o=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=!!o.isPlayAutoDefi,this.isOpenAutoDefi=!!o.isOpenAutoDefi,this.isCurrentAutoDefi=this.isOpenAutoDefi&&this.isPlayAutoDefi,this.bitrateMap={},this.curBitrate=0,this.defiIdMap={},this.definition2item={},this.bandwidth2item={},(this.preloadBufferThreshold<=0||this.preloadBufferThreshold>1)&&(this.preloadBufferThreshold=.5),this.curVideoInitSegmentIdx=-1,this.curVideoFileId=void 0,this.getPlayInfoTimestamp=this.startTimestamp/1e3;var l=a.dashOpts.dynamic_video.dynamic_video_list,d=a.dashOpts.dynamic_video.dynamic_audio_list;l&&l.length>0?this.urlExpireTimestamp=a.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:d&&d.length>0&&(this.urlExpireTimestamp=a.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new GapJump(i,a),util$1.on(i,"addVideoBufferEnd",(function(){n.gapJumpInst.onSegmentAppend()}),"dashDestroy"),this._nextBufferLength=this.config.nextBufferLength,util$1.on(i,SHARED_EVENTS.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig,"dashDestroy"),this._lastRemoveTimestamp=0}),[{key:"initDash",value:function(e){var t=this;this.dash=e;var n=this.config;n.dashOpts.dynamic_video.dynamic_video_list.length>0&&(this.initAbr(),n.dashOpts.dynamic_video.dynamic_video_list.sort((function(e,t){return t.vheight-e.vheight})),n.dashOpts.dynamic_video.dynamic_video_list.forEach((function(e,r){e.definition===n.defaultDefinition&&(t.dash.selectedIdx=r)})),this.dashVideoEncrypted=n.dashOpts.dynamic_video.dynamic_video_list.some((function(e){return!!e.kid}))),n.dashOpts.dynamic_video.dynamic_audio_list.length>0&&(this.dashAudioEncrypted=n.dashOpts.dynamic_video.dynamic_audio_list.some((function(e){return!!e.kid})))}},{key:"isDashCanUse",get:function(){return this.__isDashCanUse},set:function(e){this.__isDashCanUse=e}},{key:"encryptedType",get:function(){if(this.dashVideoEncrypted||this.dashAudioEncrypted){var e,t=!!this.config.intertrustServerURL||(null===(e=this.player.plugins)||void 0===e||null===(e=e.drm)||void 0===e?void 0:e.serverCertificatePath);return this.config.useEME?t?1:3:2}return 0}},{key:"isEnded",value:function(){var e=this.dash,t=this.player,n=this.mse,r=this.config;if("vod"===e.type)if(t.ended)debug$1.log("player.ended === true"),"safari"===sniffer.browser&&(t.pause(),t.emit("ended"));else{var i=r.duration||t.duration||e.mpd.duration;if(t.duration&&(i=Math.min(i,t.duration)),e.mpd.duration&&(i=Math.min(i,e.mpd.duration)),i-this._minDuration<10&&(i=Math.min(i,this._minDuration)),i>0&&i-t.currentTime<DEFAULT_END){var a=this._findRangeForPlaybackTime(t.currentTime)||{start:0,end:0};debug$1.log("range",a,"current",t.currentTime,"duration",i);var o=Math.min(a.end,t.duration),l=t.currentTime-o>=0&&a.end>0,d=o-t.currentTime<DEFAULT_END&&a.end>0;(l||d)&&(debug$1.log("isEnded execute, isOver",l,"isClosed",d),console.log("isEnded execute, isOver",l,"isClosed",d),n.endOfStream(),this.clearProgressTimer())}}}},{key:"dashDestroy",value:function(){var e=this.player,t=this.dash;for(var n in t&&t.mse&&t.mse.unbindMedia&&t.mse.unbindMedia(),t&&t.eme&&(t.eme.emit("destroy"),t.eme.destroy()),t&&e.errorHandler&&(t.abortLoadingTasks(),t.emit("destroy")),t&&t.mpd&&t.mpd.timer&&(clearTimeout(t.mpd.timer),t.mpd.timer=null),this.crypto&&this.crypto.destroy(),t&&t.destroy(),this.clearCheckCanplayTimer(),this.clearProgressTimer(),this.clearBufferBreakTimer(),this.destroyAbr(),this.gapJumpInst&&this.gapJumpInst.destroy(),e&&(this.player.off(TIME_UPDATE,this._onTimeUpdate),e.__dash__=null,this._pluginInst.unloadVideo(),"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))),t)delete t[n];for(var r in this)delete this[r]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var t=this.player,n=this.config;util$1.on(t,"error",e.clearProgressTimer.bind(e),"dashDestroy"),util$1.on(t,"ended",e.clearProgressTimer.bind(e),"dashDestroy"),util$1.on(t,"ended",(function(){e.ended=!0}),"dashDestroy");var r=function(){var r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function r(){var i,a,o,l,d,U,c,F,s,Q;return _regeneratorRuntime$4().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(debug$1.log("dash onSeeking",t.currentTime,"duration",t.duration),!t._invalidSeekTag){r.next=5;break}return t._invalidSeekTag=!1,debug$1.log("auto seek 0.001, return"),r.abrupt("return");case 5:if(e.isDashCanUse&&n.dashOpts&&e.mse){r.next=7;break}return r.abrupt("return");case 7:if(a=e.ended,e.ended=t.ended,!a){r.next=12;break}return this.isOpenAutoDefi?this._pluginInst.next(t.currentTime,"NEXT",t.config.DASHPlugin,!0):e.startProgressTimer(),r.abrupt("return");case 12:if(o=t.getBufferedRange(t.buffered)[1],l=0===o,debug$1.log("dash onseeking, bufferEnd:".concat(o,", outBuffer:").concat(l,", \n switching:").concat(e.switching,", isFull:").concat(null===(i=e.mse)||void 0===i?void 0:i.isFull(MSE.VIDEO))),!l||e.switching){r.next=20;break}return e.abortLoading=!0,r.next=19,e.dash.abortLoadingTasks();case 19:debug$1.log("dash cancel loading task execute");case 20:if(e.dash){r.next=22;break}return r.abrupt("return");case 22:if(e.dash.mpd.setSegmentIndexByTime(t.currentTime),e.mse){r.next=25;break}return r.abrupt("return");case 25:if((d=e.mse).isFull&&(d.isFull(MSE.VIDEO)||d.isFull(MSE.AUDIO)))e.checkRemoveBuffer(!0,!0);else if(!l&&n.removeBufferWhenSeekInBuffer)try{U=t.getBufferedRange(e.mse.buffered("video"))[1],c=t.getBufferedRange(e.mse.buffered("audio"))[1],e._clearBufferByTime(Math.max(U,c),t.duration)}catch(e){}e.abortLoading=!1,l&&e._checkAndLoadData(),F=n.useDurationBackoff||!1,s=Date.now()/1e3,Q=t.duration-t.currentTime<1,F&&Q&&(!this._lastSeekTime||this._lastSeekTime<s-1)&&(this._lastSeekTime=s,t.currentTime=t.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking();case 34:case"end":return r.stop()}}),r,this)})));return function(){return r.apply(this,arguments)}}();util$1.on(t,"seeking",r,"dashDestroy");util$1.on(t,"seeked",(function(){debug$1.log("dash onSeeked",t.currentTime),e.seeking=!1,e.isEnded(),e.dash.isAllAppend()&&(e.mse.endOfStream(),debug$1.log("dash seeked endofstream"))}),"dashDestroy"),util$1.on(t,"dashDestroy",e.dashDestroy.bind(this))}},{key:"_seekingCheckBuffer",value:function(){var e=this;if(this.dash)for(var t=[MSE.VIDEO,MSE.AUDIO],n=0;n<t.length;n++)for(var r=t[n],i=this.dash.mpd.getBuffered(r),a=function(){var t=i[o],n=e.player.currentTime,a=t.start<=n&&n<=t.end;if(!a&&t.end-t.start<.5){debug$1.log("remove buffer _seekingCheckBuffer",t.start,t.end,"curTime",n,"inBuffer",a,"mediaType",r,"mediaBuffered",i);var l=e.removeBuffer(r,t.start,t.end);l&&l.catch((function(e){debug$1.log("_seekingCheckBuffer start",t.start,"end",t.end,e.message)}))}},o=0;o<i.length;o++)a()}},{key:"destroy",value:function(){var e=this.player;null==e||e.emit("dashDestroy")}},{key:"_findRangeForPlaybackTime",value:function(e){var t=this.player.buffered;if(t)for(var n=0;n<t.length;n++)if(util$1.round(t.start(n))<=util$1.round(e)&&util$1.round(t.end(n))>=util$1.round(e))return{start:util$1.round(t.start(n)),end:util$1.round(t.end(n)),rawStart:t.start(n),rawEnd:t.end(n)}}},{key:"loadData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this,r=this.player,i=this.config;if(n.switching||n.abortLoading)debug$1.log(i.vid,"loadData switching",n.switching);else if(n.dash){var a,o=i.maxBufferLength||i.preloadTime||DEFAULT_PRELOAD_TIME,l=n.dash.mpd.mediaList.video;if(l&&l.length>0&&l[l.selectedIdx]){var d=l[l.selectedIdx].bandwidth;a=l[l.selectedIdx].definition||this.bandwidth2item[d].definition}if(i.dynamicPreloadTimeOpts&&a){var U=i.dynamicPreloadTimeOpts[a];U&&(o=U)}var c=!1;r.paused&&(c=!0),o=c?r.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:i.minBufferLength:n.dash.getAdaptCacheBuffer(o),n.preloadTime!==o&&(n.preloadTime=o,debug$1.log("maxCacheTimeAudio change",o),r.emit(ABR_EVENTS.MAX_BUFFER_CHANGE,{videoCacheTime:o,audioCacheTime:o}));var F=e||r.currentTime;e||(e=r.currentTime);var s=this._findRangeForPlaybackTime(e),Q=s&&Math.ceil(Math.max(s.end,s.rawEnd))||Math.floor(e);if(n.dash.isOpenPCDN((null==s?void 0:s.end)||0),!(Q>e+o)){var u=n.dash.getPCDNInOutBuffer(),R={force_set_min:c,buffer_dur:o,load_size:-1,load_tar_dur:-1,load_dur:-1,in_buf:u.PCDNInBuffer||-1,out_buf:u.PCDNOutBuffer||-1};n.dash.pushDynamicBufferServiceRes(R),n.dash.seek(e>0,F,t,o)}}}},{key:"startCheckCanplayTimer",value:function(){var e=this,t=this.player,n=this.config;t&&!n.disableCanplayCheck&&(debug$1.log("未起播计时开始!持续".concat(n.canplayTimeout,"毫秒未启播降级")),this.checkCanplayTimer=setTimeout((function(){debug$1.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),null==t||t.errorHandler(new Errors$1(ERR.RUNTIME,ERR.SUB_TYPES.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))}),n.canplayTimeout))}},{key:"clearCheckCanplayTimer",value:function(){this.checkCanplayTimer&&(clearTimeout(this.checkCanplayTimer),this.checkCanplayTimer=null)}},{key:"clearBufferBreakTimer",value:function(){this.bufferCheckTimer&&(clearTimeout(this.bufferCheckTimer),this.bufferCheckTimer=null)}},{key:"handleUrlExpire",value:function(){var e;null===(e=this._pluginInst)||void 0===e||e.handleUrlExpire(this)}},{key:"_startCheckBufferBreakTimer",value:function(){var e=this,t=this.config;t&&!t.disableBufferBreakCheck&&(this.clearBufferBreakTimer(),this.bufferCheckTimer=setTimeout((function(){e._onBufferBreakCheck(),e._startCheckBufferBreakTimer()}),DEFAULT_PROGRESS_TIMER))}},{key:"_onBufferBreakCheck",value:function(){var e=this,t=this.player,n=this.config;n?n.disableBufferBreakCheck||(Math.abs(t.currentTime-(e.lastCurrentTime||0))>.1||t.paused?1!==e.dashBufferBreak&&2!==e.dashBufferBreak||(debug$1.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,debug$1.log("卡死计时开始!持续".concat(n.waitingTimeOut,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,debug$1.log("确认卡死!!!");var t=document.hidden||"hidden"===document.visibilityState?ERR.SUB_TYPES.WAITING_TIMEOUT_ERROR:ERR.SUB_TYPES.BUFFERBREAK_ERROR;e.dash.emit("error",new Errors$1(ERR.RUNTIME,t))}e.dashBufferBreakTimer=null}),n.waitingTimeOut)),e.lastCurrentTime=t.currentTime):this.clearBufferBreakTimer()}},{key:"_isMseFull",value:function(){return!(!this.mse||!this.mse.isFull)&&(this.mse.isFull(MSE.VIDEO)||this.mse.isFull(MSE.AUDIO))}},{key:"checkRemoveBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.player,r=this.config,i=(new Date).getTime(),a=this._isMseFull(),o=e||a;if(!(i-this._lastRemoveTimestamp<1e3*r.removeBufferLen)||o){this._lastRemoveTimestamp=i;var l=n.currentTime,d=n.getBufferedRange(),U=d&&d[0]>=0&&l-d[0]>r.removeBufferLen;debug$1.log("checkRemoveBuffer","mseFull",a,"force",e,"needRemove",U),(o||U)&&this._clearBuffer(o,t)}}},{key:"_checkBufferFull",value:function(e){var t=this;clearTimeout(this._fullTimer),this._isMseFull()&&(this._fullTimer=setTimeout((function(){clearTimeout(t._fullTimer),t._clearBuffer(!0)}),1e3*e))}},{key:"_clearBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.player;if(this.isDashCanUse&&this.mse){var i=r.getBufferedRange()[1]>0,a=r.currentTime,o=util$1.getBufferData(null==r?void 0:r.buffered,a),l=o.beforeBufLen,d=o.afterBufLen,U=o.beforeLastBuffEnd,c=o.afterFirstBuffEnd,F=o.afterFirstBuffStart;i||(a=a-U<15?U:a);var s=this._findClosetGop(a,!1),Q=t&&n&&!i,u=Q?.1:5;if(s&&this._clearBufferByTime(0,s,(function(t){Q&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})),t){debug$1.log("clearBuffer isFull","isSeeking",n,"isInBuffer",i,"beforeBufLen",l,"afterBufLen",d,"afterFirstBuffEnd",c,"afterFirstBuffStart",F,"beforeLastBuffEnd",U);var R=0,B=0;if(n&&!i){if(B=this._findClosetGop(F,!0,2),R=this._findClosetGop(c,!1,1),debug$1.log("clearBuffer isFull removeStart",B,"removeEnd",R),0===l){for(var h=this.player.video.buffered,p=0,S=h.length-1;S>=0;S--){var V=h.start(S),f=h.end(S);if((p+=f-V)>10){B=util$1.round(V),R=util$1.round(f);break}}debug$1.log("clearBuffer isFull beforeBufLen 0 removeStart",B,"removeEnd",R)}B<R?this._clearBufferByTime(B,R,(function(t){Q&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})):this._checkBufferFull(u)}else this._checkBufferFull(u)}}}},{key:"_findClosetGop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,r=this.dash.mpd.mediaList.video;r[r.selectedIdx]||(r=this.dash.mpd.mediaList.audio);var i=r[r.selectedIdx].mediaSegments;if(t){for(var a=0,o=0;o<i.length;o++)if(i[o].startRaw>e&&++a>n)return i[o].start}else for(var l=0,d=i.length-1;d>-1;d--)if(i[d].endRaw<e&&++l>n)return i[d].end}},{key:"_getFirstGopEnd",value:function(){var e=this.dash.mpd.mediaList,t=e.video.length>0,n=this.dash.mpd.mediaList.audio.length>0,r=0;if(t){var i=e.video[e.video.selectedIdx].mediaSegments[0].end;r=Math.max(r,i)}if(n){var a,o=(null===(a=e.audio[e.audio.selectedIdx].mediaSegments[0])||void 0===a?void 0:a.end)||0;r=Math.max(r,o)}return{clearMinStart:r,hasVideo:t,hasAudio:n}}},{key:"clearBufferDirect",value:function(e,t){var n=t.startRaw,r=t.endRaw;if(!(n>=r)){var i=this.removeBuffer(e,n+1e-5,r);i&&i.catch((function(){debug$1.log("mediaType",e,"catch clearBufferDirect start: ".concat(n," end: ").concat(r))}))}}},{key:"_clearBufferByTime",value:function(e,t,n){var r=this,i=[],a=this._getFirstGopEnd(),o=a.clearMinStart,l=a.hasVideo,d=a.hasAudio;e=Math.max(o,e),debug$1.log("removeBuffer clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(o));var U=this.getBufferDur();if(e>t)return debug$1.log("clearBuffer return clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(o)),void n({removeDur:0});if(l){var c=this.removeBuffer(MSE.VIDEO,e,t);c&&i.push(c)}if(d){var F=this.removeBuffer(MSE.AUDIO,e,t);F&&i.push(F)}Promise.all(i).then((function(){var e=r.getBufferDur(),t=U-e;t>0&&(r.player.emit("removeBuffer",{removeDur:t}),debug$1.log("removeBuffer dur,",t,"oldTotalBuffer",U,"newTotalBuffer",e),r.player.emit("removeBufferEnd"),n&&n({removeDur:t}))})).catch((function(e){debug$1.log("removeBuffer error",e),n&&n({removeDur:0})}))}},{key:"removeBuffer",value:function(e,t,n){if(debug$1.log("removeBuffer start",e,t,n),void 0===n){var r,i,a,o=this.dash.mpd.mediaList[e];if(null!==(r=o[o.selectedIdx])&&void 0!==r&&null!==(r=r.mediaSegments)&&void 0!==r&&r[0])n=null===(i=o[o.selectedIdx])||void 0===i||null===(i=i.mediaSegments)||void 0===i?void 0:i[0].endRaw;else n=this.config.duration||this.player.duration||(null===(a=this.dash)||void 0===a||null===(a=a.mpd)||void 0===a?void 0:a.duration);debug$1.log("removeBuffer end undefined, fix",e,t,n)}if(this.dash.mpd.clearBuffer(t,n,e),this.mse&&this.mse.remove&&!this._pluginInst.softVideo){var l=this.mse.remove(e,t,n);return l&&l.catch((function(){})),l}return null}},{key:"getBufferDur",value:function(){var e;if(null===(e=this.player)||void 0===e||!e.buffered)return 0;for(var t=this.player.buffered,n=0,r=0,i=t.length;r<i;r++)n+=t.end(r)-t.start(r);return n}},{key:"abort",value:function(e){if(this.mse&&this.mse.abort&&this.dash.mpd.mediaList[e].length>0){var t=this.mse.abort(e,{mediaType:e});t&&t.catch((function(){}))}}},{key:"clearProgressTimer",value:function(){this.isDashCanUse&&this.dash.mse&&this.dash.mse.progressTimer&&(this.dash.mse.progressTimer.clear(),this.dash.mse.progressTimer=null),this.dashBufferBreakTimer&&(clearTimeout(this.dashBufferBreakTimer),this.dashBufferBreakTimer=null,this.dashBufferBreak=void 0)}},{key:"emitMenuResolutionChange",value:function(){var e=this.player;try{var t=this.dash.mpd.mediaList.video;if(t){var n=t[t.selectedIdx],r={width:n.width,height:n.height};e.emit("RESOLUTION_UPDATE",r)}else e.emit("RESOLUTION_UPDATE")}catch(t){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=proxyLocalStorage$1.getItem(URL_DASH_TAG),r=DASH_TYPE;e=t||n===r.BACK?r.MAIN:r.BACK,proxyLocalStorage$1.setItem(URL_DASH_TAG,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:CHANGE_STATES$1.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var t=this._pluginInst.config,n=proxyLocalStorage$1.getItem(URL_DASH_TAG),r=!1,i=DASH_TYPE;if((e===CHANGE_STATES$1.INIT&&n===i.BACK||e===CHANGE_STATES$1.ERR)&&(r=!0),debug$1.log(t.vid,"curDashType",n,"changeState",e,"needChange",r),r){var a=t.dashOpts.dynamic_video.main_url,o=t.dashOpts.dynamic_video.backup_url_1;t.dashOpts.dynamic_video.main_url=o,t.dashOpts.dynamic_video.backup_url_1=a,util$1.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_video_list),util$1.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_audio_list)}var l=t.dashOpts.dynamic_video.main_url;return this._checkUrlRange(l),t}}},{key:"_checkUrlRange",value:function(e){var t=this._pluginInst.config,n=t.url_range_domains||[],r=util$1.validateUrlRange(n,e);t.useUrlRange=r}},{key:"updateAutoDefiDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=this.player,a=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";i.emit("ABR_AUTO_DESC_CHANGE",a,t?void 0:e,n,r),t||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),r)}},{key:"_abrLoadMetaSuccess",value:function(e,t,n,r){if(r===MSE.VIDEO){var i=this,a=this.dash,o=this.config,l=a.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(i.defiIdMap[e].bitrate),n&&(this.lastDefiIdx=e),i.selectedIdx=t,o.defaultDefinition=l[i.selectedIdx].definition}}},{key:"_startLoadInitSegment",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"video",i=new ProxyPromise,a=this,o=this.dash,l=this.config;if(!o.mpd)return debug$1.log("_startLoadInitSegment dash.mpd is null"),void i.reject();var d=o.mpd.mediaList[r],U=d.selectedIdx;return d.every((function(c,F){if(c.id===e){U=F,a.setSwitching(r,!0);var s=d[U].wrapperData,Q=o.isProgressiveLoading(r).isCancellable;if(debug$1.log("mediaType",r,"isCancellable",Q),s&&Q)(a.dashVideoEncrypted||a.dashAudioEncrypted)&&!1===l.useEME&&a.crypto&&a.crypto.updateHeaderId(),t._abrLoadMetaSuccess(e,U,n,r),i.resolve(s);else{a._makeInitSegemntRequestWithRetry(r,U,!1,(function(){a.setSwitching(r,!1)})).then((function(a){t._abrLoadMetaSuccess(e,U,n,r),i.resolve(a)})).catch((function(e){a.setSwitching(r,!1),debug$1.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),i}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,t=e.mpd.mediaList.video,n=t[t.selectedIdx],r=n.definition,i=n.bandwidth;this._pluginInst.setCurrentDefitionInfos(r,this.definition2item[r]),e.updateDynamicBufferServiceBitrate(i),e.checkPCDN()}catch(e){console.log("setCurrentDefinition error",e)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"setPlayerCurDefinition",value:function(e){var t=this._pluginInst.player;if(e&&"__auto__"===e.url||(t.curDefinition=e),t.curDefinition&&"object"===_typeof$4(t.curDefinition)){var n=this.dash.mpd.mediaList.audio,r=n[n.selectedIdx],i=this.config.dashOpts.dynamic_video.dynamic_audio_list;if(i.length>0)try{t.curDefinition.audioDefinition=i.filter((function(e){return e.main_url===r.baseURL}))[0]}catch(e){debug$1.log("setAudioFaild",e)}}}},{key:"switchURL",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this;if(e){if(!Array.isArray(e)){var r=e.toString();e=r.split("/")[r.split("/").length-1]}var i=n.definitions.filter((function(t){return t.url===e}))[0];if(i){this.setPlayerCurDefinition(i);var a=e===AUTO_FLAG;if(debug$1.log("switchURL",e,t),a)return n.abrInstance.start(),n.isCurrentAutoDefi=!0,n.abrInstance.isCurrentInAbr=!0,void setTimeout((function(){n.abrInstance._onTimeUpdate(null,!0)}));n.isCurrentAutoDefi&&(n.updateAutoDefiDesc("",!0),n.isCurrentAutoDefi=!1,n.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),t&&n.abrInstance.stop(!0),this._doChangeDefinition(MSE.VIDEO,e),this._audioChangeDefinition(e)}}}},{key:"_audioChangeDefinition",value:function(e){var t=this.dash.selectAudio(e,!1);if(t>-1)try{debug$1.log("switch url audio change",t);var n=this.dash.mpd.mediaList.audio[t].id;if(n!==this.dash.mpd.mediaList.audio.selectedIdx)return void debug$1.log("switch url audio same no need change");this._doChangeDefinition(MSE.AUDIO,n)}catch(e){console.log("audio select error",e)}}},{key:"_doChangeDefinition",value:function(e,t){var n=this,r=this._pluginInst.player,i=this;i._startLoadInitSegment(t,!0,e).then(function(){var t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function t(a){var o,l,d,U,c,F,s,Q,u,R,B,h;return _regeneratorRuntime$4().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=i.dash,l=o.mpd.mediaList[e],l[i.selectedIdx].definition===a.definition||e!==MSE.VIDEO){t.next=7;break}return i._videoSwiting=!1,debug$1.log("definitionSwitchTime cancel, current:",i.selectedIdx,"self",a.newIdx),t.abrupt("return");case 7:return a.newIdx!==i.selectedIdx&&(debug$1.log("definitionSwitch fix:",i.selectedIdx,"newIdx",a.newIdx),a.newIdx=i.selectedIdx),t.next=10,i._switch(a.newIdx,e);case 10:if(d=t.sent,U=r.currentTime,c=null,c=l[d||0].mediaSegments.find((function(e){return e.start-U>2.5})),F=!1,c||(s=l[d||0].mediaSegments,c=s[s.length-1],F=!0),c){t.next=19;break}return i._doAppendInitSegment(e,a,c),t.abrupt("return");case 19:Q=util$1.round(c.start),u=util$1.round(r.getBufferedRange(r.buffered)[1]),debug$1.log("切换清晰度 curTime: ".concat(U," start: ").concat(Q," end: ").concat(u),U),e===MSE.VIDEO&&(i.setCurrentDefinition(),i.isCurrentInAbr()||(debug$1.log("definitionSwitchTime emit, current",i.selectedIdx),r.emit("definitionSwitchTime",Q)),n._emitDefinitionChangeDetailEvent({start:Q,bitrate:null===(R=l[a.newIdx])||void 0===R?void 0:R.bandwidth,mediaType:e,definition:a.definition,url:a.url,fileid:a.fileId})),u-Q>0&&"safari"!==sniffer.browser&&!F&&e===MSE.VIDEO&&(debug$1.log("switch seek removeBuffer: ".concat(Q," ").concat(r.duration)),i.removeBuffer(e,c.startRaw,r.duration),B=Math.max(1,c.idx-1),(h=l[d||0].mediaSegments[B-1]).start>0&&h.start<U&&i.removeBuffer(e,0,h.startRaw-.001)),i._doAppendInitSegment(e,a,c);case 25:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}},{key:"_doAppendInitSegment",value:function(e,t,n){var r=this;debug$1.log("switchURL appendInitSegment start",t.newIdx),this._appendInitSegment(e,t,t.newIdx).then((function(){var i;(debug$1.log("switchURL appendInitSegment",t.newIdx),r.setSwitching(e,!1),n&&r.loadData((n.start+n.end)/2,!1),r.emitMenuResolutionChange(),r.config.loadFirstGopData)&&(null===(i=r.dash)||void 0===i||i.loadFirstVideoGop())}))}},{key:"switching",get:function(){return this._switching}},{key:"setSwitching",value:function(e,t){e===MSE.VIDEO?this._videoSwiting=t:this._audioSwiting=t,this._switching=this._videoSwiting||this._audioSwiting,debug$1.log("setSwitching",e,"video",this._videoSwiting,"audio",this._audioSwiting)}},{key:"abrSwitchURL",value:function(e){var t=this,n=this.dash,r=this.player,i=this.config;e=e.split("/")[e.split("/").length-1],debug$1.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(a){var o,l,d,U;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.mpd.mediaList.video,e.next=3,t._switch(a.newIdx,MSE.VIDEO);case 3:if(l=e.sent,d=r.getBufferedRange(r.buffered)[1],U=o[l].mediaSegments.find((function(e){return e.start-d>=0})),U){e.next=9;break}return t._doAppendInitSegment(MSE.VIDEO,a,U),e.abrupt("return");case 9:t._pluginInst.info({msg:"abr switch",data:{bd:o[l].definition,d:o[a.newIdx].definition,start:0===d?r.currentTime:U.start},add:!0}),t.setCurrentDefinition(),t._appendInitSegment("video",a,a.newIdx).then((function(){debug$1.log(null==i?void 0:i.vid,"abrSwitchURL appendInitSegment",a.newIdx),t.setSwitching(MSE.VIDEO,!1),t.loadData(void 0,!1)})).catch((function(e){debug$1.log(null==i?void 0:i.vid,"appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){debug$1.log("startLoadInitSegemnt",e)})),debug$1.log("abrSwitchURLAudioStart",e),this._audioChangeDefinition(e)}},{key:"_switch",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t,n){var r,i,a,o;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.dash,i=n===MSE.VIDEO?r.mpd.mediaList.video:r.mpd.mediaList.audio,a=i.selectedIdx,i.selectedIdx=t,e.next=6,r.abortLoadingTasks(n);case 6:return i[a].mediaSegments.every((function(e){return e.downloaded=SEGMENT_STATE.NO_START,!0})),(o=r.mpd.mediaList.audio)[o.selectedIdx]&&o[o.selectedIdx].mediaSegments&&o[o.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===SEGMENT_STATE.GOING&&(e.downloaded=SEGMENT_STATE.NO_START)})),e.abrupt("return",a);case 10:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"_handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,a=this.dash,o=new ProxyPromise;if(e instanceof ArrayBuffer){var l=0===t.length?e:e.slice(t[0],t[1]+1),d=null===n?null:e.slice(n[0],n[1]+1);a&&!1===a.useEME&&this.crypto?this.crypto.decryptHeader(l,"video"===i,!this._pluginInst.softVideo).then((function(t){var n=t.data,i=n.res,a=n.videoTrack,l=n.audioTrack,U=i;o.resolve({initSegmentRes:U,data:e,sidxSegmentRes:d,headers:r,videoTrack:a,audioTrack:l})})):o.resolve({initSegmentRes:l,data:e,sidxSegmentRes:d,vid:null,headers:r})}else;return o}},{key:"_appendInitSegment",value:function(e,t,n){var r=this,i=this.player,a=this.config,o=a.duration;this.dash.mpd.duration>0&&(o=this.dash.mpd.duration);var l=new ProxyPromise,d=this.dash.mpd.mediaList[e],U=t.initSegmentRes,c=t.sidxSegmentRes;if(!t.fromCache&&(t.fromCache=!0,d[d.selectedIdx].wrapperData=t,c))try{if(this.dash.mpd.getSidx(c,e,n,o),this.abrInstance&&e===MSE.VIDEO){var F=d[d.selectedIdx].mediaSegments[0].segmentDuration;this.abrInstance.readyPromise().then((function(){r.abrInstance.updateSegmentDuration(F)}))}}catch(e){return void i.errorHandler(e)}if(e===MSE.VIDEO){var s=getTypeByCodecs(d[d.selectedIdx].codecs);this._pluginInst.setCodeInfo(s)}return debug$1.log(null==a?void 0:a.vid,"appendInitSegment mediaType:".concat(e,", index: ").concat(n)),this.dash.changeType(e,d[d.selectedIdx].codecs),this._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendStart")),this.dash.appendBuffer(e,U,{mediaType:e,index:n,initSegment:!0,allSegment:!0},t.videoTrack,t.audioTrack).then((function(t){if(r._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:n}}),r._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendDone"),t),debug$1.log(null==a?void 0:a.vid,"appendInitSegment success mediaType:".concat(e,", index: ").concat(n,", \n curVideoInitSegment:").concat(r.curVideoInitSegmentIdx)),d[d.selectedIdx].inited=!0,d.switchTag=!0,l.resolve(),"video"===e&&r.curVideoInitSegmentIdx!==n){r.curVideoInitSegmentIdx=n,r.curVideoFileId=d[d.selectedIdx].fileId,debug$1.log(null==a?void 0:a.vid,"appendInitSegment",n,"fileId",r.curVideoFileId);var o=r._findClosetGop(i.currentTime,!0,0);r.dash.mpd.clearBuffer(o,i.duration,"video")}})).catch((function(t){var n,o="appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(U),",\n message:").concat(t.message);debug$1.log(null==a?void 0:a.vid,o),null===(n=r._pluginInst)||void 0===n||n.setStartTimelines(START_TIMELINES.MSE_ERROR,{message:o}),t&&t.errorCode&&i&&i.emit(new Errors$1(ERR.MEDIA,t.errorCode,{message:"appendInit ".concat(t.message)}))})),this.dash.appendFirstSegment(e),l}},{key:"_makeInitSegemntRequest",value:(e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t,n,r,i,a,o,l,d,U,c,F,s,Q,u,R,B,h,p,S,V,f,y,m,E,Z,J,b,W=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=W.length>0&&void 0!==W[0]?W[0]:"video",r=W.length>1&&void 0!==W[1]?W[1]:0,i=W.length>2&&void 0!==W[2]?W[2]:null,a=this.dash,o=this.config,l=new ProxyPromise,d=a.mpd&&a.mpd.mediaList[n][r],U=[],c="",d){e.next=12;break}return l.reject({mediaType:n,index:r,initSegmentRange:U,url:c,rejected:!0,msg:"list is null"}),debug$1.log("initSegmentRequest error"),e.abrupt("return",l);case 12:return U=(d.initSegmentRange||[]).concat(),(F="segment_base"===a.mpd.dashType)&&(U[1]=d.sidxRange[1]),c=d.initSegment,s="video"===n&&(d.definition||this.bandwidth2item[d.bandwidth].definition),this._checkUrlRange(c),Q=o.useInitTimeout?o.initTimeout:0,u={mediaType:n,vid:o.vid,definition:"video"===n?s:void 0,useUrlRange:o.useUrlRange,timeout:Q,bitrate:d.avg_bitrate||d.bandwidth||d.bitrate,initSegment:!0,codecType:(null===(t=a.mpd)||void 0===t?void 0:t.videoCodecType)||"h264",fileId:d.fileId,checkPreload:!0},R=!1,B=function(){i&&i(),R=!0},e.next=24,a.getData(c,U,n,u,!1,null,B,Q);case 24:return h=e.sent,S=(p=h||{}).res,V=p.headers,f=p.status,y=p.readyState,m=p.fromCache,E=p.error,Z=p.orgDefinition,S&&"error"!==S?(Z&&s===(null===(b=this.player.curDefinition)||void 0===b?void 0:b.definition)&&(this.player.curDefinition.orgDefinition=Z),this._handleInitData(S,d.initSegmentRange,F?d.sidxRange:null,V,n).then((function(e){e.newIdx=r,e.mediaType=n,e.initSegmentRange=U,e.cache=m,e.definition=u.definition,e.bitrate=u.bitrate,e.url=c,e.fileId=u.fileId,l.resolve(e)}))):(J=!1,d.fallbackUrl&&!d.hasFallback&&F&&(d.hasFallback=!0,J=!0,d.initSegment=d.fallbackUrl),l.reject({mediaType:n,index:r,initSegmentRange:U,url:c,rejected:!0,reason:S||(R?"isCanceled":"initData is null"),status:f,readyState:y,ext:E instanceof Error?{msg:E.message}:E,retry:J})),e.abrupt("return",l);case 28:case"end":return e.stop()}}),e,this)}))),function(){return e.apply(this,arguments)})},{key:"_makeInitSegemntRequestWithRetry",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.handleUrlExpire();var o=a||new ProxyPromise;return r&&this._pluginInst._kernal.setNodeTime("init".concat(t,"_metastart")),this._makeInitSegemntRequest(t,n,i).then((function(i){e._pluginInst.info({msg:"initSegmentRequest succ"}),r&&(e._pluginInst._kernal.setNodeTime("init".concat(t,"_metadone"),{fromCache:i.cache,byteLength:i.data.byteLength,mediaType:t,index:n,definition:i.definition,isInitSegment:!0},!0),e._emitDefinitionChangeDetailEvent({start:0,bitrate:i.bitrate,mediaType:t,definition:i.definition,url:i.url,fileid:i.fileId})),o.resolve(i)})).catch((function(r){var a;if(r.retry)e._makeInitSegemntRequestWithRetry(t,n,!1,i,o);else{var l=r.message?r.message:r;o.reject(new Errors$1(ERR.RUNTIME,Errors$1.INIT_SEGMENT_ERROR,{line:329,mediaType:t,index:n,error:l,message:"reason ".concat((null==r||null===(a=r.ext)||void 0===a?void 0:a.msg)||(null==l?void 0:l.reason)," status ").concat(null==l?void 0:l.status),retry:r.retry}))}})),o}},{key:"updateAbrCacheData",value:function(e,t,n){var r=this.dash,i=this.config,a=i.autoBitrateOpts||{},o=r.mpd.mediaList.video,l=n.definition,d=i.definitionText&&i.definitionText[l]||l,U=o[e],c=n.bitrate;this.bitrateMap[c]={url:U.id,definition:l,definitionName:d},this.defiIdMap[U.id]={bitrate:c,definition:l},e===o.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:a.autoDefiText||"auto",url:AUTO_FLAG,selected:t,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,t=this.player;e.abrInstance&&(t&&t.off(ABR_EVENTS.UPDATE_AUTO_DESC,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:function(){var e=this,t=this,n=this.player,r=this.config;util$1.on(n,ABR_EVENTS.UPDATE_AUTO_DESC,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={};var i=LOGOPEN;t.abrInstance=new ABR(n,r,0,r.dashOpts.dynamic_video,5e3,{logger:debug$1.abr,openLog:i}),util$1.once(n,ABR_EVENTS.ABR_START_PROGRESS,this.startProgressTimer,"dashDestroy"),t.abrInstance.onAbrChange=function(e,r,i,a){var o=t.bitrateMap[e],l=t.bitrateMap[r],d=null==o?void 0:o.definition,U=null==l?void 0:l.definition;debug$1.abr("abr change prevD:",d,"curDef:".concat(U)),d!==U&&l&&(t.abrSwitchURL(l.url),n.emit("ABR_CHANGE",{prev:d,cur:U,prevName:o.definitionName,curName:l.definitionName,abrInfo:a}))},util$1.on(n,ABR_EVENTS.ABR_CHANGE,t.abrInstance.onAbrChange,"dashDestroy"),util$1.on(n,ABR_EVENTS.ABR_LIMIT_BITRATE,function(){var r=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function r(i){var a,o,l;return _regeneratorRuntime$4().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(a=i.removed,debug$1.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removed",a),!t.isCurrentInAbr()||!a){r.next=8;break}return r.next=5,null===(o=t.dash)||void 0===o?void 0:o._doCancel(MSE.VIDEO);case 5:l=e._findClosetGop(n.currentTime,!0,2),debug$1.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removeStart",l),e.removeBuffer(MSE.VIDEO,l,n.duration);case 8:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}(),"dashDestroy"),t.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]);var e,t}();const __DASH__$1=__DASH__;var CHANGE_STATES=CHANGE_STATES$2,XGLOG_CACHE_EVENT="xglog_cache",DashKernal=function(){return _createClass$8((function e(t){var n=this;_classCallCheck$8(this,e),_defineProperty$7(this,"start",function(){var e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var r,i,a,o,l,d,U;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n._beforeLoadStartCostTime=0,n._tm=util$1.nowTime(),n._sTime=util$1.nowTime(),!n._checkHasDestroy("start")){e.next=5;break}return e.abrupt("return");case 5:if(n._hasStart&&(n.__dash__&&(n.__dash__.destroy(),n.__dash__=null),n._initProfile(),n._initialize(),n._hasStart=!1),n.setNodeTime("newplayer_start"),r=Date.now(),i=n.__dash__,a=n._pluginInst,o=a.player,l=a.config,o.dashState=PLAYER_START,o.emit("dashStateChange",PLAYER_START),t||(t=o.config.url="anytext"),d=new DASH$1(t,n._pluginInst,i),i){e.next=17;break}return n._info({msg:"__dash__ is null, dashOpts",startMs:r,name:"start __dash__"}),e.abrupt("return");case 17:return i.initDash(d),i.dashVideoEncrypted||i.dashAudioEncrypted||n._pluginInst.softVideo?(debug$1.log("加密视频"),U=!1===l.useEME,l.useEME=isEMESupported(),(U||n._pluginInst.softVideo)&&(l.useEME=!1),l.intertrustServerURL&&(l.useEME=!0),l.useEME||(i.crypto=new Crypto$1),d.useEME=l.useEME,n._info({msg:"encrypt video ready useEME ".concat(d.useEME)})):(debug$1.log("非加密视频"),n._info({msg:" no encrypt video ready"})),o.dashState=WASM_START,o.emit("dashStateChange",WASM_START),e.next=23,n._onWasmReady({url:t});case 23:n._info({msg:"info player start execute",startMs:r,name:"start",profile:!0}),n._hasStart=!0;case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),_defineProperty$7(this,"_onLoadStart",(function(){var e=n._pluginInst.config,t=util$1.nowTime()-n._tm;n._beforeLoadStartCostTime=t>100?100:t,n.changeState("loadstart","beforeLoadStartCostTime ".concat(n._beforeLoadStartCostTime)),e.mseOpenTimeout>0&&(debug$1.log("mOPenTime",e.mseOpenTimeout,performance.now()),n._mseOpenTimeoutId=setTimeout((function(){var e,t;debug$1.log("Timeout",performance.now()),n._errorHandler(new Errors$1(ERR.MEDIA,Errors$1.MSE_OPEN_TIMEOUT,{message:"mse open timeout"})),n._clearMseOpenTimeout(),null===(e=n.__dash__)||void 0===e||e.destroy(),null===(t=n.__dash__)||void 0===t||null===(t=t.dash)||void 0===t||t.destroy()}),e.mseOpenTimeout))})),_defineProperty$7(this,"_onLoadData",_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(){var t,r,i;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.changeState("loaddata"),null==(i=n.__dash__)||null===(t=i.dash)||void 0===t||t.checkPCDN(),null==i||null===(r=i.dash)||void 0===r||r.cachePreloadData(),debug$1.log("未起播计时 clearCheckCanplayTimer"),i.clearCheckCanplayTimer(),null==i||!i.abrInstance){e.next=10;break}return e.next=9,i.abrInstance.init(i.dash.mpd.mediaList);case 9:i.abrInstance.execute();case 10:case"end":return e.stop()}}),e)})))),_defineProperty$7(this,"_errorHandler",(function(e){var t,r;if(!n._checkHasDestroy("errorHandler")){var i=n._pluginInst,a=i.player,o=i.config;if(o.codecType===CodecsConfigMap[CodecsTypes.HEVC].logCodeType&&(null===(t=a.video.error)||void 0===t||null===(t=t.message)||void 0===t?void 0:t.indexOf("video decoder initialization failed"))>=0&&(debug$1.log("ErrorHandler DECODER_FAILED"),a.emit("DECODER_FAILED",{codecType:o.codecType,vid:o.vid,message:e.message})),e instanceof Errors$1)e=new Errors$2(a,e);else{if(a.video.error)e=new Errors$2(a,{errorType:ERR.MEDIA,errorCode:5100+a.video.error.code});else{var l=e;if("string"!=typeof e)try{l=JSON.stringify(e)}catch(e){l="other"}e=new Errors$2(a,{errorType:ERR.OTHER,errorCode:0,errorMessage:l})}}if(null===(r=n._pluginInst)||void 0===r||r.setStartTimelines(START_TIMELINES.PLAYER_ERROR,{message:"mse-".concat(e.message,"-").concat(e.errorCode)}),n._errors.push({time:(new Date).getTime(),err:e}),debug$1.log(e),a.emit(XGLOG_CACHE_EVENT),e&&a.dashState!==ERROR_HANDLER){a.dashState=ERROR_HANDLER,e.vid=o.vid,e.url=a.src;var d=n.__dash__,U=d&&d.isCurrentAutoDefi;if(e.errd&&"object"===_typeof$4(e.errd)&&d&&d.dash&&(e.errd.url=d.dash.url,e.url=d.dash.url),e.url&&e.url.indexOf("blob:")>-1&&o.dashOpts&&o.dashOpts.dynamic_video&&(e.url=o.dashOpts.dynamic_video.main_url),!e||e.errorCode!==n._getCode(ERR.MEDIA,ERR.SUB_TYPES.MSE_HIJACK)&&e.errorCode!==n._getCode(ERR.MEDIA,ERR.SUB_TYPES.EME_HIJACK)){if(a.emit("DATA_REPORT",e),e&&e.errorCode===n._getCode(ERR.DRM,ERR.SUB_TYPES.LICENSE))return n._pluginInst.destroyKernal(),void a.emit("error",e);if(!e||e.errorCode!==n._getCode(ERR.MEDIA,ERR.SUB_TYPES.MSE_ADD_SB)&&e.errorCode!==n._getCode(ERR.DEMUX,ERR.SUB_TYPES.SIDX)){if(e.segmentExpired||e.msg===TASK_REQUEST_EXPIRED)return d&&d.abrInstance&&"function"==typeof d.abrInstance._stop&&(d.abrInstance._stop(),debug$1.abr("error stop","expired",e.segmentExpired,e.ex)),void n._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&d&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(d.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!o.useBackUrl&&!n._pluginInst._hasUsedBackUrl&&o.dashOpts&&o.dashOpts.dynamic_video&&d){debug$1.log("backup replay");var c=d.changeMainBackUrl(CHANGE_STATES.ERR,n._pluginInst._hasUsedBackUrl);return d.updateDashType(),U?c.autoBitrateOpts&&(c.autoBitrateOpts.isPlayAutoDefi=!0):(n.currentDefitionFromPlayer&&(c.defaultDefinition=n.currentDefitionFromPlayer.definition),c.autoBitrateOpts&&(c.autoBitrateOpts.isPlayAutoDefi=!1)),n._pluginInst._hasUsedBackUrl=!0,n._pluginInst.next(a.currentTime,"REPLAY",c,!0,"dash"),a.emit("playCatch","dash",e),debug$1.log("playCatch dash",JSON.stringify(e)),void n._emitDegradeEvent(e,"dash")}d&&d.updateDashType(!0),n._handleDegradeToMp4(e)}else n._handleDegradeToMp4(e)}else a.emit("error",e)}}})),this._pluginInst=t,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize(),this._bindEvents()}),[{key:"changeState",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=util$1.nowTime());var r=util$1.nowTime()-this._pTime,i=util$1.nowTime()-this._sTime;debug$1.log(null===(t=this._pluginInst)||void 0===t||null===(t=t.config)||void 0===t?void 0:t.vid,">>>changeState[".concat(e,"]"),r,i,JSON.stringify(n));var a={state:e,t1:r,t2:i,data:n};this.states[e]||(this.states[e]=a),this.allPhases.push(a),this._pTime=util$1.nowTime()}},{key:"_initProfile",value:function(){this.states={},this.preloadMap={},this.allPhases=[]}},{key:"setNodeTime",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.changeState(e,t),n&&this.setPreloadData(e,t),"initmse_sbopendone"===e&&(debug$1.log("clear Timeout sbopendone",performance.now()),this._clearMseOpenTimeout())}},{key:"setPreloadData",value:function(e,t){this.preloadMap[e]=t}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst.player;this._originSwitchURL=e.switchURL,this._originErrorHandler=e.errorHandler,e.switchURL=this._switchURL.bind(this),e._startInit=this.start,e.dash=!0,e.errorHandler=this._errorHandler}},{key:"_info",value:function(e){this._pluginInst&&this._pluginInst.info(e)}},{key:"_onWasmReady",value:(t=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i,a,o,l,d,U,c,F,s,Q,u=this;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._checkHasDestroy("_onWasmReady")){e.next=2;break}return e.abrupt("return");case 2:return n=t.url,r=this._pluginInst,i=r.player,a=r.config,o=this.__dash__,l=o.dash,i.dashState=WASM_READY,i.emit("dashStateChange",WASM_READY),debug$1.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),util$1.on(l,"error",this._errorHandler,"destroy"),o.bindComEvent(),e.prev=12,e.next=15,l.init(n);case 15:if(d=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!i,", isMseNull ").concat(!d)}),e.abrupt("return");case 19:debug$1.time("initReady cost",(new Date).getTime()-o.startTimestamp),i.dashState=INIT_FINISHED,i.emit("dashStateChange",INIT_FINISHED),debug$1.log("dash init完成"),l.mpd.mediaList.video.length>0&&(a.defaultDefinition||(a.defaultDefinition=a.dashOpts.dynamic_video.dynamic_video_list[0].definition,o.lastDefiIdx=0),o.isOpenAutoDefi||(o.isCurrentAutoDefi=!1,o.abrInstance.isCurrentInAbr=!1),U=a.defaultDefinition.toString(),this._initDefinitionList(U),c=o.definitions.some((function(e){return e.selected})),c&&void 0!==o.lastDefiIdx||(c||(o.definitions[0].selected=!0,F=o.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(F,o.definition2item[F])),i.emit("initialUrl",l.mpd.mediaList.video[0].baseURL),o.curBitrate=a.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,o.lastDefiIdx=0),this._afterInitDefinitionList()),this._pluginInst.originStartInit.call(i,d.url),debug$1.time("start call cost",(new Date).getTime()-o.startTimestamp),i.dashState=CORE_START,i.emit("dashStateChange",CORE_START),o.startCheckCanplayTimer(),o.isDashCanUse=!0,o.mse=d,o.emitMenuResolutionChange(),"safari"===sniffer.browser&&(util$2.addClass(i.root,"canplay"),s=function(){util$2.removeClass(i.root,"xgplayer-is-enter")},util$1.once(i,"waiting",s)),Q=function(){u._checkHasDestroy("onStartPlay")||(i.emit("dash_start_play"),u._info({msg:"dash_start_play"}),i.dashState=START_PLAY,u._info({msg:"START_PLAY ready"}),i.emit("dashStateChange",START_PLAY),i.emit("playInterfaceInfo",a.dashOpts||{}),o.isCurrentAutoDefi||debug$1.time("onStartPlay cost not abr",(new Date).getTime()-o.startTimestamp),o.startProgressTimer(),debug$1.time("onStartPlay cost",(new Date).getTime()-o.startTimestamp),o.setCurrentDefinition())},util$1.once(l,"start_play",Q),this._info({msg:"START_PLAY dashready"}),i.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),i.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return t.apply(this,arguments)})},{key:"_initDefinitionList",value:function(e){var t=this;e=e.toString();var n=this._pluginInst,r=n.player,i=n.config,a=this.__dash__,o=a.dash,l=i.dashOpts.dynamic_video.dynamic_video_list;a.definitions=[];for(var d=0;d<l.length;d++){var U=l[d];a.bandwidth2item[U.bitrate]=U,a.definition2item[U.definition]=U}o.mpd.mediaList.video.sort((function(e,t){return t.height-e.height})),o.mpd.mediaList.video.forEach((function(n,l){var d=a.bandwidth2item[n.bandwidth];if(d){var U=d.definition.toString(),c=!(U!==e||a.isOpenAutoDefi&&a.isPlayAutoDefi);a.definitions.push(_objectSpread2$5(_objectSpread2$5({name:i.definitionText&&i.definitionText[U]||U,selected:c,fps:d.fps},d),{},{url:Array.isArray(n.url)?n.url:n.id,definition:String(d.definition)})),n.frameRate=n.frameRate||d.fps||25;var F=d.bitrate;a.updateAbrCacheData(l,a.isPlayAutoDefi,d),U===e&&(debug$1.log("dashDefinition",U),r.emit("initialUrl",o.mpd.mediaList.video[l].baseURL),a.curBitrate=F,a.lastDefiIdx=l),c&&t._pluginInst.setCurrentDefitionInfos(d.definition,d)}}))}},{key:"_afterInitDefinitionList",value:function(){var e=this._pluginInst,t=e.player,n=e.config,r=this.__dash__;t.emit("resourceReady",r.definitions,n.dashOpts.dynamic_video.dynamic_video_list),r.abrInstance.updateBitrate(r.curBitrate);var i=r.definitions.filter((function(e){return e.selected}))[0];r.setPlayerCurDefinition(i)}},{key:"_filterBy",value:function(e,t,n){var r=[],i=[];t.forEach((function(t){r.push(t),t[e]&&i.push(t[e])})),Array.isArray(n)&&n.forEach((function(t){t.isExtra=!0,t[e]&&!i.includes(t[e])&&r.push(t)}));var a=[],o=r.filter((function(e){return"video"===e.mediaType}));o.sort((function(e,t){return e.bitrate<t.bitrate?-1:1}));var l=r.filter((function(e){return"audio"===e.mediaType}));return l.sort((function(e,t){return e.bitrate<t.bitrate?-1:1})),a=(a=a.concat(o)).concat(l)}},{key:"_processFeedData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._pluginInst,n=t.player,r=t.config,i=n.config;if(r.playInfoType===MODEL_TYPES.FEED&&i.definition){var a,o=r.dashOpts.Data,l=i.definition.list,d=i.definition.extraList||[],U=e?l:(null==o?void 0:o.vid)===r.vid&&(null==o?void 0:o.playInfoList)||l;U=U.filter((function(e){return!e.isExtra})),r.defaultDefinition=i.defaultDefinition||i.definition.defaultDefinition,i.definition.list=U.filter((function(e){return e.vtype.toUpperCase()===VTYPES$1.DASH&&"video"===e.mediaType}));var c=U.concat(d)||[];null!==(a=U[0])&&void 0!==a&&a.file_id&&(c=this._filterBy("file_id",U,d)),r.dashOpts.Data={vid:i.vid,duration:i.duration,playInfoList:JSON.parse(JSON.stringify(c))};var F=c.filter((function(e){return e.vtype.toUpperCase()===VTYPES$1.MP4}));if(F.length>0||i.downgradeUrl){var s=F.length>0?F:[{url:i.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];r.mp4Opts={mp4List:s}}else r.mp4Opts=null}}},{key:"_processData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._pluginInst,n=t.player,r=t.config,i=n.config;(this._processFeedData(e),!r.dashOpts.Data||r.playInfoType!==MODEL_TYPES.TOP&&r.playInfoType!==MODEL_TYPES.FEED||this._playInfoInit(),r.dashOpts.dynamic_video)&&(r.dashOpts.dynamic_video.dynamic_video_list=r.dashOpts.dynamic_video.dynamic_video_list||[],r.dashOpts.dynamic_video.dynamic_audio_list=r.dashOpts.dynamic_video.dynamic_audio_list||[],[r.dashOpts.dynamic_video.dynamic_video_list,r.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){if(e.bitrate=parseInt(e.real_bitrate||e.bitrate),i&&"function"==typeof i.preProcessUrl){var t=i.preProcessUrlOptions||{};e.main_url=i.preProcessUrl(e.main_url,t).url,e.backup_url_1=i.preProcessUrl(e.backup_url_1,t).url;var n=Object.assign({},t,{isFallback:!0});e.fallback_url=i.preProcessUrl(e.fallback_url,n).url}}))})))}},{key:"_initialize",value:function(){var e=this._pluginInst,t=e.player,n=e.config;if(debug$1.log(null==n?void 0:n.vid,"执行dashKernal"),this._processData(),!n.dashOpts)return console.error(null==n?void 0:n.vid,"dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});var r=CHANGE_STATES$2,i=new __DASH__$1({pluginInst:this._pluginInst});this.__dash__=i;var a=MSE.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');a?i.changeMainBackUrl(r.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(a),add:!0}),null==t||t.errorHandler(new Errors$1(ERR.MEDIA,ERR.SUB_TYPES.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_bindEvents",value:function(){var e=this._pluginInst.player;e.on(LOAD_START,this._onLoadStart),e.on(LOADED_DATA,this._onLoadData)}},{key:"_clearMseOpenTimeout",value:function(){this._mseOpenTimeoutId&&(clearTimeout(this._mseOpenTimeoutId),this._mseOpenTimeoutId=null)}},{key:"beforeLoadStartCostTime",get:function(){return this._beforeLoadStartCostTime}},{key:"_switchURL",value:(e=_asyncToGenerator$4(_regeneratorRuntime$4().mark((function e(t){var n,r,i=arguments;return _regeneratorRuntime$4().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(i.length>1&&void 0!==i[1])||i[1],r=this.__dash__,e.next=4,r.switchURL(t,n);case 4:case"end":return e.stop()}}),e,this)}))),function(t){return e.apply(this,arguments)})},{key:"onPreChangeDefinition",value:function(e){var t,n,r;if(!Array.isArray(e))return[];if(!this.__dash__||!this.__dash__.dash||this.__dash__.dash._hasDestroyed)return[];var i,a,o=this._pluginInst,l=o.player,d=o.config,U=l.config,c=null===(t=this.__dash__)||void 0===t||null===(t=t.dash)||void 0===t?void 0:t.mpd;c&&(i=null===(a=this.__dash__)||void 0===a||null===(a=a.dash)||void 0===a||null===(a=a.mpd)||void 0===a?void 0:a.getCurrDefition());if(U.definition.list=e,this._processData(!0),null===(n=this.__dash__)||void 0===n||null===(n=n.dash)||void 0===n||null===(n=n.mpd)||void 0===n||n.init(!1,i),c){var F=c.mediaList.video,s=F.selectedIdx;this.__dash__.curVideoInitSegmentIdx=s,this.__dash__.curVideoFileId=F[s].fileId}var Q=d.defaultDefinition.toString();return this._initDefinitionList((null===(r=l.curDefinition)||void 0===r?void 0:r.definition)||Q),this._afterInitDefinitionList(),this.__dash__.definitions}},{key:"_playInfoInit",value:function(){var e=this._pluginInst,t=e.config,n=e.playerConfig,r=t.dashOpts.Data;t.vid=r.VideoID||r.Vid||r.vid,n.vid=t.vid,t.playInfoType===MODEL_TYPES.TOP?transformTopModel(t):t.playInfoType===MODEL_TYPES.FEED&&transformFeedModel(t)}},{key:"_getCode",value:function(e,t){return ERR_CODE[e][t]}},{key:"_emitDegradeEvent",value:function(e,t){if(this._pluginInst){var n=this._pluginInst.player,r=e.errorCode,i=e.errorMessage,a=_objectSpread2$5(_objectSpread2$5({},e),{},{vtype:t,errc:r,err_msg:i||(null==e?void 0:e.message)});n.pause(),n.emit("degrade",a),debug$1.log("degrade event emit",JSON.stringify(a))}}},{key:"_handleDegradeToMp4",value:function(e){var t=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var n=this._pluginInst,r=n.player,i=n.config;if(i.mp4Opts&&!this._hasDegradeMp4){debug$1.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,r.dashState=ERROR_CATCHING;var a=i.startTime||r.currentTime||0;setTimeout((function(){var n;t._checkHasDestroy("degrademp4")||(t._pluginInst._setStartTime("destroy",a,!0,!1),r.emit("playertypechange"),r.dashState=ERROR_CATCH_FINISHED,r.emit("playCatch","dash_mp4_2",_objectSpread2$5(_objectSpread2$5({},e),{},{url:(null==r||null===(n=r.config)||void 0===n?void 0:n.downgradeUrl)||""})),debug$1.log("playCatch dash_mp4_2",JSON.stringify(e)),t._emitDegradeEvent(e,"dash_mp4_2"),i.defaultFormat="mp4",t._pluginInst.changeKernal(!0,!1,"dash_mp4_2"),r.once("canplay",(function(){if(r.config.autoplay){var e=r.video.play();e&&e.catch((function(){}))}})))}),0)}else i.mp4Opts||(r.dashState=ERROR_NO_MP4OPTS,r.emit("dashDestroy"),r.emit("error",e),debug$1.log("_handleDegradeToMp4 throw error"))}}},{key:"abrInstance",get:function(){return this.__dash__.abrInstance}},{key:"destroy",value:function(){var e=this._pluginInst.player;this.__dash__&&(this.__dash__.destroy(),this.__dash__=null),e.off(LOAD_START,this._onLoadStart),e.off(LOADED_DATA,this._onLoadData),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,debug$1.log("dashKernal destroy"),this._clearMseOpenTimeout()}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),debug$1.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;util$1.once(e,"dash_start_play",(function(){e.dashState=NEXT_FINISHED,e.emit("nextEnded")}))}}},{key:"getStat",value:function(){if(!this._checkHasDestroy("getStat")){var e={};e.dvps=!!this._pluginInst.pvStartup,e.daps=!!this._pluginInst.paStartup,e.preLoadData=this.getPreloadStat();var t={},n={};if(this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mse){var r=this.__dash__.dash.mse;if(r._sourceBuffer)for(var i=Object.keys(r._sourceBuffer),a=0;a<i.length;a++){var o=i[a],l=(r._queue[o]||[]).map((function(e){return{opName:e.opName,context:e.context}}));n[o]={updating:r._sourceBuffer[o].updating,queue:l.slice(0,Math.max(5,l.length)),queueEmpty:!r._queue[o]}}}e.mseStat=n,this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mpd&&(t.video=this.__dash__.dash.mpd._getBuffered("video"),t.audio=this.__dash__.dash.mpd._getBuffered("audio")),e.bfs=t;var d=this._pluginInst.player;e.currentTime=d.currentTime;var U=d.video.error;return e.dVideoError=U?{code:U.code,message:U.message}:null,e.errors=this._errors,e.performance=this.states,e.stage=this._getKeyCost(),e}}},{key:"_getKeyCost",value:function(){var e=this,t=function(t,n){var r=e.states[n],i=e.states[t],a=(null==r?void 0:r.t2)-(null==i?void 0:i.t2);return Number.isFinite(a)?a:-1};return{mseopen_to_msedone:t("initmse_sbopen","initmse_sbopendone"),videometastart_to_metadone:t("initvideo_metastart","initvideo_metadone"),audiometastart_to_metadone:t("initaudio_metastart","initaudio_metadone"),videosegstart_to_segdone:t("initvideo_segstart","initvideo_segdone"),audiosegstart_to_segdone:t("initaudio_segstart","initaudio_segdone"),mseopen_to_loadeddata:t("initmse_sbopen","loaddata"),videoappend_to_loadeddata:t("initvideoSegmentAppend","loaddata"),audioappend_to_loadeddata:t("initaudioSegmentAppend","loaddata")}}},{key:"getPreloadStat",value:function(){for(var e={length:0,byteLength:0,load:[],duration:0,audioDuration:0},t=Object.keys(this.preloadMap),n=0;n<t.length;n++){var r=this.preloadMap[t[n]]||{};if(r&&r.fromCache&&r.byteLength){if(e.length+=r.byteLength,e.byteLength+=r.byteLength,e.load.push(r),!r.isInitSegment&&!r.duration)try{var i,a=this.__dash__.dash.mpd.mediaList[r.mediaType],o=null===(i=a[a.selectedIdx].mediaSegments)||void 0===i?void 0:i[0].endRaw;r.duration=o}catch(e){r.duration=5}var l=r.duration;"video"===r.mediaType?e.duration+=l||0:e.audioDuration+=l||0}}return e.loadLength=e.load.length,e}},{key:"pcdnReq",get:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnReqCnt()}},{key:"pcdnVVStat",value:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnVVStat()}},{key:"encryptedType",get:function(){return this.__dash__.encryptedType}},{key:"replay",value:function(){var e=this.__dash__;e&&e.abrInstance&&e.abrInstance.isCurrentInAbr&&e.abrInstance.start()}},{key:"bandwidth",get:function(){var e,t=this.__dash__;return t&&t.dash&&t.dash.loadInfo?null===(e=t.dash)||void 0===e?void 0:e.loadInfo:{cdn:{size:0},pcdn:{size:0}}}}]);var e,t}(),Mp4Kernal=function(){return _createClass$8((function e(t){var n=this;_classCallCheck$8(this,e),_defineProperty$7(this,"start",(function(){var e=n._pluginInst.player;n._pluginInst.originStartInit.call(e,n._url);var t="dash mp4 kernal start";n._pluginInst.info({msg:t}),debug$1.log(t)})),_defineProperty$7(this,"_errorHandler",(function(e){var t=n._pluginInst.player;if(t.video.error){e=new Errors$2(t,{errorType:ERR.MEDIA,errorCode:5100+t.video.error.code})}else{var r=e;if("string"!=typeof e)try{r=JSON.stringify(e)}catch(e){r="other"}e=new Errors$2(t,{errorType:ERR.OTHER,errorCode:0,errorMessage:r})}n._stat.error.push({err:e}),debug$1.log("mp4 error",e);var i=(new Date).getTime()/1e3>=n.urlExpireTimestamp&&n.urlExpireTimestamp>0;n._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(i),err:e}),!i||!t.video.error||4!==t.video.error.code&&2!==t.video.error.code?(n._pluginInst.setStartTimelines(START_TIMELINES.PLAYER_ERROR,{message:"dashmp4-".concat(e.errorMessage,"-").concat(e.errorCode)}),t.emit("error",e)):n._urlExpiredWhenInit||n._mp4CheckExpire()})),_defineProperty$7(this,"_updateMp4Auto",(function(){setTimeout((function(){n._updateMp4AutoDesc()}),0)})),this._url=null,this._pluginInst=t,this._urlExpiredWhenInit=!1,this._initialize(),this._proxyPlayer(),this._stat={type:"mp4",error:[]}}),[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=NEXT_FINISHED,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this,t=this._pluginInst.config;this._handleMp4Definitions(t.defaultDefinition),this._getMp4Opts();var n=this._pluginInst.player;n.dash=!1,setTimeout((function(){n.emit("resourceReady",e._mp4Definitions||[],[].concat(e._RawMp4Definitions)),e._updateMp4Auto()})),this.urlExpireTimestamp&&(this._urlExpiredWhenInit=(new Date).getTime()/1e3>=this.urlExpireTimestamp&&this.urlExpireTimestamp>0,this._mp4CheckExpire())}},{key:"onPreChangeDefinition",value:function(e){var t=this._pluginInst,n=t.config,r=t.player;return n.mp4Opts||(n.mp4Opts={}),n.mp4Opts.mp4List=e,this._handleMp4Definitions(this._currDefinition),r.config.definition&&(r.config.definition.defaultDefinition=this._currDefinition,r.plugins.definition&&(r.plugins.definition.config.defaultDefinition=this._currDefinition)),r.emit("resourceReady",this._mp4Definitions),this._mp4Definitions}},{key:"_handleMp4Definitions",value:function(e){var t=this;e=e&&e.toString();var n=this._pluginInst,r=n.player,i=n.config,a=n.playerConfig;if(a.downgradeUrl&&(!i.mp4Opts||!i.mp4Opts.list||0===i.mp4Opts.list.length)){var o=[{url:a.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];i.mp4Opts={mp4List:o}}if(i.mp4Opts){var l;this.mp4AutoItem=null;var d=[].concat(i.mp4Opts.mp4List||[]);d.every((function(e){return!!e.bitrate}))&&d.sort((function(e,t){return t.bitrate-e.bitrate}));var U=i.mp4Opts.isOpenAutoDefi,c=i.mp4Opts.isPlayAutoDefi,F=!1;if(U){var s={};d.forEach((function(e){s[(e.definition||"").toLowerCase()]=e}));for(var Q=["720p","480p","360p"],u=null,R=0;R<Q.length;R++){var B=s[Q[R]];if(B){u=B;break}}if(u){this.mp4AutoItem=u;var h=i.mp4Opts.autoDefiText||"自动",p="".concat(h,"(").concat(u.definition,")");d.push({definition:h,url:AUTO_FLAG,name:p,url_expire:u.url_expire||0,selected:!!c}),F=c}}if(d.length>0){d.forEach((function(e){if(e.definition&&(e.definition=e.definition.toString()),a&&"function"==typeof a.preProcessUrl){var t=a.preProcessUrlOptions||{};e.url=a.preProcessUrl(e.url,t).url}}));var S=d[0].url,V=d[0].url;d.forEach((function(n){n.definition===e&&(S=n.url,V=n.url,t._currDefinition=e)})),U&&c&&this.mp4AutoItem&&(S=this.mp4AutoItem.url,V=AUTO_FLAG),this._mp4Url=V,this._url=S,this._pluginInst.loadURL=S}if(!F){for(var f=0;f<d.length;f++){var y=d[f];if(e===y.definition){y.selected=!0,F=!0,this._currDefinition=e;break}}if(!F){if(!(d.length>0))return void setTimeout((function(){var e=ERR_CODE[ERR.MEDIA][ERR.SUB_TYPES.MEDIA_ERR_URL_EMPTY],t=new Errors$2(r,{errorType:ERR.MEDIA,errorCode:e});r.emit(EVENT$1.ERROR,t),console&&console.error("empty mp4 definitions")}));d[0].selected=!0,this._currDefinition=String(d[0].definition)}}this._mp4Definitions=d.map((function(n){e===n.definition&&(t._url=n.url,c||(n.selected=!0));var r=JSON.parse(JSON.stringify(n));return r.name=i.definitionText&&i.definitionText[n.definition]||n.definition,r.url_expire=n.url_expire||0,r})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=d;var m=!1;this._pluginInst.setCodeInfo(null===(l=d[0])||void 0===l?void 0:l.codec_type);for(var E=0;E<d.length;E++){var Z=d[E];Z.codec_type&&Z.vtype&&("h264"===Z.codec_type&&"mp4"===Z.vtype||(m=!0))}m&&r.emit("log",{type:"oneevent",end_type:MP4_SOURCE_ERR})}}},{key:"_getMp4Opts",value:function(){var e=this._pluginInst.player,t={url:this._mp4Url,realUrl:this._url,mp4Definitions:[].concat(this._mp4Definitions)};return this._getPlayInfoTimestamp=(new Date).getTime()/1e3,t.mp4Definitions&&t.mp4Definitions.length>0&&t.mp4Definitions[0]&&(this.urlExpireTimestamp=t.mp4Definitions[0].url_expire||0),this._destroyMp4AutoHandler(),e.on("canplay",this._updateMp4Auto),this.urlExpireTimestamp&&(this.mp4CheckExpire=this._mp4CheckExpire.bind(this),e.on("timeupdate",this.mp4CheckExpire)),t}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst,t=e.player,n=e.config;this._originSwitchURL=t.switchURL,this._originErrorHandler=t.errorHandler,n.defaultFormat="mp4",t._startInit=this.start,t.errorHandler=this._errorHandler,t.switchURL=this._switchURLMp4.bind(this),t.config.url=this._url}},{key:"_switchURLMp4",value:function(e){var t=this,n=this._pluginInst.player,r=(Array.isArray(e)?e:e.split("/")[e.split("/").length-1])===AUTO_FLAG,i=r?this.mp4AutoItem.url:e;this._pluginInst.loadURL=i,n.curTime=n.currentTime;var a=n.paused;this._url=r?AUTO_FLAG:e,n.ended||(n.src=i,util$1.once(n,"canplay",(function(){if(n.currentTime=n.curTime,!a){var e=n.play();void 0!==e&&e&&e.catch((function(){}))}a&&n.pause()}))),r?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):util$1.once(n,"definitionChange",(function(e){for(var n=e.to,r=null,i=t._pluginInst.cnofig,a=0;a<i.mp4Opts.mp4List.length;a++){var o=i.mp4Opts.mp4List[a];if(o.definition===n){r=o,t._currDefinition=String(r.definition);break}}t._setCurrentDefitionInfos("".concat(n),r)}))}},{key:"_mp4CheckExpire",value:function(){var e;null===(e=this._pluginInst)||void 0===e||e.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,t=this._url!==AUTO_FLAG||void 0;this.mp4AutoItem&&(e.emit("MP4_AUTO_DESC_CHANGE",JSON.parse(JSON.stringify(this.mp4AutoItem)),!!t||void 0),t||this._setCurrentDefitionInfos(this.mp4AutoItem.definition,this.mp4AutoItem))}},{key:"_setCurrentDefitionInfos",value:function(e,t){this._pluginInst.setCurrentDefitionInfos(e,t)}},{key:"_destroyMp4AutoHandler",value:function(){var e=this._pluginInst.player;e.off("canplay",this._updateMp4Auto),e.off("timeupdate",this._mp4CheckExpire)}},{key:"destroy",value:function(){var e=this._pluginInst.player;e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,this._destroyMp4AutoHandler(),this._pluginInst.unloadVideo(),e.switchURL=this._originSwitchURL}},{key:"getStat",value:function(){var e=this._pluginInst.player;this._stat.currentTime=e.currentTime;var t=e.video.error;return this._stat.videoError=t?{code:t.code,message:t.message}:null,this._stat}}])}(),DEFAULT_CONFIG={bufferThreshold:10,defaultFormat:"dash",useEME:null,getLicenseUrl:"",intertrustServerURL:null,defaultDefinition:null,useGapJump:!0,useDurationBackoff:!1,preloadTime:void 0,maxBufferLength:void 0,minBufferLength:10,dynamicPreloadTimeOpts:null,preloadCancelTime:5,progressTimer:1e3,tickInSeconds:void 0,disableCanplayCheck:!0,canplayTimeout:2e3,disableBufferBreakCheck:!0,waitingTimeOut:2e4,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:VTYPES$1.DASH,useProgressiveAppend:!1,useProgressiveAppendAll:!1,loader:LOADER_CONFIG,logMaxSize:204800,timeout:5e3,reqOptions:{},timerInWorker:!1,resumePlayWaterLevel:0,waitingInBufferTimeOut:5e3,waitJampBufferMaxCnt:3,removeBufferLen:60,removeBufferWhenSeekInBuffer:!0,replayReset:!0,resetStateUpdrade:!1,netNoRetryCode:[403,404],progressiveTimeout:1500,usePCDNProgressiveCheck:!1,useCDNProgressiveCheck:!1,useSeparationMode:!0,loadFirstGopData:!1,useGopCacheAcc:!1,mseOpenTimeout:-1,useInitTimeout:!1,initTimeout:1500,usePlayAbortRetry:!1},STATS_EVENTS=STATS_EVENTS$1,KERNAL_TYPES={MP4:"mp4",DASH:"dash",VOID:"void"},version="3.5.29-rc.1";function getterMap(e){return{playerVersion:{get:function(){return version},configurable:!0},downloadSpeed:{get:function(){return Loader.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return Loader.historyAvspeed/8},configurable:!0},abrInstance:{get:function(){return e.abrInstance},configurable:!0},menuCodeType:{get:function(){return e.menuCodeType},configurable:!0},playerType:{get:function(){return e.playerType},configurable:!0},supportMenus:{get:function(){return e.supportMenus},configurable:!0},domain:{get:function(){return e.domain},configurable:!0},loadURL:{get:function(){return e.loadURL},configurable:!0},performance:{get:function(){var t=e.stat;return t&&t.performance},configurable:!0},stat:{get:function(){return e.stat},configurable:!0},preLoadData:{get:function(){var t=e.stat;return t&&t.preLoadData?t.preLoadData:{byteLength:0,duration:0}},configurable:!0},ext:{get:function(){var t=Math.max(0,Loader.historySpeed.length-10),n=Loader.historySpeed.slice(t,t+10);return _objectSpread2$5(_objectSpread2$5({},e.stat),{},{speed:n.map((function(e){return"".concat(e/8)})),vtype:"DASH",format:e._kernalType,performance:void 0,preLoadData:void 0})},configurable:!0},getLogCache:{get:function(){var e=getLogger();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){var t;return e._kernalType===KERNAL_TYPES.DASH?null===(t=e._kernal)||void 0===t?void 0:t.pcdnReq:null},configurable:!0},currentDefitionFromPlayer:{get:function(){return e.currentDefitionFromPlayer},configurable:!0},encryptedInfo:{get:function(){var t;return{encryptedType:(null===(t=e._kernal)||void 0===t?void 0:t.encryptedType)||0}},configurable:!0},pcdnVVStat:{get:function(){var t;return e._kernalType===KERNAL_TYPES.DASH?null===(t=e._kernal)||void 0===t?void 0:t.pcdnVVStat():null},configurable:!0},beforeLoadStartCostTime:{get:function(){var t;return e._kernalType===KERNAL_TYPES.DASH&&e._kernal?null===(t=e._kernal)||void 0===t?void 0:t.beforeLoadStartCostTime:0},configurable:!0},startTimelines:{get:function(){var t;if(e._startTimelines){var n=util$1.nowTime();e._startTimelines.startuploadtime=n;var r=e._kernalType===KERNAL_TYPES.DASH?e._startTimelines.reqtime:e._startTimelines.downgradetime;if(e._startTimelines.startdelta=n-r,e._startTimelines.firstframedp=e._hasFirstFramed?1:0,e._startTimelines.playerstate=e.player.state,!e._hasFirstFramed){var i,a=e.player.getBufferedRange();e._startTimelines.startbufferlength=a[1]-a[0],null===(i=e.player)||void 0===i||i.emit("xglog_cache")}}var o=null===(t=e.stat)||void 0===t?void 0:t.stage;return JSON.parse(JSON.stringify(Object.assign({},e._startTimelines,o)))},configurable:!0}}}var _playerPlayNext=null,DASHPlugin=function(e){function t(){var e;_classCallCheck$8(this,t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return _defineProperty$7(e=_callSuper$2(this,t,[].concat(r)),"_hasUsedBackUrl",!1),_defineProperty$7(e,"_onPlayAbort",(function(){var t=e.config,n=util$1.nowTime(),r=!1;e._playTime>-1&&e._pauseTime>-1&&e._playTime<=e._pauseTime&&e._pauseTime<=n&&(r=!0),!t.usePlayAbortRetry||e._hasPlayAbortRetry||r||(e._hasPlayAbortRetry=!0,e.player.play(),debug$1.log(t.vid,"playAbortRetry"))})),_defineProperty$7(e,"_onPlayStarted",(function(){e._startTimelines&&(e._startTimelines.playtime=util$1.nowTime())})),_defineProperty$7(e,"_onLoadStart",(function(){-1===e._startTimelines.loadstarttype&&(e._startTimelines.loadstarttime=util$1.nowTime(),e._startTimelines.loadstarttype=e._kernalType===KERNAL_TYPES.DASH?1:2)})),_defineProperty$7(e,"_onLoadData",(function(){-1===e._startTimelines.loadeddatatype&&(e._startTimelines.loadeddatatime=util$1.nowTime(),e._startTimelines.loadeddatatype=e._kernalType===KERNAL_TYPES.DASH?1:2)})),_defineProperty$7(e,"_onSourceError",(function(t){if(!e._hasFirstFramed){var n,r,i,a;if(null!==(n=t.message)&&void 0!==n&&n.includes("PCDN"))return;var o="".concat(e.player.vtype,"-host:").concat(null==t?void 0:t.host,"-").concat(null==t?void 0:t.errorCode,"-").concat(null!==(r=null==t||null===(i=t.mediaError)||void 0===i?void 0:i.message)&&void 0!==r?r:null==t?void 0:t.message);e.setStartTimelines(START_TIMELINES.HTTP_ERROR,{message:o,httpCode:null==t?void 0:t.errorCode}),null===(a=e._startTimelines)||void 0===a||null===(a=a.httpError)||void 0===a||a.push({message:o,httpCode:null==t?void 0:t.errorCode,range:(null==t?void 0:t.range)&&JSON.stringify(null==t?void 0:t.range),mediaType:null==t?void 0:t.mediaType})}})),_defineProperty$7(e,"_onSeeking",(function(){var t=e.player;e.waitLevelStartTime=t.currentTime})),_defineProperty$7(e,"_onPlaying",(function(){var t;debug$1.log("onPlaying,",JSON.stringify({curtime:e.player.currentTime,buffer:JSON.stringify(null===(t=e.player)||void 0===t||null===(t=t.buffered2)||void 0===t?void 0:t.bufferedList)})),e._waitAdjustTimeCnt>0&&e._waitInBufferTimer&&(e._waitAdjustTimeCnt-=1,debug$1.log("[waitInBuffer resume play], waitAdjustTimeCnt,",e._waitAdjustTimeCnt)),clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var n=e.player,r=e.config.resumePlayWaterLevel;if(e._kernalType!==KERNAL_TYPES.MP4){if(!(n.duration>0&&n.duration-n.currentTime<=r)&&(e.waitLevelStartTime<0&&(e.waitLevelStartTime=n.currentTime),e.playFlag||(e.playFlag=!0),r>0&&n.currentTime-e.waitLevelStartTime>=USE_WAIT_WATER_LEVEL_MIN_TIME)){var i=n.getBufferedRange(n.buffered2);if(i[1]>0&&i[1]-n.currentTime<r){var a;if(!n.paused)e.emit(EVENT_BUFFER_CONTROL,{type:BUFFER_CONTROL_TYPE.WAITING}),n.pause(null===(a=PAUSE_TYPES)||void 0===a?void 0:a.BUFFER_CONTROLS),n.isBufferControlPaused=!0,debug$1.log("[!!!!!buffer not rich, pause],currentTime, ",n.currentTime,", bufferEnd,",i[1]);clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=setTimeout(e._onPlaying,r/2*1e3)}else n.isBufferControlPaused&&n.paused&&(debug$1.log("[!!!!!buffer rich, play],, currentTime, ",n.currentTime,", bufferEnd,",i[1]),clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,n.isBufferControlPaused=!1,e.emit(EVENT_BUFFER_CONTROL,{type:BUFFER_CONTROL_TYPE.PLAYING}),n.play())}}else e.checkResumePlayTimer>0&&(clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,n.isBufferControlPaused&&(n.isBufferControlPaused=!1),n.paused&&n.play())})),_defineProperty$7(e,"_onWaiting",(function(){var t,n=e,r=n.player,i=n.config;clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var a=r.currentTime;debug$1.log(",[onWaiting],curTime, ",a,",buffer,",JSON.stringify(null==r||null===(t=r.buffered2)||void 0===t?void 0:t.bufferedList),",dur,",r.duration);var o=r.bufferedPoint;o.end>0&&o.end-a>=2&&e._waitAdjustTimeCnt<i.waitJampBufferMaxCnt&&(e._waitInBufferTimer=setTimeout((function(){e._waitAdjustTimeCnt++,r.currentTime=r.currentTime+.5}),i.waitingInBufferTimeOut))})),e}return _inherits$5(t,EncryptBasePlugin),_createClass$8(t,[{key:"initDashPlayer",value:function(e){this._checkVideoSwitch(),this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),util$1.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||proxyLocalStorage$1.getItem("playerInstance"))&&(void 0===window.dashPlayerInstanceList&&(window.dashPlayerInstanceList=[]),window.dashPlayerInstanceList.push(e)),this._startBufferCheck(),this.changeKernal(!1),window.addEventListener("beforeunload",this.cacheSpeed)}},{key:"_checkVideoSwitch",value:function(){var e=this.player,t=this.playerConfig.mediaType;if(this.softVideo="xg-video"===t,!(e.video instanceof HTMLVideoElement||this.softVideo)){var n=util$2.createDom("video","",this.getVideoConfig(this.playerConfig));this.removeVideo=e.video,n.muted=e.video.muted,n.volume=e.video.volume,e.video=n,e.attachVideoEvents(e.video);var r=this.removeVideo.parentNode;r&&r.removeChild(this.removeVideo),this.removeVideo=null}}},{key:"getVideoConfig",value:function(e){var t=Object.assign({},{controls:!1,autoplay:e.autoplay,playsinline:e.playsinline,"x5-playsinline":e.playsinline,"webkit-playsinline":e.playsinline,"x5-video-player-fullscreen":e["x5-video-player-fullscreen"]||e.x5VideoPlayerFullscreen,"x5-video-orientation":e["x5-video-orientation"]||e.x5VideoOrientation,airplay:e.airplay,"webkit-airplay":e.airplay,tabindex:2,mediaType:e.mediaType||"video"},e.videoConfig,e.videoAttributes);return e.loop&&(t.loop="loop"),t}},{key:"bitRateAdapter",get:function(){var e=this.player,t=this.config;return e&&e.plugins&&t.needAutoBitrate?e.plugins.bitrateselector:null}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NEXT",n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;debug$1.log("next currentTime: ".concat(e,", nextType: ").concat(t,", autoplay:").concat(r));var a=this.player,o=this.config;this._setStartTimelineData(),this._unbindPlayerProxyAttr(),BasePlugin.defineGetterOrSetter(a,getterMap(this)),this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===t&&a.paused&&(this._pausedWhenExpiredRestart=!0),a.dashState=NEXT_START;var l=!1;if(a.isSrcVoid||!o.dashOpts&&!o.mp4Opts||a.ended||"MEDIA_EXPIRED"===t||"REPLAY"===t||a.duration&&a.currentTime<a.duration-DEFAULT_END&&(a.emit("logger_next",t),l=!0),this._hasTriggerBufferThreshold=!1,a.emit("next",t),a.emit("playertypechange"),n)for(var d in n)o[d]=n[d];a.config.vid&&(o.vid=a.config.vid),o.duration>0&&(o.duration=0),a.config.duration&&(o.duration=a.config.duration),this._setDefinitionConfig(),this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===t&&a.resetState&&a.resetState(),a.config.startTime=e,a.config.startTimeCache=e,n&&(a.config.DASHPlugin=n);var U=a.config.autoplay;this._pausedWhenExpiredRestart&&U&&(a.config.autoplay=!1,a.once("canplay",(function(){setTimeout((function(){a.config.autoplay=U,a.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0,i),!r&&!a.config.autoplay||this._pausedWhenExpiredRestart||a.once("canplay",(function(){if(a.video&&(a.config.autoplay||r)){var e=a.video.play();e&&e.catch((function(){}))}})),this._pausedWhenExpiredRestart&&(this._pausedWhenExpiredRestart=!1)}},{key:"_replay",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this.player;this.config.replayReset?this.next(e,"REPLAY",void 0,!0):(t.currentTime=0,this._kernal&&this._kernal.replay&&this._kernal.replay())}},{key:"_setDefinitionConfig",value:function(){var e=this.player,t=this.config;if(e.config.definition){var n=e.config.definition,r=n.definitionText,i=n.defaultDefinition;r&&(t.definition=r),i&&(t.defaultDefinition=i)}}},{key:"startPlayHandler",value:function(e,t,n){var r=this.config;if(r.dashOpts||r.mp4Opts){var i="NEXT"===t||"REPLAY"===t;this._setStartTime(n,e,i,!0)}}},{key:"beforePlayerInit",value:function(){this._hasExecuteBeforeInit||(this._hasExecuteBeforeInit=!0)}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var t=this.player,n=this.config;t.isReady=!0,this._kernalType===KERNAL_TYPES.DASH&&(t.vtype="DASH"),this._unbindPlayerProxyAttr(),BasePlugin.defineGetterOrSetter(t,getterMap(this)),this._syncParameters(),t.config.nullUrlStart=!0,this._setDefinitionConfig(),getLogger().logMaxSize=n.logMaxSize,this._proxyPlayer(),this.initDashPlayer(t),this._setStartTimelineData(),this.on("xglog",(function(n){if("firstFrame"===n.eventType){var r,i;debug$1.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,n.fvt,"stat",t.stat),e._hasFirstFramed=!0,e.setStartTimelineAttr("ffcost",n.fvt);var a=t.vtype===VTYPES$1.DASH?null===(r=e._startTimelines)||void 0===r?void 0:r.reqtime:null===(i=e._startTimelines)||void 0===i?void 0:i.downgradetime;e.setStartTimelineAttr("fcost",util$1.nowTime()-a)}})),this._bindEvents(),this.setStartTimelines(START_TIMELINES.BEFEORE_START,{message:"after create"})}},{key:"setStartTimelines",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._hasFirstFramed&&this._startTimelines){this._startTimelines.startstage=e,this._startTimelines.startmessage="".concat(START_TIMELINES_MESSAGE[e]||"","-").concat((null==t?void 0:t.message)||"");var n=this._startTimelines.httpCode;this._startTimelines.httpCode=-1!==n?n:(null==t?void 0:t.httpCode)||-1,e===START_TIMELINES.PLAYER_ERROR&&(this._startTimelines.playerError=(null==t?void 0:t.message)||"")}}},{key:"_setStartTimelineData",value:function(){this._startTimelines={startstage:-1,startmessage:"",httpCode:-1,httpError:[],reqtime:-1,downgradetime:-1,fcost:-1,ffcost:-1,startbufferlength:-1,playerError:"",startdelta:-1,loadstarttime:-1,loadeddatatime:-1,loadstarttype:-1,loadeddatatype:-1,playtime:-1,playerstate:-1},this._hasFirstFramed=!1}},{key:"setStartTimelineAttr",value:function(e,t){this._startTimelines&&(this._startTimelines[e]=t)}},{key:"info",value:function(e){var t=this.player;STATS_EVENTS&&t.emit(STATS_EVENTS.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;STATS_EVENTS&&e.emit(STATS_EVENTS.STATS_RESET)}},{key:"_syncParameters",value:function(){var e,t=this.config,n=this.playerConfig,r=t.vid||n.vid;t.vid=n.vid=r,n.autoBitrateOpts=t.autoBitrateOpts,null===(e=this.player.preloader)||void 0===e||e.addPlayingId(n.vid,this.player.playerId)}},{key:"_proxyPlayer",value:function(){var e=this,t=this.player,n=this.config;this._originStartInit=t._startInit,t.getPreloadInfos=this.getPreloadInfos.bind(this),t.useHooks("replay",(function(t){e._replay()})),t.useHooks("play",(function(){var n;e._playTime=util$1.nowTime(),debug$1.log(null==t||null===(n=t.config)||void 0===n?void 0:n.vid,"play",e._playTime)})),t.useHooks("pause",(function(){var n;e._pauseTime=util$1.nowTime(),debug$1.log(null==t||null===(n=t.config)||void 0===n?void 0:n.vid,"puase",e._pauseTime)})),"function"==typeof this.player.playNext&&(_playerPlayNext=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)},"function"==typeof this.player.resetState&&(this._originResetState=this.player.resetState,this.player.resetState=function(){e._originResetState.call(e.player),debug$1.log("resetState",n.resetStateUpdrade),n.resetStateUpdrade&&"dash_mp4_2"===t.vtype&&(e.config.defaultFormat="dash",t.hasStart=!0,e.changeKernal())})}},{key:"playNext",value:function(){for(var e=this.player,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=n[0],a=n[1],o=n[2],l=n[3];e.setConfig(i),this.next(a,o,i.DASHPlugin,l)}},{key:"_setKernalType",value:function(){var e=this.config;e.dashOpts||e.mp4Opts?e.dashOpts&&e.mp4Opts?this._kernalType=e.defaultFormat.toLowerCase():e.dashOpts?this._kernalType=KERNAL_TYPES.DASH:this._kernalType=KERNAL_TYPES.MP4:this._kernalType=KERNAL_TYPES.VOID}},{key:"changeKernal",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=this.player;this.destroyKernal(),this._setKernalType();var i=this._kernalType;this._pauseTime=-1,this._playTime=-1,this._hasPlayAbortRetry=!1,i===KERNAL_TYPES.VOID?(r.isSrcVoid=!0,r.emit("playOptsVoid"),this.setStartTimelines(START_TIMELINES.BEFEORE_START,{message:"init playOptsVoid"}),t&&r.emit("nextEnded")):(r.isSrcVoid=!1,this._setStartTime("destroy",r.config.startTime,!0,!1),i===KERNAL_TYPES.MP4?(this._kernal=new Mp4Kernal(this),r.vtype="dash_mp4"):i===KERNAL_TYPES.DASH&&(this._kernal=new DashKernal(this),r.vtype="DASH"),n&&(r.vtype=n),"dash_mp4_2"===r.vtype&&(this._startTimelines.downgradetime=util$1.nowTime()),this.setStartTimelines(START_TIMELINES.BEFEORE_START,{message:"init no start"})),e&&this._kernal&&(this._kernal.start(),t&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){var e;this._kernal&&(debug$1.log(null===(e=this.config)||void 0===e?void 0:e.vid,"destroyKernal type ".concat(this._kernalType)),this._kernal.destroy(),this._kernal=null)}},{key:"originStartInit",get:function(){return this._originStartInit}},{key:"_setArgsFromConfig",value:function(){var e=this.config;this._bufferThreshold=e.bufferThreshold,this.playFlag=!1,this.waitLevelStartTime=-1,this._waitAdjustTimeCnt=0}},{key:"setCurrentDefitionInfos",value:function(e,t){var n,r=t?t.fps:void 0;this._currentDefinition={definition:e,fps:r,item:t},null!==(n=this.player.abrInstance)&&void 0!==n&&n.isCurrentInAbr||(this.player.curDefinition=_objectSpread2$5({},t))}},{key:"handleUrlExpire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.config,i=this.player,a=i.paused,o=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(o&&(n||!a)&&r.getServerTime)i.serverTimeDiffPromise=i.serverTimeDiffPromise||r.getServerTime().catch((function(){return 0})),i.serverTimeDiffPromise.then((function(n){if(n&&(i.serverTimeDiff=(new Date).getTime()/1e3-n),(new Date).getTime()/1e3>=e.urlExpireTimestamp+i.serverTimeDiff){e.urlExpireTimestamp=MAX_TIMESTAMP;var r=new Errors$1(ERR.NETWORK_FORBIDDEN);t.emitExpireEvent(r)}}));else if(o){var l=new Errors$1(ERR.NETWORK_FORBIDDEN);this.emitExpireEvent(l)}}},{key:"emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;this.emitExpireTimestamp?n-this.emitExpireTimestamp>MIN_EXPIRE_INTERVAL&&(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"})):(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"}))}},{key:"_getCurDashType",value:function(){var e=proxyLocalStorage$1.getItem(URL_DASH_TAG),t=DASH_TYPE;return e===t.BACK?e:t.MAIN}},{key:"_setCurDashType",value:function(){this._initDashType=this._getCurDashType()}},{key:"_setConfigDashType",value:function(){var e;this._setCurDashType();var t=null===(e=this.playerConfig)||void 0===e?void 0:e.vodLogOpts;t&&(t.currentDashType=this._initDashType)}},{key:"setCodeInfo",value:function(e){var t,n=null===(t=this.playerConfig)||void 0===t?void 0:t.vodLogOpts;"h265"===e&&(e="hevc");var r=CodecsConfigMap[e],i=CodecsConfigMap[CodecsTypes.AVC],a=i.logCodeType,o=i.codecs;r&&(a=r.logCodeType,o=r.codecs),n&&(n.codec_type=a),this.menuCodeType=o,this.config&&(this.config.codecType=a)}},{key:"cacheSpeed",value:function(){try{var e=Loader.historyAvspeed;e>0&&e!==1/0&&proxyLocalStorage$1.setItem(SPPED_CACHE,e)}catch(e){}window.removeEventListener("beforeunload",this.cacheSpeed)}},{key:"unloadVideo",value:function(){var e=this.player;try{e.video&&e.video.src&&(e.video.removeAttribute("src"),e.video.load())}catch(e){}}},{key:"destroy",value:function(){var e;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this._unbindPlayerProxyAttr(),this.player.playNext=_playerPlayNext,this.player.removeHooks("replay"),null===(e=this.player.preloader)||void 0===e||e.removePlayingId(this.player.playerId),this.off("seeking",this._onSeeking),this.off("waiting",this._onWaiting),this.off("playing",this._onPlaying),this.off("source_error",this._onSourceError),this.off("error",this._onSourceError),this.off(LOAD_START,this._onLoadStart),this.off(LOADED_DATA,this._onLoadData),this.off(AUTOPLAY_STARTED,this._onPlayStarted),this.off("AbortError",this._onPlayAbort),this._originResetState&&(this.player.resetState=this._originResetState)}},{key:"_unbindPlayerProxyAttr",value:function(){var e=getterMap(this),t=this.player;Object.keys(e).forEach((function(e){delete t[e]}))}},{key:"_bindEvents",value:function(){this.on("playing",this._onPlaying),this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting),this.on("source_error",this._onSourceError),this.on("error",this._onSourceError),this.on(LOAD_START,this._onLoadStart),this.on(LOADED_DATA,this._onLoadData),this.on(AUTOPLAY_STARTED,this._onPlayStarted),this.on("AbortError",this._onPlayAbort)}},{key:"getPreloadInfos",value:function(){return null}},{key:"getPreloadStat",value:function(){return{}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player;if(e.video){for(var t=e.video.buffered,n=0,r=0,i=0;i<t.length&&(n=t.start(i),r=t.end(i),!(n<=e.video.currentTime&&e.video.currentTime<=r));i++);r-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",r-e.video.currentTime))}}},{key:"_startBufferCheck",value:function(){var e=this,t=this.player;this._bufferCheckTimer=setInterval((function(){if(t.video){var n=[];try{for(var r=0,i=t.video.buffered.length;r<i;r++)n.push([t.video.buffered.start(r),t.video.buffered.end(r)]);n.toString()!==e.lastBuffer&&(e.lastBuffer=n.toString(),e._onBufferReachThreshold())}catch(e){}}}),200)}},{key:"_setStartTime",value:function(e,t,n,r){var i=this,a=this.player,o=this.playerConfig,l=this.config;if(t>0||r){var d=!1,U=function(){d||(d=!0,a.currentTime=t,o.startTime=0,n&&t>0&&a.emit("setStartTime"),"mp4"===l.defaultFormat&&i.setCodeInfo(CodecsTypes.AVC))};util$1.once(a,"canplay",U,e),util$1.once(a,"playing",U,e)}}},{key:"preloadManager",get:function(){return this.player.preloader}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return"dash"===this.config.defaultFormat?"dash":"dash_mp4_2"}},{key:"supportMenus",get:function(){var e="dash"===this.config.defaultFormat;return{speed:e,cdn:e,resolution:e}}},{key:"currentDefitionFromPlayer",get:function(){return this._currentDefinition}},{key:"abrInstance",get:function(){return this._kernal&&this._kernal.abrInstance?this._kernal.abrInstance:null}},{key:"menuCodeType",get:function(){return this._menuCodeType},set:function(e){var t=this.player;this._menuCodeType=e,null==t||t.emit("codecsupdate",e)}},{key:"stat",get:function(){var e=this.player;if(this._kernal&&!e.isSrcVoid){var t=this._kernal.getStat();return t.steps=this.steps.slice(0,Math.max(10,this.steps.length)),this.steps=[],e.video&&e.video.error&&(t.media={readyState:e.video.readyState,error:e.video.error.code,errorMsg:e.video.error.message}),t}return null}},{key:"loadURL",get:function(){return this._loadURL},set:function(e){this._loadURL=e;var t=util$1.getHostFromUrl(e);this._cdnHost!==t&&(this._cdnHost=t,this.player&&this.player.emit("changeHost",t))}},{key:"onPreChangeDefinition",value:function(e,t){var n=this._kernal instanceof Mp4Kernal?t:e;return this._kernal.onPreChangeDefinition(n)}}],[{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return DEFAULT_CONFIG}},{key:"isEMESupported",value:function(){return isEMESupported()}},{key:"encryptUtils",get:function(){return isSupport}}])}();DASHPlugin.updateUnionInfo=index_minExports.XGSecretKey.updateUnionInfo,DASHPlugin.generateEncryptInfo=index_minExports.XGSecretKey.generateEncryptInfo,DASHPlugin.registerPreloader=EncryptBasePlugin.registerPreloader;export{DASHPlugin as default};
|